مدیریت زمان با DevExpress Scheduler

مدیریت زمان با DevExpress Scheduler

نوشته شده توسط: فرشید علی اکبری
تاریخ انتشار: ۲۱ آبان ۱۳۹۴
آخرین بروزرسانی: ۱۱ اردیبهشت ۱۴۰۱
زمان مطالعه: 14 دقیقه
۰
(۰)

مقدمه

در این مقاله قصد داریم در مورد یکی دیگر از کامپوننت های قدرتمند و کاربردی از شرکت 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 تعیین محدوده نمایشی از روزهای خاص به دوشکل متفاوت برای استفاده کنندگان امکاندهی شده است:

۱) استفاده از Date navigator: با بکارگیری این کنترل کاربر قادر به انتخاب محدوده زمان (های) خاصی در تاریخ های مختلفی خواهد بود که کاربر به سه روش می تواند از این کنترل استفاده نماید:

  • الف) توسط ماوس بر رو این کنترل چندین روز متوالی را دراگ کند.
  • ب) در این کنترل بر روی تاریخ خاصی کلیک کرده تا انتخاب شود سپس کلید Shift را پائین نگهداشته و بر روی قسمتی دیگر از محدوده تاریخ این کنترل کلیک کنید تا دامنه ای از تاریخ های مورد نظر برای نمایش در Scheduler تعیین شود.
  • ج ) چنانچه قصد مشاهده تاریخ های خاصی از یادداشت های خود در Scheduler را دارید، کلید Ctrl را پائین نگه داشته و بر روی روزهای خاص در ماههای مورد نظر خود کلیک کنید.به عنوان مثال همانگونه که در تصویر زیر می بینید از ۱۳آبانماه ۱۳۹۴ تا ۱۹آبانماه ۱۳۹۴ انتخاب شده وسپس پرشی به تاریخ ۱۰آذرماه ۱۳۹۴ داشته ایم و به همین ترتیب کنترل Scheduler ما روزهای مورد نظررا در دسترس کاربر قرار میدهد.

۲) استفاده از Range Control: این کنترل گرافیکی نیز در رابطه با انتخاب محدوده ای از تاریخ و روزهای متوالی برای تعیین وضعیت نمایشی Scheduler بسیار مفید و در جای خود کاربردی می باشد. به عنوان مثال در تصویر زیر از ۱۲ مردادماه ۱۳۸۹ تا تاریخ ۱۸مردادماه ۱۳۸۹ توسط این کنترل برای Scheduler درنظر گرفته شده است.

همانطوریکه در تصویر فوق مشاهده میکنید این مورد نیز در کلیه نماهای مورد نظر قابل دسترسی و مشاهده می باشد.

از دیگر ویژگی های مورد توجه این کنترل میتوان به (( امکان ایجاد فرم سفارشی مطابق باسلیقه برنامه نویس)) جهت ثبت یادداشت ها در Scheduler بجای فرم پیشفرض این کنترل نام برد که این امکان نیز در جای خود استفاده های کاربردی خوبی دارد.

امکان گزارشگیری وچاپ از این کنترل، در هرنوع استایل و تنظیماتی توسط کاربر امکان پذیر می باشد و باوجود Page Setupخوبی که این کنترل در اختیار استفاده کنندگان میگذارد هرکدام از نماهای دلخواه برروی هرنوع کاغذی وچاپگری، در هر محدوده ای وبا هرسبکی قابل پیش نمایش و ارسال به چاپگر می باشد. به عنوان مثال به نمای روزانه این کنترل در حالت پیش نمایش وبا الگوی پیش فرض در تصویر زیر توجه کنید:

دقت داشته باشید که در این مبحث ما تنها به معرفی عناوین برخی از امکانات مهم این کامپوننت پرداختیم و نه تنها این ابزارارزشمند جای گفته های بسیار دارد بلکه از بخش کدنویسی آن هیچ سخن به میان نیاوردیم و این بدان معنا نیست که دست و پای برنامه نویس در بخش Code Behind از این ابزار بسته است، بلکه با مراجعه به (^بلاگ) شرکت اصلی و یا راهنمای (^آنلاین) یا آفلاین از این مجموعه کامپوننت ها متوجه خواهید شد برخلاف توانایی های زیادی که مجموعه ابزار DevExpress دارد، استفاده از آنها بسیار ساده و روان است. ضمن اینکه راهنمای این مجموعه یکی از کاملترین راهنماهای کاربری و کاربُردی با مثال های بسیار متنوع همراه با تصاویر و Sampleهای مربوطه می باشد که برنامه نویسان را در استفاده از این ابزارهای حرفه ای در پروژه های کوچک و بزرگ خود بسیار یاری می رسانند.

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

چه رتبه ای می‌دهید؟

میانگین ۰ / ۵. از مجموع ۰

اولین نفر باش

title sign
معرفی نویسنده
فرشید علی اکبری
مقالات
1 مقاله توسط این نویسنده
محصولات
0 دوره توسط این نویسنده
فرشید علی اکبری
پروفایل نویسنده
title sign
دیدگاه کاربران

    • سلام
      من بهار هستم و در اتریش برنامه نویس هستم من با دلفی برنامه نویسی می کنم و از کامپوننت های devexpress هم استفاده می کنم من راستش رو بخواهید با درک بعضی از کامپوننت ها و و event در devexpress مشکل دارم، می خواست ببینم می تونید ایمیلتون رو بدید تا من سوالاتم را بپرسم

      • درود
        سپاس از همراهی شما

        سوالات خود را به ایمیل nikamooz96@gmail.com ارسال نمایید.

        موفق و پیروز باشید

    • سلام
      من بهار هستم و در اتریش برنامه نویس هستم من با دلفی برنامه نویسی می کنم و از کامپوننت های devexpress هم استفاده می کنم من راستش رو بخواهید با درک بعضی از کامپوننت ها و و event در devexpress مشکل دارم، می خواست ببینم می تونید ایمیلتون رو بدید تا من سوالاتم را بپرسم

      • درود
        سپاس از همراهی شما
        سوالات خود را به ایمیل nikamooz96@gmail.com ارسال نمایید.
        موفق و پیروز باشید

    • سلام
      (نمای روزانه در حالت شمسی) رو چه ط.ری شمسی کردین
      من خیلی وقته دنبالشم
      میشه راهنمایی کنید

      • جهت اطلاعات بیشتر به کانال ما مراجعه کنید.
        @DevExpress_Farsi

    • سلام
      (نمای روزانه در حالت شمسی) رو چه ط.ری شمسی کردین
      من خیلی وقته دنبالشم
      میشه راهنمایی کنید

      • جهت اطلاعات بیشتر به کانال ما مراجعه کنید.
        @DevExpress_Farsi

    • سلام اقای اکبری من از این کامپوننت استفاده میکردم و کرکش کردم منتها از داخل ویژوال استودیو بدون مشکل باز میشه برنامه ولی بصورت مستقل ک اجراش میکنم یه اسپلش اسکرین میاد و میگه که ۷۰۰۰ روز از لایسنس باقی مونده و باید اینو ببندم تا برنامه اجرا بشه تو سایت دانلودلی خوندم که شما نوشته بودین مثل اینکه راهی هستش از طریق کامپایل کردن سورس کد این کامپوننت این محدودیت هارو برداشت.میشه لطف کنید راهنمایی کنید؟یا شما خودتون این کامپوننت هارو بیلد کردین و امکان داره لینکش رو ارسال کنید؟

      • سلام
        بله، بنده از سال ۲۰۱۳ ونسخه ۱۳.۱ اون رو کاملاً با فارسی سازگار کردم و در پروژه های مورد استفاده قرار دادم.
        شما می تونید از لینک زیر و در نهایت کانال ما در این زمینه استفاده کنید:
        http://www.devexpress.blogfa.com

    •    سلام

      ممنون از زحمتتاتون
      ی سوال داشتم این کامپوننت رو تو دات نت ۳.۵ میشه استفاده کرد؟
      •  سلام دوست عزیز

        ببخشید دیر جواب تون رو میدم. راستش برام جالبه که مدتیه از این سایت ارسال نظرهای همه بجز مطالب خودم به ایمیلم ارسال میشه و امروز هم بطور اتفاقی متوجه بخش نظرات این مطلب شدم.
        کانال تلگرام در خصوص DevExpress بومی سازی شده :
        جواب شما رو در (^اینجا) و (^اینجا) قرار دادم.
        موفق باشید.
    • سلام خسته نباشید 

      مطالب عالی بود خط به خط رو خوندم  و کیف کردم مرسی عزیز 
      یه سوال کوچیک هم داشتم این کامپوننت رو چطوری میشه گیر اورد فقط از طریق خرید از شرکتش  اگه ممکنه راهنماییم کنید خیلی خیلی سپاس گزار میشم 
      • سلام

        ببخشید که الان دارم جواب سئوالتون رو میدم و دلیلش هم اینه که علیرغم همیشه، ولی جالبه که برای این سئوال شما از سرور سایت به ایمیلم چیزی نیومده بود!!!
        در هرصورت باید عرض کنم که شما نمی تونید نسخه بومی سازی شده ای (با پشتیبانی کامل از زبان فارسی) را از شرکت اصلی تهیه کنید. بنده تز سال ۲۰۱۳ تاکنون روی این مجموعه در حال فعالیت هستم و در حال حاضر نیز در مراحل پایانی بومی سازی نسخه ۱۵.۲ می باشم. در صورت سئوالات بیشتر می تونید در آخر مقالات بنده بر روی آیکون (شبکه اجتماعی لینکداین) کلیک کرده و با بنده در تماس باشید.
    •    تشکر. خیلی خوب بود (آریا فناوری)

    •     خیلی جالب بود

    •    سلام

      سی ام شهریور ۲۵ ساعته، این کامپوننت ساپورت میکنه؟
      • سلام

        بنده به شخصه به اینمورد اصلاً توجه نکرده بودم چون چندان محسوس و مورد نیاز نیست((مگر در موارد خیلی خاص برای کارفرمایان پروژه های شما))، ولی با تستی که روی کامپوننت انجام دادم پاسخ سئوال شما ((خیر)) می باشد. تا نسخه ۱۴.۲.۳ که بنده با آن کار میکنم چنین امکانی را ندارد و بعید میدونم شرکت اصلی اینمورد را در این کامپوننت با این همه انعطافی که داره لحاظ کنه. به هرجهت می تونید در این مورد بخصوص، درخواست خودتون رو از طریق واحد پشتیبانی سایت شرکت اصلی ارائه داده تا شاید در نسخه های آینده در نظر گرفته شود.
  • 1
  • 2