ورود

View Full Version : Display format در فست ریپورت



khoshblagh
یک شنبه 26 دی 1389, 07:59 صبح
با سلام خدمت دوستان
در گزارش ساخته شده اینطور تعریف کردم که اگر فیلد مورد نظر دارای عدد میباشد آنرا با فرمت سه رقم سه رقم نمایش بدهد ولی اگر فیلد فاقد عدد بود فیلد دیگری که آن هم عدد میباشد با همان فرمت فوق الذکر نمایش بدهد.
گزارش در صورت استفاده از فیلد اولیه اعداد را با فرمت مورد نظر نمایش میدهد ولی اگر به علت خالی بودن فیلد اول به فیلد دوم مراجعه میکند عدد آنرا بدون اعمال Display format به صورت معمولی نمایش میدهد. من کد را به صورت زیر تعریف کرده ام. در فایل ضمیمه عدد قرمز رنگ در حقیقت از فیلد دوم استفاده کرده است که فیلدMablaghTaed
میباشد. در حقیقت Memo8 به طور پیش فرض به یک فیلد دیگری وصل میباشد. متشکرم


procedure Memo8OnBeforePrint(Sender: TfrxComponent);




begin

if <frxDBDataset1."MablaghTaed"> <>0 then begin
Memo8.Text:=<frxDBDataset1."MablaghTaed">;
Memo8.DisplayFormat.FormatStr:='%2.n';
Memo8.DisplayFormat.Kind:=fkNumeric;
Memo8.DisplayFormat.ThousandSeparator:=','
end;
end;

AliReza Vafakhah
دوشنبه 04 بهمن 1389, 16:37 عصر
با سلام خدمت دوستان
در گزارش ساخته شده اینطور تعریف کردم که اگر فیلد مورد نظر دارای عدد میباشد آنرا با فرمت سه رقم سه رقم نمایش بدهد ولی اگر فیلد فاقد عدد بود فیلد دیگری که آن هم عدد میباشد با همان فرمت فوق الذکر نمایش بدهد.
گزارش در صورت استفاده از فیلد اولیه اعداد را با فرمت مورد نظر نمایش میدهد ولی اگر به علت خالی بودن فیلد اول به فیلد دوم مراجعه میکند عدد آنرا بدون اعمال Display format به صورت معمولی نمایش میدهد. من کد را به صورت زیر تعریف کرده ام. در فایل ضمیمه عدد قرمز رنگ در حقیقت از فیلد دوم استفاده کرده است که فیلدMablaghTaed
میباشد. در حقیقت Memo8 به طور پیش فرض به یک فیلد دیگری وصل میباشد. متشکرم


procedure Memo8OnBeforePrint(Sender: TfrxComponent);




begin

if <frxDBDataset1."MablaghTaed"> <>0 then begin
Memo8.Text:=<frxDBDataset1."MablaghTaed">;
Memo8.DisplayFormat.FormatStr:='%2.n';
Memo8.DisplayFormat.Kind:=fkNumeric;
Memo8.DisplayFormat.ThousandSeparator:=','
end;
end;



کدتون را در رویداد OnAfterPrint نوشتید یا OnBeforePrint ؟

khoshblagh
چهارشنبه 06 بهمن 1389, 08:54 صبح
کدتون را در رویداد OnAfterPrint نوشتید یا OnBeforePrint ؟

با سلام
OnBeforePrint

bootshow
چهارشنبه 06 بهمن 1389, 23:31 عصر
Memo8.Text:=<frxDBDataset1."MablaghTaed">;
را بصورت زیر بنویسید

Memo8.Text:='[frxDBDataset1."MablaghTaed"]';
اگر خواص DisplayFormat کنترل Memo8 را بصورت دستی تنظیم کنید، فکر کنم بهتر باشه

hossoleymani
چهارشنبه 09 مرداد 1392, 15:25 عصر
ببخشید من جواب سوالم رو از این تاپیک پیدا کردم
http://barnamenevis.org/showthread.php?117720-%D8%A7%D8%B3%D8%AA%D9%81%D8%A7%D8%AF%D9%87-%D8%A7%D8%B2-FormatStr-%D8%AF%D8%B1-Runtime-%D8%AF%D8%B1-FastReport