把BIN文件删除了,重新打开就可以了,完全相同的代码,另外一个问题Dim tbl As Table = Tables(e.Form.name & "_主表")
Dim tbl2 As Table = Tables(e.Form.name & "_明细")
Dim pr As Row = tbl.Current
If pr IsNot Nothing Then '以免为空时出错
'---根据仓库及盘点日期汇总本月的出入库数据
Dim cklb,strID As String
cklb = pr("仓库类别")
strID = pr("单据编号")
Dim cmd As New SQLCommand
cmd.ConnectionName = Mydata
cmd.CommandText = "Exec usp_kc_report_price '" & strID & "', '" & cklb & "'"
' msgbox(cmd.CommandText)
cmd.ExecuteNonQuery
DataTables(tbl.name).Load(False) '重新加载数据
'定位到原来的主表行
Dim p As Integer = tbl.FindRow("单据编号 = '" & strID & "'")
If p >= 0 Then '如果找到的话
tbl.Position = p '定位到找到的行.
End If
'---计算合计金额
pr = tbl.Current
If pr IsNot Nothing Then
pr("合计金额") = tbl2.Compute("Sum(期末库存金额)", "单据编号 = '" & pr("单据编号") & "'")
pr.Save()
End If
End If
重新加载数据后最后一段代码是根据加载后的明细表的数据计算合计金额显示在主表上,结果要按两次按钮才会计算,第一次为什么不计算呢?