当我想删除我的Total时,它会删除总数而不是税收(BTW)。
private void btnVerkooplijnVerwijderen_Click(object sender, EventArgs e)
{
Int32 i;
// Rijnummer bepalen
i = dgvVerkooplijnen.CurrentRow.Index;
// Totaal aanpassen
dblHKTotaal -= 0;
dblVerzendkostenTotaal -= 0;
dblBTWTotaal -= 0;
dblTotaal -= Convert.ToDouble(dgvVerkooplijnen.Rows[i].Cells["Subtotaal"].Value);
lblBTWTotaal.Text = "€ " + dblBTWTotaal.ToString("N2");
lblTotaal.Text = "€ " + dblTotaal.ToString("N2");
// Rij verwijderen
dgvVerkooplijnen.Rows.RemoveAt(i);
}
答案 0 :(得分:0)
在不知道如何创建数据表的情况下,我将为您提供更直接的方法来计算行总计和表总计。例如,要创建一个完整的行项目,我可以按以下方式设置数据表
a.contains(a,x)
你在这里看到的是计算逻辑现在变成了我的数据表的功能。我不必单独计算所有项目,在添加行时,var table = new DataTable();
table.Columns.Add( "Id", typeof(Int32) );
table.Columns.Add( "Code", typeof(String) );
table.Columns.Add( "Description", typeof(string) );
table.Columns.Add( "Quantity", typeof(Int32) );
table.Columns.Add( "ItemPrice", typeof(decimal) );
table.Columns.Add( "SubTotal", typeof( decimal ), "Quantity*ItemPrice");
table.Columns.Add( "Taxes", typeof( decimal ), "SubTotal*0.21");
table.Columns.Add( "LineTotal", typeof( decimal ), "SubTotal + Taxes");
,SubTotal
和Taxes
会自动计算。这是通过使用DataColumn.Expression
然后我可以添加项目,例如:
LineTotal
然后我可以使用DataTable.Compute
功能来计算我所需的总数,如下所示:
table.Rows.Add( 1, "DECA10", "Coffee decafinated", 1, 2.5 );
table.Rows.Add( 2, "ESPR", "Espresso", 2, 2.5 );
然后显示它们(在您的程序中,或在我的情况下在控制台内),如下所示:
decimal subTotal = (decimal)table.Compute( "Sum(SubTotal)", "");
decimal total = (decimal)table.Compute( "Sum(LineTotal)", "");
decimal taxTotal = (decimal)table.Compute( "Sum(Taxes)", "");
Int64 quantityTotal = (Int64)table.Compute( "Sum(Quantity)", "");
这个小型演示程序的示例,您可以找到dotnetfiddle here