我在设计主窗口时把table作为normal形式,并且,主窗口的afterload事件代码为:CurrentTable.Filter = "[_identify] Is null" 在把excel数据导入到此窗口中的table中后,点击“自动计算”按钮先判断导入excel内容是否有错误,当产生错误时想删掉table中的所有数据用了如下代码:
CurrentTable.DataTable.Save
end if
测试不成功,
每次执行完命令后都留有一行记录未能删除,请教错在那里!
“自动计算”按钮代码如下:
Dim d As Date = Date.Today
Dim str_m As String = "开piao资料"
Dim str_d As String = Format(d,"yyyy年MM月") & str_m
Dim hjkpsl As Integer
Dim erro As Integer = 0 '定义一个错误计数变量以便在核对"开piao明细资料"时计数
If CurrentTable.Rows.Count > 0 Then
'首先判断开piao明细资料的正确性!(方法:判断本次开piao数量即"未开piao数量"
' +原来开piao的数量"累计开piao数量"是否=订单数量"需求数量")
For Each dr As Row In CurrentTable.Rows
Dim ddh As String = dr("订单编号")
Dim hh As Integer = dr("行号")
Dim tbl As DataTable =DataTables("订单明细表")
Dim dr_tbl As DataRow
dr_tbl = tbl.Find("订单编号 = '" & ddh & "' and 行号 = '" & hh & "'")
If dr_tbl IsNot Nothing Then
Dim ljkpsl As Integer = dr_tbl("累计开piao数量")
Dim wkpsl As Integer = dr("未开piao数量")
Dim xqsl As Integer = dr_tbl("需求数量")
hjkpsl = ljkpsl +wkpsl
If hjkpsl > xqsl Then
erro = erro +1
End If
End If
Next
Else
messagebox.Show("请先导入需要核对的开piao资料明细!")
End If
If erro > 0 Then
messagebox.Show("开piao明细资料或其它错误,请检查后重新导入计算!")
Dim i As Integer = CurrentTable.Rows.Count ‘ 改为此代码后提示索引超出范围????
For i1 As Integer = 0 To i-1
CurrentTable.Rows(i1).Delete()
Next
CurrentTable.DataTable.Save
ElseIf erro = 0 And CurrentTable.Rows.Count > 0
Dim a As Double = DataTables("开piao明细表").Compute("sum(开piao金额)","开piao明细名称 = '" & str_d & "'")
Vars("kpzje") = a '把当月开piao总金额的值赋给公共变量
'以下自动进行核对代码
For Each dr As Row In CurrentTable.Rows
Dim ddh As String = dr("订单编号")
Dim hh As String = dr("行号")
Dim tbl As DataTable =DataTables("订单明细表")
Dim dr_tbl As DataRow
dr_tbl = tbl.Find("订单编号 = '" & ddh & "' and 行号 = '" & hh & "'")
If dr_tbl IsNot Nothing Then
Dim ljkpsl As Integer = dr_tbl("累计开piao数量")
Dim wkpsl As Integer = dr("未开piao数量")
dr_tbl("累计开piao数量") = dr_tbl("累计开piao数量")+dr("未开piao数量")
End If
tbl.Save
Next
CurrentTable.Filter = "[_identify] Is null"
Forms("核对结果窗口").open
End If
先谢谢各位高手!