PDA

View Full Version : سوال: جمع تا صفحه



j.farazani
یک شنبه 29 اردیبهشت 1387, 23:17 عصر
با سلام خدمت دوستان عزیزم

لطفا پاکش نکنید هر چی گشتم چیزی پیدا نکردم .

من میخوام پایین هر صفحه ، جمع تا صفحه داشته باشم (یعنی جمع از ابتدای گزارش تا انتهای صفحه جاری)
و

در ابتدای هر صفحه جمع صفحه قبل فقط نمایش داده بشه ؟؟؟

دوستان و اساتید لطفا کمک کنند . خیلی فوری . بد جوری گیر کردم

j.farazani
دوشنبه 30 اردیبهشت 1387, 23:00 عصر
یعنی یه نفر نیست یه کمکی به ما بکنه

اگه قبلا عنوان شده بزرگواری کنید و لینکش رو بدید چون هر چی گشتم چیزی پیدا نکردم

البته مشکل اصلی اینجاست

در ابتدای هر صفحه جمع صفحه قبل فقط نمایش داده بشه ؟؟؟

ممنون از بزرگواریتون

j.farazani
سه شنبه 31 اردیبهشت 1387, 12:52 عصر
کسی نیست

حداقل بگید چی رو جستجو کنم

vbhamed
پنج شنبه 02 خرداد 1387, 17:00 عصر
سلام

بستگي داره گزارشگرتون چي باشه
ولي اگر فرض كنيم خود گزارشگر همچين امكاني نداشته باشه من راه زير رو پيشنهاد مي كنم

1 - در جدولي كه قراره چاپ بشه يك فيلد اضافه كنيد به نام فيلد مثلا SumPage
2 - يك بار تمام ركوردهاي جدول رو مرور كنيد و فيلد SumPage رو برابر جمع مقادير ركوردهاي قبلي قرار بدين

مثلا اينطوري


Name Family Price SumPage
Ali Rezaey 1000 1000
Ali Rezaey 2000 3000
Ali Rezaey 7000 10000
.
.
.
3 - فيلد SumPage رو در قسمت پا صفحه گزارش قرار بدين، با اين كار مقدار اين فيلد از آخرين ركورد اونجا درج ميشه و اين همون چيزيه كه شما لازم داريد، نيازي به گذاشتن خود فيلد SumPage در قسمت Details گزارش هم نيست.

j.farazani
پنج شنبه 02 خرداد 1387, 17:51 عصر
سلام

حامد جان محبت کردید

مشکل اصلی اینه


در ابتدای هر صفحه جمع صفحه قبل فقط نمایش داده بشه ؟؟؟

چطوری این کار رو انجام بدم ؟؟؟؟؟

ممنون از بزرگواریت

vbhamed
پنج شنبه 02 خرداد 1387, 23:44 عصر
سلام

كاري نداره
همون مقدار فيلد SumPage رو منهاي فيلد Price كن و بزارش تو سر صفحه
با توجه به برنامه SumPage جمع كل ركوردها تا ركورد فعلي هست كه اگر منهاي مقدار ركورد فعلي بشه، ميشه جمع كل قبليها

وقتي فيلدي كه مربوط به قسمت Details گزارش هست تو پا صفحه بزاري، مقدار آخرين ركورد صفحه رو نمايش مي ده، ولي اگر تو سر صفحه بزاري مقدار اولين ركورد صفحه رو نمايش مي‌ده

j.farazani
شنبه 04 خرداد 1387, 19:49 عصر
حامد جان یک دنیا محبت کردید

تو این فاصله من هم به یک جواب رسیدم که بدک نیست

در این مثال می خواهیم جمع ستون A رو در ابتدای صفحه بعد فقط نمایش بدیم(نقل از صفحه قبل)

1-یک running total field برای ستون A بسازید و آن را در قسمت Detail قرار دهید

2-یک Formula Field با نام F1 و با دستورات زیر بسازید و آن را در Page Header قراردهید

Global numberVar SumABeforePage;
WhilePrintingRecords;
SumABeforePage := SumABeforePage

3-یک Formula Field با نام F2 و با دستورات زیر بسازید و آن را در Page Footer قراردهید

Global numberVar SumABeforePage;
SumABeforePage := {#A};



امیدوارم که مفید واقع بشه

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

موفق باشید

vbhamed
سه شنبه 07 خرداد 1387, 11:36 صبح
سلام

شرمنده نتونستم جواب بدم
چند روزه آي دي من تو سايت مشكل دار شده بود و نمي تونستم وارد تاپيك‌ها بشم

ضمنا شما لطف داريد، من فقط انجام وظيفه كردم

farzad_vb62
دوشنبه 13 خرداد 1387, 22:11 عصر
آقا منم ايم مشکل رو دارم.
ولي فعلا لاينحل باقي م.نده . با روش هاي گفته شده هم حل نشد
لطفا اگه ميشه راهنمايي کنين؟!:ناراحت:

farzad_vb62
دوشنبه 13 خرداد 1387, 23:16 عصر
آقايون حل شد .... (راحت و حرفه اي)




Page by Page totals

Create the following formula, I call it PageTotalReset, and place it in the Page Header section.
Global currencyVar PageTotalValue;
WhilePrintingRecords;
PageTotalValue := 0;

Create the following formula, I call it PageTotalAmount, and place it in the Details section.
Global currencyVar PageTotalValue;
WhilePrintingRecords;
PageTotalValue := PageTotalValue + {TableName.FieldName};

Create the following formula, I call it PageTotalDisplay, and place it in the Page Footer section.
Global currencyVar PageTotalValue;
WhilePrintingRecords;
PageTotalValue

حسین علوی
سه شنبه 14 خرداد 1387, 16:57 عصر
آقايون حل شد .... (راحت و حرفه اي)




Page by Page totals

Create the following formula, I call it PageTotalReset, and place it in the Page Header section.
Global currencyVar PageTotalValue;
WhilePrintingRecords;
PageTotalValue := 0;

Create the following formula, I call it PageTotalAmount, and place it in the Details section.
Global currencyVar PageTotalValue;
WhilePrintingRecords;
PageTotalValue := PageTotalValue + {TableName.FieldName};

Create the following formula, I call it PageTotalDisplay, and place it in the Page Footer section.
Global currencyVar PageTotalValue;
WhilePrintingRecords;
PageTotalValue








ببخشید این کد رو کجا باید قرار داد؟

amirzazadeh
پنج شنبه 16 خرداد 1387, 08:25 صبح
ببخشید این کد رو کجا باید قرار داد؟
دوست عزيز توي قسمت فرمولا فيلد بايد سه تا فرمول با اسم هاي داده شده درست كنين وبعد اونها رو به داخل گزارشتون drag كنين فرمول 1و2 رو هم ساپرس كنين تا تو گزارشتون ديده نشن.
............................
موفق باشيد

MMAASS
دوشنبه 19 اسفند 1387, 20:53 عصر
با سلام
یک سوال دارم whileprintingrecords چه کار میکنه؟؟؟

hasan_esfahan
دوشنبه 19 اسفند 1387, 22:51 عصر
whileprintingrecords
شاید تو این مثال بهتر بشه توضیح داد که برای شماره سطر به کار می رود


numbervar mycount1;
mycount1:=mycount1+1;
mycount1;

در کد بالا ما می خواهیم این فرمول که در details قرار دارد به ازای هر رکورد یک واحد بهmycount1 اضافه کند و نمایش بدهد در صورتی که فقط یک بار انجام شده و حال اگر 100 رکورد هم باشد عدد 1 را نمایش می دهد

اما کد زیر


numbervar mycount1;
whileprintingrecords;
mycount1:=mycount1+1;
mycount1;


در کل می شه بگی کارش ارزیابی این که ایا رکورد دیگری برای چاپ وجود دارد

amir65gh
پنج شنبه 08 مرداد 1388, 19:49 عصر
من کریستال ریپورت را بر حسب یه فیلد خاص گروپ کردم کالا میخوام مبلغ جمع هر گروپ را بصورت مجزا نمایش بدم
چه جوری با فرمولا فیلد این کار را انجام بدم؟:گریه::گریه:

freedomonly
جمعه 09 مرداد 1388, 09:28 صبح
سلام
روشي هم در خود كريستال هست
رايج ترين استفاده اين نوع روش در برنامه هاي حسابداري هست
منم هم مثال حسابداري استفاده مي كنم
ابتدا در قسمت Running Total Fields دوتا Fields مي سازيد بنام SUMBD براي ستون بدهكار
و SUMBS براي ستون بستانكار و نوع هريك را SUM تعريف كنيد
حال يك فرمول ايجاد كنيد و در آن هر دو فيلد ار از هم كم كنيد اگر نوع گزارش صندوق است
({SumBed} - {#SumBes#}) اسم فرمول را مي توانيد با نام باقيمانده ايجاد كنيد و آن را در قسمت Details قرار دهيد
حال فرمول ديگري ايجاد كنيد و دو فيلد ساخته شده را از ستون بدهكار و بستانكار جدول كم كنيد (({SumBed} - {#SumBes}) - ({BD} - {BS#})) و آن را در قسمت Page Header قرار
دهيد
فرمول ديگري بسازيد و در آن فقط فيلدهاي ساخته شده را از هم كم كنيد
({SumBed} - {#SumBes#}) و آن را در قسمت Page Footer قرار دهيد
اميد وارم مشكل كه داريد با اين روش حل شود
اگر در تايپ مشكلاتي داشتم به بزرگي خودتان ببخشيد

aminpourazadeh
دوشنبه 09 شهریور 1388, 11:05 صبح
سلام

كاري نداره
همون مقدار فيلد SumPage رو منهاي فيلد Price كن و بزارش تو سر صفحه
با توجه به برنامه SumPage جمع كل ركوردها تا ركورد فعلي هست كه اگر منهاي مقدار ركورد فعلي بشه، ميشه جمع كل قبليها

وقتي فيلدي كه مربوط به قسمت Details گزارش هست تو پا صفحه بزاري، مقدار آخرين ركورد صفحه رو نمايش مي ده، ولي اگر تو سر صفحه بزاري مقدار اولين ركورد صفحه رو نمايش مي‌ده


سلام
این راه که جواب نمی ده!

aminpourazadeh
دوشنبه 09 شهریور 1388, 11:57 صبح
whileprintingrecords
شاید تو این مثال بهتر بشه توضیح داد که برای شماره سطر به کار می رود


numbervar mycount1;
mycount1:=mycount1+1;
mycount1;

در کد بالا ما می خواهیم این فرمول که در details قرار دارد به ازای هر رکورد یک واحد بهmycount1 اضافه کند و نمایش بدهد در صورتی که فقط یک بار انجام شده و حال اگر 100 رکورد هم باشد عدد 1 را نمایش می دهد

اما کد زیر


numbervar mycount1;
whileprintingrecords;
mycount1:=mycount1+1;
mycount1;


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