

در این مقاله قصد داریم در مورد یکی دیگر از کامپوننت های قدرتمند و کاربردی از شرکت DevExpress بنام Scheduler و نیز نحوه استفاده از آن در نرم افزارهای کاربردی را مورد بررسی قرار دهیم. هدف از استفاده از این ابزار صرفاً کنترل و مدیریت زمان می باشد و علاوه برآنکه در نماهای مختلف (روزانه-هفتگی- ماهانه- مدیریت زمان/ TimeLine) قابل استفاده و مشاهده می باشد حتی در رسم نمودار گانت جهت کنترل پروژه و رسم نمودار پیشرفت کار هم به کاربران کمک شایانی میکند. در این (^اینجا) قبلاً توسط یکی از کاربران سایت نیک آموز، در حد آشنایی بسیار مقدماتی با این کنترل مقاله ای ارائه شده بود که در حال حاضر ما قصد معرفی کامل تر قابلیت های آن را به کاربران سایت نیک آموز داریم ولی از یکطرف به دلیل امکانات وسیع کاربردی و کاربری این کنترل و از طرف دیگر بخاطر خلاصه ترشدن این مقاله، سعی میکنیم به معرفی مهمترین بخش های این ابزار حرفه ای بپردازیم.
این کنترل همانطوریکه از نامش پیداست ابزاریست در خصوص مدیریت زمان؛ که امکان یادداشت هرگونه قرار ملاقات ها، جلسات، پیگیری امور محوله و… را در زمان دقیق وتعیین شده به کاربر در نماها و حالات مختلفی می دهد که هرکدام از این نماها (Views) دارای وقفه های زمانی متفاوتی بوده و با انتخاب و فعال شدن هرکدام از آنها، عناصر و کنترل های رابط کاربری مربوط به آن نمای فعال همزمان در دسترس استفاده کننده قرار میگیرد و مهمتر اینکه کامپوننت های DevExpress امکان Localize شدن را داشته و بنابراین این کنترل نیز امکان بومی سازی به هر زبان و کالچری را داراست.
یکی از خصوصیات بارز این کامپوننت، سهولت استفاده از آن برای برنامه نویسان با توجه به امکانات وسیع آن می باشد. این کنترل به راحتی به دیتابیس متصل شده و اطلاعات کاربران به راحتی در بانک اطلاعاتی سرویس دهنده ثبت شده تا همانند سایر بخش های نرم افزار شما، اطلاعات این قسمت نیز در مواقع مورد لزوم در دسترس کاربرانش قرار گیرد.
همانطوریکه در تصویر فوق مشاهده میکنید، این کامپوننت اسکریپ پایه ای و پیشنهادی جدول اطلاعاتی خود را به راحتی در دسترس برنامه نویس قرار داده تا سرعت و قدرت استفاده از آن لذت بخش تر شود.
بطور خلاصه این کنترل حرفه ای نماهای مختلفی را جهت نمایش اطلاعات دردسترس کاربر قرار میدهد از جمله :
– نمای روزانه (Day View) : نمای دقیقی از قرار ملاقات ها – جلسات و یادداشتهای روزانه در یک روز خاص را به کاربر نمایش می دهد. (به تصویر زیر دقت کنید)
(نمای روزانه در حالت شمسی)
(نمای روزانه در حالت میلادی)
در حالت اجرا، با کلیک راست روی این کنترل یک منوی میانبر دراختیار کاربر قرار میگیرد که برخی از امکانات ضروری مانند: ایجاد/ویرایش رویداد – جستجوی تاریخ خاص- تغییر نمای کنترل از نمای جاری به سایر نماها و… جهت سهولت استفاده کاربر در اختیار وی قرار میگیرد.(مانند تصویر زیر) :
– روزهای کاری هفته (Work-Week View) : در اینحالت از این کنترل، کلیه روزهای کاری هفته در دید کاربر قرار میگیرد، البته از طریق پنجره خواص (Properties) می توان روزهای کاری هفته را برای کنترل محدود به روزهای خاصی کرد تا در حالت نمایشی فقط آن روزها قابل مشاهده و در دسترس باشند. (در تصویر زیر ما کلیه روزهای هفته را برای این کنترل درنظر گرفته ایم):
(نمای هفتگی در حالت شمسی- روزجمعه را از دید خارج کرده ایم)
نکته) در تصویر فوق به عمد روزهای هفته را در تصویر قرار داده ایم در حالیکه محدودیت این روزها توسط برنامه نویس می تواند در دسترس کاربران استفاده کننده قرار داده نشود.
(نمای هفتگی فیلتر شده در حالت میلادی- روزیکشنبه را از دید خارج کرده ایم)
– کل ایام هفته (Full Week View): در این مدل از حالت نمایشی کلیه روزهای هفته ای خاص و یادداشت های مربوطه در دسترس کاربر قرار میگیرد.
(در حالت شمسی)
(در حالت میلادی)
– نمای هفتگی (Week View) : نمایانگر قرار ملاقات های ثبت شده در حالت نمایش هفتگی می باشد.
(در حالت شمسی)
(در حالت میلادی)
– نمای ماهانه (Month View) : این مدل نمایشی از این کنترل نمای چند هفته هم نامیده میشود و هفته های مربوطه بصورت افقی کنار هم قرار گرفته و کاربر می تواند با انتخاب هرکدام از قرار ملاقات های ثبت شده در این حالت، به روز(های) آن نیز بطور لحظه ای و مستقیم دسترسی داشته باشد. در این حالت با استفاده از اسکرول های کنار کنترل می توتنیم روزها و ماههای مورد نظر را پیمایش کنیم ضمن اینکه در صورت وجود یادداشت در روزها قبلی/بعدی، کلیدهایی بطور خودکار در دوطرف کنترل نمایان شده که در دسترسی سریعتر به Appointmentهای قبلی/بعدی به کاربر کمک میکنند.
(نمای ماهانه در حالت شمسی)
(نمای ماهانه در حالت میلادی)
– نمای مدیریت زمان (TimeLine View) : از این نما می توان با یک مرور کلی بطور شفاف تری برای اهداف برنامه ریزی در طول بازه های زمانی مختلف استفاده کرد.
(نمایش نمای مدیریت زمان در حالت شمسی)
به عنوان مثال چنانچه از منوی ظاهر شده ((نمای روزانه)) را انتخاب کنیم، کنترل Scheduler مطابق آیتم انتخابی همانند تصویر زیر تغییر نما خواهد داد.
(نمایش نمای مدیریت زمان در حالت میلادی)
– نمای گانت (Guntt View) : با استفاده از این حالت از کنترل DevExpress Scheduler می توان میان Appointmetهای مختلف ایجاد شده رابطه و همبستگی ایجاد کرده و میزان درصد پیشرفت هرکدام را کنترل نمود. این نما برای استفاده در نرم افزارهای آماری و کاربردی پروژه های مختلف استفاده های زیادی برای کاربرانش دارد.
امکان دراگ کردن یادداشتهای ثبت شده بین تاریخ و زمان های مختلف(Internal Drag) و همچنین امکان دراگ کردن اطلاعات از گرید به داخلScheduler که اصطلاحاً (External Drag) نامیده میشوند از دیگر امکانات این کنترل حرفه ای می باشد.
شایان ذکر است که سطح دسترسی به امکانات این ابزار برای تک تک کاربران نهایی استفاده کننده توسط برنامه نویس قابل کنترل کامل می باشد از جمله؛ فیلترهای خاص برای مبنای نوع و سطح دسترسی ها – محدود کردن نماها برای کاربران- کنترل کامل بر منوها و ابجکت های ریبون مربوط به این کنترل و… می باشد. حتی امکاناتی مانند حذف کردن یادداشت، ایجاد کردن رویداد جدید، ویرایش کردن رویدادها، دراگ کردن، تغییرسایز یادداشت با استفاده از ماوس، و از دسترس خارج کردن آیتم های منوی راست کلیک شده روی کنترل، کاملاً در اختیار برنامه نویس می باشد. (به عنوان مثال به تصویر زیر که امکان ثبت رویداد جدید را از کاربر گرفته است توجه کنید):
در زمان طراحی، پس از دراگ کردن کنترل مدیریت زمان (DevExpress Scheduler) بر روی فرم، با استفاده از منوی smart tag آن میتوانیم ابزار این کنترل را بدلخواه (Ribbon Bar و یا Menu Bar) انتخاب نمائیم که در هرصورت تک تک آبجکت های آن برای هرگونه تغییر دلخواه در دسترس برنامه نویس می باشد. (به تصویر زیر که نمای ابزار ریبون از این کنترل را نمایش میدهد توجه کنید).
و از جمله فیلترهای دیگر می توان به محدود کردن تعداد کاربران در استفاده از این کنترل پرداخت. به عنوان مثال فرض کنید چهار کاربر با نام های(A,B,C,D) در نرم افزار شما فعال هستند که نه تنها میخواهید هرکدام از کاربران فقط وفقط به یادداشتهای خود در این کنترل دسترسی داشته باشند بلکه می توانید امکان مشاهد ودسترسی به یادداشت های کاربران ({ For Example: User {A} and User {C) را بهم بدهید. (جهت روشن شدن بهتر مطلب به تصویر زیر توجه کنید):
یکی دیگر از امکانات بسیار کاربردی DevExpress Scheduler استفاده و بکارگیری Reminder (یادآوری کننده) از این کنترل می باشد که با امکانات قابل توجهی می توان از آن بهره برد. همانطوریکه از نامش پیداست این کنترل به شما اجازه میدهد تا یادداشت های مهمی که به دلایل مختلفی انجام آنها دز زمان مشخص، از ذهن شما خارج شده، بطور خودکار و توسط یک فرم هشدار دهنده به کاربر اخطار داده شود. این فرم راس ساعت و زمان(های) تعیین شده بطور اتوماتیک به نمایش درآمده و به کاربر اطلاع رسانی میکند. (تصاویر زیر یک نمونه از نحوه ایجاد رویداد هشدار دهنده و نمایش فرم Reminder را نمایش میدهند ).
(فرم های ثبت و تنظیم هشدار یادداشت ثبت شده)
( تصویر فعال شدن فرم هشدار در زمان مورد نظر و مطابق با الگوی تعیین شده)
در کنترل DevExpress Scheduler تعیین محدوده نمایشی از روزهای خاص به دوشکل متفاوت برای استفاده کنندگان امکاندهی شده است:
1) استفاده از Date navigator: با بکارگیری این کنترل کاربر قادر به انتخاب محدوده زمان (های) خاصی در تاریخ های مختلفی خواهد بود که کاربر به سه روش می تواند از این کنترل استفاده نماید:
الف) توسط ماوس بر رو این کنترل چندین روز متوالی را دراگ کند.
ب) در این کنترل بر روی تاریخ خاصی کلیک کرده تا انتخاب شود سپس کلید Shift را پائین نگهداشته و بر روی قسمتی دیگر از محدوده تاریخ این کنترل کلیک کنید تا دامنه ای از تاریخ های مورد نظر برای نمایش در Scheduler تعیین شود.
ج ) چنانچه قصد مشاهده تاریخ های خاصی از یادداشت های خود در Scheduler را دارید، کلید Ctrl را پائین نگه داشته و بر روی روزهای خاص در ماههای مورد نظر خود کلیک کنید.به عنوان مثال همانگونه که در تصویر زیر می بینید از 13آبانماه 1394 تا 19آبانماه 1394 انتخاب شده وسپس پرشی به تاریخ 10آذرماه 1394 داشته ایم و به همین ترتیب کنترل Scheduler ما روزهای مورد نظر
را در دسترس کاربر قرار میدهد.
2) استفاده از Range Control: این کنترل گرافیکی نیز در رابطه با انتخاب محدوده ای از تاریخ و روزهای متوالی برای تعیین وضعیت نمایشی Scheduler بسیار مفید و در جای خود کاربردی می باشد. به عنوان مثال در تصویر زیر از 12 مردادماه 1389 تا تاریخ 18مردادماه 1389 توسط این کنترل برای Scheduler درنظر گرفته شده است.
همانطوریکه در تصویر فوق مشاهده میکنید این مورد نیز در کلیه نماهای مورد نظر قابل دسترسی و مشاهده می باشد.
از دیگر ویژگی های مورد توجه این کنترل میتوان به (( امکان ایجاد فرم سفارشی مطابق باسلیقه برنامه نویس)) جهت ثبت یادداشت ها در Scheduler بجای فرم پیشفرض این کنترل نام برد که این امکان نیز در جای خود استفاده های کاربردی خوبی دارد.
امکان گزارشگیری وچاپ از این کنترل، در هرنوع استایل و تنظیماتی توسط کاربر امکان پذیر می باشد و باوجود Page Setupخوبی که این کنترل در اختیار استفاده کنندگان میگذارد هرکدام از نماهای دلخواه برروی هرنوع کاغذی وچاپگری، در هر محدوده ای وبا هرسبکی قابل پیش نمایش و ارسال به چاپگر می باشد. به عنوان مثال به نمای روزانه این کنترل در حالت پیش نمایش وبا الگوی پیش فرض در تصویر زیر توجه کنید:
دقت داشته باشید که در این مبحث ما تنها به معرفی عناوین برخی از امکانات مهم این کامپوننت پرداختیم و نه تنها این ابزارارزشمند جای گفته های بسیار دارد بلکه از بخش کدنویسی آن هیچ سخن به میان نیاوردیم و این بدان معنا نیست که دست و پای برنامه نویس در بخش Code Behind از این ابزار بسته است، بلکه با مراجعه به (^بلاگ) شرکت اصلی و یا راهنمای (^آنلاین) یا آفلاین از این مجموعه کامپوننت ها متوجه خواهید شد برخلاف توانایی های زیادی که مجموعه ابزار DevExpress دارد، استفاده از آنها بسیار ساده و روان است. ضمن اینکه راهنمای این مجموعه یکی از کاملترین راهنماهای کاربری و کاربُردی با مثال های بسیار متنوع همراه با تصاویر و Sampleهای مربوطه می باشد که برنامه نویسان را در استفاده از این ابزارهای حرفه ای در پروژه های کوچک و بزرگ خود بسیار یاری می رسانند.
درهر صورت این آبجکت ناگفته های بسیاری دارد که در قالب این مقاله نمی گنجد و تنها با بکار گرفتن تک تک این ابزارها در پروژه های نرم افزاری خود و استفاده درست و بجا از هرکدام، به قدرت و وسعت امکاناتی که هرکدام در جای خود به شما میدهند پی برده و به نقاط ضعف و نداشته های کامپوننت های مشابه از سایر شرکت های تولید کننده پی خواهید برد.
((دانلود فیلم آموزشی شرکت DevExpress– فرمت MP4))
((دانلود فیلم فارسی DevExpress Scheduler – فرمت MP4))
موفق باشید.
منبع: آموزش برنامه نویسی نیک آموز
21 دیدگاه
مهدی ربانی ذبیحی
ممنون مهندس بسیار عالی بود مشخص زحمت میکشی بابت مقاله هایی که ارائه میکنی.
فرشید علی اکبری
سلام دوست عزیز
آستاره لاله بخت
سلام
ممنون از ارائه مطالب کاربردی و خوبتون.به امید موفقیت روزافزون در زمینه های مختلف برنامه نویسی.
Saman Ice
ممنون از مقاله خوبتون
فرشید علی اکبری
بله دوست عزیز، امکان استفاده در ASP.NET وجود دارد. بنده از نسخه 14.2.3 این مجموعه استفاده میکنم، بنابراین آمار زیر مربوط به این نسخه می باشد که مشخصاً درنسخه های بالاتر تغییراتی کرده و به آن ابزار دیگری اضافه شده و خواهد شد.
رضا کشوری شریف
عرض سلام و درود دارم خدمتم مهندسین عزیز نیک آموز -کارتون حرف نداره.
فرشید علی اکبری
سلام
علی پناهی
سلام
فرشید علی اکبری
سلام
میلاد فیروزی
خیلی جالب بود
آریا فناوری
تشکر. خیلی خوب بود (آریا فناوری)
Tehranchi@outlook.com
سلام خسته نباشید
فرشید علی اکبری
سلام
محمد کلهر
سلام
فرشید علی اکبری
سلام دوست عزیز
سيدمهدی
سلام اقای اکبری من از این کامپوننت استفاده میکردم و کرکش کردم منتها از داخل ویژوال استودیو بدون مشکل باز میشه برنامه ولی بصورت مستقل ک اجراش میکنم یه اسپلش اسکرین میاد و میگه که 7000 روز از لایسنس باقی مونده و باید اینو ببندم تا برنامه اجرا بشه تو سایت دانلودلی خوندم که شما نوشته بودین مثل اینکه راهی هستش از طریق کامپایل کردن سورس کد این کامپوننت این محدودیت هارو برداشت.میشه لطف کنید راهنمایی کنید؟یا شما خودتون این کامپوننت هارو بیلد کردین و امکان داره لینکش رو ارسال کنید؟
فرشید علی اکبری
سلام
بله، بنده از سال 2013 ونسخه 13.1 اون رو کاملاً با فارسی سازگار کردم و در پروژه های مورد استفاده قرار دادم.
شما می تونید از لینک زیر و در نهایت کانال ما در این زمینه استفاده کنید:
http://www.devexpress.blogfa.com
سعید
سلام
(نمای روزانه در حالت شمسی) رو چه ط.ری شمسی کردین
من خیلی وقته دنبالشم
میشه راهنمایی کنید
فرشید علی اکبری
جهت اطلاعات بیشتر به کانال ما مراجعه کنید.
@DevExpress_Farsi
Bahar
سلام
من بهار هستم و در اتریش برنامه نویس هستم من با دلفی برنامه نویسی می کنم و از کامپوننت های devexpress هم استفاده می کنم من راستش رو بخواهید با درک بعضی از کامپوننت ها و و event در devexpress مشکل دارم، می خواست ببینم می تونید ایمیلتون رو بدید تا من سوالاتم را بپرسم
آرزو محمدزاده
درود
سپاس از همراهی شما
سوالات خود را به ایمیل nikamooz96@gmail.com ارسال نمایید.
موفق و پیروز باشید