PDA

View Full Version : قفل کردن یک ایدی (کد) برای زمان مشخص- برای برنامه درخواست کالا



Helpco
یک شنبه 22 مهر 1397, 11:49 صبح
سلام
دوستان من دارم یک برنامه درخواست کلا
الا توی این بخش با مشکل برخورد کردم

که اگه برفرض مثال کابری از انبار درخواست دریل انجام داد وتحویل نگرفت

بصورت خودکار تا 72 ساعت کسی نتونه درخواست اون دریل بده و بعد از 72 ساعت درخواست خود کار کنسل بشه و شخص دیگری بتون درخواست بده
و طی این مدت اگه کسی درخواست داده بگه فلان شخص درخواست تحویل داده

رامین مرادی
یک شنبه 22 مهر 1397, 18:48 عصر
یه جدول ایجاد کنید و کد کالا و شخص درخواست کننده و زمان درخواست رو نگه دارید توش
هر موقع درخواست اون کالا شد برید جدول رو بررسی کنید ببینید این کالا تو اون لیست هست یا نه و همچنین زمانش از 72 ساعت گذشته یا نه. اگه هنوز 72 ساعت نگذشته بود بگید که این کالا درخواستی داره توسط فلان شخص . اگه هم زمانش گذشته بود اونو از جدول حذف کنید و درخواست جدید رو بجاش ثبت کنید.

Helpco
دوشنبه 23 مهر 1397, 07:37 صبح
یه جدول ایجاد کنید و کد کالا و شخص درخواست کننده و زمان درخواست رو نگه دارید توش
هر موقع درخواست اون کالا شد برید جدول رو بررسی کنید ببینید این کالا تو اون لیست هست یا نه و همچنین زمانش از 72 ساعت گذشته یا نه. اگه هنوز 72 ساعت نگذشته بود بگید که این کالا درخواستی داره توسط فلان شخص . اگه هم زمانش گذشته بود اونو از جدول حذف کنید و درخواست جدید رو بجاش ثبت کنید.

میشه کد چک کردن 72 ساعت را برام قرار بدید که ایدی و تاریخ چک کن و بگه 72 ساعت شده یا نه

رامین مرادی
دوشنبه 23 مهر 1397, 08:33 صبح
سلام
شرمنده یه کم عجله ای نوشتم.من کدهای اتصال رو هم نوشتم که خودتون برحسب سبک نوشتنتون اصلاح کنید. روند کلی کار رو نوشتم. مطمئنم بهتر از این روش هم هست که اگه اساتید مایل باشن میتونن راهنمایی کن و اشکالات منم گوشزد بکنن.


private void btnOK_Click(object sender, EventArgs e)
{


string sql = "select Id,DateTime From TempTbl Where Id=1";
DataTable dt = Query(sql);
//در صورتی که ابزار ثبت شده باشد
if(dt.Rows.Count>0)
{
//خواندن تاریخ از دیتاتیبل(تاریخ باید به صورت فرمت صحیح ذخیره شده باشد)
DateTime datetime = DateTime.Parse(dt.Rows[0]["DateTime"].ToString());
string id = dt.Rows[0]["id"].ToString();
DateTime now = DateTime.Now;

//کم کردن تاریخ ثبت شده از تاریخ میلادی
TimeSpan interval = now - datetime;
//در صورتی که هنوز 72 ساعت نگذشته باشد
if (interval.TotalHours < 72)
{
MessageBox.Show("این ابزار توسط : " + id + " به ثبت رسیده.");
}
//در صورتی که 72 ساعت گذشته باشد
else
{
MessageBox.Show("امکان ثبت وجود دارد");
//کد های حذف

}
}
//در صورتی که ابزار ثبت نشده باشد
else
{
MessageBox.Show("امکان ثبت وجود دارد");
}




}
private SqlConnection cn;
public void Connect()
{
SqlConnectionStringBuilder s = new SqlConnectionStringBuilder();
s.DataSource = "127.0.0.1";
s.InitialCatalog = "testdb";
cn = new SqlConnection(s.ConnectionString);
cn.Open();
}
public DataTable Query(String sql)
{
Connect();
DataTable Dt = new DataTable();
SqlDataAdapter Da = new SqlDataAdapter(sql, cn);
Dt.Clear();
Da.Fill(Dt);

return Dt;
}



جدولتون هم اون ایدی ابزار باید به صورت کلید باشه تا امکان ثبت تکراری وجود نداشته باشه.

Helpco
شنبه 28 مهر 1397, 14:55 عصر
دوست خوب تاریخ توسط کابر انتخاب میشه مثلان

دستگاه قبلان در تاریخ 1397/07/20 توسط شخصی رزو شده
حالا شخصی برای 1397/07/21 می خواهد رزو کن بایاید سیستم بهش بگه امکان رزرو وجود نداره
و در تاریخ 1397/07/23 مجدد تلاش نماید

نکته مهم اینکه قبل تاریخ 1397/07/20 هم نتونه ثبت کن که بگه من زوتر رزو کردم

رامین مرادی
شنبه 28 مهر 1397, 20:54 عصر
دوست خوب تاریخ توسط کابر انتخاب میشه مثلان

دستگاه قبلان در تاریخ 1397/07/20 توسط شخصی رزو شده
حالا شخصی برای 1397/07/21 می خواهد رزو کن بایاید سیستم بهش بگه امکان رزرو وجود نداره
و در تاریخ 1397/07/23 مجدد تلاش نماید

نکته مهم اینکه قبل تاریخ 1397/07/20 هم نتونه ثبت کن که بگه من زوتر رزو کردم

خب دوست عزیز تاریخ رو از کاربر بگیرید این که کاری نداره. در ضمن یه مقایسه هم بکن که ساعت کمتر از 0 نیاد اگه اومد نشون دهنده تاریخ قبل از تاریخ ثبت شده هست.

Helpco
یک شنبه 29 مهر 1397, 08:35 صبح
خب دوست عزیز تاریخ رو از کاربر بگیرید این که کاری نداره. در ضمن یه مقایسه هم بکن که ساعت کمتر از 0 نیاد اگه اومد نشون دهنده تاریخ قبل از تاریخ ثبت شده هست.
ممنون بابت کمک ممکن یک کد بزارید برای درک بهتر

رامین مرادی
دوشنبه 30 مهر 1397, 11:52 صبح
private void btnOK_Click(object sender, EventArgs e)
{
string sql = "select Id,DateTime From TempTbl Where Id=1";
DataTable dt = Query(sql);
//در صورتی که ابزار ثبت شده باشد
if (dt.Rows.Count > 0)
{
//خواندن تاریخ از دیتاتیبل(تاریخ باید به صورت فرمت صحیح ذخیره شده باشد)
DateTime datetime = DateTime.Parse(dt.Rows[0]["DateTime"].ToString());
string id = dt.Rows[0]["id"].ToString();
DateTime now =(DateTime) txtDate.Text;//دریافت تاریخ توسط کاربر


//کم کردن تاریخ ثبت شده از تاریخ میلادی
TimeSpan interval = now - datetime;
//در صورتی که هنوز 72 ساعت نگذشته باشد
if(interval.TotalHours < 0)
{
MessageBox.Show("شما نمیتوانید تاریخ قبل تر از تاریخ ثبت شده، ثبت نمایید.");


}
else if (interval.TotalHours < 72)
{
MessageBox.Show("این ابزار توسط : " + id + " به ثبت رسیده.");
}
//در صورتی که 72 ساعت گذشته باشد
else
{
MessageBox.Show("امکان ثبت وجود دارد");
//کد های حذف


}
}
//در صورتی که ابزار ثبت نشده باشد
else
{
MessageBox.Show("امکان ثبت وجود دارد");
}
}
private SqlConnection cn;
public void Connect()
{
SqlConnectionStringBuilder s = new SqlConnectionStringBuilder();
s.DataSource = "127.0.0.1";
s.InitialCatalog = "testdb";
cn = new SqlConnection(s.ConnectionString);
cn.Open();
}
public DataTable Query(String sql)
{
Connect();
DataTable Dt = new DataTable();
SqlDataAdapter Da = new SqlDataAdapter(sql, cn);
Dt.Clear();
Da.Fill(Dt);


return Dt;
}