PDA

View Full Version : FastReport.Net و تاریخ شمسی به ویژه DateTimePicker و اعداد فارسی(Localized)



majid_darab
شنبه 28 فروردین 1389, 02:47 صبح
با سلام و عرض خسته نباشید :
چندی پیش بر آن شدیم تا ابزارهای گزارش گیری برای وب (asp.net web app with c#)رو مورد بررسی قرار دهیم و بالاخره پس از بررسی چهار پنج مورد و کارهای فراوان بالاخره FastReport به دلمون بدجوری نشست (خدا ایشال.. اجرشان دهد)
حال توجه شما را به چند نکته ی حل نشده در مورد آن جلب می نمایم ...
من در محیط vs 2008 کلاسی دارم که وقتی اونو در Page_Load صدا می زنم تمام تاریخ ها در محیط شمسی عمل می کنه و موقع ذخیره در دیتابیس میلادی این تاریخ ها تو دیتابیس می شینه...
خوب وقتی گزارشات ساخته شده توسط fs رو تو بروزر مشاهده می کنم تاریخ ها شمسی هستند ...

1-به هر تقدیر اگر روش اصولی دیگری دارد بدون زحمت معرفی نمایید ...

2-من در دیتاسورسی که به fs وصل کردم فیلدی مربوط به تاریخ دارم که بعضی از آنها نال است (در دیتابیس - Sqlserver 2008) خوب وقتی گزارشو در بروزر باز میکنم به علت وجود کلاس صدازده شده ی مربوط به تاریخ شمسی در page_Load به این فیلدهای نال تاریخ که می رسه بهشون گیر می ده ...
کجا و چگونه کدی بنویسم که هر موقع تاریخ نال بود تاریخ مثلاً امروزو نشون بده و هر موقع نال نبود فیلد مزبور نشان داده شود...

3-نوعی گزارش گیری در fs وجود داره که داره از فرم های محاوره ای برای ارتباط با کاربر استفاده می کنه - مثلاً در این فرم محاوره ای ما دو تا DateTimePicker می ذاریم و کاربر می تونه توسط اونها رنج تاریخ مورد نظرشو انتخاب کنه و بعد گزارش بر اساس اونها لود میشه ...
وقتی چنین ریپورتی رو در بروزر باز میکنم با وجود کلاس صدازده شده در Page_load این datetimepicker ها میلادی هستند و انگار دارن از سیستم من الگو می گیرن
چه جوری اونها رو شمسی کنم؟

4-آیا در fastReport تنظیم خاصی برای Localized شدن اعداد وجود دارد تا بدون دستکاری در ویندوز اعداد موجود در گزارش با فونت فارسی نشون داده بشن؟

با تشکر از همراهی شما دوستان عزیز

moharrami
شنبه 28 فروردین 1389, 07:54 صبح
آیا در fastReport تنظیم خاصی برای Localized شدن اعداد وجود دارد تا بدون دستکاری در ویندوز اعداد موجود در گزارش با فونت فارسی نشون داده بشن؟

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


من در دیتاسورسی که به fs وصل کردم فیلدی مربوط به تاریخ دارم که بعضی از آنها نال است (در دیتابیس - Sqlserver 2008) خوب وقتی گزارشو در بروزر باز میکنم به علت وجود کلاس صدازده شده ی مربوط به تاریخ شمسی در page_Load به این فیلدهای نال تاریخ که می رسه بهشون گیر می ده ...
کجا و چگونه کدی بنویسم که هر موقع تاریخ نال بود تاریخ مثلاً امروزو نشون بده و هر موقع نال نبود فیلد مزبور نشان داده شود...

میتونی با دیتاسورست این کار رو بکنی که فیلدهی نال رو یکی یکی به تاریخ دلخواه تغییر بدی مثلا


var q=row in yourDataSource
select new {
id=row.id,
.
.
.
,
date=row.Date??"1388/01/28"
}

majid_darab
شنبه 28 فروردین 1389, 16:22 عصر
نووعی گزارش گیری در fs وجود داره که داره از فرم های محاوره ای برای ارتباط با کاربر استفاده می کنه - مثلاً در این فرم محاوره ای ما دو تا DateTimePicker می ذاریم و کاربر می تونه توسط اونها رنج تاریخ مورد نظرشو انتخاب کنه و بعد گزارش بر اساس اونها لود میشه ...
وقتی چنین ریپورتی رو در بروزر باز میکنم با وجود کلاس صدازده شده در Page_load این datetimepicker ها میلادی هستند و انگار دارن از سیستم من الگو می گیرن
چه جوری اونها رو شمسی کنم؟

آیا این امکان وجودداره که به dll فست ریپورت نفوذ صورت بگیره و کلاس تقویم شمسی رو درون او بذاریم؟
با تشکر

majid_darab
شنبه 28 فروردین 1389, 16:24 عصر
فقط کافیه فیلدها رو راست به چپ کنی.

با تشکر از شما دوست عزیز:
باا ین کار تو محیط خود Design که هستم ظاهراً فارسی میشن ، اما به vs که برمی گردم و عمل بروز رو انجام می دم همه ی اعداد عمچنان با فونت انگلیسی هستند...

DataMaster
یک شنبه 29 فروردین 1389, 20:57 عصر
تو دلفي يه پراپرتي RTL داشت

majid_darab
یک شنبه 29 فروردین 1389, 21:06 عصر
نوعی گزارش گیری در fs وجود داره که داره از فرم های محاوره ای برای ارتباط با کاربر استفاده می کنه - مثلاً در این فرم محاوره ای ما دو تا DateTimePicker می ذاریم و کاربر می تونه توسط اونها رنج تاریخ مورد نظرشو انتخاب کنه و بعد گزارش بر اساس اونها لود میشه ...
وقتی چنین ریپورتی رو در بروزر باز میکنم با وجود کلاس صدازده شده در Page_load این datetimepicker ها میلادی هستند و انگار دارن از سیستم من الگو می گیرن
چه جوری اونها رو شمسی کنم؟

آیا این امکان وجودداره که به dll فست ریپورت نفوذ صورت بگیره و کلاس تقویم شمسی رو درون او بذاریم؟
با تشکر


دست شما درد تکنه - ولی ظاهراً تو .net فقط همینه که فرمودین ...
اگر خاصیت rtl هر کنترل داخل گزارشو رو True کنم در محیط Design اعداد فارسی میشن ولی در خارج از اون و هنگام بروز عین حالت عادی اند ...
همین الان دوباره این موضوعو بررسی کردم و غیر از پروپرتی RightToLeft پروپرتی دیگری در این رابطه به چشمم نخورد ...
حالا از خیر این یکی که گذشتیم ....

DateTimePicker ها رو چه جوری شمسی کنم ؟
با تشکر

alien66
سه شنبه 04 خرداد 1389, 18:21 عصر
سلام
راستش ديدم اين تاپيك درمورد تاريخ هستش گفتم ببينم از چه راهي مي تونم يه گزارش به شكل يه تقويم شمسي بسازم كه توش تعطيلات مشخص شده باشه.به صورت تيك خورده

majid_darab
چهارشنبه 05 خرداد 1389, 11:15 صبح
سلام دوست عزیز:
برای این کار اول باید تاریخ شمسی را در Fast Report داشته باشید ...
اگر راهی پیدا کردید بی زحمت اعلام نمایید تا ما هم استفاده کنیم ...
اما آنچه که در مورد rtl ذکر شد باید اضافه نمایم که Property دیگری به نام WYSIWYG وجود دارد :
What You See Is What You Get
که با ست کردن این پروپرتی در کنار پروپرتی rtl به صورت True در نهایت اعداد داخل گزارش در وب سایت هم چنان با فونت انگلیسی هستند ، اما موقعی که print (در وب به جای پرینت خروجی pdf می ده) می گیریم (در فایل pdf)اونجا فارسی می شوند
که خود این موضوع یه مشکلی داره و اون اینه که مثلا تاریخ رو وارونه می کنه و همین طور اگر یه رشته ی عددی داشته باشیم.
به هر تقدیر دلیل انتخاب این گزارش برای وب سایت محیط طراحی آن و کمتر بودن مشکلات آن بود و در کل سیستم گزارش گیری جذابی است ....
با تشکر
مجید داراب

arianezhad
سه شنبه 15 شهریور 1390, 19:19 عصر
من در محیط vs 2008 کلاسی دارم که وقتی اونو در Page_Load صدا می زنم تمام تاریخ ها در محیط شمسی عمل می کنه و موقع ذخیره در دیتابیس میلادی این تاریخ ها تو دیتابیس می شینه...
خوب وقتی گزارشات ساخته شده توسط fs رو تو بروزر مشاهده می کنم تاریخ ها شمسی هستند ...

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

majid_darab
سه شنبه 15 شهریور 1390, 23:30 عصر
سلام دوست عزیز :
لطفاً توسط گوگل سایت برنامه نویس رو در مورد تاریخ شمسی در دات نت 3.5 (مورد استفاده ی vs 2008) جستجو نمایید.
مطمئن هستم که به جوابتون می رسید.
در حال حاضر سیستم search برنامه نویس به گونه ای ست که خودش از گوگل استفاده می کند.
اما اگر سیستم سرچ از خود سرچ فروم استفاده می کرد برای جستجو در گوگل به شیوه ی زیر عمل کنید :
site:www.barnamenevis.org تاریخ شمسی در دات نت
اما برای خالی نبودن عریضه :
http://barnamenevis.org/showthread.php?277052-%D8%A8%D9%87%D8%AA%D8%B1%DB%8C%D9%86-%DA%A9%D9%84%D8%A7%D8%B3-%D8%A8%D8%B1%D8%A7%DB%8C-%D8%AA%D8%A7%D8%B1%DB%8C%D8%AE-%D8%B4%D9%85%D8%B3%DB%8C
این لینک برای حالتی ست که شما از dll نوشته شده برای تاریخ شمسی استفاده می کنید.
اگر بگردید می توانید کلاس های دیگری هم برای تاریخ شمسی بیابید.
BARNAMENEVIS -> IS THE BEST

web_user
جمعه 06 مرداد 1391, 20:45 عصر
من یه توی یه پروژه سی شارپ با فریم ورک 3.5 از یه DateTimePicker استفاده کرده که وقتی به یه تاریخ هایی میرسه یه همچین اروری میده "Year, Month, and Day parameters describe an un-representable DateTime." از دوستان کسی میدونه راه حلش چیه؟ نمیتونم کامپوننت رو هم تغییر بدم چون 2000 ارور میده.