PDA

View Full Version : برنامه زمان بندی



Mohsen82
شنبه 05 فروردین 1391, 11:28 صبح
سلام.سال نو مبارک.
من می خوام یک برنامه زمانبندی بنویسم به این ترتیب که:
کاربر ساعات کاری روزهای هفته رو وارد می کنه مثلا شنبه از
8 صبح تا 12 و 14 بعد از ظهر تا 20 شب و یکشنبه 10 صبح تا 15
بعد موقعی که خواست برنامه ریزی بکنه نرم افزار این ساعات رو بهش نشون بده
و اگر زمانی توی این ساعات رو به کاری اختصاص داد برنامه زمان تخصیص داده شده رو
دیگه نشون نده یا اشغال نشون بده. اگر ممکنه راهنمایی بفرماید دیتا بیس رو چه طور
طراحی بکنم و sp رو چه طور بنویسم.
ممنون.

mahan.2002
شنبه 05 فروردین 1391, 21:09 عصر
سلام
دوست عزیز کلا طرح شما خیلی روشن نیست ...
ولی با این حال طرحی که بنظرم میرسه اینکه شما داخل یک فرم روز های و ساعت های هفته رو بگیرید .. داخل یه جدول با یک کوئری مناسب زمان و روز همان، روز رو مشخص کرده بر طبق اون روز های بعدی و برای هر روز یک رکورد داخل جدول اینسرت کنه با توجه به نظر کاربر مثلا برای یک ماه یک سال .. و به ازائه هر برنامه ای که کاربر برای هر روز ارائه میکنه یک رکورد داخل به جدول برنامه اینسرت کنید. جداولتون رو میتونید به این صورت در نظر بگیرید ..

جدول روزانه : ( سریال روز ، نام روز هفته ( شنبه /یک شنبه ، ...) ، تاریخ )
جدول برنامه ( سریال روز ( کلید خارجی ) ، موضوع برنامه ، توضیحات ، ساعت شروع ، ساعت پایان ، ساعت و روز ایجاد برنامه ( اختیاری ))

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

سال نو برای شما مم مبارک..

Galawij
شنبه 05 فروردین 1391, 23:19 عصر
من می خوام یک برنامه زمانبندی بنویسم به این ترتیب که:
کاربر ساعات کاری روزهای هفته رو وارد می کنه مثلا شنبه از
8 صبح تا 12 و 14 بعد از ظهر تا 20 شب و یکشنبه 10 صبح تا 15
بعد موقعی که خواست برنامه ریزی بکنه نرم افزار این ساعات رو بهش نشون بده
و اگر زمانی توی این ساعات رو به کاری اختصاص داد برنامه زمان تخصیص داده شده رو
دیگه نشون نده یا اشغال نشون بده. اگر ممکنه راهنمایی بفرماید دیتا بیس رو چه طور
طراحی بکنم و sp رو چه طور بنویسم.
سلام دوست عزیز، سال نو شما هم به مبارکی و سلامتی.
شما می تونید یک جدول برای روزهای هفته در نظر بگیرید، یک جدول دیگر برای تایم های کاری و از یک جدول دیگر هم برای برنامه ریزی استفاده کنید، به این صورت که در جدول سوم از دو جدول قبلی کلید خارجی می گیرید و فیلدهای دیگر مثل تاریخ و شرح برنامه را اضافه کنید می تونید یک فیلد دیگر از نوع بیتی در نظر بگیرید که به محض اینکه برنامه ای برای زمان مشخصی تعیین شد، مقدار 1 بگیرد و در غیر این صورت 0.

Mohsen82
سه شنبه 08 فروردین 1391, 12:43 عصر
ممنون.
خوب اگر کاربر در یک روز مثلا بین ساعت 8 تا 12 زمان خالی داشت واز ساعت
9 تا 10 را به کاری اختصاص داد چطور زمانهای قبل و بعد از 9 تا 10 رو بهش
نشون بدم sp رو چطور بنویسم.
ممنون.

Galawij
سه شنبه 08 فروردین 1391, 17:33 عصر
خوب اگر کاربر در یک روز مثلا بین ساعت 8 تا 12 زمان خالی داشت واز ساعت
9 تا 10 را به کاری اختصاص داد چطور زمانهای قبل و بعد از 9 تا 10 رو بهش
نشون بدم sp رو چطور بنویسم.
خوب این هم خیلی راحت بدست می آید زمان هایی را نشان می دید که در جدول برنامه ریزی وجود ندارند(به عنوان زمان های بیکاری).Query اش به این صورت در میاد:
Select * From TbTimes where IDTime Not In(Select Id_Time From Tbplanning)

Mohsen82
سه شنبه 08 فروردین 1391, 19:34 عصر
ممنون.
یعنی می فرمایید توی جدول زمانها زمان رونیم ساعت نیم ساعت تقسیم
کنم و ای دی شو توی جدول برنامه ریزی استفاده کنم و زمانی که
اشغال شده رو فیلد اشغالش رو true بکنم درسته؟
لازم نیست با استفاده از دستورات sql زمانهارو از هم کم کنم؟
خوب اگر اینطور باشه برنامه هفتگی یا روزانه رو فقط به صورت مضربی
از نیم ساعت می تونم تنظیم کنم و خورده ندارم . خوب راه بهتری نیست
که محدودیت نداشته باشم؟
ممنون.

mahan.2002
چهارشنبه 09 فروردین 1391, 17:29 عصر
سلام
اصلان لازم نیست زمان رو تقسیم کنی شما زمان شروع و اتمام رو میدی کار های روزانه رو میدی .. بعد با یه کوئری روی دوتا جدول تعیین میکنی برنامه ریزی های رو نمایش بده که مثلا با کارهای کار های اختصاصی تداخل نداره ...

تونستم یه شبهه کوئری میزارم...

Mohsen82
چهارشنبه 09 فروردین 1391, 18:28 عصر
ممنون.
من می خوام همینطور که شما فرمودید عمل کنم.مثلا ساعت شروع زمان کاری و
زمان پایان رو هم بدم یعنی من توی این ساعات زمان دارم برای برنامه ریزی.
بعد اگر بین این شروع و پایان ، زمانی رو به کاری اختصاص دادم با درج شروع و پایان زمان آن
در یک کوئری این زمان اختصاص داده شده رو از زمان کاری کم کنه و زمان آزاد من برای
برنامه ریزی رو نمایش بده.
ممنون.

mahan.2002
چهارشنبه 09 فروردین 1391, 19:08 عصر
سلام
اینم تقربیا شبهه کد
یه توجهی به این بکن فکر خودت بتونی انجام بدی همون سوالی که کردی هم تو اخرین پستت اگه تونستم کنم رو اونم کار میکنم ...

SELECT dbo.barname.subject
FROM dbo.Roz INNER JOIN
dbo.Variz ON dbo.Roz.Id = dbo.ekhtesasi.Id_Roz INNER JOIN
dbo.barname ON dbo.Roz.Id = dbo.barnamre.IdUser
WHERE(ekhtesasi.timeS < barname.timeS and ekhtesasi.timeE < barname.timeS)
or
(barname.timeE < ekhtesasi.timeS and barname.timeE < barname.timeE)
or
(not ( barname.time.S<ekhtesasi.timeS and ekhtesasi.timeS<barname.timeE ))
or
(not ( barname.timeS< ekhtesasi.timeE and ekhtesasi.timeS<barname.timeE ))