PDA

View Full Version : ویرایش قسمتی از متنه یک ممو در ریپورتم !



FiACKER
شنبه 19 اردیبهشت 1388, 14:17 عصر
سلام
برنامه ی من به اینصورت هست :
از بانک نام شرکت رو می گیره ... فقط یه شرکت ! باید اونو به فست ریپورت بفرستم ! به این صورت :

با سلام با توجه به درخواست شرکت ........................... در مورخ .................. لطفا دستور...

خب حالا باید چیکار کنم که این جا خالی پر شه ؟
گزارش به این صورت هست که متن اولیه (همین متنه بالا) باید در فرم فست ریپورت وجود داشته باشه !

کاری که خودم کردم این بود که دو تا ممو گزاشتم رویه اون دو تا جا خالی ... به این صورت :

با سلام با توجه به درخواست شرکت .............{memo1} ...........در مورخ ......{memo2}..........لطفا دستور...

البته شما به جایه اون نقطه ها ، فاصله در نظر بگیرید !
همونطور که می دونید بسته به تعداد کارکتر های اسمه شرکت ،ممکنه اسمه شرکت در موقع پرینت بزرگتر از اون چند تا فاصله بشه ! یا حتی کوچیکتر که باعثه وجوده فاصله هایی قبل و بعد از اسمه شرکت می شه که خوشایند نیست !
مثلا ً :
با سلام با توجه به درخواست شرکت .......... مهندسی شمال ....... در مورخ 88/2/19 لطفا دستور...


چه راه حلی برای اینکار پیشنهاد می کنید !؟
چه راهه حلی خوده فست ریپورت ارائه داده !؟

پیشاپیش ممنون

حمیدرضاصادقیان
شنبه 19 اردیبهشت 1388, 15:15 عصر
سلام. بهتره نوشته های اصلی رو در داخل ممو های مختلف قرار بدی و مموهایی که قراره پر بشه در مموهای دیگه. بعد خاصیت a utosize اونو true کنید. خودش موقعی که بهش مقدار میدی سایزش تغییر میکنه. یا شما میدونی حداکثر چند کارکتر قراره چاپ بشه با توجه به اون مموت رو سایزش رو مشخص کن که ثابت باشه.
موفق باشی.

vcldeveloper
شنبه 19 اردیبهشت 1388, 21:38 عصر
می تونید در داخل Memo بجای آن جای خالی ها Variable بزارید، و قبل از ایجاد گزارش، به این Variableها مقدار بدید. فست ریپورت خودش هرجا در متن Memo به این Variableها بربخوره، آن را با مقدار تعیین شده جایگزین میکنه.
درباره Variableها و چگونگی مقدار دادن به آنها هم قبلا توضیح داده شده.

FiACKER
یک شنبه 20 اردیبهشت 1388, 13:39 عصر
دوسته عزیز اگه دقت کنید منم گفتم همین کارو کردم ! ولی برای کاره من جواب نمی ده !

با تشکره فراروان از اقایه کشاورز که همیشه به داده ملت می رسند !
درود بر شما اقای کشاورز ... همون چیزی که من می خواستم رو گفتید!

khoshblagh
شنبه 26 اردیبهشت 1388, 09:19 صبح
با تشکر از جناب کشاورز
مشکلی که میمونه اینه که چگونه میتوان این متغیر را از نظر فونت و اندازه با بقیه همان Memo به صورت متفاوت نمایش داد؟



می تونید در داخل Memo بجای آن جای خالی ها Variable بزارید، و قبل از ایجاد گزارش، به این Variableها مقدار بدید. فست ریپورت خودش هرجا در متن Memo به این Variableها بربخوره، آن را با مقدار تعیین شده جایگزین میکنه.
درباره Variableها و چگونگی مقدار دادن به آنها هم قبلا توضیح داده شده.

vcldeveloper
شنبه 26 اردیبهشت 1388, 11:17 صبح
مشکلی که میمونه اینه که چگونه میتوان این متغیر را از نظر فونت و اندازه با بقیه همان Memo به صورت متفاوت نمایش داد؟
اصولا در Memo شما امکان قالب بندی بخش های مختلف متن را ندارید، و همه متن بصورت یک دست نمایش داده میشه. شما اگر می خواید قالب بخش هایی از متن را تغییر بدید، می تونید از کنترل RichText استفاده کنید، که هم امکان دریافت تگ های HTML را دارد، هم می تونید مستقیما یک متن RichText را بهش بدید.

khoshblagh
شنبه 26 اردیبهشت 1388, 13:28 عصر
اصولا در Memo شما امکان قالب بندی بخش های مختلف متن را ندارید، و همه متن بصورت یک دست نمایش داده میشه. شما اگر می خواید قالب بخش هایی از متن را تغییر بدید، می تونید از کنترل RichText استفاده کنید، که هم امکان دریافت تگ های HTML را دارد، هم می تونید مستقیما یک متن RichText را بهش بدید.

آیا منظور شما همان Memo مربوط به فست ریپورت است ؟ چون Memo مورد نظر من
مربوط به فست ریپورت است.

vcldeveloper
شنبه 26 اردیبهشت 1388, 21:42 عصر
آیا منظور شما همان Memo مربوط به فست ریپورت است ؟
بله

---------

khoshblagh
یک شنبه 27 اردیبهشت 1388, 09:07 صبح
اصولا در Memo شما امکان قالب بندی بخش های مختلف متن را ندارید، و همه متن بصورت یک دست نمایش داده میشه. شما اگر می خواید قالب بخش هایی از متن را تغییر بدید، می تونید از کنترل RichText استفاده کنید، که هم امکان دریافت تگ های HTML را دارد، هم می تونید مستقیما یک متن RichText را بهش بدید.
در این صورت چگونه میتوان از RichText در این رابطه و در محیط FR استفاده کرد؟
متشکرم

vcldeveloper
یک شنبه 27 اردیبهشت 1388, 09:30 صبح
در این صورت چگونه میتوان از RichText در این رابطه و در محیط FR استفاده کرد؟
فست ریپورت خودش یک کامپوننت مشابه RichEdit دلفی دارد.

ghfreza
دوشنبه 16 آذر 1388, 18:52 عصر
با سلام
متغییر های fast report را باید داخل کروشه استفاده کنی مثل [COMPANY_NAME]

بع با استفاده از event TfrxReport میتونی آنها را مقدار دهی کنی


procedure TForm1.frxReport1GetValue(const VarName: String;
var Value: Variant);
begin
VarName='COMPNY_NAME' if then
Value='شرکت فلان'
end;

afsoon_k77
سه شنبه 17 آذر 1388, 15:17 عصر
ابتدا برای داده های مورد نظرت در FastReport یک متغیر تعریف می کنید به عنوان مثال دو متغیر نام شرکت و تاریخ را تعریف می کنید سپس در رویداد OnBeforePrint Page در قسمت کد Fastreport کد زیر رو می نویسید




procedure Page1OnBeforePrint(Sender: TfrxComponent);
begin
memo1.lines.text:= <تاریخ> + 'در مورخ ' + <نام شرکت> +'با سلام با توجه به درخواست شرکت'
end;



خاصیت autoWidth Memo1 رو هم True میکنیم


برای مقدار دادن به متغییر ها قبل از Show کردن گزارش مون در داخل دلفی کد زیر رو می نویسیم



frxreport1.Variables.Variables['نام شرکت'] :='''شرکت حساب رایانه ''';