View Full Version : چرا نمایش تاریخ بر عکس است؟؟
maryam_jamshid
سه شنبه 08 خرداد 1386, 11:09 صبح
سلام دوستان
من در کریستال ریپورت .net زمانی که گزارش میگیرم حالت نمایش تاریخ بر عکس میشه.
مثلا زمانی که باید نمایش بده: صورت جلسه شورا 2/3/84 رو به صورت زیر نمایش میده:
: صورت جلسه شورا 84/3/2
برای بر طرف کردن این مشکل باید چکار کرد؟؟؟؟
با تشکر
sm
سه شنبه 08 خرداد 1386, 13:07 عصر
دو راه رو امتحان کنین:
1- روی فیلدتون راست کلیک کنید و از گزینه Format توی قسمت Paragraph گزینه Right to left رو کلیک کنید.
2- اگر راه اول جواب نداد باید یه Formula توی کریستال تعریف کنید و تاریخ رو خودتون با توابع left , right , middle بسازین.
موفق باشید
maryam_jamshid
چهارشنبه 09 خرداد 1386, 07:41 صبح
از جوابتون ممنونم. ولی به این نکته دقت کنید که فیلد من تنها دارای تاریخ نیست.بلکه کلمات دیگه هم همراهش هست.
مثلا در جدول من عبارت زیر ذخیره شده:
صورت جلسه شورا مرخه 2/3/84
ولی
عبارت بالا در کریستال ریپورت به صورت زیر نمایش میده:!!!!!!!!!
صورت جلسه شورا مرخه 84/3/2
ضمنا من فیلدم از نوع nvarchar است و از بانک sqlsever2000 استفاده کردم.
maryam_jamshid
چهارشنبه 09 خرداد 1386, 08:45 صبح
زمانی که من فیلدرو از نوع varchar قرار میدم حالت تاریخ درسته ولی کلمات فارسی کنار اون به صورت علامت ؟نمایش میده!!!
خیلی مهمه
بازم ازتون ممنونم
sm
چهارشنبه 09 خرداد 1386, 10:02 صبح
برای اینکه مشکلتون توی حالت varchar حل بشه و علامت ؟ درج نشه میتوند از فونتهای فارسی استفاده کنید.
توی اون حالت nvarchar هم، راه حلی که به نظر من میرسه این دوتاست:
1- چونکه تاریختون آخر جمله هست این مشکل پیش میاد اگر بتونید آخر عبارتتون یک کلمه یا حرف فارسی درج کنید مشکل حل میشه
2- بیایید و اونو توی کریستال با فرمولا جدا کنید و در مرحله بعد تاریخ رو اصلاح و مجدد به عبارتتون بچسبونید.
این هم رو امتحان کنید:
توی select بانکتون وقتی میخواین فیلد مربوطه رو بخونید به varchar تبدیل کنید. با این کار اطلاعاتتون بصورت nvarchar ثبت میشه ولی با فرمت varchar خونده میشه
موفق باشید
maryam_jamshid
چهارشنبه 09 خرداد 1386, 12:23 عصر
فرقی نمیکنه،حتی اگر کلمات فارسی بعد از تاریخ قرار دهیم.
ضمنا چطور این راه حلها رو انجام بدم؟
2- بیایید و اونو توی کریستال با فرمولا جدا کنید و در مرحله بعد تاریخ رو اصلاح و مجدد به عبارتتون بچسبونید.
این هم رو امتحان کنید:
توی select بانکتون وقتی میخواین فیلد مربوطه رو بخونید به varchar تبدیل کنید. با این کار اطلاعاتتون بصورت nvarchar ثبت میشه ولی با فرمت varchar خونده میشه
sm
چهارشنبه 09 خرداد 1386, 12:40 عصر
کدهاش رو مینویسم براتون میزارم...
sm
پنج شنبه 10 خرداد 1386, 10:58 صبح
این مربوط به کد SQL میشه :
SELECT CONVERT(varchar(50), ST_PathDesc) AS Expr1
FROM A_StationTraits
این هم کد کریستال ... این برای فرمولای اول بنام 1@:
right ({A_StationTraits.Expr1},8)
این هم کد کریستال ... این برای فرمولای دوم بنام 2@:
left({A_StationTraits.Expr1},(len({A_StationTraits .Expr1})-8))+right({@1},2)+'/'+mid({@1},4,2)+'/'+left({@1},2)
حالا این فرمولای دومی رو روی گزارش قرار دهید.
موفق باشید
maryam_jamshid
چهارشنبه 16 خرداد 1386, 11:53 صبح
ممنونم از کمکتون ولی بازم ایراد داره.
من در 2@ عبارت زیر رو قرار دادم:
left({Rpt_Asar.Asar_molahezat},(len({Rpt_Asar.Asar _molahezat})-8))+right({@1},2)+'/'+mid({@1},4,2)+'/'+left({@1},2)و
در 1@ عبارت زیر رو گذاشتم
right ({Rpt_Asar.Asar_molahezat},8)
ضمنا Rpt_Asar یه stroredprocedure می باشد.
ببینید آیا میشه عبارت زیر رو نمایش دهیم.
صورتجلسه 18/12/81 شماره 1243/32 مورخ 26/1/82 بند 8
sm
چهارشنبه 16 خرداد 1386, 12:00 عصر
طبیعیه که جواب نده!!!
من اون 8 رو برای این گذاشتم چونکه فرضم این بوده که تاریخ آخر جمله هست!
شما باید خودتون اندیس مربوطه رو بدست بیارید و استفاده کنید.
برای این جمله شما باید قرار بدهید 14... تازه چونکه بعد از اون هم عبارت " بند 8" رو دارین باید این رو هم به فرمولای 2 اضافه کنید.
برای فرمولای اولی هم همین روش رو عمل کنین.
بهتره شما گزارش رو روی یه سیستم دیگه هم امتحان کنید اگر جواب نداد که بعید می دونم جواب نده، اونوقت می تونید برای راحتی کار تاریخ رو درست کنید و توی بانک ذخیره نمایید.
راستی تنظیمات زبان و منطقه سیستمتون روی فارسی و ایران هست؟ حتما قسمت language for non unicode program رو روی فارسی قرار دهید.
اونها رو هم درست کنید ببینید باز مشکل باقیه؟
موفق باشید
maryam_jamshid
چهارشنبه 16 خرداد 1386, 12:33 عصر
بازم مشکل داره
جملات در ستون ملاحظات اندازه آنها مختلف است.
چطوری اینو رو میشه برای همه اعمال کرد!!!!
من قسمتی از گزارشم رو براتون فرستادم.
sm
چهارشنبه 16 خرداد 1386, 12:36 عصر
تنظیمات زبان رو انجام دادین؟
همه فیلدهاییکه ممیز دارند مشکل داره یا فقط همین یه مورد هست؟
maryam_jamshid
چهارشنبه 16 خرداد 1386, 13:03 عصر
آره اینکار را رو کردم.
درهمه فیلد هایی که ممیز داره این مشکل وجود داره.
rezaei
چهارشنبه 16 خرداد 1386, 16:11 عصر
این مشکل در حالاتی که حروف لاتین در وسط جمله فارسی قرار می گیرد وجو دارد و تقریبا راه حل کلی وجود ندارد در مورد این حالت خاص پیشنهاد می کنم "/" را با "," عوض کنید با دستوراتی چون STRTRAN در فاکس معادل ان را در T_SQL نمی دانم
reza1357
چهارشنبه 16 خرداد 1386, 16:24 عصر
اکثر کاربران در هنگام ورود تاریخ از چپ به راست وارد میکنند بهمین خاطر برعکس نشون میده بنده در چنین مواقع که متن فارسی بین تاریخ قرار میگیره به کاربران تذکر میدم که تاریخ را از راست به چپ وارد کنند.
مشکلی هم پیش نمیاد.
سعی کنید از این به بعد هنگام ورود از راست به چپ تاریخ را وارد کنید.
موفق باشید.
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.