نمایش نتایج 1 تا 39 از 39

نام تاپیک: طراحی تقویم برای برنامه PM

  1. #1

    طراحی تقویم برای برنامه PM

    با سلام .
    من دارم رویه یه برنامه ی PM‌ کار میکنم .
    من میام ابتدا کارهای که رویه ماشینها قراره انجام بشه لیست میکنم مثل (روغن کاری – گریس کاری و تعویض فیلتر و ....)
    حالا مثلا این روغنکاری از تاریخ استقرار تا انتهای سال باید به صورت روزانه و گریسکاری هر یک هفته و تعویض فیلتر هر 6 ماه رویه یه ماشین خاص اتفاق بیفته
    من تویه طراحی برنامه ش موندم . البته که نمیدونم چطور تقویم یک کار رو به کل سال بسط بدم .
    دوستان اگه راهنمایی کنن ممنون میشم .

  2. #2

    نقل قول: طراحی تقویم برای برنامه PM

    حقیقتش من میخوام خودم بنویسم و از کامپوننت استفاده نکنم

  3. #3

    نقل قول: طراحی تقویم برای برنامه PM

    پس شما احتمالاً باید حداقل 10 سالی از عمرتون رو برای نوشتن کامپوننت های مشابه این کامپوننت ها بکنید که در نهایت هم در ده سال آینده باز محصول شما در این زیبا و قدرتمند نیست و نخواهد بود چرا که تیم برنامه نویسان و توسعه دهندگان محصولات این شرکت مطمئناً از حرفه ای ترین برنامه نویسان کشورهای مختلف هستند.

    موفق باشید.

  4. #4

    نقل قول: طراحی تقویم برای برنامه PM

    دوستان کسی میتونه راهنمایی بکنه ؟

  5. #5

    نقل قول: طراحی تقویم برای برنامه PM

    اون چیزی که من میخوام دقیقا طراحیش مثل عکسیه که پایین میزارم . همین کار من رو راه میندازه :


    PMTaghvim.jpg

  6. #6

    نقل قول: طراحی تقویم برای برنامه PM

    الان توی چی مشکل دارید؟ بدست آوردن تاریخها؟ دیتابیس؟ طراحی UI؟

  7. #7

    نقل قول: طراحی تقویم برای برنامه PM

    تاریخ و ریختنش تویه دیتابیس

  8. #8

    نقل قول: طراحی تقویم برای برنامه PM

    طبق عکسی که گذاشتید
    یک جدول برای نام و مشخصات دستگاه
    یک جدول برای مشخصات PM
    یک جدول برای دوره انجام
    یک جدول برای ثبت سرویس شامل تاریخ شروع، تاریخ پایان، کد دستگاه، کد PM، کد دوره انجام.(به نظر من نیازی به ذخیره همه تاریخ ها در همون ابتدا نیست.)

    برای کار با تاریخ از PersianCalendar استفاده کنید
                //example
    string startDate = "1396/06/09";
    string endDate = "1399/12/30";

    CultureInfo farsiCultureInfo = new CultureInfo("fa-ir");
    DateTime dtStart = DateTime.Parse(startDate, farsiCultureInfo);

    DateTime nextDate1DayPeriod = farsiCultureInfo.Calendar.AddDays(dtStart, 1);
    DateTime nextDate1WeekPriod = farsiCultureInfo.Calendar.AddWeeks(dtStart, 1);
    DateTime nextDate1MonthPeriod = farsiCultureInfo.Calendar.AddMonths(dtStart, 1);


    اگر هم نیاز دارید همه تاریخها رو بدست بیارید با یک حلقه میتونید
    مثلا دوره های یک هفته ای
                //example
    string startDate = "1396/06/09";
    string endDate = "1399/12/30";

    CultureInfo farsiCultureInfo = new CultureInfo("fa-ir");
    DateTime dtStart = DateTime.Parse(startDate, farsiCultureInfo);
    DateTime dtEnd = DateTime.Parse(endDate, farsiCultureInfo);

    List<DateTime> dates = new List<DateTime>();
    for (DateTime nextDate = dtStart; nextDate < dtEnd; nextDate = farsiCultureInfo.Calendar.AddWeeks(nextDate, 1))
    {
    dates.Add(nextDate);
    }

    listBox1.DataSource = dates;

  9. #9
    کاربر دائمی آواتار ASKaffash
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    2,427

    نقل قول: طراحی تقویم برای برنامه PM

    سلام
    اولین کاری که باید انجام دهید UI نیست بلکه معماری درست داده ای است به شکل ذیل طراحی کنید :
    - جدول زمانهای پی ام شامل : کلید زمانی / نام دوره / مدت مثلا : (هرروزه 1 / هفته ای 7 / شش ماهه 180 / ماهیانه 30 / ....)
    - جدول انواع پی ام شامل : کلید نوع پی ام / نام نوع پی ام / کلید زمانی - FK
    - جدول دستگاهها شامل : کلید دستگاه / نام دستگاه
    - جدول پی ام شامل : کلید جدول / کلید دستگاه / از تاریخ / تا تاریخ / کلید زمانی / کلید نوع پی ام
    حالا نیاز به یک UI دارید که بصورت Master/Detail براساس جدول پی ام اطلاعات را ذخیره کنید
    در فاز بعد گزارشات و هشدارهای زمان تعمیر نگهداری و نتیجه آن را باید ذخیره کنید (دقت شود یک جدول دیگر هم برای اعلام زمانهای تعمیرات نیاز دارید)
    به نظر من شما نیاز به کامپوننت خاصی ندارید باید UI خوب طراحی کنید

    نقل قول نوشته شده توسط jafarpalideh مشاهده تاپیک
    اون چیزی که من میخوام دقیقا طراحیش مثل عکسیه که پایین میزارم . همین کار من رو راه میندازه :


    PMTaghvim.jpg

  10. #10

    نقل قول: طراحی تقویم برای برنامه PM

    نقل قول نوشته شده توسط ASKaffash مشاهده تاپیک
    سلام
    اولین کاری که باید انجام دهید UI نیست بلکه معماری درست داده ای است به شکل ذیل طراحی کنید :
    - جدول زمانهای پی ام شامل : کلید زمانی / نام دوره / مدت مثلا : (هرروزه 1 / هفته ای 7 / شش ماهه 180 / ماهیانه 30 / ....)
    - جدول انواع پی ام شامل : کلید نوع پی ام / نام نوع پی ام / کلید زمانی - FK
    - جدول دستگاهها شامل : کلید دستگاه / نام دستگاه
    - جدول پی ام شامل : کلید جدول / کلید دستگاه / از تاریخ / تا تاریخ / کلید زمانی / کلید نوع پی ام
    حالا نیاز به یک UI دارید که بصورت Master/Detail براساس جدول پی ام اطلاعات را ذخیره کنید
    در فاز بعد گزارشات و هشدارهای زمان تعمیر نگهداری و نتیجه آن را باید ذخیره کنید (دقت شود یک جدول دیگر هم برای اعلام زمانهای تعمیرات نیاز دارید)
    به نظر من شما نیاز به کامپوننت خاصی ندارید باید UI خوب طراحی کنید

    ممنون بابت پاسخ کاملتون .
    من هنوز دارم با ADO.NET کد میزنم . آیا کارم اشتباهه ؟
    حقیقتش سرسام گرفتم از بس کد زدم .
    مخصوصا تویه بحش سطح دسترسی که واسه یه فرم جدید که بخواد اضافه بشه کلی باس بشینم و کد بزنم .
    ویزارد هم که اصلا حال نمیده . راهکار بهتری نیست ؟

  11. #11
    کاربر دائمی آواتار ASKaffash
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    2,427

    نقل قول: طراحی تقویم برای برنامه PM

    سلام
    استفاده از ADO.Net سرعت مناسبی دارد ولی برای کاهش حجم کد یک کلاس DataBase ایجاد کنید که وظیفه لایه DAL را برای شما انجام دهد در خصوص سطح دسترسی روی فرم قبلا" من یک نمونه در همین تالار قرار داده ام که اگر رعایت شود کد نویسی بخش دسترسی را کاهش میدهد من خودم اصلا" ویزاردهای دات نت را نمی پسندم

  12. #12

    نقل قول: طراحی تقویم برای برنامه PM

    خوب با اجازه ی دوستان و معذرت خواهی بنده یکبار دیگه این پست رو آپ میکنم چون چند مورد واسم پیش اومده که فکرم رو مشغول کرده . کارهای که کردم رو میگم .
    من چند تا جدول به دیتابیس اضافه کردم .
    شما هم یه نظر بدید ممنون میشم .
    1-جدول TblPishgiraneh که میاد و انواع کارها مثل روغنکاری و گریسکاری و ... توش تعریف میشه
    2- جدول TblPeriodDo که میایم و دوره های انجام کار رو توش تعریف میکنیم . مثل روزانه - دو روز یکبار - هفتگی - ماهانه - 2 ماه یکبار و...
    3- جدول TblPreventive که میاد و آی دی دستگاه و یا زیر مجموعه ی دستگاه و تاریخ شروع و تاریخ پایان پیشگیرانه و آی دی نوع پیشگیرانه و آی دی دوره رو نگه میداره .
    4- جدول TblPreventiveDay هم میاد و آی دی پیشگیری که تویه بالا هست و ریز تاریخ ها بین اون دو تا تاریخ و دو تا تاییدی که قراره روش بخوره رو نگه میداره .
    به نظرتون این جواب کار من رو میده ؟


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

  13. #13

    نقل قول: طراحی تقویم برای برنامه PM

    اصلا من میتونم فقط یه جدول داشته باشم که اینطوری باشه ؟
    به جایه 4 تا جدول ؟
    بعد بیام و تویه برنامه اگه شخص خواست دوره انتخاب کنه تاریخ شروع و پایان بهش نمایش بدم و دوره
    و اگه خواست روزهای خاصی رو انتخاب کنه فقط اون روزها تویه دیتابیس ذخیره بشه .

    نام عملیات (مثلا روغنکاری)
    تاریخ شروع
    تاریخ پایان
    نام ماشین (البته منظورم همون کلید خارجی هست که آی دی ماشین رو نگه میداره )
    دوره انجام
    روز اول هفته
    روز دوم هفته
    روز سوم هفته
    روز چهارم هفته
    روز پنجم هفته
    روز ششم هفته
    روز هفتم هفته

  14. #14
    مدیر بخش آواتار ژیار رحیمی
    تاریخ عضویت
    مهر 1386
    محل زندگی
    تهران
    پست
    1,095

    نقل قول: طراحی تقویم برای برنامه PM

    نقل قول نوشته شده توسط jafarpalideh مشاهده تاپیک
    اصلا من میتونم فقط یه جدول داشته باشم که اینطوری باشه ؟
    به جایه 4 تا جدول ؟
    بعد بیام و تویه برنامه اگه شخص خواست دوره انتخاب کنه تاریخ شروع و پایان بهش نمایش بدم و دوره
    و اگه خواست روزهای خاصی رو انتخاب کنه فقط اون روزها تویه دیتابیس ذخیره بشه .

    نام عملیات (مثلا روغنکاری)
    تاریخ شروع
    تاریخ پایان
    نام ماشین (البته منظورم همون کلید خارجی هست که آی دی ماشین رو نگه میداره )
    دوره انجام
    روز اول هفته
    روز دوم هفته
    روز سوم هفته
    روز چهارم هفته
    روز پنجم هفته
    روز ششم هفته
    روز هفتم هفته
    شما دنبال پیاده سازی کارامد هستی این روش پیاده سازی اشتباه هست .
    First,solve the problem then write the code

  15. #15
    مدیر بخش آواتار ژیار رحیمی
    تاریخ عضویت
    مهر 1386
    محل زندگی
    تهران
    پست
    1,095

    نقل قول: طراحی تقویم برای برنامه PM

    نقل قول نوشته شده توسط jafarpalideh مشاهده تاپیک
    اون چیزی که من میخوام دقیقا طراحیش مثل عکسیه که پایین میزارم . همین کار من رو راه میندازه :


    PMTaghvim.jpg
    مشکل اصلی شما در (دوره انجام PM) هست .با توجه به تصویر شما چند دوره انجام روزانه،هفتگی و ماهانه رو تعریف کردی به نظر من به جای انتخاب دوره از مقدار عددی (روز )برای سرویس PM استفاده کن که انعطاف پذیری بیشتری به برنامه شما میدهد.نکته دیگه ،لازم به ذخیره سازی تمام تاریخ های سرویس در دیتابیس نیست شما تاریخ شروع + (تعداد روز) فاصله زمانی سرویس کن تاریخ سرویس بعدی بدست میاد مجدد تاریخ سرویس بعدی را با فاصله زمانی(تعداد روز) جمع بزنی تاریخ سرویس بعدی آن بدست میاد.میتونی به همین شیوه یه تقویم سرویس ایجاد کنی.
    First,solve the problem then write the code

  16. #16

    نقل قول: طراحی تقویم برای برنامه PM

    نقل قول نوشته شده توسط ژیار رحیمی مشاهده تاپیک
    شما دنبال پیاده سازی کارامد هستی این روش پیاده سازی اشتباه هست .

    میشه بیشتر توضیح بدید ؟



    1-جدول TblPishgiraneh که میاد و انواع کارها مثل روغنکاری و گریسکاری و ... توش تعریف میشه
    2- جدول TblPeriodDo که میایم و دوره های انجام کار رو توش تعریف میکنیم . مثل روزانه - دو روز یکبار - هفتگی - ماهانه - 2 ماه یکبار و...
    3- جدول TblPreventive که میاد و آی دی دستگاه و یا زیر مجموعه ی دستگاه و تاریخ شروع و تاریخ پایان پیشگیرانه و آی دی نوع پیشگیرانه و آی دی دوره رو نگه میداره .
    4- جدول TblPreventiveDay هم میاد و آی دی پیشگیری که تویه بالا هست و ریز تاریخ ها بین اون دو تا تاریخ و دو تا تاییدی که قراره روش بخوره رو نگه میداره .
    به نظرتون این جواب کار من رو میده ؟

    حالا اگه یه کار بخواد فقط تویه روزهای مثلا یک شنبه و سه شنبه انجام بشه چی ؟

  17. #17

    نقل قول: طراحی تقویم برای برنامه PM

    نقل قول نوشته شده توسط ژیار رحیمی مشاهده تاپیک
    مشکل اصلی شما در (دوره انجام PM) هست .با توجه به تصویر شما چند دوره انجام روزانه،هفتگی و ماهانه رو تعریف کردی به نظر من به جای انتخاب دوره از مقدار عددی (روز )برای سرویس PM استفاده کن که انعطاف پذیری بیشتری به برنامه شما میدهد.نکته دیگه ،لازم به ذخیره سازی تمام تاریخ های سرویس در دیتابیس نیست شما تاریخ شروع + (تعداد روز) فاصله زمانی سرویس کن تاریخ سرویس بعدی بدست میاد مجدد تاریخ سرویس بعدی را با فاصله زمانی(تعداد روز) جمع بزنی تاریخ سرویس بعدی آن بدست میاد.میتونی به همین شیوه یه تقویم سرویس ایجاد کنی.

    تویه جدول م چه چیزهای رو نگه دارم ؟ و بعد اینکه اگه اون کار انجام شد و من خواسته باشم که تاییدیه های روی اون کار داشته باشم چی میشه ؟

  18. #18
    مدیر بخش آواتار ژیار رحیمی
    تاریخ عضویت
    مهر 1386
    محل زندگی
    تهران
    پست
    1,095

    نقل قول: طراحی تقویم برای برنامه PM

    دوست گرامی شما در بالا توضیح دادی دوره های روزانه ،هفتگی و ماهانه ،بر اساس مطالب قبلی راهنمایی صورت گرفت الان میپرسی اگه یکشنبه و سه شنبه باشه چطور ممکنه. با شرایط جدید شما دو نوع سرویس دوره ای تصاعدی(فاصله زمانی بین سرویس ها مشخص و عددی ثابت) و سرویس دوره ایی غیر تصاعدی(فاصله زمانی بین سرویس ها عدد ثابتی نیست) در اینصورت باید به ازای یک هفته این روزها رو ذخیره کنی و برای هفته های بعدی از این تاریخ ها برای بدست آوردن تاریخ بعدی استفاده کنی.الان میدونم پست بعدی شما اینه این سرویس غیر تصاعدی رو چطور پیاده سازی کنم
    First,solve the problem then write the code

  19. #19
    مدیر بخش آواتار ژیار رحیمی
    تاریخ عضویت
    مهر 1386
    محل زندگی
    تهران
    پست
    1,095

    نقل قول: طراحی تقویم برای برنامه PM

    نقل قول نوشته شده توسط jafarpalideh مشاهده تاپیک
    تویه جدول م چه چیزهای رو نگه دارم ؟ و بعد اینکه اگه اون کار انجام شد و من خواسته باشم که تاییدیه های روی اون کار داشته باشم چی میشه ؟
    شما برنامه نویس هستی باید خودت سیستم رو تحلیل کنی.اول کامل سیستم رو تحلیل کن تمام نیازمندیای سیستم رو مشخص کن سپس بر اساس تحلیل بدست امده دیتابیس رو بساز سپس شروع به کد نویسی کن. موفق باشی.
    First,solve the problem then write the code

  20. #20

    نقل قول: طراحی تقویم برای برنامه PM

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

    رحیمی عزیز دعوامون نکن . بزار رویه دانش برنامه نویسی کم بنده .
    اگر میتونی یا واستون مقدوره یه نمونه کد بزار که چطور میتونم مثلا واسه ی 100 تا دستگاه که رو هر کدوم 70 نوع سرویس مختلف با دورهای مختلفه و الان تاریخ سرسیدشه رو بفهمم .

  21. #21

    نقل قول: طراحی تقویم برای برنامه PM

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

    دقیقا مشکل بنده کدنویسی اینه که چطور میتونم مثلا واسه ی 100 تا دستگاه که رو هر کدوم 70 نوع سرویس مختلف با دورهای مختلفه و الان تاریخ سرسیدشه رو بفهمم .

  22. #22
    مدیر بخش آواتار ژیار رحیمی
    تاریخ عضویت
    مهر 1386
    محل زندگی
    تهران
    پست
    1,095

    نقل قول: طراحی تقویم برای برنامه PM

    دوست عزیز وظیفه ما راهنمایی دیگر دوستان در حد دانش و تجربه خودمان هست.خدای ناکرده قصد ناراحتی و دلخوری دوستان را نداریم .اگر شما چنین برداشتی از پست من کردی من از شما عذرخواهی میکنم.
    First,solve the problem then write the code

  23. #23

    نقل قول: طراحی تقویم برای برنامه PM

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

  24. #24

    نقل قول: طراحی تقویم برای برنامه PM

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

  25. #25
    کاربر دائمی آواتار ASKaffash
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    2,427

    نقل قول: طراحی تقویم برای برنامه PM

    سلام
    معماری جدول شما پاسخگوی تمام شرایط نیست چرا از Job اسکیوال سرور ایده نمی گیرید به شکل ذیل نگاه کنید و معماریتان را عوض کنید :
    عکس های ضمیمه عکس های ضمیمه

  26. #26

    نقل قول: طراحی تقویم برای برنامه PM

    خوب من طراحی م رو به اینصورت تغییر دادم طبق گفته ی آقای ASKaffash
    حالا یه سوال :
    1 – حالا فکر کنیم که 10 تا ماشین داریم با 15 کار مختلف بر روی اونها یعنی گرید من 150 تا سطر داره .
    چه کدی باید بزنم واسه به دست آوردن تاریخ سر رسید وظیفه نسبت به تاریخ جاری ؟ من تاریخ رو تویه دیتابیس به صورت شمسی و varchar (10) نگه میدارم .




    Tarrahi1.jpg

  27. #27
    کاربر دائمی آواتار رامین مرادی
    تاریخ عضویت
    اردیبهشت 1389
    محل زندگی
    آذربایجان
    پست
    1,961

    نقل قول: طراحی تقویم برای برنامه PM

    خب تو شرطتون بنویسید لیست اونایی رو بده که تاریخ امروز =تاریخ سررسید

  28. #28
    کاربر دائمی آواتار ASKaffash
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    2,427

    نقل قول: طراحی تقویم برای برنامه PM

    سلام
    در گرید نمایش داده شده ستون آخرین عملیات انجام شده روی ماشین در هر ردیف گرید کدام است؟

  29. #29

    نقل قول: طراحی تقویم برای برنامه PM

    نقل قول نوشته شده توسط رامین مرادی مشاهده تاپیک
    خب تو شرطتون بنویسید لیست اونایی رو بده که تاریخ امروز =تاریخ سررسید
    خوب مشکل من هم همین فهمیدن تاریخ سررسیده .

  30. #30

    نقل قول: طراحی تقویم برای برنامه PM

    نقل قول نوشته شده توسط ASKaffash مشاهده تاپیک
    سلام
    در گرید نمایش داده شده ستون آخرین عملیات انجام شده روی ماشین در هر ردیف گرید کدام است؟
    آخرین کار رو نیاوردم . اون رو تویه جدول دیگه ای نگه میدارم .
    این جدول فقط واسه به دست آوردن تاریخ سررسیده وظیفه س .

  31. #31
    کاربر دائمی آواتار ASKaffash
    تاریخ عضویت
    اردیبهشت 1387
    محل زندگی
    تهران
    پست
    2,427

    نقل قول: طراحی تقویم برای برنامه PM

    سلام
    نوشتن این کوئری بدون آن فیلد اشتباه است چرا ؟ چون :
    فکر کنید امروز 3/7/96 است و یک فعالیت برای ماشینی بین 1/7/96 تا 29/12/96 تعریف شده است که قرار است یک روز در میان انجام شود حال برنامه شما می خواهد زمان بعدی فعالیت را برای این ماشین استخراج کند آیا نباید بداند فعالیت قبلی کی انجام شده است ؟ (فرض به هر دلیلی به علت بی نظمی /... عملیات قبلی در 2/7/96 انجام شده است)

  32. #32

    نقل قول: طراحی تقویم برای برنامه PM

    نقل قول نوشته شده توسط ASKaffash مشاهده تاپیک
    سلام
    نوشتن این کوئری بدون آن فیلد اشتباه است چرا ؟ چون :
    فکر کنید امروز 3/7/96 است و یک فعالیت برای ماشینی بین 1/7/96 تا 29/12/96 تعریف شده است که قرار است یک روز در میان انجام شود حال برنامه شما می خواهد زمان بعدی فعالیت را برای این ماشین استخراج کند آیا نباید بداند فعالیت قبلی کی انجام شده است ؟ (فرض به هر دلیلی به علت بی نظمی /... عملیات قبلی در 2/7/96 انجام شده است)
    خوب امکان داره اون فعالیت انجام نشده باشه
    برای سر رسید وظیفه تاریخ روز مهمه یا بهتر بگم تاریخی که میخوایم گزارش بگیریم که چه وظایفی بایستی انجام بشه.
    انجام شدن وظیفه یا انجام نشدنش میره تو فاز بعدی.

  33. #33

    نقل قول: طراحی تقویم برای برنامه PM

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

  34. #34
    کاربر دائمی آواتار حسین.کاظمی
    تاریخ عضویت
    مرداد 1392
    محل زندگی
    Microsoft Visual Studio
    پست
    652

    نقل قول: طراحی تقویم برای برنامه PM

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

  35. #35

    نقل قول: طراحی تقویم برای برنامه PM

    نقل قول نوشته شده توسط حسین.کاظمی مشاهده تاپیک
    سلام
    دوست عزیز دقیقا مشکل شما چیه؟
    به دست آوردن تاریخ سر رسید وظیفه .

  36. #36

    نقل قول: طراحی تقویم برای برنامه PM

    نقل قول نوشته شده توسط jafarpalideh مشاهده تاپیک
    خوب من طراحی م رو به اینصورت تغییر دادم طبق گفته ی آقای ASKaffash
    حالا یه سوال :
    1 – حالا فکر کنیم که 10 تا ماشین داریم با 15 کار مختلف بر روی اونها یعنی گرید من 150 تا سطر داره .
    چه کدی باید بزنم واسه به دست آوردن تاریخ سر رسید وظیفه نسبت به تاریخ جاری ؟ من تاریخ رو تویه دیتابیس به صورت شمسی و varchar (10) نگه میدارم .




    Tarrahi1.jpg
    طبق تصویر . اگه روز هفته باشه . یا جمع تاریخ اول باضافه ی دوره ی کاری و مقایسه با تاریخ روز

  37. #37
    کاربر دائمی
    تاریخ عضویت
    اردیبهشت 1390
    محل زندگی
    چند قدم اون ور تر
    پست
    1,731

    نقل قول: طراحی تقویم برای برنامه PM

    سلام
    شما بیا و از تاریخ میلادی استفاده کن! حالا برای اضافه کردن ماه و روز به تاریخ از تابع DateAdd استفاده کن. و نتیجه رو با تاریخ روز مقایسه کن:
    SELECT date, DATEADD(day, 1, date) AS DateAdd from tbl where DATEADD(day, 1, date)='2017-09-28'

    برای روزهای هفته هم که امروز مشخصه "چهارشنبه" است پس باید Wed رو جستجو کنی. در آخر اینکه باید یه شرط هم بنویسی که تاریخی که از DateAdd به دست اومد از تاریخ انتهای دوره بیشتر نشه.
     SELECT date from tbl where DATEADD(day, 3, date)='2017-09-30' AND DATEADD(day, 3, date)<'2017-10-01'


    البته طبق گفته دوستمون باید آخرین تاریخی که سرویس انجام شده رو هم ذخیره کنی.

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

    ***********************
    ویرایش:

    در مجموع با 2 تا OR میشه کوئری رو نوشت
    SELECT * from tbl where DATEADD(DAY, periodDay, lastDate)='2017-10-28' AND DATEADD(DAY, periodDay,  lastDate)<DateEnd OR DATEADD(MONTH, periodMonth,  lastDate)='2017-10-28' AND DATEADD(MONTH, periodMonth,  lastDate)<DateEnd OR Thu='true' AND '2017-09-28'<DateEnd
    آخرین ویرایش به وسیله Mahmoud Zaad : پنج شنبه 06 مهر 1396 در 08:46 صبح دلیل: نرسیدن خون به مغز در پاسخ قبلی ☺

  38. #38

    نقل قول: طراحی تقویم برای برنامه PM

    نقل قول نوشته شده توسط Mahmoud.Afrad مشاهده تاپیک
    طبق عکسی که گذاشتید
    یک جدول برای نام و مشخصات دستگاه
    یک جدول برای مشخصات PM
    یک جدول برای دوره انجام
    یک جدول برای ثبت سرویس شامل تاریخ شروع، تاریخ پایان، کد دستگاه، کد PM، کد دوره انجام.(به نظر من نیازی به ذخیره همه تاریخ ها در همون ابتدا نیست.)

    برای کار با تاریخ از PersianCalendar استفاده کنید
                //example
    string startDate = "1396/06/09";
    string endDate = "1399/12/30";

    CultureInfo farsiCultureInfo = new CultureInfo("fa-ir");
    DateTime dtStart = DateTime.Parse(startDate, farsiCultureInfo);

    DateTime nextDate1DayPeriod = farsiCultureInfo.Calendar.AddDays(dtStart, 1);
    DateTime nextDate1WeekPriod = farsiCultureInfo.Calendar.AddWeeks(dtStart, 1);
    DateTime nextDate1MonthPeriod = farsiCultureInfo.Calendar.AddMonths(dtStart, 1);


    اگر هم نیاز دارید همه تاریخها رو بدست بیارید با یک حلقه میتونید
    مثلا دوره های یک هفته ای
                //example
    string startDate = "1396/06/09";
    string endDate = "1399/12/30";

    CultureInfo farsiCultureInfo = new CultureInfo("fa-ir");
    DateTime dtStart = DateTime.Parse(startDate, farsiCultureInfo);
    DateTime dtEnd = DateTime.Parse(endDate, farsiCultureInfo);

    List<DateTime> dates = new List<DateTime>();
    for (DateTime nextDate = dtStart; nextDate < dtEnd; nextDate = farsiCultureInfo.Calendar.AddWeeks(nextDate, 1))
    {
    dates.Add(nextDate);
    }

    listBox1.DataSource = dates;
    من وقتی میام و داده ها رو وارد دیتابیس میکنم با AddDay با تاریخهای 1396/07/31 یا مثلا 1396/08/31 سیو میشه !!!
    مشکل کجاست؟

  39. #39

    نقل قول: طراحی تقویم برای برنامه PM

    من با این کد داده هارو Insert میکنم .


    if (radioButton1.Checked == true)
    {
    string PreventiveId = dataGridView1.CurrentRow.Cells["PreventiveId"].Value.ToString();
    int period = Convert.ToInt32(dataGridView1.CurrentRow.Cells["PeriodDay"].Value.ToString());
    string startDate = txtDateBegin.Text;
    string endDate = txtDateEnd.Text;
    CultureInfo farsiCultureInfo = new CultureInfo("fa-ir");
    DateTime dtStart = DateTime.Parse(startDate, farsiCultureInfo);
    DateTime dtEnd = DateTime.Parse(endDate, farsiCultureInfo);
    sconnection = new SqlConnection();
    sconnection.ConnectionString = PM.Properties.Settings.Default.ConPM;
    if (sconnection.State == ConnectionState.Closed)
    {
    sconnection.Open();
    }
    for (DateTime nextdate = dtStart; nextdate <= dtEnd; nextdate = farsiCultureInfo.Calendar.AddDays(nextdate, period))
    {
    string Insert2 = "Insert into TblPreventiveDay values ('{0}','{1}','{2}','{3}')";
    string nnextdate = string.Format("{0:yyyy/MM/dd}", nextdate);
    Insert2 = string.Format(Insert2, PreventiveId, nnextdate, 0, 0);
    Function.DoDml2(Insert2,sconnection);
    }
    sconnection.Close();
    MessageBox.Show("پیشگیرانه طی دوره روزانه ایجاد شد");


    }






    و




    public static void DoDml2(string Query,SqlConnection con)
    {
    SqlCommand cmd = new SqlCommand(Query, con);
    cmd.ExecuteNonQuery();


    }




    333.jpg

تاپیک های مشابه

  1. لزوم فراگیری طراحی سایت برای برنامه نویس وب
    نوشته شده توسط FM.ALPACHINO در بخش طراحی وب (Web Design)
    پاسخ: 3
    آخرین پست: دوشنبه 24 آبان 1389, 13:49 عصر
  2. لزوم فراگیری طراحی طراحی سایت برای برنامه نویس وب
    نوشته شده توسط FM.ALPACHINO در بخش ASP.NET Web Forms
    پاسخ: 7
    آخرین پست: یک شنبه 23 آبان 1389, 21:21 عصر
  3. خبر: طراحی Skin برای برنامه
    نوشته شده توسط Mohsen_Fotouhi در بخش C#‎‎
    پاسخ: 1
    آخرین پست: دوشنبه 02 شهریور 1388, 00:51 صبح

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •