ورود

View Full Version : فست ریپورت



mohammadmowlavi
شنبه 16 فروردین 1393, 19:18 عصر
این پست رو اینجوری ویرایش میکنم شاید براش جوابی پیدا بشه
به متغیر داخل فست ریپورت ایجاد کردم به اسم date که تاریخ شمسی رو در گزارش میگیره در برنامه با یه اکتیویکس تاریخ شمسی رو به این صورت تولید میکنم Shamsi.CurrentDate
حال اگر بخوام از دورن وی بی به فست ریپورت ارسالش کنم کد معادلش رو نمیدونم

Frp.SetVariable Date, "'&Shamsi.CurrentDate&'"
اینجوری نوشتم ولی خطا داده
اگر بخوام مقدار عددی ارسال کنم اینجوری جوای میده

Frp.SetVariable Date,Number
مقدار رشته ای هم اینجوری جواب میده
HTML]Frp.SetVariable Date,'String'[/HTML]
ولی ارسال پارامتری که رشته ایه با ارور مواجه میشه کسی میتونه کسی میتونه بنده رو راهنمایی کنه

hrj1981
دوشنبه 18 فروردین 1393, 15:12 عصر
سلام
برای این کار یک OBJECT از نوع MEMO داخل گزارشتون قرار بدید
حالا از داخل برنامه یک متغییر از نوع MEMO صدا کنید
Dim MemoView As FastReport.IfrxMemoView

بعد این متغییر را به OBJECT داخل گزارش SET کنید
Set MemoView =Frp .FindObject("ObjectName")

در آخر هر متغییر را داری بهش ارسال کن
MemoView.Memo = 'Sample Hello'

به جای 'Sample Hello' هر متغییری را خواستید میتونید به گزارش پاس بدید

"فقط یک نکته مهم همه این فرآیند باید قبل از نمایش گزارش ایجاد بشه"

mohammadmowlavi
دوشنبه 18 فروردین 1393, 18:23 عصر
این روش فقط یه اشکالی داره شما زمانی که بخوایی ممو را در یک تکست باکس جا بدین باید به چه ترتیبی عمل کنید
مثلا یه متن از پیش تعین شده داریم که باید جای خالی شو پر کنیم
اینجانب[]فرزند[]...............
داخل کروشه ها متغیر و فیلدهای بانک اطلاعاتی میشه گذاشت ولی ممو حتما باید رو گزارش باشه و گذاشتنش داخل ریچ تکست مستلزم تکراری شدنشه

vbhamed
سه شنبه 19 فروردین 1393, 16:49 عصر
سلام
منظورتون از گذاشتن Memo در RichText چيه ؟
اصلا همچين كاري نميشه انجام داد
ضمنا اون چيزي كه شما نوشتيد كه كروشه گذاشتيد و يكسري فيلدها رو درون متن تعبيه كردين با خود Memo قابل انجام هست

mohammadmowlavi
پنج شنبه 21 فروردین 1393, 19:20 عصر
سلام به خاطر راهنماییهاتون ممنون بنده قراره یه متن از پیش تعیین شده را که جای خالی داره پر کنم
مثل
اینجانب[] فرزند[] با شماره شناسنامه[] والی آخر
بعضی از این رکوردها رد بانک ذخیرس و میتونم به راحتی داخل ریچ تکست بزارمشون ولی بعضی از جای خالی های داخل متن باید از داخل فرم پاس داده بشن متغیر یا Variable که نشد بهش مقدار رشته ای از داخل فرم پاس بدیم
از داخل فرم شد فقط به ممو مقدار رشته ای پاس بدیم حالا من چطور این ممو را در جای خالی قرار بدم که متنمم متناسب با طول رشته ای که در ممو ذخیره میشه تنظیم بشه

mohammadmowlavi
پنج شنبه 21 فروردین 1393, 19:58 عصر
یه سوال دیگه همین الان واسم پیش اومده که اگه گرامر کدنویسیشو میدونستم مزاحمتون نمیشدم
چطور متن یه ممو را به صورت شرطی تغییر بدم
به این صورت که اگر یک بود بنویس عالی
دو بود بنویس خوب
سه بود بنویس ضعیف
و اگر 4 بود خالی باش

vbhamed
جمعه 22 فروردین 1393, 23:06 عصر
سلام
در جواب اين پست و پست قبلي من اگر جاي شما بودم كل متن رو در خود ويژوال بيسيك ايجاد مي‌كردم و در فيلد Memo در بانك ثبت مي‌كردم تا فست ريپورت خودش بخونه

mohammadmowlavi
شنبه 23 فروردین 1393, 19:30 عصر
سلام
در جواب اين پست و پست قبلي من اگر جاي شما بودم كل متن رو در خود ويژوال بيسيك ايجاد مي‌كردم و در فيلد Memo در بانك ثبت مي‌كردم تا فست ريپورت خودش بخونه

اونوقت تمام متن با یه فونت و یه سایز میشه گزارش جذابی نمیشه این طور

شما میتونید یه تیکت به سایت سازنده بزنید و ببینید این مشکل قابل حل هست یا نه؟
درضمن راهی برای شرطی کردن متون نیست که در کد آن BeforePrint بنویسیم؟

mohammadmowlavi
شنبه 23 فروردین 1393, 20:03 عصر
http://www.fast-report.com/en/forum/index.php?showtopic=5111&hl=variable
اینجا یه چیزایی تو دلفی نوشته معادلشون تو وی بی 6 پیدا نمیشه احیانا؟؟؟؟
یا حداقل متن یه ممو رو چطور در خود فست ریپورت با کد انتصاب بدیم به یه متغیر؟؟؟؟

vbhamed
شنبه 23 فروردین 1393, 20:16 عصر
سلام
خب براي اينكار هم مي‌تونيد متنتون رو جدا جدا بنويسيد، مثلا يك Memo بزاريد توش بنويسيد "اينجانب"، بعد يك Memo ديگه بزاريد كه با كد پرش مي‌كنيد كه نام شخص هست و به همين ترتيب تا آخر
اينطوري مي‌تونيد رنگ و فونت دلخواه رو روي هر قطعه اعمال كنيد

البته اگر فقط رنگ و حالت ضخيم و كج و زيرخط فونت جواب كارتون رو بده راه ديگه اي هم هست (html)

در مورد دوم :
1 - يك جدول در بانك درست كنيد و در يك فيلد عدد مورد نظر و در فيلد دوم معادل رشته اي اون عدد رو توش بنويسيد
2 - كل جدول رو به صورت جدول فرزند جدول اصلي اطلاعاتتنون بزاريد و با فيلد عددي به هم ارتباط بدين به صورت يك به چند
3 - يك كوئري از اين دو جدول با هم بسازيد و تمام فيلدهاي هر دو جدول رو اضافه كنيد

حالا شما در هر سطر كوئري معادل رشته اي عدد مورد نظر رو داريد و مي‌تونيد از اين كوئري در گزارش هم استفاده كنيد
در كل سعي كنيد پردازشها رو در سمت برنامه و بانك انجام بدين نه گزارش

mohammadmowlavi
یک شنبه 24 فروردین 1393, 18:16 عصر
ممنون از لطفتون ولی بانک من اکسسه و این شکلی خیلی سنگین میشه در آینده
ضمن اینکه اکثر پرینتهای من یه برگه آ5 کوچیکن یه چیزایی داخل خود نمونه های فست ریپورت پیداکردم ولی به زبون پاسکال اسکریپته وقتیم کپی پیستشون میکنم گیر میده که فست ریپورتت رجیستر نشدس ولی بیسیک اسکریپتی که شما برام نوشتین این گیرو نمیده راهی هست بتونم بیسیک اسکریپت رو در فست ریپورت یاد بگیرم مثل شما
ممنون

vbhamed
یک شنبه 24 فروردین 1393, 23:18 عصر
سلام
BasicScript مشابه ويژوال بيسيك هست با امكانات كمتر و ياد گرفتن خاصي نياز نداره
بعد اينكه ساختن چند تا جدول ساده ديتابيس رو سنگين نمي‌كنه

mohammadmowlavi
سه شنبه 26 فروردین 1393, 21:33 عصر
البته حق با شماست به هرحال ممنون و تشکر