模拟关联-入库主表和明细--执行-增、删除都正常
问题一:主表录入后,明细表没录入,修改主表,执行下面,无报错,无反应,有时,只有录入明细才有反应,再保存,保存事件失效,按保存无反应
Tables("入库主表").Current.DataRow.Load(False)
问题2:修改明细,执行下面,无报错,无反应,有时,删除记录
For Each r As Row In Tables("入库明细").Rows
r.DataRow.Load(False)
Next
下面保存
Dim dr As DataRow = Tables("入库主表").current.DataRow
Dim pf As String
If dr.RowState <> DataRowState.Added Then
Return
ElseIf dr.IsNull("制单日期") Then
e.Cancel = True
MessageBox.Show("必须输入日期!","提示",MessageBoxButtons.OK,MessageBoxIcon.Information)
Return
Else
pf = "RK" & "" & Format(dr("制单日期"),"yyyyMM")
End If
Dim cmd1 As New SQCommand
Dim cmd2 As New SQCommand
Dim Key As Integer
cmd1.C '设置数据源名称
cmd2.C
cmd1.commandText = "Sel Count(*) From [编号] Where [前缀] = '" & pf & "'"
If cmd1.ExecuteScalar = 0 Then
cmd1.commandtext = "Insert Into 编号 (前缀, 顺序号) Values('" & pf & "',1)"
cmd1.ExecuteNonQuery
End If
cmd1.commandText = "Sel [顺序号] From [编号] Where [前缀] = '" & pf & "'"
Do
Key = cmd1.ExecuteScalar()
cmd2.commandText = "Update [编号] Se [顺序号] = " & (Key + 1) & " Where [顺序号] = " & Key & " And [前缀] = '" & pf & "'"
If cmd2.ExecuteNonQuery() > 0 Then
Exit Do
End If
Loop
dr("入库单号") = pf & "-" & Format(Key,"0000") '流水号的设计)
Dim r As Row = Tables("入库主表").current
r("保存状态") = True
DataTables("入库主表").Save()
DataTables("入库明细").Save()
MessageBox.Show("保存成功!")
如果是新增行还没有保存过,撤销当然是连新增这个动作也撤销了,
把我整不会
需求,("保存状态") = True,可以实现未保存的主表或明细的修改的撤销,这个怎么实现?