PDA

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



نسرین2000
چهارشنبه 30 بهمن 1392, 10:34 صبح
سلام
چه طوری باید تاریخ شمسی رو به عنوان print date در کریستال ریپورت ثبت کنم ؟
لطفا هر کس بلده به طور مفصل و با جزئیات توضیح بده .
ممنون
کامپوننت HM-Farsicalander رو هم دارم حالا اگه بخوام تاریخ شمسی رو با ذکر روز هفته و تاریخ در یکی از فرمهام بیارم به چه صورت باید عمل کنم ؟

damanpak
چهارشنبه 30 بهمن 1392, 19:43 عصر
سلام
تاریخ رو به صورت پارامتر به کریستال ریپورت ارسال کن
اگه با کریستال ریپورت کمی آشنا باشی مطمئنا ارسال پارامتر رو بلدی

vb341
پنج شنبه 01 اسفند 1392, 00:10 صبح
RepPersonel.SetParameterValue("DateFa", ShamsiDateFormat)
DateFa نام پارامتر در گزارش و ShamsiDateFormat متغیر تاریخ فارسی می باشد

behrooz69
پنج شنبه 01 اسفند 1392, 14:07 عصر
سلام . برای ارسال پارامتر تاریخ شمسی به کریستال ریپورت 2 راه داری .

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

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

شما برای اینکار نیاز به کامپونت تاریخ شمسی Hm_FarsiCalender دارید که ضمیمه کردم.

خوب اول توی کریستال ریپروتت یه پارامتر درست کن به هر اسمی که میخوای مثلا : PrintDate ، یا PersianDate ، یا هرچی دوست داشتی . و اون پارامتر رو بکش

تو Header کریستال ریپورتت یا هرجایی که میخوای تاریخش چاپ شه .

116915

حالا برگرد به فرمی که میخوای تاریخ رو با استفاده از پارامترش بفرستی ، همون فرم پرینتتو میگم .

1 Lable بزار توی صفحت مثلا به نام LblTarikhPrint .

توی Form_Load صفحت این کد رو بنویس :

LblTarikhPrint.Text = HM_FarsiCalendar.FarsiDate.FarsiToday.FullNameDate

اینجا اومدم با استفاده از کامپوننت Hm_FarsiCalender تاریخ فارسی رو به لیبل خودم نسبت دادم.

حالا مرحله آخر :
توی دکمه ای که کد های پرینت و ارسال به کریستال ریپورتت هست برو و بعد از Report.SetDataSource این تیکه کد رو بنویس :

rpt.SetParameterValue("PersianDate", LblTarikhPrint.Text)

توضیح : اینجا من فرض رو بر این گرفتم که اسم پارامتر تاریخ رو توی کریستال PersianDate و اسم لیبل رو تو فرم ارسال گزارشتون LblTarikhPrint گذاشتید .

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

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


اینم تیکه کد کامل ارسال گزارش و پارامتر برای چاپ در کریستال ریپورت :

Dim rpt As New اسم کریستال ریپورت شما
Dim myconnection As SqlConnection
Dim mycommand As New SqlCommand
Dim myda As New SqlDataAdapter
Dim myds As New دیتاست شما
Try
myconnection = New SqlConnection(کانکشن دیتابیس شما)
mycommand.Connection = myconnection
mycommand.CommandText = "SELECT * from جدول شما WHERE(فیلد مورد نظر=@فیلد مورد نظر)"
mycommand.Parameters.Add("@فیلد مورد نظر", SqlDbType.NVarChar, 50).Value = CboSearchByName.Text

mycommand.CommandType = CommandType.Text
myda.SelectCommand = mycommand
myda.Fill(myds, "جدول شما")
rpt.SetDataSource(myds)
rpt.SetParameterValue("PersianDate", LblTarikhPrint.Text)
FrmGozareshgiri.CrystalReportViewer1.ReportSource = rpt
FrmGozareshgiri.ShowDialog()

Catch ex As Exception
MessageBox.Show(ex.Message, "error", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try

دیگه این تیکه کد توضیح نداره هرچی لازم بود توش هست و واضحه


اینم کامپوننت تاریخ شمسی : 116916


امیدوارم واضح و مفید بوده باشه . یا حق