PDA

View Full Version : سوال: خطا گزارش گیری



ehsan21
چهارشنبه 16 فروردین 1391, 19:03 عصر
با سلام خدمت دوستان
من از بانک اس کیو ال گزارش گیری میکنم در بین 2 تاریخ
نرم افزار روی یک سیستم بدون خطا کار میکنه اما در سیستم دیگری برای برخی از گزارشات خطای زیر رو میده برای بعضی از گزار ش ها هم خطا نمی ده
مثلا اگر تاریخ شروع گزارش 28/12/89 باشه خطا میده اما اگر تاریخ شروع گزارش 20/12 /89 باشه خطا نمیده

خطا:
The conversion of char data type to smalldatetime data type resulted in an out-of-range smalldatetime value.

فرید نجفلو
چهارشنبه 16 فروردین 1391, 23:39 عصر
دوست عزیز احتمالا شما نوع فیلد تاریخ رو smalldatetime گرفتید ولی چون دارید از تاریخ شمسی استفاده می کنید خطا میده
شما نوع فیلد رو VarChar(10) بگیرید

Hybrid
پنج شنبه 17 فروردین 1391, 11:23 صبح
با سلام خدمت دوستان
من از بانک اس کیو ال گزارش گیری میکنم در بین 2 تاریخ
نرم افزار روی یک سیستم بدون خطا کار میکنه اما در سیستم دیگری برای برخی از گزارشات خطای زیر رو میده برای بعضی از گزار ش ها هم خطا نمی ده
مثلا اگر تاریخ شروع گزارش 28/12/89 باشه خطا میده اما اگر تاریخ شروع گزارش 20/12 /89 باشه خطا نمیده

خطا:
The conversion of char data type to smalldatetime data type resulted in an out-of-range smalldatetime value.

سلام ، من هم با دوستمون موافقم ، واسه تاریخ ها فیلد رو از نوع nvarchar یا Varchar بزار و داخل برنامه میتونی راحت تبدیل کنی و هیچ مشکلی رو هم نداره ،

نوع فیلدت رو تغییر بده

hakim22
پنج شنبه 17 فروردین 1391, 12:04 عصر
من در یک پروژه وقتی با تاریخ های شمسی کار می کردم. متوجه شدم که تقویم دات نت برای بعضی روزهای خاص خطاهای عجیبی میده .
با حذف همه ی شرایط متوجه شدم برای بعضی از روزهای خاص هنگام تبدیل و یا مشاهده خطا داده میشه که تنها برمیگشت به مقداری که از تقویم دات نت از میلادی به فارسی تبدیل میشد.

ehsan21
پنج شنبه 17 فروردین 1391, 18:08 عصر
من تاریخ رو به صورت میلادی در دیتابیس ذخیره می کنم و هنگام نمایش به شمسی تبدیل می کنم
گزارشی که میگیرم بین دو تاریخ میلادی . برای تبدیل میلادی به شمسی یا برعکس هم خطایی نمیده
خطا رو هنگام fill کردن دیتا آداپتور میده

swallow.pa
پنج شنبه 17 فروردین 1391, 18:27 عصر
این کار اشتباهه شما باید تاریخ رو با شمسی توی دیتابیس ذخیره کنین

aftabeshargh
پنج شنبه 17 فروردین 1391, 18:40 عصر
سلام
بحثه کریستاله ؟:بامزه: خسته نباشید دوستان
من تابع تاریخ میلادی به شمسی رو دارم تو فرمم" میخوام تو سربرگ کریستالم تاریخ الان و شمسی رو بیارم " چطور باید اون تاریخ شمسی'lم بفرستم تو کریستال ؟

Hybrid
پنج شنبه 17 فروردین 1391, 18:56 عصر
سلام
بحثه کریستاله ؟:بامزه: خسته نباشید دوستان
من تابع تاریخ میلادی به شمسی رو دارم تو فرمم" میخوام تو سربرگ کریستالم تاریخ الان و شمسی رو بیارم " چطور باید اون تاریخ شمسی'lم بفرستم تو کریستال ؟

سلام ، خوب یک شی TextObject داخل کریستال رو بالای page بزار و از داخل برنامه بهش تاریخ رو پاس بده به کد زیر دقت کن و شبیه زیر کدت رو بنویس :


Dim pc As New System.Globalization.PersianCalendar

Dim textObject As CrystalDecisions.CrystalReports.Engine.TextObject
textObject = CType(cr1.ReportDefinition.ReportObjects.Item("text1"), CrystalDecisions.CrystalReports.Engine.TextObject)
textObject.Text = (pc.GetYear(DateTime.Now) & "/" & (pc.GetMonth(DateTime.Now)) & "/" & _
(pc.GetDayOfMonth(DateTime.Now)))

aftabeshargh
پنج شنبه 17 فروردین 1391, 19:02 عصر
سلام
چطور باید پاس داد " منظورم اینه که کجا باید این دستورات رو نوشت

Hybrid
پنج شنبه 17 فروردین 1391, 19:19 عصر
سلام
چطور باید پاس داد " منظورم اینه که کجا باید این دستورات رو نوشت

میتونین داخل رویداد load فرم گزارش بنویسیدش.

ehsan21
جمعه 18 فروردین 1391, 16:57 عصر
این کار اشتباهه شما باید تاریخ رو با شمسی توی دیتابیس ذخیره کنین

مشکل من تاریخ شمسی یا میلادی نیست
مشکل اینه که در گزارش گیری بین 2 تاریخ میلادی اون خطا رو رو میده