با ما در تماس باشید! 88520412 (021)

پرنیان فارسی‌ساز سی‌آرام (Microsoft Crm) – تقویم شمسی در گرید‌های اینلاین

فارسی‌ساز پرنیان برای مایکروسافت سی.آر.ام (Microsoft Dynamics CRM)، زبان فارسی و تقویم شمسی را برای نرم‌افزار سی.آر.ام ارائه می‌کند. متاسفانه در نسخه‌های قبلی این برنامه امکان استفاده از تقویم شمسی در گریدهای اینلاین فراهم نشده بود. این مطلب به چگونگی پیاده‌سازی تقویم شمسی در گریدهای اینلاین سی.آر.ام در نسخه‌ی جدید می‌پردازد.

گریدهای اینلاین، از امکانات جدید سی.آر.ام است. در نسخه‌های قبلی گریدها جداول استاتایکی بودند که امکان ویرایش نداشتند. برای تغییر هر یک ردیف‌های جدول کاربر می‌بایستی فرم مربوط به آنرا باز کند و اینکار خیلی وقت‌گیر بود. گرید‌های اینلاین این مشکل را برطرف می‌کنند و این امکان را فراهم می‌کنند که کاربر مستقیما هر ردیف جدول را به صورت اینلاین ویرایش کند. در شکل زیر ویرایش یک سطر از گرید برای تغییر یک فیلد تاریخ نشان داده شده است:


همانطور که در تصویر مشخص است، پرنیان امکان استفاده از تقویم شمسی را در گرید اینلاین اضافه کرده است.

جزئیات پیاده‌سازی

بررسی‌های دقیق‌تر نشان می‌دهد که گریدهای اینلاین با استفاده از گریدهای ابزار ویجمو (Wijmo Flexgrid) ساخته شده‌اند. ویجمو یک دسته ابزار رابط کاربر برای استفاده در جاوا اسکریپت است. از جمله کنترل‌های این بسته یک گرید است که قابلیت ویرایش را به صورت اینلاین ارائه می‌کند. متاسفانه کنترل‌های این بسته از نقطه نظر بومی‌سازی ضعیف به نظر می‌رسند. به صورت مشخص این کنترل‌ها از تقویم‌های مختلف پشتیبانی نمی‌کنند و فقط برای استفاده از نقویم میلادی طراحی شده‌اند. به همین خاطر تصحیح آنها برای پشتیبانی از تقویم شمسی کمی چالش‌برانگیز است.

نمایی که در کنترل انتخاب تاریخ دیده می‌شود در کلاس wijmo.input.Calendar پیاده‌سازی شده است. متد refresh در این کلاس وظیفه نمایش روزهای ماه را بر عهده دارد. این متد برای نمایش تقویم شمسی تغییر داده شده است. در این متد روزهای شمسی به جای روزهای میلادی نمایش داده ‌می‌شوند:


 

پس از آن توابع parseDate و formatDate تصحیح شده است:


 

و همچنین تابع _click برای آنکه وقتی نهایتا کاربر تاریخی را انتخاب می‌کند، تاریخ شمسی درستی انتخاب شود:


دست آخر تابع set برای خاصیت displayMonth تصحیح شده است. این تابع برای تنظیم ماه‌ی که در کنترل نمایش داده می‌شود بکار رفته است:


متاسفانه کدهای مربوط به wijmo به صورت یک web resource در سی.آر.ام نصب می‌شوند و امکان تغییر آنها به سادگی میسر نیست. از اینرو تغییرات در پرونده‌ی actions.js در آدرس

(C:\Program Files\Microsoft Dynamics CRM\CRMWeb\_static\_grid) انجام شده است. از آنجاییکه برای انجام این تغییرات لازم است wijmo بارگذاری شده باشد از setTimeOut استفاده شده است:


 

این تغییرات در برنامه‌ی نصب نسخه‌ی جدید پیش‌بینی شده است. برای دریافت این فایل‌ها با شرکت گستره‌نگار تماس بگیرید.

مشتاقانه منتظر دریافت نظرات شما دوستان عزیز هستیم