سلام خدمت دوستان و اساتید گرامی.من یک فرم توی برنامه م دارم که برای تخصیص پرونده به کارشناسای مورد نظرم طراحی کردم.سوالی که داشتم اینه که وقتی پرونده ای رو میخوام اختصاص بدم مبلغ رو که وارد میکنم و ذخیره میشه چطوری توی سرچ وقتی که جستجو رو انجام میدم مجموع همه دستمزد ها برای کارشناس رو میتونم نشون بدم و بر اساس بیشترین دستمزد لیست کارشناسان رو مرتب کنم ؟کلید اصلی جدول کارشناسانم شماره پرونده کارشناس هست که با fileNo ذخیره کردم
به طور کلی وقتی شما اطلاعات رو از دیتابیس می خونید و میخواید توی DataGridView نمایش بدید از یک حلقه استفاده می کنید. در این حلقه هر ستونی که بخواید میتونید مجموع مقادیرش رو بدست بیارید. به عنوان مثال کد زیر رو در نظر بگیرید
private void ShowUserInfo(string SearchStatment)
{
var query = database.Database.SqlQuery<Product>("Select * From Product);
var result = query.ToList();
if (result.Count != 0)
{
long Total_Price = 0;
for (int I = 0; I <= result.Count - 1; I++)
{
DataGridView1.Rows[I].Cells["ID"].Value = result[I].ID;
DataGridView1.Rows[I].Cells["Price"].Value = result[I].Price;
DataGridView1.Rows[I].Cells["ProductName"].Value = result[I].ProductName;
Total_Price += result[I].Price;
}
}
در کد بالا اطلاعات را از دیتابیس خوندیم و در DataGridView1 نمایش میدیم. یک متغیر به نام Total_Price هم تعریف کردیم که در هر باز اجرای حلقه مقدار Price رو با مقادیر قبلی جمع می کنه و مقدار کلی رو بدست میاره.
انتخاب چند سطر دلخواه توسط چک باکس در DataGrid و محاسبه جمع سطرهای انتخاب شده
در این فرم ما پرونده رو انتخاب کردیم و باید کارشناس مورد نظر رو انتخاب کنیم.لیست کارشناسان در دیتاگرید نمایش داده میشن و بر اساس رشته و صلاحیت و... جستجو انجام میشه و وقتی که جستجو انجام شد در دیتاگرید باید کارشناسی که کمترین دستمزد رو تا حالا دریافت کرده انتخاب کنیم و دکمه انتخاب رو بزنیم تا به مرحله بعد بریم
در این مرحله اطلاعات گرفته شده از دیتاگرید نمایش داده میشه و فقط فیلد مبلغ قرارداد خالی هست که باید مبلغ وارد بشه و در پایگاه داده ذخیره بشه.
حالا من سوالی که دارم این هست که چطور هر بار که مبلغ قرارداد رو وارد میکنیم با مقدار قبلیش جمع بشه و ذخیره بشه که توی سرچ بعدی مقدار جمع شده رو نمایش بده ؟
ستون های جدول کارشناس هم شامل شناسه (id)، شماره پرونده کارشناس،شماره پروانه کارشناس ، اطلاعات فردی ،شماره حساب و حوزه قضایی و... که توی عکس دوم میتونین تمام ستون ها رو مشاهده کنین
شما باید جدول مربوطه رو در واقع ویرایش کنید. به شکل زیر:
var query=(from t in databse.TableName where t.id == ExpertID select t).SingleOrDefault();
// database: نامی که برای مدل دیتابیست در نظر گرفتی
// TableName: نام جدول مورد نظر برای ذخیره اطلاعات
// ExpertID: آیدی کارشناسی که قراره اطلاعات براش ثبت انجام شه و میتونی به شکل زیر با کلیک روی هر ردیف از دیتاگرید ویو بدست بیاریش:
int ExpertID = DataGridView.SelectedRows.Cells["id"].Value;
دستور برای ذخیره و جمع با مبلغ قبلی:
query.Price += txtPrice.text;
database.SaveChange();
// price: نام فیلد مبلغ در دیتابیس
// همچنین با توجه به نوع داده ای که در دیتابیس در نظر گرفتی برای جمع مبالغ باید تبدیل های مورد نیاز رو انجام بدی.
===
در کل دستورات لازم به شکل زیر میشه که باید در رویداد کلیک دکمه یا ... مورد نظر فراخوانی شوند:
}
int ExpertID = DataGridView.SelectedRows.Cells["id"].Value;
var query=(from t in databse.TableName where t.id == ExpertID select t).SingleOrDefault();
query.Price += txtPrice.text;
database.SaveChange();
{
===
همچنین برای جلوگیری از بوجود اومدن خطا در فیلد قیمت در ابتدا باید یک مقدار 0 داشته باشید.
===
اگر جایی رو متوجه نشدین بگین تا بیشتر توضیح بدم.
البته روش بهتر و اصولی این هست که مبالغی که هر سری وارد میشه در یک جدول ذخیره شه و برای نمایش همونجور که دوستمون در بالا گفتن عمل کنید.
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1160
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
597
- پاسخ :
1
|
تاریخ :
1403/07/13
- ساعت :
12:06:00 PM
- بازدید :
349
- پاسخ :
1
|
تاریخ :
1403/06/24
- ساعت :
08:52:00 PM
- بازدید :
318
- پاسخ :
1
|
تاریخ :
1398/09/14
- ساعت :
01:58:00 PM
- بازدید :
4269
- پاسخ :
1
|
تاریخ :
1403/05/16
- ساعت :
05:43:00 AM
- بازدید :
662
- پاسخ :
0
|
تاریخ :
1398/09/05
- ساعت :
06:04:00 PM
- بازدید :
3172
- پاسخ :
2
|
تاریخ :
1398/09/08
- ساعت :
11:38:00 PM
- بازدید :
3251
- پاسخ :
1
|
تاریخ :
1403/04/12
- ساعت :
07:27:00 PM
- بازدید :
658
- پاسخ :
0
|
تاریخ :
1403/01/29
- ساعت :
08:08:00 AM
- بازدید :
688
- پاسخ :
4
|
تاریخ :
1401/02/24
- ساعت :
02:17:00 PM
- بازدید :
2011
- پاسخ :
1
|
تاریخ :
1403/08/29
- ساعت :
07:15:00 PM
- بازدید :
76
- پاسخ :
0
|
تاریخ :
1403/08/18
- ساعت :
10:40:00 AM
- بازدید :
109
- پاسخ :
0
|
تاریخ :
1402/07/23
- ساعت :
04:01:00 PM
- بازدید :
1033
- پاسخ :
1
|
تاریخ :
1403/05/30
- ساعت :
09:22:00 AM
- بازدید :
429
- پاسخ :
1
|
تاریخ :
1402/08/01
- ساعت :
06:25:00 PM
- بازدید :
930
- پاسخ :
1
|
تاریخ :
1402/08/16
- ساعت :
10:38:00 AM
- بازدید :
1356
- پاسخ :
1
|
تاریخ :
1398/08/17
- ساعت :
01:27:00 AM
- بازدید :
4798
- پاسخ :
1
|
تاریخ :
1402/09/08
- ساعت :
07:34:00 PM
- بازدید :
1160
- پاسخ :
1
|
تاریخ :
1402/09/21
- ساعت :
11:10:00 PM
- بازدید :
597
- پاسخ :
1
|