PDA

View Full Version : سوال: فرمول جمع از صفحه قبل و نحوه ایجاد فاصله در Detail



Developer Programmer
چهارشنبه 10 اسفند 1390, 09:00 صبح
دوستان لطفا با دقت به تصاویر نگاه کنین

برای چاپ از کاغذهای آرم دار استفاده میکنیم که لوگوی شرکت قبلا چاپ شده

1) همانطوری که در تصاویر مشاهده میکنین، در صفحات 2 به بعد، قسمت PageHeader رو از بالاترین نقططه کاغذ شروع میکنه و اینطوری، صفحات 2 و 3 و... روی لوگوی سربرگ میافتن.
چطوری میتونم در صفحات 2 به بعد ، برای PageHeader مثلا 3 سانتی متر از بالا جا بذارم؟

2) میخوام جمع از صفحه قبل رو هم در Page Footer درج کنم... اما نتونستم فرمولش رو درست کنم. کسی میدونه چیکار میشه کرد؟

Developer Programmer
چهارشنبه 10 اسفند 1390, 10:15 صبح
فکر کنم پیداش کردم

اول اینکه اگه میخواین ریپورت همیشه از مختصات خاصی شروع بشه، باید Margin تعریف کنین... به این ترتیب که در صفحه ی Design ، کلیک راست کنین و Page Setup رو انتخاب و از پایین صفحه، برای Margin مقدار لازم رو وارد کنین.

دوم اینکه اگه میخواین جمع صفحه ی جاری و جمع صفحه قبل(منقول از صفحه ی قبل) رو داشته باشین اینطوری عمل کنین
در صفحه ی Desgin در toolbox قسمتی به اسم Formula Fields هست، روش کلیک راست کنین و به این ترتیب، چهار تا فیلد ایجاد کنین


name=reset

shared numberVar z;
shared numberVar x;
whileprintingrecords;
z:=x;
x:=0;


name=show

shared numbervar x;
shared numbervar z;
whileprintingrecords;
x;


name=sum

shared numbervar x;
shared numbervar z;
whileprintingrecords;
x:=x+{PaymentReport.PayedPrice}


name=previouspage

shared numbervar z;
whileprintingrecords;
z;

فرمول reset رو روی Page Header بندازین و با کلیک راست suppress کنین
فرمول Show رو روی Detail بندازین و با کلیک راست suppress کنین
فرمول sum رو روی Page Footer بندازین( جمع صفحه ی جاری رو نشون میده)
فرمول previouspage رو روی Page Footer بندازین(جمع صفحه ی قبل رو نشون میده)

کاری که این کد میکنه اینه که متغیری به اسم x و z تعریف میکنه که آخرین مقادیر رو نگه میدارن. هر بار که صفحه ی جدید شروع بشه، مقدار x=0 میشه تا جمع صفحه فعلی محاسبه بشه و z=x میشه تا جمع صفحه ی قبل رو نگه داره
بعد x=x+{field} باعث میشه که در هر رکورد(سطر) مقدار x با مقدار فیلد دلخواه جمع زده میشه و در Page footer، مقدار X به عنوان جمع صفحه ی جاری نشون داده میشه
همینطور z هم به عنوان جمع از صفحه قبل(منقول از صفحه قبل) نشون داده میشه