View Full Version : مانده گیری در datagridview در ستون مجزا
Iman7228
پنج شنبه 10 خرداد 1397, 03:47 صبح
سلام دوستان عزیز.
من اطلاعات را از دیتابیس میریزم داخل دیتا گرید، بعد میخوام ستون بدهکار و بستانکار را جمع و تفریق کنه و به ازای مبلغ در هر سطر، در ستون مانده نشون بده. مثل عکس ضمیمه شده
کسی هست تو این مورد کمک کنه؟
int total = 0;
int bed, bes;
for (int j = 0; j < dataGridViewX1.Rows.Count; j++)
{
bed = Convert.ToInt32(dataGridViewX1.Rows[j].Cells["bardasht"].Value);
bes = Convert.ToInt32(dataGridViewX1.Rows[j].Cells["variz"].Value);
total += bes - bed;
dataGridViewX1.Rows[j].Cells["mandeh"].Value = total;
}
148301
رامین مرادی
پنج شنبه 10 خرداد 1397, 09:26 صبح
خب الان این کدتون خطا داره یا چی؟ اگه خطا داره خطا چیه؟:متفکر:
Iman7228
پنج شنبه 10 خرداد 1397, 15:21 عصر
خب الان این کدتون خطا داره یا چی؟ اگه خطا داره خطا چیه؟:متفکر:
خطایی نداره و کار میکنه. منتها باید یه جور صورتحساب درست کنم.یعنی موجودی سطر قبلی با ستون بدهکار یا بستانکار سطر بعدیش جمع بشه.
مثل زیر :
ردیف ----- بدهکار --------بستانکار --------موجودی
1 ----------- 0---------- 10000 ------------10000
2 ----------2000 -----------0 ---------------8000
3---------- 1000-----------0 ---------------7000
موجودی ردیف 1 = بستانکار - بدهکار
موجودی ردیف2 = موجودی ردیف قبل+بستکار ردیف فعلی - بدهکار ردیف فعلی
موجودی ردیف 3= موجودی ردیف قبل+بستکار ردیف فعلی - بدهکار ردیف فعلی
.
.
. الی آخر
رامین مرادی
پنج شنبه 10 خرداد 1397, 15:37 عصر
خب اینکه کاری نداره
int sum = 0;
for (int i = 0; i < dgv1.RowCount; i++)
{
sum+=int.Parse(dgv1.Rows[i].Cells["Bes"].Value.ToString())-int.Parse(dgv1.Rows[i].Cells["Bed"].Value.ToString());
dgv1.Rows[i].Cells["Total"].Value = sum.ToString();
}
MessageBox.Show(sum.ToString());
تست کنید. نتیجه رو بگید.
Iman7228
پنج شنبه 10 خرداد 1397, 15:41 عصر
خب اینکه کاری نداره
int sum = 0;
for (int i = 0; i < dgv1.RowCount; i++)
{
sum+=int.Parse(dgv1.Rows[i].Cells["Bes"].Value.ToString())-int.Parse(dgv1.Rows[i].Cells["Bed"].Value.ToString());
dgv1.Rows[i].Cells["Total"].Value = sum.ToString();
}
MessageBox.Show(sum.ToString());
تست کنید. نتیجه رو بگید.
شما الان نتیجه تفریق دوتا ستون رو میگیری. ولی با مانده ی سطر قبلی جمع نمیکنی که؟!
تو مثالی که زدم ببینید
رامین مرادی
پنج شنبه 10 خرداد 1397, 15:44 عصر
شما الان نتیجه تفریق دوتا ستون رو میگیری. ولی با مانده ی سطر قبلی جمع نمیکنی که؟!
تو مثالی که زدم ببینید
پس این چیه؟ sum+= !!
:چشمک:
متوجه منظورتون شدم . منظورتون این بود که با اون ستون total جمع نزدم.یه متغییر sumنوشتم و تو اون ذخیره کردم.
رامین مرادی
پنج شنبه 10 خرداد 1397, 15:51 عصر
شما الان نتیجه تفریق دوتا ستون رو میگیری. ولی با مانده ی سطر قبلی جمع نمیکنی که؟!
تو مثالی که زدم ببینید
اینم همونی که مد نظر شما بود
for (int i = 0; i < dgv1.RowCount; i++)
{
if(i==0)
dgv1.Rows[i].Cells["Total"].Value=int.Parse(dgv1.Rows[i].Cells["Bes"].Value.ToString())-int.Parse(dgv1.Rows[i].Cells["Bed"].Value.ToString());
else
dgv1.Rows[i].Cells["Total"].Value=int.Parse(dgv1.Rows[i-1].Cells["Total"].Value.ToString())+int.Parse(dgv1.Rows[i].Cells["Bes"].Value.ToString())-int.Parse(dgv1.Rows[i].Cells["Bed"].Value.ToString());
}
MessageBox.Show(sum.ToString());
Iman7228
پنج شنبه 10 خرداد 1397, 16:02 عصر
ممنونم.
چون دیتاگریدویوی من حالت افزایشی داشت و جدیدترین تراکنش در اولین سطر قرار میگرفت، بنابراین من کد رو به صورت زیر اصلاح کردم.
int sum = 0;
for (int i = dataGridViewX1.RowCount-1; i >=0 ; i--)
{
sum += int.Parse(dataGridViewX1.Rows[i].Cells["varizi"].Value.ToString()) - int.Parse(dataGridViewX1.Rows[i].Cells["bardashti"].Value.ToString());
dataGridViewX1.Rows[i].Cells["mandeh"].Value = sum.ToString();
}
نمونه ی دوم :
for (int i = dataGridViewX1.RowCount-1; i >= 0; i--)
{
if (i==dataGridViewX1.RowCount-1)
dataGridViewX1.Rows[i].Cells["mandeh"].Value = int.Parse(dataGridViewX1.Rows[i].Cells["varizi"].Value.ToString()) - int.Parse(dataGridViewX1.Rows[i].Cells["bardashti"].Value.ToString());
else
dataGridViewX1.Rows[i].Cells["mandeh"].Value = int.Parse(dataGridViewX1.Rows[i + 1].Cells["mandeh"].Value.ToString()) + int.Parse(dataGridViewX1.Rows[i].Cells["varizi"].Value.ToString()) - int.Parse(dataGridViewX1.Rows[i].Cells["bardashti"].Value.ToString());
}
شاید به درد کسی خورد. ممنون ازینکه پاسخگو بودی دوست من.
vBulletin® v4.2.5, Copyright ©2000-1403, Jelsoft Enterprises Ltd.