مشکل در نمایش اطلاعات کد شده در فست ریپورت
سلام و خسته نباشید من با استفاده از پروسیجر اطلاعات را کد می کنم در فراخوانی با دستور اس کیو ال و با استفاده از adoquery در دلفی وقتی نمایش میدم با استفاده از خاصیت ongettext اطلاعات کد شده را دیکد می کنم ولی در چاپ بافست ریپورت اطلاعات کد شده نمایش داده می شه. راهی هست که برای چاپ اطلاعات در فست ریپورت دیکد بشه؟؟نمونه کدی که نوشتم رو هم براتون میزارم
ADOQuery1.Close;
ADOQuery1.SQL.Clear;
ADOQuery1.SQL.Add('select id,text from tbldoc');
ADOQuery1.Open;
ADOQuery1.FieldByName('text').OnGetText := MyDCode;
بازم بگم که مشکل در دیکد شدن برای چاپ در فست ریپورت هستش و این کد در نمایش برای dbgrid مشکلی نداره
نقل قول: مشکل در نمایش اطلاعات کد شده در فست ریپورت
از چه نسخه ای استفاده می کنید؟
فست ریپورت 4.6.8 (نسخه ای که من دارم) خودش این چیزها رو تشخیص می ده.
نقل قول: مشکل در نمایش اطلاعات کد شده در فست ریپورت
اگه برای چاپ در فست رپورت با همین AdoQouery کار می کنید (که در برنامه داده ها رو درشت نمایش میده) و داده های اون نادرست است شاید مشکل از فونت ها و تنظیمات نوشتاری اون است .
نقل قول: مشکل در نمایش اطلاعات کد شده در فست ریپورت
نقل قول:
در برنامه داده ها رو درشت نمایش میده
نقل قول:
مشکل از فونت ها و تنظیمات نوشتاری
متوجه منظورتون نمی شم..:متفکر:
نقل قول: مشکل در نمایش اطلاعات کد شده در فست ریپورت
نقل قول:
نوشته شده توسط
You-See
از چه نسخه ای استفاده می کنید؟
فست ریپورت 4.6.8 (نسخه ای که من دارم) خودش این چیزها رو تشخیص می ده.
ممنون از پاسخ شما
FastReport 4 استفاده می کنم و متاسفانه وقتی گزارش می گیرم به صورت کد شده نمایش داده میشه . ظاهرا ongettext که در dbgrid درست نمایش میده در گزارش درست کار نمیکنه!
نقل قول: مشکل در نمایش اطلاعات کد شده در فست ریپورت
به نظر من اين مشكل منطقي است چون ongettext روي ديتاسورس تاثير نداره و فقط در زمان نمايش، اطلاعات تغيير مي كند در حالي كه فست ريپورت مستقيما به ديتاسورس متصل مي شود.
من هم اين مشكل رو داشتم و دو تا راه حل براش پيدا كردم:
1- پروسيجر دي كد رو به عنوان يكي از توابع به فست ريپورت معرفي كنيد و از داخل محيط فست ريپورت و از طريق رويداد OnBeforePrint يه همچين كدي رو بنويسيد
Tfrxmemoview1.text:= MyDCode
2- در رويداد OnBeforePrint فست ريپورتتون از داخل دلفي كد نويسي كنيد
:چشمک:
نقل قول: مشکل در نمایش اطلاعات کد شده در فست ریپورت
نه دیگه، فست در نسخ جدیدش این طور نیست و متن های داده ها رو میاره نه value ها رو.
اما اگر اصرار به ادامه همین روش دارید می تونید از فیلدهای calculated استفاده کنید.
نقل قول: مشکل در نمایش اطلاعات کد شده در فست ریپورت
نقل قول:
نوشته شده توسط
You-See
نه دیگه، فست در نسخ جدیدش این طور نیست و متن های داده ها رو میاره نه value ها رو.
من از نسخه 4.15.6 با دلفي 7 استفاده مي كنم البته با استفاده از TQuery اين مشكل رو دارم و value ها رو مي ياره
از فيلدهاي محاسباتي استفاده كردم ولي چون TQuery فقط يكي بود و قرار بود در قسمت هاي مختلف برنامه و در گزارشات متعدد استفاده بشه وقتي انتخاب از جدول هاي ديگه پايگاه داده انجام مي شد خطا مي داد و بايد خيلي شرايط رو براش تغيير مي دادم راه OnBeforePrint بي دردسرتر بود
البته اين تجربه خودم بود شايد راه حل هاي مناسب تر ديگري هم وجود داشته باشد
نقل قول: مشکل در نمایش اطلاعات کد شده در فست ریپورت
نقل قول: مشکل در نمایش اطلاعات کد شده در فست ریپورت
نقل قول:
نوشته شده توسط
You-See
TQuery یا TADOQuery ؟
من از TQuery استفاده كردم
البته اين دوستمون از TADOQuery استفاده كرده و شايد مشكلات من رو نداشته
البته به نظر من فرقي نداره باز هم نظر اساتيد رو نمي دونم!!!!!
نقل قول: مشکل در نمایش اطلاعات کد شده در فست ریپورت
با تشکر از دوستان جوابتونرو تست می کنم و نتیجه را در همین تایپیک میزارم
نقل قول: مشکل در نمایش اطلاعات کد شده در فست ریپورت
نقل قول:
نوشته شده توسط
You-See
نه دیگه، فست در نسخ جدیدش این طور نیست و متن های داده ها رو میاره نه value ها رو.
اما اگر اصرار به ادامه همین روش دارید می تونید از فیلدهای calculated استفاده کنید.
سلام . این که میگید متن ها رو میاره در نسخه 5.1.9 این طورنیست! به نظر شما دلیل از چی میتونه باشه؟؟؟
نقل قول: مشکل در نمایش اطلاعات کد شده در فست ریپورت
نقل قول:
نوشته شده توسط
online_com
من از نسخه 4.15.6 با دلفي 7 استفاده مي كنم البته با استفاده از TQuery اين مشكل رو دارم و value ها رو مي ياره
از فيلدهاي محاسباتي استفاده كردم ولي چون TQuery فقط يكي بود و قرار بود در قسمت هاي مختلف برنامه و در گزارشات متعدد استفاده بشه وقتي انتخاب از جدول هاي ديگه پايگاه داده انجام مي شد خطا مي داد و بايد خيلي شرايط رو براش تغيير مي دادم راه OnBeforePrint بي دردسرتر بود
البته اين تجربه خودم بود شايد راه حل هاي مناسب تر ديگري هم وجود داشته باشد
میشه یه راهنمایی درارتباط با استفاده از onbeforeprint کنید ؟؟
پیشاپیش از دوستانی که اطلاعات خودشمن رو در اختیار بقیه میزارن تشکر می کنم
نقل قول: مشکل در نمایش اطلاعات کد شده در فست ریپورت
يه كم در مورد گزارشتون و مقدار داده اي كه مي فرستيد به گزارش و مي خواهيد ديكد شده نمايش بده توضيح بديد كه بهتر بشه راهنمايي كرد
onbeforeprint توي گزارشات با مقدار داده بالا، كمي كند است ولي براي حجم متوسط، خوب جواب مي ده
براي استفاده از onbeforeprint مربوط به شي گزارش از داخل دلفي از كدي شبيه كد زير مي توني استفاده كني
TfrxMemo1 اسم شي متني هست كه در داخل فايل طراحي فست ريپورت قرار دادي و حاوي اطلاعات كد شده و در باند داده قرار دارد.
if Sender is TfrxMemoView then
if TfrxMemoView(Sender).Name='TfrxMemo1' then
TfrxMemoView(Sender).Text:=MyDCode;
نقل قول: مشکل در نمایش اطلاعات کد شده در فست ریپورت
سلام
یک فیلد با نام text دردیتابیس با نوع varchar ایجاد کردم وقتی دیتا قراره ثبت بشه به یه تابع فرستاده میشه و به صورت کد در میاد و وقتی می خوام نمایش بدم از طریق ongettext به پروسیجر فرستاده میشه و از حالت کد شده در میاد .مثال شمارو چک کردم ولی به نتیجه نرسیدم
if Sender is TfrxMemoView then
if TfrxMemoView(Sender).Name='TfrxMemo1' then
TfrxMemoView(Sender).Text:=MyDCode;
نقل قول: مشکل در نمایش اطلاعات کد شده در فست ریپورت
نقل قول:
نوشته شده توسط
sdhamed
مثال شمارو چک کردم ولی به نتیجه نرسیدم
يعني خروجي نداد يا ارور داد يا ....
نقل قول:
نوشته شده توسط
sdhamed
وقتی می خوام نمایش بدم از طریق ongettext به پروسیجر فرستاده میشه و از حالت کد شده در میاد
خروجي رو به چي نسبت مي ديد فكر كنم مشكل اصلي اينه كه پروسيجر خروجي مستقيم نداره و روي ADOQuery1 تاثير مي زاره
اگر اينطور باشه همان طور كه You-See قبلا شما رو راهنمايي كرده بودند بايد از فیلدهای calculated استفاده کنید و راه حل ديگري نداره
نقل قول: مشکل در نمایش اطلاعات کد شده در فست ریپورت
من کد شمارو به این شکل تغییر دادم
if Sender is TfrxMemoView then
if TfrxMemoView(Sender).Name='Memo7' then
;(TfrxMemoView(Sender).Text:=isMyCode (adoquery1.field.field(1).asstring
خروجی نمایش داده های کد شده بود و هیچ تغیری نکرد و memo7 در فست ریپورت به فیلد textl مرتبط است.
نقل قول: مشکل در نمایش اطلاعات کد شده در فست ریپورت
كد رو به صورت زير مي بايست تغيير دهيد
;(TfrxMemoView(Sender).Text:=isMyCode (TfrxMemoView(Sender).Text
يعني مقدار داخل Memo7 رو به عنوان ورودي تابع دريافت كند و خروجي تابع را كه مقدار ديكد شده است نمايش دهد
اگر بازهم به صورت كد شده اطلاعات رو نمايش مي داد پيشنهاد مي كنم كه تابع isMyCode رو به فست ريپورت معرفي كنيد و كدنويسي رو به داخل فست ريپورت منتقل كنيد و در رويداد OnAfterData مربوط به Memo7 كد ;(TfrxMemoView(Sender).Text:=isMyCode (TfrxMemoView(Sender).Text رو بنويسيد
نقل قول: مشکل در نمایش اطلاعات کد شده در فست ریپورت
;(TfrxMemoView(Sender).Text:=isMyCode (
TfrxMemoView(Sender).Text
متاسفانه این مورد کمکی نکرد فکر کنم آخرین مورد همین میمونه که تابع در فست تعریف بشه.
امکانش هست یه راهنمایی در خصوص تعریف تابع در فست ریپورت بدین؟؟البته با مثال
:تشویق:
نقل قول: مشکل در نمایش اطلاعات کد شده در فست ریپورت
توابع رو در رويداد UserFunction مربوط به شي فست ريپورت در داخل فرم دلفي به صورت زير معرفي مي كني:
if MethodName='ISMYCODE' then
Result:=isMyCode(Params[0])
و در رويداد BeginDoc مربوط به شي فست ريپورت در داخل فرم دلفي تابه رو به ليست توابع فست ريپورت اضافه مي كني
frxReport1.AddFunction('Function isMyCode(s:String):String;','','decode');