PDA

View Full Version : داشتن تاريخ شمسي در كريستال ريپورت



saeednadery
شنبه 20 مهر 1387, 08:05 صبح
با سلام خدمت همه دوستان
من براي اينكه از تاريخ شمسي استفاده كنم از كدهاي زير استفاده مي كنم.


Dim PerC As New System.Globalization.PersianCalendar
Dim sal As String = PerC.GetYear(Now).ToString
Dim mah As String = PerC.GetMonth(Now).ToString
Dim rooz As Integer = PerC.GetDayOfMonth(Now).ToString

حال مي خواهم كاري كنم كه در گزارش نيز كه توسط كريستال ريپورت مي گيرم تاريخ شمسي باشد .در اين مورد چگونه مي توانم تاريخ موجود در special fields رابه صورت شمسي داشته باشم .

Chabok
شنبه 20 مهر 1387, 13:52 عصر
با سلام

بعید میدونم Speical Fileds رو بشه کاستوم کرد . بهتره یک Parameter Filed بگیرید و تاریخ رو بهش بدین .

saeednadery
شنبه 20 مهر 1387, 14:52 عصر
با سلام خدمت آقا محسن
منظور من اين است كه چگونه مي توانم تاريخ چاپ گزارش را به صورت هجري شمسي در بالاي گزارشم داشته باشم
البته مي توانم در همان فرمي كه crystalreportviewer را گذاشته ام يك label قرار دهم و كد بالا را بهش بدهم ولي ايراد آن اين است كه باتغيير سايز گزارش جاي label ثابت است بهمين خاطر مي خواهم از امكانات خود كريستال ريپورت براي داشتن تاريخ شمسي استفاده كنم

Chabok
شنبه 20 مهر 1387, 15:27 عصر
با سلام

منظور من هم استفاده از لیبل نبود .

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

در کریستال رپیورت Parameter Filed رو پیدا کنید . بر روی گزارش قرار بدین . نام آن را تنظیم کنید .
سپس در قسمت کدهاتون بصورت زیر مقدار دهی کنید :


Rpt.SetParameterValue("ShDate", MyDate)

موفق باشید . خدانگهدار

saeednadery
یک شنبه 21 مهر 1387, 07:54 صبح
با تشكر از جنابعالي آقا محسن گل
با راهنمائي شما مشكلم حل شد

r0ot$harp
یک شنبه 21 مهر 1387, 11:36 صبح
با سلام

منظور من هم استفاده از لیبل نبود .

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

در کریستال رپیورت Parameter Filed رو پیدا کنید . بر روی گزارش قرار بدین . نام آن را تنظیم کنید .
سپس در قسمت کدهاتون بصورت زیر مقدار دهی کنید :


Rpt.SetParameterValue("ShDate", MyDate)موفق باشید . خدانگهدار

سلام خدمت آقا محسن .


دوست عزیز می خواستم بدونم استفاده از Parametr در کار هیچ محدودیتی ایجاد نمی کنه و استفاده از این قابلیت مناسب هست یا نه بهتره از دیتابیس استفاده کنیم ؟


و سوال دوم اینکه Crystal Report بهتره برای کار یا خود Report View ؟





باتشکر احسان

mostafaaa
یک شنبه 21 مهر 1387, 11:50 صبح
نه دوست من هیچ محدودیتی نداره ولی منطقی هم نیست. ما به عنوان برنامه نویس از کریستال ریپورت استفاده میکنیم تا بتونیم گزارشات dynamic از دیتابیسمون تهیه کنیم. درسته که گاها لازم میشه از پارمترها هم استفاده کنیم ولی به نظر من اصلا منطقی نیست که تمامی عناصر گزارش رو با پارامتر به صورت Static به گزارش بفرستیم.
من فکر میکنم کریستال بهتره.

r0ot$harp
یک شنبه 21 مهر 1387, 11:58 صبح
نه دوست من هیچ محدودیتی نداره ولی منطقی هم نیست. ما به عنوان برنامه نویس از کریستال ریپورت استفاده میکنیم تا بتونیم گزارشات dynamic از دیتابیسمون تهیه کنیم. درسته که گاها لازم میشه از پارمترها هم استفاده کنیم ولی به نظر من اصلا منطقی نیست که تمامی عناصر گزارش رو با پارامتر به صورت Static به گزارش بفرستیم.
من فکر میکنم کریستال بهتره.



خوب برای حل این مشکل من چی کار کنم ؟ من می خوام کریستال رو به صورت کد راه اندازی کنم ولی نمی دونم چه جوری ؟ در ضمن به هیچ عنوان نی خوام از کنترل های Bind و ... خود Vb.net برای ارتباط با کریستال استفاده کنم . می خوام همه چی کدی باشه !!!




باتشکر احسان

niloo66
شنبه 24 مهر 1389, 22:54 عصر
با سلام
من این کارهارو انجام دادم اما این خطارو میده

{"Invalid index. (Exception from HRESULT: 0x8002000B (DISP_E_BADINDEX))"}

تاریخ رو از لیبل میگیره

(rpt.SetParameterValue(Label2.Text, Mydate
با ویژوال2010 کار میکنم

niloo66
یک شنبه 25 مهر 1389, 13:08 عصر
خودم متوجه شدم باید اینجوری بنویسم غیر از این هم خاصیت reportsource بایدnone باشه


( rpt.SetParameterValue("Mydate", Label2.Text

hamed_o
یک شنبه 25 مهر 1389, 17:26 عصر
سلام دوستان
به جای این کار میتوان از یک فایل دیلل استفاده کرد که راحت تر هست و احتیاج به فرستان به پارمتر به گزارش نیست این هم فایل دیلل که دارم استفاده کردم و کار کرده البته باید آن را قبل از استفاده اسمبل کرد تو ویندوز