محدود کردن چاپ رکوردها در هر صفحه در دیتا ریپورت

ms_vb

Member
محدود کردن چاپ رکوردها در هر صفحه در ReportViewer یا Report.adlc

سلام به همه مخصوصا جناب The king عزیز
چطور میتوانم در DataReport تعداد رکوردهای هر صفحه را به 4 تا محدود کنم
یعنی در هر صفحه فقط 4 رکورد چاپ شود
ممنون از راهنمایی هایتان
 
آخرین ویرایش:

the_king

مدیرکل انجمن
سلام به همه مخصوصا جناب The king عزیز
چطور میتوانم در DataReport تعداد رکوردهای هر صفحه را به 4 تا محدود کنم
یعنی در هر صفحه فقط 4 رکورد چاپ شود
ممنون از راهنمایی هایتان

DataReport ؟ مگه شما با Visual Basic 6 کار می کنید؟
 

ms_vb

Member
بهتره سوالم رو اینطور بپرسم؟
چطور میشه در Report.rdlc یا ReportViewer تعداد مشخصی رکورد در هر صفحه چاپ شه؟
یه دستوری مثل PageBreak که بعد از چاپ شدن مثلا 4 تا رکورد در صفحه اول به صفحه بعد برود و در صفحه بعد هم با چاپ شدن مثلا 6 تا رکورد به صفحه بعد برود؟
آیا همچین چیزی برای این آیتم ها تعریف شده؟
آیا این امکان وجود دارد؟
برای انجام همچین کاری چکار کنم؟
خیلی خیلی ممنون میشم اگه جواب بدید:rose:
 

the_king

مدیرکل انجمن
سلام به همه مخصوصا جناب The king عزیز
چطور میتوانم در DataReport تعداد رکوردهای هر صفحه را به 4 تا محدود کنم
یعنی در هر صفحه فقط 4 رکورد چاپ شود
ممنون از راهنمایی هایتان

روی اون Report1.rdlc دوبار کلیک کنید تا در حالت ویرایش باز بشه. در Table ای که در صفحه گزارش هست اون
سطری که مقدار فیلد ها رو نوشته انتخاب کنید (سطری که سطر بالاترش عنوان فیلد ها است).

در ویژوال استدیو 2008 :
اون سطر یک آیکون سمت چپ اش داره که سه خط موازی زیر همه، روی اون آیکون راست کلیک کرده
و گزینه Insert Group را انتخاب کنید. متن Group on که یک Expression است را این عبارت قرار دهید :
کد:
=Int((RowNumber(Nothing)-1)/4)
تیک گزینه Page break at end را بزنید و تیک گزینه های Include group header و Include group footer را بردارید.

در ویژوال استدیو 2010 :
اون سطر یک آیکون سمت چپ اش داره که سه خط موازی زیر همه، روی اون آیکون راست کلیک کرده
و گزینه Add Group -> Parent Group را انتخاب کنید. متن Group on که یک Expression است را این عبارت قرار دهید :
کد:
=Int((RowNumber(Nothing)-1)/4)
پایین پنجره ویرایشگر لیست Group ها رو نشون میده، روی Group بالایی (Group1) دوبار کلیک کنید.
در بخش Sorting اون سطر Sort by را انتخاب کرده و با دکمه Delete حذف کنید.
در بخش Bage Breaks تیک گزینه Between each instance of a group را بزنید.
بعد از OK کردن پنجره، ستون اون Group1 رو بصورت کامل انتخاب کرده و رویش راست کلیک کنید و گزینه
Delete Columns را انتخاب کرده و گزینه Delete columns only را فعال نموده و OK کنید.
 

ms_vb

Member
آقا خیلی خیلی ممنون از جوابتون. انشاالله بتوانم جبران کنم
فقط یه سوال دیگه
حالا اگه بخواهم پس زمینه 2 ردیف آخر رو در هر صفحه رنگی بکنم چکار کنم؟
بازهم ممنون از جوابنون:rose:
 

the_king

مدیرکل انجمن
آقا خیلی خیلی ممنون از جوابتون. انشاالله بتوانم جبران کنم
فقط یه سوال دیگه
حالا اگه بخواهم پس زمینه 2 ردیف آخر رو در هر صفحه رنگی بکنم چکار کنم؟
بازهم ممنون از جوابنون:rose:

خیلی ساده، یک نگاهی به مشخصات خانه های جدول در پنجره Properties بندازید، موقع مشخص کردن مقدار
هر مشخصه یک گزینه ...Expression هم هست. توسط اون گزینه می توانید هر نوع تمایزی رو در مقدار اون
مشخصه بدست بیاورید. فرضا شما در جدول هر صفحه 4 سطر دارید که قرار زمینه دو سطر آخر (BackgroundColor)
فرق کنه :
کد:
row1, row2, [COLOR="Red"]row3[/COLOR], [COLOR="Red"]row4[/COLOR]
row5, row6, [COLOR="Red"]row7[/COLOR], [COLOR="Red"]row8[/COLOR]
row9, row10, [COLOR="Red"]row11[/COLOR], [COLOR="Red"]row12[/COLOR]
row13, row14, [COLOR="Red"]row15[/COLOR], [COLOR="Red"]row16[/COLOR] ...

تمایز در هر صفحه تکرار میشه پس باید شماره سطر در جدول رو به اندیس سطر در صفحه تبدیل کنیم. برای اینکار
از عملگر باقیمانده تقسیم صحیح یعنی Mod کمک بگیرید.
اگر شماره سطر ها را n در نظر بگیرید، اگر باقیمانده تقسیم صحیح n - 1 بر 4 را حساب کنید سطر های 2 و 3 باید رنگ
متفاوتی از سطر های 0 و 1 داشته باشند. فرمول Expression اش یک چیزی مثل این میشه :
کد:
= IIf(((RowNumber(Nothing) - 1) Mod 4) >= 2, "Yellow", "Transparent")
یعنی اگر اندیس سطر در صفحه (از 0 شروع میشه) از 2 بزرگتر یا مساوی بود مقدار Yellow و در غیر اینصورت
Transparent برگردانده بشه.

در جدول اون سطری که مقدار فیلد ها را داخل می نویسه را بصورت کامل انتخاب کنید. بعد در پنجره Properties
مقدار مشخصه BackgroundColor را روی این Expression ای که بالا نوشتم قرار دهید.
این شیوه را می توانید در مورد همه مشخصه های خانه های جدول بکار ببرید.
 

tiradan

New Member
درود

سلام و سپاس جناب King

آقا این کارارو امتحان کردم اما ففط یک Row رو نشون میداد

ممنون میشم راهنمایی کنید
 

tiradan

New Member
این قضیه حل شد

اما یه مشکل دیگه

اون تعداد دیتاهایی که رو پیج اول کنترل میشه خوب کار میکنه

اما بقیه اطلاعات در صفحه بعدی رو اون طور که میخای در نمیاره

من در این پروژم اطلاعاتم رو در وسط صفحه قرار میدم

صفحه اول عالی

اما در صفحه های بعد اون اطلاعت رو از اول صفحه شروع به چینش میکنه

چه ظور این مشکل رو میشه حل کرد؟؟؟
 

the_king

مدیرکل انجمن
این قضیه حل شد

اما یه مشکل دیگه

اون تعداد دیتاهایی که رو پیج اول کنترل میشه خوب کار میکنه

اما بقیه اطلاعات در صفحه بعدی رو اون طور که میخای در نمیاره

من در این پروژم اطلاعاتم رو در وسط صفحه قرار میدم

صفحه اول عالی

اما در صفحه های بعد اون اطلاعت رو از اول صفحه شروع به چینش میکنه

چه ظور این مشکل رو میشه حل کرد؟؟؟

برای نمایش اطلاعات در وسط صفحه چه روشی به کار برده اید؟
 

tiradan

New Member
اگه کسی در توانش نیشت بگه نمیدونم
که ما بریم جای دیگه سوالمونو بپرسیم

ممنونم
 

جدیدترین ارسال ها

بالا