【问题标题】:I need help to show VAT amount in datagridview correctly我需要帮助才能在 datagridview 中正确显示增值税金额
【发布时间】:2020-10-29 19:07:41
【问题描述】:

image description here

private void dataGridView1_CellEndEdit(object sender, DataGridViewCellEventArgs e)
{
    foreach (DataGridViewRow row in dataGridView1.Rows)
    {
        row.Cells[dataGridView1.Columns["Amount"].Index].Value = (Convert.ToDecimal(row.Cells[dataGridView1.Columns["Qtty"].Index].Value) * 
                Convert.ToDecimal(row.Cells[dataGridView1.Columns["PurchasePrice"].Index].Value));

        decimal sum = 0;

        for (int i = 0; i < dataGridView1.Rows.Count; i++)
        {
             sum += Convert.ToDecimal(dataGridView1.Rows[i].Cells[6].Value);
        }

        decimal vatpct = 15m;
        decimal vat = Math.Round(sum - (sum / (1 + (vatpct / 100))), 2);

        decimal subtotal = Math.Round(sum - vat, 2);
        lblSubtotal.Text = subtotal.ToString();

        row.Cells[dataGridView1.Columns["VAT"].Index].Value =   ((sum * vat / 100));
    }
}

这是我关于发票设计的代码,但它在增值税计算方面效果不佳。

注意:这里的所有价格都必须包含增值税!

【问题讨论】:

    标签: c# .net windows winforms datagridview


    【解决方案1】:

    让你的生活变得轻松,将数据和计算放入数据表并绑定到网格:

    var dt = new DataTable();
    dt.Columns.Add("InvoiceId");
    dt.Columns.Add("ExVat", typeof(double));
    dt.Columns.Add("IncVat", typeof(double)).Expression = "[ExVat] * 1.15";
    
    someNewBlankDataGridViewOnYourForm.DataSource = dt;
    

    正如最后一行代码所暗示的,如果您在表单上放置一个新的 datagridview 并将其绑定到此数据表(设置其 DataSource 属性),这可能是最简单的

    现在您需要做的就是让用户输入 ID 和增值税金额。 inc增值税金额将自动计算

    让您的生活更轻松,向您的项目添加新的 DataSet 类型的文件,向其中添加表格,添加列并在设计器中设置您在上面看到的所有内容(表达式、数据类型、名称等).. 数据表以这种方式制作的堆更容易使用

    【讨论】:

    • 谢谢@Caius 也许你很容易做到这一点,但对我来说,我仍然对将数据集与 DGV 一起使用并相互连接感到困惑......acutlly 我是 C# 开发的新手所以,如果你能像上面所说的那样编写代码行来帮助我,或者帮助我的代码来做到这一点
    • 您能否定义导致增值税显示不正确的问题所在?
    • 然后快速运行:DataSet 是 DataTable 和 DataRelation 的集合。您没有在此代码中使用 DataSet。 DataTable 是 DataRow 和 DataColumn 的集合,有点像数据库。 DataColumn 要么将值放入其中,要么使用 Expression 属性根据其他列计算值
    • 当我说“添加数据集”时,我的意思是在解决方案资源管理器中右键单击您的项目并选择添加新项目..数据集。然后,您可以直观地设计所有这些设置。这与编写 var da = new DataSet(); 的过程不同 - 它创建了一个简单的 DataSet,它的功能远不及向项目中添加 DataSet 文件然后设计它
    • 这有点像你添加表单的时候。您可以编写代码var f = new Form();,但该表单只是空的等等。如果您将表单添加为文件然后打开它,您可以完全设计它等等,您可以查看 Form1.Designer.cs 以查看数百个表单设计器为您编写的代码行。 DataSet Files 和设计器是同一个思路
    猜你喜欢
    • 1970-01-01
    • 2016-10-24
    • 2013-12-24
    • 1970-01-01
    • 1970-01-01
    • 2011-05-13
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多