ورود

View Full Version : سوال: تنظیم حاشیه کاغذ توسط کدنویسی در فست ریپورت FastReport



ariadpg
پنج شنبه 20 بهمن 1390, 22:21 عصر
با سلام. فرض کاربر می تواند در قسمت تنظیمات چاپ برنامه (قسمتی از یک برنامه دلخواه) اندازه حاشیه دور کاغذ را به دلخواه خود (یعنی مثلا با توجه به کاغذ سربرگ دار خودش) تغییر دهد. حال در زمانی که برنامه می خواهد گزارش فست ریپورت گرفته شده را به چاپگر ارسال کند، بایستی این تنظیمات حاشیه در ریپورت اعمال شود. حالا چطر توسط کد نویسی می توان این تنظیمات را انجام داد؟
با تشکر

tiphooo
جمعه 21 بهمن 1390, 21:51 عصر
توی رویداد Onbeforprint مقادیر topMargin و leftMargin , Rightmargin را دستی مقدار دهی کنید

ariadpg
یک شنبه 23 بهمن 1390, 01:01 صبح
با سلام. دوست عزیز tiphooo
با تشکر از راهنمائی شما . ولی نتونستم بهش مقدار بدهم. ممکنه یه کم راهنمائید کنید؟ یعنی منظورتون اینه که باید بنویسم frxReport1.onebeforprint.topmargin:=5

mojiparadox
یک شنبه 23 بهمن 1390, 09:45 صبح
یعنی منظورتون اینه که باید بنویسم frxReport1.onebeforprint.topmargin:=5

!!! :متعجب: نه! یعنی اینکه در رویداد یا Event مربوط به FastReport با نام OnBeforePrint (که دقیقاً قبل از شروع چاپ فراخوانی میشه) اون خصیصه (Property)ها رو مقداردهی کنید. با FastReport کار نکردم ولی فکر کنم اینجوری باشه : FastReport.Margins.Top := 40;

tiphooo
یک شنبه 23 بهمن 1390, 14:16 عصر
روی صفحه اصلی گزارش کلیک کنید و در قسمت رویدادها ( F11 را بزنید) رویدادی (events)با نام onbeforprint دارد روی آن DBClick کرده و کدی را گفیتم تایپ کن frxReport1.onebeforprint.topmargin:=5 و FastReport.Margins.Top := 5; دستورات مورد قبول نیستند.
Page1.LeftMargin:=1;
Page1.TopMargin:=1;
Page1.RightMargin:=1;
همین

khoshblagh
چهارشنبه 26 بهمن 1390, 07:19 صبح
با سلام خدمت دوستان
این کد را نوشتم ولی جواب نداد. یعنی نه خطا گرفت و نه تنظیمات بر اساس مقادیر اجرا شد. چرا؟

procedure Page1OnBeforePrint(Sender: TfrxComponent);
begin
page1.RightMargin:=5;
page1.LeftMargin:=5;
page1.TopMargin:=5;
end;

tiphooo
چهارشنبه 26 بهمن 1390, 19:31 عصر
با عرض پوزش منظورم از صفحه اصلی گزارش خود گزارش را انتخاب کنید توی منوی خصوصیات از باکس بالا آیتمی که از نوع frxReport است انتخاب کرده و در رویداد OnStartReport آن همان کدها را بنویسید ولی فراموش نکنید که اگر منظورتان 5 سانتیمتر است 50 بنویسید در خاصیت پیش فرض بر حسب سانتیمتر است ولی با کد نویسی بر حسب میلیمتر است

khoshblagh
پنج شنبه 27 بهمن 1390, 10:20 صبح
با سلام خدمت دوستان
با این کد هم جواب نداد:

frxReport1.OnStartReport:=frxReport1.Pages[1].TopMargin:=150;

tiphooo
پنج شنبه 27 بهمن 1390, 13:19 عصر
procedure frxReport1OnStartReport(Sender: TfrxComponent);
begin
page1.RightMargin:=50;
page1.LeftMargin:=50;
page1.TopMargin:=50;


end;
شما نمی توانید با کد نویسی کدها را به رویدادها نسبت دهید باید اسم رویداد در لیست رویدادهای شما وجود داشته باشد.
شما frxReport1 را انتخاب کرده و سپس در قسمت رویدادها روی OnStartReport دو بار کلیک کرده و سپس کدهای فوق را بنویسید.
نمی دانم تا چه اندازه با رویدادها و خصوصیات آشنا هستید ولی F11 را بزنید و از ComboBox شی اصلی گزارش frxReport1 را انتخاب کنید اگر نام دیگری دارد آن را انتخاب کنید ولی روبروی آن نام کلاس آن وجود دارد کلاس آن از نوع TfrxReport است و فقط یک مورد وجود دارد

ariadpg
شنبه 29 بهمن 1390, 01:36 صبح
با سلام و تشکر از همه دوستان.
دوست عزیز tiphooo . توضیح آخرتون را دقیقاً گرفتم ولی با این کار مشکل من حل نمیشه. چون من می خواهم از داخل فرم دلفی بهش مقدار بدهم.
در فرم دلفی من 4 تا EditBox گذاشتم که کاربر مقدار حاشیه را در آن وارد میکنه و بعد وقتی دکمه Print را از روی فرم میزنه انتظار داره که حاشیه گزارش چاپ شده به اندازه حاشیه تایپ شده اون باشه.
با این راهنمائی که شما فرمودین من قادر به این کار نیستم، چون در داخل گزارش ساز FastReport که نمی تونم آدرس یک Edit از داخل فرم دلفی را بدهم. آیا این کار امکان پذیر هست؟

khoshblagh
شنبه 29 بهمن 1390, 07:29 صبح
procedure frxReport1OnStartReport(Sender: TfrxComponent);
begin
page1.RightMargin:=50;
page1.LeftMargin:=50;
page1.TopMargin:=50;
end;
شما نمی توانید با کد نویسی کدها را به رویدادها نسبت دهید باید اسم رویداد در لیست رویدادهای شما وجود داشته باشد.
شما frxReport1 را انتخاب کرده و سپس در قسمت رویدادها روی OnStartReport دو بار کلیک کرده و سپس کدهای فوق را بنویسید.
نمی دانم تا چه اندازه با رویدادها و خصوصیات آشنا هستید ولی F11 را بزنید و از ComboBox شی اصلی گزارش frxReport1 را انتخاب کنید اگر نام دیگری دارد آن را انتخاب کنید ولی روبروی آن نام کلاس آن وجود دارد کلاس آن از نوع TfrxReport است و فقط یک مورد وجود دارد

دوست عزیز سلام
OnStartReport در تب پراپرتی قرار دارد نه در تب Events . به همین دلیل با دو بار کلیک کردن بر روی آن پنجره کد نویسی باز نمیشود!! . چیزی که به نظر عجیب میآید این است که چرا این رویداد به جای قرار گرفتن در تب Events در تب property قرار داده شده است؟ و اینکه چرا با دو بار کلیک کردن رویداد مورد نظر آماده برای کد نویسی نمیشود؟ متشکرم.

tiphooo
شنبه 29 بهمن 1390, 14:16 عصر
این تصویر نمونه برای استفاده از این رویداده حالا اگر مشکلی هست یا در نحوه نصب FastReport می باشد یا در نحوه استفاده دردلفی82870

majid41720
سه شنبه 05 اسفند 1399, 08:22 صبح
این تصویر نمونه برای استفاده از این رویداده حالا اگر مشکلی هست یا در نحوه نصب FastReport می باشد یا در نحوه استفاده دردلفی82870
سلام میشه لطفا منم کمک کنید هر چی پیام دادم براتون ارسال نشد
لطفا به جیمیلم پیام بدید ممنون
majiddin417@gmail.com