PDA

View Full Version : نمایش بر عکس تاریخ



maryam_jamshid
سه شنبه 08 خرداد 1386, 08:12 صبح
سلام دوستان
من در کریستال ریپورت .net زمانی که گزارش میگیرم حالت نمایش تاریخ بر عکس میشه.
مثلا زمانی که باید نمایش بده: صورت جلسه شورا 2/3/84 رو به صورت زیر نمایش میده:
: صورت جلسه شورا 84/3/2
برای بر طرف کردن این مشکل باید چکار کرد؟؟؟؟
با تشکر

saeed_rezaei
سه شنبه 08 خرداد 1386, 09:30 صبح
سلام
تاریخ رو به چه صورتی در بانکتون ذخیره کردید؟
آیا right to left یا right to left layout برنامه تون رو هم تغییر داده اید؟

eyes_shut_number1
سه شنبه 08 خرداد 1386, 09:30 صبح
RightToLef t= True

maryam_jamshid
سه شنبه 08 خرداد 1386, 11:06 صبح
قبلا این داده ها در بانک ریخته شده و ثبت اون ها به دست من نیست من باید اطلا عات رو واکشی کنم.

reza1357
سه شنبه 08 خرداد 1386, 12:56 عصر
توی خود کریستال روی تاریخ راست کلیک کنید بعد Format Object را انتخاب کن بعد تب Paragraph بعد هم right to left یا right to left رو انتخاب کن ببینید با کدوم یک تاریخ درست نشون میده.

reza1357
سه شنبه 08 خرداد 1386, 13:00 عصر
اگه درست نشد توی Formola یک متغییری درست کنید که تاریخ رو از راست به چپ براتون برگردونه.

maryam_jamshid
سه شنبه 08 خرداد 1386, 13:13 عصر
از جوابتون ممنونم.
ببینید من مقداری رو که در textboxمربوط کریستال ریپورت میریزم از نوع nvarchar نه date.

ضمنا من در بخش format این feild در کریستال ریپورت right ti left اونو تغییر دادم و لی درست نشد.
با فرمول چه طوری؟؟

reza1357
سه شنبه 08 خرداد 1386, 14:35 عصر
متغییری بنام date1 در Formula Field ایجاد و کد رو به این شکل تعریف کن :




mid({table.date},7,2)+"/"+mid({table.date},4,2)+"/"+mid({table.date},1,2)


بجای Table و date نام جدول و فیلد مورد نظر رو بزار اگه هم باز درست نشد متغییرهای فوق رو جابجا کن.

maryam_jamshid
چهارشنبه 09 خرداد 1386, 07:40 صبح
از جوابتون ممنونم. ولی به این نکته دقت کنید که فیلد من تنها دارای تاریخ نیست.بلکه کلمات دیگه هم همراهش هست.
مثلا در جدول من عبارت زیر ذخیره شده:
صورت جلسه شورا مرخه 2/3/84
ولی
عبارت بالا در کریستال ریپورت به صورت زیر نمایش میده:!!!!!!!!!
صورت جلسه شورا مرخه 84/3/2

ضمنا من فیلدم از نوع nvarchar است و از بانک sqlsever2000 استفاده کردم.

reza1357
چهارشنبه 09 خرداد 1386, 07:52 صبح
بنظر من تنها راهی که میتونه کمک کنه همان :

توی خود کریستال روی تاریخ راست کلیک کنید بعد Format Object را انتخاب کن بعد تب Paragraph بعد هم right to left یا right to left رو انتخاب کن ببینید با کدوم یک تاریخ درست نشون میده.

شاید راه دیگه ای هم باشه !
بزارید من هم چنین فیلدی ایجاد کنم ببینم میتونم جواب بگیریم یا نه.

maryam_jamshid
چهارشنبه 09 خرداد 1386, 08:48 صبح
زمانی که من فیلدرو از نوع varchar قرار میدم حالت تاریخ درسته ولی کلمات فارسی کنار اون به صورت علامت ؟نمایش میده!!!
خیلی مهمه
بازم ازتون ممنونم

rezaei manesh
چهارشنبه 09 خرداد 1386, 10:46 صبح
زمانی که من فیلدرو از نوع varchar قرار میدم حالت تاریخ درسته ولی کلمات فارسی کنار اون به صورت علامت ؟نمایش میده!!!
خیلی مهمه
بازم ازتون ممنونم

علامت سوال ها بخاطر اینه که اطلاعات به صورت یونی کد ذخیره شده و شما اونو به داخل متقیری می رویزی که یونی کد رو پشتیبانی نمی کنه (همان طور که می دونید نوع های که با N شروع می شوند یونی کد هستند)

شما سعی کن یک جوری با فرمولا فیلد تاریخ رو از اون رشته جدا کنی و بعد برعکس کردن به اون بچسبونی
راستی یه زره هم با این فونت ها و left to right اون ور برو شاید جواب داد

maryam_jamshid
چهارشنبه 09 خرداد 1386, 12:33 عصر
چطوری باید این کار رو انجام داد:
شما سعی کن یک جوری با فرمولا فیلد تاریخ رو از اون رشته جدا کنی و بعد برعکس کردن به اون بچسبونی

rezaei manesh
چهارشنبه 09 خرداد 1386, 13:13 عصر
من نمی دونم فرمت ان متنی که تاریخ تو اون هست چه جوره که بتونم راحتتر کمک کنم
ایا متنت رو کاربر وارد می کنه
باید رشته را کاراکتر به کاراکتر اسکن کنی تا وقتی که به تاریخ برسی بعد تا اخر تاریخ رو بردار و برعکس کن و به رشته بچسبان
سعی کن این آخرین راه حلت باشه


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


ChrW(AscW(Yourstring(i)) + 1584)