PDA

View Full Version : انتخاب فونت برای یک پارامتر ساخته شده در کریستال ریپورت با کدنویسی



mah.yar
سه شنبه 01 اسفند 1385, 10:06 صبح
من یه پارامتر در کریستال ریپورت ساختم و می خوام فونت اونو با استفاده از کد نویسی تعیین کنم.

در اصل می خوام وقتی کاربر فونتی را از Fontdialog موجود در برنامه انتخاب کرد... فونت پارامتر موجود در کریستال همین فونت انتخابی کاربر بشه.

leilav_1984
سه شنبه 01 اسفند 1385, 12:51 عصر
نام font انتخابی رو هم به عنوان یه پارامتر به Crystal بفرستید و با Selection Formula قسمت Diplay اونو اعمال کنید

bidad
سه شنبه 01 اسفند 1385, 16:13 عصر
من راه شما رو انتخاب نکردم.
اما فکر نمیکنم کار جالبی باشه کلا با دادن پارمتر واسه اینجور کارا موافق نیستم!
راستش قبلا یک گزارش کوتاه بصورت داینامیک طراحی کرده بودم. که خب به مشکل شما هم برخوردم.
این کار رو بکنید مشکلتون حل میشه.
ابتدا یه متغیر از نوع فیلد (اینجا من فیلد رو انتخاب کردم) تعریف کنید.
بعد اون رو به فیلدی که تو گزارشتون میخواین فونتش عوض نسبت بدین.
و تابع applyfont رو اجرا کنید.
ضمنا
rpt از نوع CrystalReport1 که گزارش مورد نظر ه.
و crv هم یک CrystalReportViewer هست.


Dim rpt As New CrystalReport1
Dim t As CrystalDecisions.CrystalReports.Engine.FieldObject
Dim f As New Font("B Nazanin", 30, FontStyle.Bold)
t = rpt.Section3.ReportObjects("Field1")
t.ApplyFont(f)
crv.ReportSource = rpt

ساده تر این نیمتونشتم بگم
موفق باشین

mah.yar
سه شنبه 01 اسفند 1385, 21:34 عصر
این کار رو بکنید مشکلتون حل میشه.
ابتدا یه متغیر از نوع فیلد (اینجا من فیلد رو انتخاب کردم) تعریف کنید.
بعد اون رو به فیلدی که تو گزارشتون میخواین فونتش عوض نسبت بدین.
و تابع applyfont رو اجرا کنید.
ضمنا
rpt از نوع CrystalReport1 که گزارش مورد نظر ه.
و crv هم یک CrystalReportViewer هست.


Dim rpt As New CrystalReport1
Dim t As CrystalDecisions.CrystalReports.Engine.FieldObject
Dim f As New Font("B Nazanin", 30, FontStyle.Bold)
t = rpt.Section3.ReportObjects("Field1")
t.ApplyFont(f)
crv.ReportSource = rpt
ساده تر این نیمتونشتم بگم
موفق باشین

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

bidad
چهارشنبه 02 اسفند 1385, 02:35 صبح
عزیزم درست جواب میده!
شما اگه بجای این همه عجول بودن یکم دقت و حوصلت رو بیشتر کنی اینقدر سریع نا امید نمی شی!
پارامتر هم یک نوع فیلده. ضمنا دقت کن که آدرس Section و نام Field رو درست وارد کنی
موفق باشی

mah.yar
چهارشنبه 02 اسفند 1385, 13:09 عصر
دقت کن که آدرس Section و نام Field رو درست وارد کنی
موفق باشی

بله درسته.
من موقع ساختن پارامتر نام پرامتر را tozihat@ وارد کردم به همین خاطر وقتی تو قسمت کد این نام را میدادم ارور میداد چون نام این فیلد در قسمت Properties یه چیز دیگست و باید نامی که تو خاصیت name نوشته شده رو به برنامه میدادم.
بازم ممنون از راهنمایی شما و شرمنده...

rezaei manesh
پنج شنبه 03 اسفند 1385, 12:10 عصر
من هم از همین روش استفاده می کنم اما این خط خیلی کند هست


t = report1.Section3.ReportObjects("InFace1")


در ضمن شما وقتی فونت رو تغییر می دید به تناسب اون باید اندازه کنترلی رو هم که اون متن توش قرار داره تغییر بدید؟درسته؟
حالا چطوری برای فیلد ها این کار رو می کنید برای یه تکست راحته از داخل مقدار میدیم اما برای فیلد نمی تونیم از داخل مقدار بدیم چون مقدار اون برای هر رکورد متفاوت هست
کنترل های کریستال خاصیتی مثل autoSize کنترل های دات نت نداره؟
من که نتونستم پیدا کنم فقط می شه بگی اگه جا نشد چند خطی کنه .!

bidad
شنبه 05 اسفند 1385, 11:24 صبح
شما وقتی یک گزارش می سازین اندازه همه فیلدهاتون (ماکسیممش) مشخصه. یعنی همه فیلدها رو روی ماکسیمم سایزش میزارین و اگه متن داخل از اون بزرگتر شد چند خطی میشه.
مگه اینکه بخواین فرم گزارشتون فرق کنه.مثلا اگه دو فیلد توی یه خط باشه بخواین طوری تنظیم کنین که این دو فیلد با تقسیم کردن عرض صفحه چند خطی نشن.
اجازه بدین الان حضور ذهن ندارم یه نگاه میندازم بهتون میگم
موفق باشین