PDA

View Full Version : تبدیل تاریخ میلادی به شمسی در DataReport



@AM!R!
چهارشنبه 18 خرداد 1384, 02:33 صبح
سلام دوستان
من در یک گزارش می خواهم فیلدهای جدول را به همراه فیلد تاریخ چاپ کنم. ولی فیلد تاریخ بصورت میلادی ذخیره شده است.
البته من ابزارهای لازم را برای تبدیل تاریخ میلادی به شمسی دارم. ولی در یک گزارش نمی دانم چگونه تاریخ میلادی که در جدول ذخیره شده است را بصورت شمسی تبدیل کرده و نمایش دهم.
کدهای که در فرم Datareport استفاده کرده ام بصورت زیر است:



Dim WithEvents dt As StdDataFormat
Dim sdt As String
Private Sub DataReport_Initialize()
' Date
Set dt = New StdDataFormat
Set DR_AsTo.Sections("section1").Controls("txtdate").DataFormat = dt
End Sub
Private Sub dt_format(ByVal dateval As StdFormat.StdDataValue)
'This Problem
-->str1 = DR_AsTo.Sections("section1").Controls("txtdate").Text
'Conver Miladi to Shamsi
dateval = Miladi2Shamsi(str1)
End Sub
Public Function Miladi2Shamsi(mdate As String) As String
Dim shms As New ClassShamsi
Miladi2Shamsi = shms.Miladi2Shamsi(mdate)
End Function


لطفا اگه کسی از این مشکل سر در میاره مارو هم فراموش نکنه.

sadegi
چهارشنبه 18 خرداد 1384, 13:27 عصر
دوست عزیز فکر کنم راحتترین کار اینه که یک رکوردست درست کنی و با استفاده از دستورات sql ست کنی(فیلد های مورد نظر رو انتخاب کنی) و بعد مقدار فیلد مورد نظر رو به صورت ورودی به یه تابع که خودت نوشتی بفرستی و اونها رو تبدیل کنی بعد تغییرات رو تو رکوردست بدی و بهد به data report بفرستی
امیدوارم که منظورم رو فهمیده باشی
:flower: :flower: :flower:

@AM!R!
پنج شنبه 19 خرداد 1384, 00:47 صبح
آقای صادقی مثل اینکه بازم به شما زحمت دادیم
میشه کمی با جزئیات بیشتر توضیح دهید. اصل مطلب رو گرفتم ولی نمی دونم وقتی فرم گزارش رو صفحه ظاهر شده چطوری و کجا قبلش رکوردست رو باز کنم و فقط فیلد تاریخ رو از اون انتخاب کنم.

:گیج:

hadi2345
پنج شنبه 19 خرداد 1384, 07:29 صبح
با سلام .
روشی که آقای صادقی گفتن کاملا درسته و من در اون مورد توضیحی نمیدم .
ولی شما میتونی از activereport استفاده کنی که جناب کدنویس معرفی کردن و قابلیتهای خیلی خوبی داره و من خیلی ازش خوشم اومده ......

sadegi
پنج شنبه 19 خرداد 1384, 12:13 عصر
دوست عزیز میتونید بگید که از کجا میتونم این activereport رو گیر بیارم؟
:flower: :flower: :flower:

sadegi
پنج شنبه 19 خرداد 1384, 12:16 عصر
در مورد مشکل شما دوست عزیز (Amir )
اگه اجازه بدین یه سورس میزارم
:flower: :flower: :flower:

mohammad diba
پنج شنبه 19 خرداد 1384, 14:47 عصر
دوست عزیز من با Datareport هم این کار را کردم کد خودتون را اینگونه تصحیح کنید

Dim WithEvents dt As StdDataFormat
Dim sdt As String
Private Sub DataReport_Initialize()
' Date
Set dt = New StdDataFormat
Set DR_AsTo.Sections("section1").Controls("txtdate").DataFormat = dt
End Sub
Private Sub dt_format(ByVal dateval As StdFormat.StdDataValue)
'This Problem
'Conver Miladi to Shamsi
dateval = Miladi2Shamsi(dateval)
End Sub
Public Function Miladi2Shamsi(mdate As String) As String
Dim shms As New ClassShamsi
Miladi2Shamsi = shms.Miladi2Shamsi(mdate)
End Function

سربلند باشید
محمد دیبا -شاهرود

hadi2345
پنج شنبه 19 خرداد 1384, 16:12 عصر
دوست عزیز میتونید بگید که از کجا میتونم این activereport رو گیر بیارم؟
صادقی جان اینم لینکش :
http://www.datadynamics.com/DDPostAttachment.aspx?PostID=74471
البته لینک اونو اول جناب زواری گذاشته بودن ومن از اونجا دانلود کردم .
موفق باشید .

@AM!R!
جمعه 20 خرداد 1384, 01:59 صبح
دوستان عزیز :flower: کاشتین.

آقای دیبا کد شما رو با کمی تغییر استفاده کردم. ممنون مشکلم رفع شد.
:flower: :flower: :flower: :flower: :flower: :flower: :flower: :flower:
:kaf: :kaf: :kaf: :kaf: :kaf: :kaf: :kaf: :kaf: :kaf: :kaf: :kaf: :kaf:

rouzbeh_ziafati
دوشنبه 09 دی 1387, 21:47 عصر
سلام
در بانک یک فیلد دارم که تاریخ ورود ماشین رو در خودش قرار داده .
کدی نوشتم که ماشین هایی که بین دو تاریخ وارد شده اند رو در گزارش نمایش میده . تاریخ ها رو در text میگیرم .
می خوام توی datareport دو تا label بگذارم که این دو تاریخ که بر اساس جستجو کردم رو نشون بده ( همون محتویات Text1 و Text2 .... چه کار باید بکنم ؟؟؟؟ هر کاری کردم نشد !
مثلا اگر در فرم تاریخ 10/9/87 و 12/9/87 زدم و رکوردهای بانک رو در Datareport نمایش دادم در گزارش اون بالا این دو تا تاریخ نوشته بشه که وقتی چاپ میکنم بفهم این گزارش مربوط هست به ماشین هایی که بین این دو تا تاریخ وارد شده بودند .

سوال دوم برای نمایش تاریخ جاری به صورت شمسی در Datareport (مثلا در label1 ) چه کار باید بکنمم ؟
یک تابع دارم که تاریخ میلادی رو به شمسی تبدیل میکنه . به اسم J_TODAY که خروجیش رشته است .
حالا چطور توی Datareport ازش استفاده کنم .
لطفا هرکی بلده کمک کنه که خیلی خیلی نیاز دارم .