Vb.net 在DataGridView中的空行后重置/增加编号

Vb.net 在DataGridView中的空行后重置/增加编号,vb.net,Vb.net,我是Vb.net的初学者,所以请记住我的知识:)我现在开发的winform应用程序的格式来自Excel,用户每天输入以下内容: 无|件|数量|管|小计 1 | ABC123 | 10.4 | 1 | 2 | ABC456 | 10.3 | 1 | 3 | ABC789 | 10.1 | 1 | 30.8 (空行) 1 | ABC012 | 10.9 | 2 | 2 | ABC234 | 10.2 | 2 | 3 | ABC765 | 10.4 | 2 | 4 | ABC876 | 10.8

我是Vb.net的初学者,所以请记住我的知识:)我现在开发的winform应用程序的格式来自Excel,用户每天输入以下内容:

无|件|数量|管|小计
1 | ABC123 | 10.4 | 1 |
2 | ABC456 | 10.3 | 1 |
3 | ABC789 | 10.1 | 1 | 30.8
(空行)
1 | ABC012 | 10.9 | 2 |
2 | ABC234 | 10.2 | 2 |
3 | ABC765 | 10.4 | 2 |
4 | ABC876 | 10.8 | 2 | 42.3
(空行)
1 | ABC567 | 10.6 | 3 | 10.6

总计:83.7

在excel中,有以下公式:
-在空行后重置编号
-空行后将管号增加1

编号和管ID都是自动填充的

数据由用户输入。用户将故意跳过一行(空白)以放入“工件”,并且“管”将自动增加1。同时,“小计”也将自动计算

老实说,我什么都没试过,因为我对从哪里开始一无所知!这绝对不是使用Datagridview>输入数据的常用方式

我的问题是,这在Datagridview中可行吗?用户可以以这种方式键入空白行和小计吗?如果没有,是否有其他选择?谢谢大家!

这只是一个示例(无验证输入),您必须有一个DataGridView(myDGV)和五列(no、Piece、Qty、Tube和SubTotal),两个文本框(txtPiece、txtQty)和两个按钮(btnAdd、btnSkip):

如果您想获得总计,您可以更改btnSkip_点击程序,如下所示:

Private Sub btnSkip_Click(sender As Object, e As EventArgs) Handles btnSkip.Click
    If myDGV.RowCount = 0 Then
        MessageBox.Show("Can't skip, No Data")
        Exit Sub
    End If
    If myDGV.Item(0, myDGV.RowCount - 1).Value Is "" Then
        MessageBox.Show("Can't More skip, No Data")
        Exit Sub
    End If
    Dim mySub As Long = 0
    Dim myGrand As Long = 0
    Dim myStts As Boolean = False
    For myCnt As Integer = myDGV.RowCount To 1 Step -1
        If myDGV.Item(0, myCnt - 1).Value Is "" Then
            myStts = True
        End If
        Dim mySubTtl As Long = 0
        If myStts = False Then mySub += Long.Parse(myDGV.Item(2, myCnt - 1).Value.ToString)
        Long.TryParse(myDGV.Item(2, myCnt - 1).Value.ToString, mySubTtl)
        myGrand += mySubTtl
    Next
    myDGV.Item(4, myDGV.RowCount - 1).Value = mySub
    If myDGV.ColumnCount = 6 Then myDGV.Columns.Remove(myDGV.Columns(5))
    myDGV.Columns.Add("GrandTotal", "Grand Total")
    myDGV.Item(5, myDGV.RowCount - 1).Value = myGrand
    myDGV.Rows.Add("", "", "", "", "")

End Sub

如何将数据输入到datagridview?何时插入空行?什么时候计算小计?对不起,我的问题漏掉了这一点。数据由用户输入。用户将故意跳过一行(空白)以放入“工件”,并且“管”将自动增加1。同时,“小计”也将自动计算。我已经编辑了这个问题,包括如何输入数据。这真是太神奇了!我现在要做的就是将这些数据插入数据库。非常感谢你!!
Private Sub btnSkip_Click(sender As Object, e As EventArgs) Handles btnSkip.Click
    If myDGV.RowCount = 0 Then
        MessageBox.Show("Can't skip, No Data")
        Exit Sub
    End If
    If myDGV.Item(0, myDGV.RowCount - 1).Value Is "" Then
        MessageBox.Show("Can't More skip, No Data")
        Exit Sub
    End If
    Dim mySub As Long = 0
    Dim myGrand As Long = 0
    Dim myStts As Boolean = False
    For myCnt As Integer = myDGV.RowCount To 1 Step -1
        If myDGV.Item(0, myCnt - 1).Value Is "" Then
            myStts = True
        End If
        Dim mySubTtl As Long = 0
        If myStts = False Then mySub += Long.Parse(myDGV.Item(2, myCnt - 1).Value.ToString)
        Long.TryParse(myDGV.Item(2, myCnt - 1).Value.ToString, mySubTtl)
        myGrand += mySubTtl
    Next
    myDGV.Item(4, myDGV.RowCount - 1).Value = mySub
    If myDGV.ColumnCount = 6 Then myDGV.Columns.Remove(myDGV.Columns(5))
    myDGV.Columns.Add("GrandTotal", "Grand Total")
    myDGV.Item(5, myDGV.RowCount - 1).Value = myGrand
    myDGV.Rows.Add("", "", "", "", "")

End Sub