View Full Version : تعیین شرط برای نمایش یا عدم نمایش یک فیلد در فست ریپورت
ariobarzan
پنج شنبه 16 خرداد 1392, 09:28 صبح
با سلام
فرض کنیم من در یک جدول دو فیلد از نوع Bit و nvarchar داشته باشم و و این جدول رو توی یک فرم گزارش فست ریپورت نشون بدم
کاری که میخوام انجام بشه اینه که موقع چاپ رکورد ها شرط صفر و یا یک بودن فیلد bit رو چک کنم. اگه صفر بود محتوای فیلد nvarchar نشون داده بشه و اگه یک بود بجای اون مقدار دلخواه من نمایش داده بشه.
چطور میتونم این کار رو انجام بدم؟
ممنون
یوسف زالی
پنج شنبه 16 خرداد 1392, 10:27 صبح
سلام.
می تونید کوئریتون رو اصلاح کنید یا می تونید در قالب یک فیلد calculated این کار رو کنید یا می تونید در OnGetText فیلد متنی تون شرط رو اعمال کنید.
در خود فست هم می تونید این کار رو کنید که باید در BeforePrint کد بنویسید. ساده ترینش اضافه کردن یک فیلد calculated به دیتاستتونه.
ariobarzan
پنج شنبه 16 خرداد 1392, 10:53 صبح
ممنون از توجه شما
اگه ممکنه در مورد ی که فرمودید ( در خود فست هم می تونید این کار رو کنید که باید در BeforePrint کد بنویسید. ) بیشتر توضیح بدید . چون من دقیقا بدنبال همین موضوع هستم. ممنون
یوسف زالی
پنج شنبه 16 خرداد 1392, 12:12 عصر
فست ریپورت برای هر شی نمایشی از جمله متنی که متصل به داده می شه رویداد هایی داره مثل OnBeforePrint که در اون می تونی مشخصات رو دستکاری کنی.
کافیه برای شی تون این رویداد رو انتساب داده و در اون کد بنویسید.
ariobarzan
پنج شنبه 16 خرداد 1392, 12:37 عصر
مشکل من هم تو همین قسمته . من خروجی یک کوئری رو میفرستم توی فست ریپورت . توی رویداد OnBeforePrint ظاهرا که نمیشه شرط یک فیلد از همون رکورد رو چک کرد یا حداقل من بلد نیستم.
وقتی می نویسم :
if adoquery1.fieldvalues['field1']=true then memo1.text='My text
جواب نمیده ظاهرا ارتباط با کوئری برقرار نیست بجای adoQuery1 هم از FrxDb که اتصال کوئری با فست رو برقرار میکنه هم استفاده کردم ولی باز نشد
چه دستوری باید بجای خط بالا در رویداد OnBeforePrint نوشته بشه که محتوای فیلد مورد رو چک کنه؟
ممنون بخاطر توجه شما
یوسف زالی
جمعه 17 خرداد 1392, 02:58 صبح
در سورس FastReport می خوانیم:
procedure TfrxCustomMemoView.BeforePrint;
begin
inherited;
if not IsDataField then
FTempMemo := FMemo.Text;
end;
حدس می زنم یعنی اجازه دست کاری در این متد برای ممو های چسبیده به فیلد داده نمی شه.
در عوض باید از رویداد OnAfterData استفاده کنید.
مثال:
with TfrxMemoView(Sender) do
if Value = 2 then
Text := 'this is number two';
یوسف زالی
یک شنبه 19 خرداد 1392, 14:07 عصر
مشکلت حل نشد دوست من؟
بگید که اگر حل شده دوستانی که با سرچ بهش می رسن هم بدونن.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.