View Full Version : چگونگی ارسال پارامتر به FastReport
Mah6447
جمعه 13 دی 1387, 17:06 عصر
سلام دوستان عزیز
سوالی درخصوص گزارش ساز FastReport دارم که مطمئن هستم سوال دیگر دوستان نیز میباشد
می خواهیم بدانم زمانی که در FastReport و در بخش data یک Query را تعریف می کنم چرا در پنجره
پروپرتیس Query گزینه پارامتر باز نمی شود آیا راهی برای باز کردن آن وجود دارد لطفا در خصوص استفاده از آن
مرا راهنمایی کنید .
مثال : در یک Query فیلد های یک تیبل را صدا زدم Select * From Ashkhas
یک دیالوگ تعریف کردم که دارای دو Edit که فیلد های Name , Family را از ورودی میگیرد و پس از تأیید
گزارش تمامی افرادی که دارای نام و نام خانوادگی مشابه هستند نمایش دهد.
با اشتیاق منتظر اعلام نظر دوستان می باشم.
Batman
یک شنبه 15 دی 1387, 09:42 صبح
[quote=Mah6447;659120]سلام دوستان عزیز
سوالی درخصوص گزارش ساز FastReport دارم که مطمئن هستم سوال دیگر دوستان نیز میباشد
می خواهیم بدانم زمانی که در FastReport و در بخش data یک Query را تعریف می کنم چرا در پنجره
پروپرتیس Query گزینه پارامتر باز نمی شود آیا راهی برای باز کردن آن وجود دارد لطفا در خصوص استفاده از آن
مرا راهنمایی کنید .
مثال : در یک Query فیلد های یک تیبل را صدا زدم Select * From Ashkhas
یک دیالوگ تعریف کردم که دارای دو Edit که فیلد های Name , Family را از ورودی میگیرد و پس از تأیید
گزارش تمامی افرادی که دارای نام و نام خانوادگی مشابه هستند نمایش دهد.
با اشتیاق منتظر اعلام نظر دوستان می باشم.
با سلام
ببین سوال و عنوان تاپیک همخوانی ندارند اما خوب با کد زیر میتونی پارامتر به fr بفرستی
توی fr یک mome میذارید و کد زیر رو قبل از اجرا کردن خروجی fr می نویسید
procedure TForm12.DBGrid1KeyPress(Sender: TObject; var Key: Char);
Var
YourMemo:TfrxMemoView;
begin
YourMemo:=AdoQuery.FindObject('YourMemo') as TfrxMemoView;
YourMemo.Text:='YourText';
end;
موفق باشید
Mah6447
سه شنبه 17 دی 1387, 18:15 عصر
دوست عزیز
از پاسخ شما متشکرم ولی دقیقا منظورتان را نفهمیدم
داخل فست ریپورت روی دیالوگ ممو قرار دهم؟
این کد را چرا در دیبیگراد می نویسید و چکاری انجام میدهد.
در صورت امکان یک مثال از دیتا بیس اکسس بزنید.
لطفا راهنمایی بیشتر و دقیقتری بفرمایید.
پیشاپیش متشکرم.
vcldeveloper
چهارشنبه 18 دی 1387, 01:28 صبح
می خواهیم بدانم زمانی که در FastReport و در بخش data یک Query را تعریف می کنم چرا در پنجره
پروپرتیس Query گزینه پارامتر باز نمی شود آیا راهی برای باز کردن آن وجود دارد لطفا در خصوص استفاده از آن
مرا راهنمایی کنید .
روی شی کوئری مورد نظر دابل کلیک کنید تا پنجره ویرایش SQL باز شود. دستور SQL مورد نظر خودتان را با استفاده از پارامترهای مورد نظرتان بنویسید، و تغییرات را ثبت کنید:
SELECT * FROM Test Where ID = :Param1
حالا می تونید با کلیک بر روی دکمه [...] مقابل خصوصیت Params در Properties Inspector به خصوصیات پارامتر Param1 دسترسی داشته باشید.
Mah6447
چهارشنبه 18 دی 1387, 14:54 عصر
تشکر
تست کردم جواب داد من فکر میکردم پارامتر را باید اول ایجاد کرد ولی متوجه شدم که با نوشتن دستور در کوری پارامتر
خودش ایجاد میشود سپس می توان آن را مشاهده نمود یا تغییر داد .
شرمنده دوست عزیز آیا با ReportBuider هم کار کرده اید من همین سوال را در ReportBuider دارم
ولی به نتیجه ای نرسیده ام.
arezoo_sh
سه شنبه 30 تیر 1388, 19:31 عصر
سلام
اگر بخواهیم به پارامتر مقدار دهیم و این مقدار در Memo1.Text می باشد چه جوری بهش بگم ؟
هر کار می کنم error میده
vcldeveloper
سه شنبه 30 تیر 1388, 22:24 عصر
اگر بخواهیم به پارامتر مقدار دهیم و این مقدار در Memo1.Text می باشد چه جوری بهش بگم ؟
باید براش اسکریپت بنویسید
arezoo_sh
چهارشنبه 31 تیر 1388, 23:16 عصر
ممکنه مثالی بزنید
ممنون
جواد ملاولی
پنج شنبه 01 مرداد 1388, 00:03 صبح
سلام. این memo1 داخل برنامه شماست یا در صفحه گزارشتون؟
arezoo_sh
پنج شنبه 01 مرداد 1388, 18:26 عصر
صفحه گزارش
majidmt
شنبه 03 مرداد 1388, 11:41 صبح
سلام دوستان عزیز
میخواستم اگه ممکنه همین سوال را در مورد c++ builder نیز پاسخ دهید .
میدونم در این انجمن جای مطرح کردن این بحث نیست ولی ممنون میشم راهنمایی کنید.
vcldeveloper
شنبه 03 مرداد 1388, 13:00 عصر
میخواستم اگه ممکنه همین سوال را در مورد c++ builder نیز پاسخ دهید .
فرقی نمیکنه. روش کار در C++ Builder هم به همین صورت هست.
vcldeveloper
شنبه 03 مرداد 1388, 13:31 عصر
صفحه گزارش
به فرض اینکه شما یک AdoQuery در داخل گزارش خودتان (در صفحه Data) داشته باشید، و یک کنترل Memo با نام Memo1 هم روی گزارش داشته باشید، و برای AdoQuery خودتان هم یک پارامتر با نام Param1 تعریف کرده باشید، باید کدی مشابه کد زیر در صفحه Code مربوط به گزارش برای رویداد OnBeforePrint صفحه مورد نظر خودتان بنویسید:
procedure Page1OnBeforePrint(Sender: TfrxComponent);
begin
AdoQuery1.Params.ParamByName('Param1').Value := Memo1.Memo.Text;
AdoQuery1.Active := True;
end;
majidmt
شنبه 03 مرداد 1388, 21:01 عصر
ممنون از توجه شما من سوالمو به طور دقيق تر در بخش c++builder مطرح كردم
arezoo_sh
دوشنبه 05 مرداد 1388, 12:00 عصر
جناب کشاورز اگه لطف کنید و یک مثال با دانلود بگذارید ممنون
به دلیل اینکه برای من جوابی بر نمی گرداند .
vcldeveloper
دوشنبه 05 مرداد 1388, 15:54 عصر
یک مثال با دانلود بگذارید
متوجه منظور شما از "مثال با دانلود" نمیشم.
در هر حال، روش کار همین هست. شما در داخل گزارش فست ریپورت از طریق زبان اسکریپت نویسی PascalScript که شبیه به دلفی هست، به اجزاء گزارش و متدها و خصوصیاتشان دسترسی دارید
arezoo_sh
دوشنبه 05 مرداد 1388, 19:42 عصر
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select * from personnel_bond where p_code='+ memo12.memo.text);
ADOQuery1.ExecSQL; با این دستور تونستم اون چیزی که خواستم بیارم ولی فقط برای اعداد جواب میده ولی برای شرط هایی که memo توش حروفه جواب نمیده
از dialog page هم استفاده کردم اوونم با حروف جواب نمیده ولی برای اعداد درسته
دلیلش چیه؟
دستورات فوق هم در رویداد onbefore print است
arezoo_sh
دوشنبه 05 مرداد 1388, 20:02 عصر
کد بالا هم که گفتین از adoquery1.active ایراد میگره
vcldeveloper
دوشنبه 05 مرداد 1388, 20:30 عصر
برای اجرای SELECT از ExecSQL استفاده نمیشه، بلکه از Active := True یا Open استفاده میشه.
کدی که شما نوشتید استفاده از پارامتر نیست، بلکه دارید خودتون بصورت دینامیک SQL را میسازید. با حروف هم خطا میده چون مقادیر رشته ایی باید داخل علامت نقل قول در داخل دستور SQL قرار بگیرند، در حالی که در کد شما مقدار Memo1 در داخل علامت نقل قول قرار نداره.
arezoo_sh
دوشنبه 05 مرداد 1388, 20:43 عصر
درسته , من هم با اینکه بخوام به param1 مقدار بدم مشکل دارد واسه همین از این روش استفاده کردم
تو برنامه از adoqurey1.active ایراد می گیره .
در واقع هر کار می کنم که به param1 مقدار یک memo رو بدم نمیشه!
vcldeveloper
سه شنبه 06 مرداد 1388, 02:34 صبح
در واقع هر کار می کنم که به param1 مقدار یک memo رو بدم نمیشه!
توضیح دادم که...
با حروف هم خطا میده چون مقادیر رشته ایی باید داخل علامت نقل قول در داخل دستور SQL قرار بگیرند، در حالی که در کد شما مقدار Memo1 در داخل علامت نقل قول قرار نداره.
saeed_82
یک شنبه 03 آبان 1388, 19:20 عصر
اگه من بخوام بجای Memo مقدار پارامتر رو از یک دیتاست در برنامه بگیرم چی کار کنم
سوال دوم اینه که:
من وقتی توی برنامه یه جدول رو بعنوان دیتیل به یک جدول اصلی لینک میکنم توی باند مستر و دیتیل رو در فست ریپورت تنظیم میکنم فقط رکوردهایی از جدول اصلی نمایش داده میشوند که حداقل یک رکورد متناظر در جدول دیتیل داشته باشند در حالیکه من میخواهم اگه رکوردی از جدول مستر هیچ رکورد متناظری در دیتیل هم نداشت حداقل خودش در مستر نشون داده بشه
من این مشکل رو توی کوییک ریپورت نداشتم ولی اینجا دچار مشکل شدم؟
لطفا راهنمایی بفرمایید/
vcldeveloper
یک شنبه 03 آبان 1388, 23:10 عصر
اگه من بخوام بجای Memo مقدار پارامتر رو از یک دیتاست در برنامه بگیرم چی کار کنم
روال کار فرقی نمیکنه، شما بجای کد Memo1.Memo.Text مقدار به دست آمده از دیتاست را قرار میدید.
سوال دوم اینه که
ربطی به این تاپیک نداره، در تاپیک جداگانه ایی مطرح کنید.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.