PDA

View Full Version : پاک کردن یه سری از صفحات گزارش



devil00x
چهارشنبه 22 اسفند 1386, 00:08 صبح
من یه برنامه نوشتن که می خوام محدودش کنم یعنی فقط 10 صفحه از 100 صفحه گزارش که تولید میکنه رو برام چاپ کنه .
چی کار باید بکنم این طور بشه .
البته تمام 100 صفحه باید در preview نمایش داده بشه اما فقط همون 10 صفحه چاپ بشه.
لطفا کمک کنید خیلی حیاتیه؟؟؟؟

dkhatibi
چهارشنبه 22 اسفند 1386, 06:15 صبح
دکمه ی چاپ را از Preview حذف کنید و با دکمه ای درون برنامه 10 صفحه را فقط چاپ کنید.
می تونید با یک جلقه و Page[i] صفحات اضافی را پاک کنید.
روش دیگه هم اینه که سورس کامپوننت را کمی برای خواسته ی خود (یونیت مربوط به اون در بین یونیتهای Fr وجود دارد با سورس) اونو دستکاری کنید.

devil00x
چهارشنبه 22 اسفند 1386, 09:43 صبح
سلام دوست عزیز ، میشه یه خورده بیشتر توضیح بدی که چطور میشه دکمه پرینت رو برداشت.
ضمنا من می خواستم با page[i] 1 صفحه رو پاک کنم اما تو هر event گذاشتم بعد از انجام اون عمل یه پیغام خطا list out of boud یا یه همچین چیری میده.
اگه میشه یه خورده بیشتر راهنمایی کن چون واقعا گیر کردم.

mehdi_moosavi
چهارشنبه 22 اسفند 1386, 10:24 صبح
وقتی تمام 100 صفحه گزارش در Preview نمایش داده شد کلید Print رو بزنید جعبه Print باز میشه و در قسمت Page Range حالت Pages رو انتخاب کنید و جلوی اون 10-1 رو بنویسید و OK کنید دقیقا صفحات 1 تا 10 بوسیله چاپگر چاپ میشه.
فکر میکنم خیلی ساده است مگر اینکه منظور شما چیز دیگه ای باشه.

devil00x
چهارشنبه 22 اسفند 1386, 10:36 صبح
وقتی تمام 100 صفحه گزارش در Preview نمایش داده شد کلید Print رو بزنید جعبه Print باز میشه و در قسمت Page Range حالت Pages رو انتخاب کنید و جلوی اون 10-1 رو بنویسید و OK کنید دقیقا صفحات 1 تا 10 بوسیله چاپگر چاپ میشه.
فکر میکنم خیلی ساده است مگر اینکه منظور شما چیز دیگه ای باشه.

سلام دوست عزیز.
این که می دونم عزیز دل برادر، من می خوام یه همچین کاری خودم از طریق سوس انجام بدم ، اگه اولین پست رو خوانده باشی نوشتم می خوام برنامه رو محدود کنم.

یعنی کاربر همه صفحات رو ببینه اما موقع پرینت فقط چند صفحه بتونه پرینت کنه.

mehdi_moosavi
چهارشنبه 22 اسفند 1386, 10:53 صبح
این چند صفحه چطور تعیین میشه ، بوسیله کاربر؟ یا بوسیله شما؟ آیا همیشه 1 تا 10 هست یا اینکه با هربار گزارش گیری ممکنه تغییر بکنه منظورم اینه که ممکنه یک بار 1تا10 باشه و باربعد مثلا 5 تا 12 ؟

devil00x
چهارشنبه 22 اسفند 1386, 17:45 عصر
این محدودیت رو خودم به عنوان برنامه نویس می خوام بزارم .
خواشا هرکس می تونه کمک کنه وقت زیادی ندارم.

vcldeveloper
چهارشنبه 22 اسفند 1386, 18:39 عصر
FastReport یه کامپوننت بنام frxPreview داره که می تونید اونو توی یه فرم جداگانه قرار بدید و به FasrReport بگید که از این کامپوننت برای Preview استفاده کنه. می تونید خودتون توش یه Toolbar بزارید و برای عملکردهای مورد نظر خودتوند روش دکمه درست کنید. هر کدوم از اون عملکردهایی که توی Preview خود FastReport می بینید، از طریق همین frxPreview قابل انجام هستند.کاری که شما باید انجام بدید اینه که بجای فراخوانی مستقیم Print در Preview، برای دکمه مورد نظر خودتون کدی بنویسید که اول محدوده صفحه رو بین 1 تا 10 تغییر بده، بعد Print رو فراخوانی کنه.

devil00x
شنبه 25 اسفند 1386, 17:40 عصر
با سلام خدمت دوست عزیز جناب کشاورز.
من مشکلم هنوز پا بر جاست این کاری که شما فرمودید انجام دادم و یک preview خودم ساختم اما متاسفانه نمی تونه تعداد محدود صفحات رو به چاپ بفرستم البته با ترفند دیگه این عمل رو انجام دادم اما اینکه هر صفحه خاص که می خوام رو نتونستم اگه دستور خاصی داره لطف کنید بفرمائید چون متد print های که من امتحان کردم کل صفحات رو به چاپ می فرسته و خود page یا pages هم متد \print نداره. میشه یه خورده در این مورد توضیح بدین.

vcldeveloper
شنبه 25 اسفند 1386, 23:56 عصر
باید کدی مثل این بنویسید:

var
MaxPageNum : integer;
begin
MaxPageNum := 10;
while frxPreview1.PageCount > MaxPageNum do
begin
frxPreview1.SetPosition(MaxPageNum+1,0);
frxPreview1.DeletePage;
end;
frxPreview1.Print;
end;
این کد تمام صفحات بعد از صفحه 10 رو حذف میکنه , بعد صفحات باقی مانده رو چاپ میکنه.

devil00x
یک شنبه 26 اسفند 1386, 22:54 عصر
دوست عزیز من می خوام تو preview تمام صفحات به کاربر نشون داده بشه و فقط هنگام چاپ یک سری صفحات محدود رو نمایش بده.
از زحمتتون متشکرم.

vcldeveloper
دوشنبه 27 اسفند 1386, 00:14 صبح
دوست عزیز من می خوام تو preview تمام صفحات به کاربر نشون داده بشه و فقط هنگام چاپ یک سری صفحات محدود رو نمایش بده.گفتم اون کد رو برای دکمه Print در پنجره Preview بنویسید تا صفحات قبل از Print حذف بشند، نه قبل از نمایش خود Preview!

ali_abbasi22145
دوشنبه 27 اسفند 1386, 09:12 صبح
ReportBuilder هم این امکان را دارد و به PDF که در فولدر RBuilder است نگاهی بینداز.