PDA

View Full Version : سوال: تهیه گزارش به صورت چند برگ و چندین صفحه



as13851365
چهارشنبه 26 فروردین 1388, 14:11 عصر
در یک جدول 95 تا فیلد دارم که می خوام از آنها گزارش تهیه کنم از آنجایی که تمام 95 تا فیلد در یک صفحه جا نمی شود می خواهیم در هر صفحه 24 تا فیلد ( ستون ) داشته باشم و گزارش به صورت برگ برگ باشه

مثلا : اگر 95 تا فیلد و 300 تا صفحه داشته باشیم گزارشها به این صورت باشه

برگه یک : از فیلد 1 تا 24 و تعداد سطر از 1 تا 50
برگه دو : از فیلد 25 تا 48 و تعداد سطر از 1 تا 50
برگه سه : از فیلد 49 تا 72 و تعداد سطر از 1 تا 50
برگه چهار : از فیلد 73 تا 95 و تعدا سطر از 1 تا 50
-------
برگه یک : از فیلد 1 تا 24 و تعداد سطر از 51 تا 100
برگه دو : از فیلد 25 تا 48 و تعداد سطر از 51 تا 100
برگه سه : از فیلد 49 تا 72 و تعداد سطر از 51 تا 100
برگه چهار : از فیلد 73 تا 95 و تعدا سطر از 51 تا 100
.
.
.


به تصویر زیر توجه کنید :

http://khaterat.parsaspace.com/motafarege/qreport.png
هر کادر قرمز رنگ یک صفحه است


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

من از دلفی 7 استفاده می کنم بانک اکسس 2003 و برای گزارش گیریها از qreport استفاده میکنم.

Modernidea
چهارشنبه 26 فروردین 1388, 14:44 عصر
سلام
واقعا همچين مشكلي واستون پيش اومده يا ميخوان بدونين!؟ به هر حال...
به نظر من شما جواب خودتون رو داديد. ولي يكم خودتون رو پيچوندين! شايد من دارم به خودم ميپيچم!!! نميدونم...
شما ميتونيد به 4 تا صفحه گزارش طراحي كنيد و فيلدهاي مربوطه رو در اون قرار بديد (مثلا 1- 24). اما يه چيري هست، وقتي شما اون چهار برگه رو طراحي و اجرا كنيد ديگه نياز نيست كه تعيين كنيد كه هر صفحه از سطر چند تا چند چاپ كنه چون خود نرم افزار به ترتيب شروع ميكنه و تا آخرين سطر ادامه ميده
البته ميدونم كه ميدونستيد!
فكر كنم فقط شما بايد چهار بار گزارش گيري كنيد يعني اون چهار صفحه اي رو كه طراحي كردين جدا جدا فراخواني ميكنيد تا چاپ بشه.

براي مثال
شما دستور چاپ صفحه 1 رو صادر ميكنيد و محويتاتش اينه:

از فیلد 1 تا 24 و تعداد سطر از 1 تا 50 (اگر شما تعدادسطر هر صفحه رو 50 تعيين كرده باشيد. يعني در هر صفحه A4 چندتا سطر چاپ شود) چاپ ميشه و اين كار تا آخرين رديف مربوط به فيلد هاي 1 - 24 ديتابيس انجام ميشه .
بازم مشكلي بود در خدمتم.

ياهوو

as13851365
چهارشنبه 26 فروردین 1388, 16:39 عصر
واقعا همچين مشكلي واستون پيش اومده يا ميخوان بدونين!؟
هر دو مورد فرق زیادی با هم ندارن ولی یک پروژه دارم که یک لیست دادن گفتن اینها ورودی برنامه باشه و خروجی هم باید به این صورتی که گفتم باشه :متفکر:

به نظر من شما جواب خودتون رو داديد. ولي يكم خودتون رو پيچوندين!
:گریه:


شما ميتونيد به 4 تا صفحه گزارش طراحي كنيد و فيلدهاي مربوطه رو در اون قرار بديد (مثلا 1- 24).
فكر كنم فقط شما بايد چهار بار گزارش گيري كنيد يعني اون چهار صفحه اي رو كه طراحي كردين جدا جدا فراخواني ميكنيد تا چاپ بشه.

براي مثال
شما دستور چاپ صفحه 1 رو صادر ميكنيد و محتوياتش اينه:
از فیلد 1 تا 24 و تعداد سطر از 1 تا 50 (اگر شما تعدادسطر هر صفحه رو 50 تعيين كرده باشيد. يعني در هر صفحه A4 چندتا سطر چاپ شود) چاپ ميشه و اين كار تا آخرين رديف مربوط به فيلد هاي 1 - 24 ديتابيس انجام ميشه .
بازم مشكلي بود در خدمتم.

این روش به ذهن من هم رسیده بود ولی گفتم این روش کمی :افسرده: هستش یعنی حرفه ای به نظر نمی رسه یعنی گفتم که اگه به این صورت باشه خیلی بهتر می شه :

به عکس زیر توجه کنید:

http://khaterat.parsaspace.com/motafarege/qreport2.png

از اونجایی که من زیاد با گزارش گیری ها کار نکردم نمی دونم چطوری می شه این کار رو انجام داد اگه دوستان راهنمایی کنند ممنون می شم

در ضمن من کامپوننت فست ریپورت رو هم دارم گفتم شاید qreport این امکان رو نداشته باشه اگه با FastReport_4.33 هم دوستان خواستن می تونند راهنمایی کنند .


خلاصه مطلب : تعداد ستون ها بیشتر است و در یک صفحه جا نمی شه می خواهم در صفحه دیگه ادامه این ستونها چاپ بشه به عبارتی گزارش من به صورت برگ باشه

vcldeveloper
چهارشنبه 26 فروردین 1388, 17:33 عصر
در فست ریپورت، هر گزارش میتونه حاوی بی نهایت صفحه طراحی شده باشه؛ یعنی شما می تونید صفحه اول گزارش خودتان را با استفاده از فیلدهای مورد نظر طراحی کنید، سپس یک صفحه جدید به گزارش اضافه کنید، تا یک صفحه خالی ایجاد شود، و طراحی صفحه دوم را در آن صفحه انجام بدید، و الی آخر.

همه این صفحات در داخل گزارش شما ذخیره می شوند. در هنگام پرینت، ابتدا کل محتوای صفحه اول چاپ میشه، بعد کل محتوای صفحه دوم، و الی آخر.

دقت کنید که در اینجا منظور از صفحه، تعداد صفحات چاپ شده بر روی کاغذ نیست، بلکه تعداد صفحات طراحی شده هست. هر صفحه طراحی شده ممکن هست بر روی چند صفحه کاغذی چاپ شود.

مثلا اگر شما در صفحه اول طراحی شده یک باند داده قرار بدید که به یک فیلد از یک جدول 1000 رکوردی را چاپ کند، و در صفحه دوم طراحی شده یک باند داده قرار بدید که به فیلد دیگه ایی از همان جدول متصل هست؛ ابتدا 1000 رکورد جدول برای فیلد مورد نظر در صفحه اول طراحی شده چاپ می شوند، سپس فیلد مربوط به صفحه دوم برای همان 1000 رکورد چاپ می شود.

در راهنمای فست ریپورت این موضوع تحت عنوان Multipage Reports توضیح داده شده.

as13851365
پنج شنبه 27 فروردین 1388, 10:45 صبح
ممنون دوستان
بررسی می کنم و نتیجه رو اینجا قرار می دم

_______________________________________

دوستان ممنون حل شد

mahdi_14263
جمعه 06 شهریور 1388, 15:20 عصر
سلام
این قابلیت تویه کریستال ریپورت هم هست ؟
اگه هست ، لطفا بگین کجاست ؟