PDA

View Full Version : سوال: چاپ تاریخ شمسی در بالای گزارش



amin3271
دوشنبه 21 مرداد 1387, 04:08 صبح
چطور میشه به جای تاریخ میلادی تاریخ شمسی رو بالای گزارش آورد و چاپ کرد؟

y.saied
دوشنبه 21 مرداد 1387, 10:49 صبح
مقاله گروه اين چند نفر رو دانلود كن و بخون

alireza323
دوشنبه 21 مرداد 1387, 11:28 صبح
مقاله گروه اين چند نفر رو دانلود كن و بخون

این مقاله که میگی،از کجا باید دانلودش کرد.ممنون

y.saied
دوشنبه 21 مرداد 1387, 12:54 عصر
http://barnamenevis.org/forum/showthread.php?t=25507

el_abdollahi
دوشنبه 21 مرداد 1387, 13:41 عصر
کارهای مختلفی میشه انجام دااد.
من تاریخ شمسی رو به عنوان یه پارامتر از برنامه برای ریپورت پاس میدم.
یا میتونین dll تاریخ شمسی رو به کریستال اضافه کنین و ازش استفاده کنید.
روش های زیادی وجود داره ولی برای من ارسال پارامتر از همه راحت تره.

amin3271
دوشنبه 21 مرداد 1387, 14:20 عصر
میشه یه نمونه، مثال بیارید ممنون میشم. حالا از هرکدوم از روشهایی که گفتی

el_abdollahi
سه شنبه 22 مرداد 1387, 08:01 صبح
میتونین از این پست استفاده کنید:
http://barnamenevis.org/forum/showthread.php?p=572045
موفق باشید.

amin3271
سه شنبه 22 مرداد 1387, 13:12 عصر
با توجه به اینکه من با پارامترها کار نکردم
میشه طریقه اضافه کردن Dll به گزارش رو برام بگی و بعد اینکه چطور از اون استفاده کنم تا تاریخ رو شمسی نشون بده ( اگه کد خاصی در جایی مخواد اشاره کن)
در ضمن dll مربوط به تاریخ شمسی رو دارم.

el_abdollahi
سه شنبه 22 مرداد 1387, 14:33 عصر
http://barnamenevis.org/forum/showthread.php?p=457160
فکر کنم بعد از خوندن این مقاله سعی کنی با پارامترها آشنایی پیدا کنی.:لبخند:

amin3271
چهارشنبه 23 مرداد 1387, 11:22 صبح
من سعی کردم Dllمربوط به تاریخ رو اضافه کنم اما پس از وارد کردن دستور دقیقا این پیغام برام صادر شد
...\Debug>gactiul -if JalaliCalender.dll
Failor adding assembly to the cache: Attempt to install an assembly without a strong name

ali_md110
جمعه 25 مرداد 1387, 01:12 صبح
یه فیلد پارامتر با نام date_shamsi در بالای گزارش اضافه کن
بعد فایل shamsi.dll رو به رفرنسهای برنامه اضافه کن از طریق کلیک راست برروری نام پروژه ر سولوشن اکسپلورر
سپس کد زیر را در فرم لود برنامه قرار بده

Dim mydate_shamsi As New shamsiDLL.classShamsi
Dim rpt As New crystalreport1
rpt.SetParameterValue(" date_shamsi ", mydate_shamsi)
CrystalReportViewer1.ReportSource = rpt

ali_md110
جمعه 25 مرداد 1387, 01:14 صبح
این هم dll

y.saied
شنبه 26 مرداد 1387, 12:06 عصر
این هم dll

دوست عزيز ، من نگرفتم ............ ميشه با يه مثال تو وي بي توضيح بدي

el_abdollahi
شنبه 26 مرداد 1387, 16:05 عصر
منظورشون همون استفاده از پارامتره.
ايشون تاريخ شمسي رو با استفاده از اون فايل dll از برنامه به گزارش ميفرستن.
البته اگر از ويژوال استوديو 2005 استفاده ميكنيد نياز به فايل dll يا هر چيز ديگه اي نداريد و مي تونيد از خودش تاريخ شمسي رو بگيريد.
موفق باشيد.

ali_md110
یک شنبه 27 مرداد 1387, 01:27 صبح
قابل توجه دوستمون saied
ابتدا در قسمت جنرال برنامه

imports System.Globalization.PersianCalendar
سپس تابع زیر را در یه ماژول اضافه کنید

Public Function MiladiToShamsis(ByVal mydate As Object) As String
Try
Dim Date_Sh As New Globalization.PersianCalendar
Return Date_Sh.GetYear(mydate) & "/" & Format(Date_Sh.GetMonth(mydate), "00") & "/" & Format(Date_Sh.GetDayOfMonth(mydate), "00")
Catch ex As Exception
Return 0
End Try
End Function
یه فیلد پارامتر با نام date_shamsi در بالای گزارش در کریستال اضافه کن
سپس کد زیر را در فرم لود برنامه قرار بده

Dim rpt As New crystalreport1
rpt.SetParameterValue(" date_shamsi ", MiladiToShamsis(DateTime.now))
CrystalReportViewer1.ReportSource = rpt
به زبان ساده تر با استفاده از توابع تاریخ در دات نت
خدا پدر اون کسی رو که کلاس شمسی رو به دات نت اضافه کرد بیامرزه

amin3271
یک شنبه 27 مرداد 1387, 12:03 عصر
ببخشید من با VBزیاد آشنایی ندارم. اولا میشه کد بالا رو با #C بنویسید و ثانیا بگید این کدها رو دقیقا کجا باید بنویسم. ممنونم

toopak
دوشنبه 28 مرداد 1387, 04:01 صبح
به من قسمت Dim rpt As New crystalreport1 رو ارور میده
میگه crystalreport1 رو تعریف نکردی
مشگل چیه؟

ali_md110
دوشنبه 28 مرداد 1387, 17:29 عصر
crystalreport1 همون اسم فایل کریستال ریپورت من هست
ممکنه شما اسمشو گزاشته باشی cr1 یا هر چیز دیگه
وقتی یک فایل کریستال ریپورت اضافه میکنی یک نام داره همونو جایگزین کنید با crystalreport1 که من زکر کردم