PDA

View Full Version : سوال: محاسبه عدد در کادر متن و دتاگرید ویو با هم



davidrobert
یک شنبه 17 آذر 1392, 14:40 عصر
سلام و خسته نباشید من میخوام عما محاسبه بر روی دیتاگرید ویو انجام بدم برای کالا فروخته شده مثلاً وقتی میام کالا ها رو در دیتاگرید وارد میکنم که شامل هزینه ، تعداد و درصد تخفیف هستش که وقتی محاسبه کرد توی تا فیلد عمل محاسبه رو مریزه یک فیلد هزینه کل با تخفیف و دومی هم هزینه خالص بدون تخفیف رو محاسبه میکنه ولی ایرادی داره کدم که نوشتم درست عمل محاسبه رو انجام نمیده چون میخوام وقتی کامل محاسبه شد هزینه کل با تخفیف تو یک کادر متن بریزه و هزینه کل رو از هزینه مقدار از کادر متن کم کنه تا هزینه پرداختی و مانده معلوم بیشه ولی مشکلی که دارم نه عمل ضرب بین کالا و هزینه درست انجام میشه و نه هزینه کل تخفیف و هزینه پرداختی خوب محاسبه میشه این رو هم بگم اعداد سه رقم اعشار از هم جدا میشن. این هم کد های که نوشتم نه عمل ضرت درست انجام میشه و نه تخفیف در دیتاگرید ویو در کادر متن هم محاسبه رو خوب انجام نمیده.
این کد من برای محاسبه عدد بین فیلد ها با هم هم از روش int , double , float هم استفاده کردم جواب نداد هیچ کدم و درست محاسبه نکرد عدد رو.
private void DGV_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
//for (int i = 0; i < DGV.Rows.Count; i++)
//{
// object cost = DGV.Rows[i].Cells["ClmCost"].Value;
// object number = DGV.Rows[i].Cells["ClmNumber"].Value;
// object porcant = DGV.Rows[i].Cells["ClmPorcant"].Value;
// double acost = 0;
// double bnumber = 0;
// double cporcant = 0;
// if (cost != null)
// {
// acost = Double.Parse(cost.ToString());
// }
// if (number != null)
// {
// bnumber = Double.Parse(number.ToString());
// }
// if (porcant != null)
// {
// cporcant = Double.Parse(porcant.ToString());
// }
// DGV.Rows[i].Cells["ClmCostAll"].Value = acost*bnumber*100/cporcant;
// DGV.RefreshEdit();
//}
//for (int i = 0; i < DGV.Rows.Count; i++)
//{
// object cost=DGV.Rows[i].cel
//}

for (int i = 0; i < DGV.Rows.Count; i++)
{
object cost = DGV.Rows[i].Cells["ClmCost"].Value;
object number = DGV.Rows[i].Cells["ClmNumber"].Value;
object porcant = DGV.Rows[i].Cells["ClmPorcant"].Value;
int acost = 0;
int bnumber = 0;
int cPorcant = 0;
if (cost != null)
{
acost = Int32.Parse(cost.ToString());
}
if (number != null)
{
bnumber = Int32.Parse(number.ToString());
}
if (porcant != null)
{
cPorcant = Int32.Parse(porcant.ToString());
}
DGV.Rows[i].Cells["ClmTheNetCost"].Value = (bnumber * acost);
DGV.Rows[i].Cells["ClmCostAll"].Value = acost*bnumber-cPorcant;
}
int sum = 0;
for (int j = 0; j < DGV.Rows.Count; j++)
{
sum += Convert.ToInt32(DGV.Rows[j].Cells["ClmTheNetCost"].Value);

}
TxtTheNetCost.Text = sum.ToString();
int sum1 = 0;
for (int b = 0; b < DGV.Rows.Count; b++)
{
sum1 += Convert.ToInt32(DGV.Rows[b].Cells["ClmCostAll"].Value);

}
TxtCost.Text = sum1.ToString();
این هم کد سه قم اعشار جدا کردن هستش که مقدار عدد در کادر متن سه رقم جدا بیشن.
private void TxtCost_TextChanged(object sender, EventArgs e)
{
string str = TxtCost.Text;
double result = 0;
if (double.TryParse(str,out result))
{
TxtCost.Text = String.Format("{0:#,#.#}", result);
TxtCost.SelectionStart = str.Length + 1;
}
این کد هم برای محاسبه عدد در تکس باکس.
int n1, n2 = 0;
//if (int.TryParse(TxtTheRemaing.Text.Replace(",", ""), out n1))
// // if (int.TryParse(TxtTheRemaing.Text.Replace(",", ""), out n2))
//n1 = Int32.Parse(TxtCost.Text);
//n2 = Int32.Parse(TxtAPayment.Text);
//TxtTheRemaing.Text = (n2 - n1).ToString();
خواهش میکنم یکی کمک کنه تا بتونم اول هزینه تعداد رو درست با هم محاسبه کنم و بریزم داخل فیلد هزینه حالص و بار دوم هزینه ، تعداد و درصد تخفیف با هم محاسبه کنم و بریزم داخل فیلد هزینه کل با تخفیف و هزینه کل و پرداختی رو چطور محاسبه کنم که هزینه پرداختی از هیزنه کل کم بیشه ممنون میشم خیلی نیاز دارم به همچین چیزی.

davidrobert
یک شنبه 17 آذر 1392, 16:51 عصر
کسی نمی دونه علت اینکه نمیشه عداد رو درست محاسبه کرد چی هستش.نه عمل درصد رو میتونم خوب محاسبه کنم و نه عمل منفی رو خوب محاسبه کنم