红色代码的定义有问题的,它是窗口上动态生成,动态绑定到财务数据源上的表,执行代码后直接把财务数据源上的日期、凭证号、安日期生成单号辅助列、字号全改为一样了!
Select Case e.StripItem.Name
Case "保存" '保存代
If e.Form.Controls("rq").text = "" Then
messagebox.show("请选择日期")
Return
ElseIf Tables("收款凭证_Table1").Compute("Count([贷方科目])") = 0 Then
Return
End If
For Each dt As DataRow In Tables("收款凭证_Table1").DataTable.Select("[贷方科目] Is not null")
Dim Parts() As String = dt("明细科目").Split("-")
dt("日期") = e.Form.Controls("rq").text
dt("凭证号") = e.Form.Controls("dh").text
dt("安日期生成单号辅助列") = e.Form.Controls("dh1").text
dt("附件张数") = e.Form.Controls("TextBox1").text
dt("录入员") = e.Form.Controls("lry").text
dt("会计科目") = dt("贷方科目") & "-" & dt("明细科目")
dt("字号") = "收"
dt("借或贷") = "贷"
dt("贷方金额") = dt("金额")
dt("操作人姓名") = User.Name & " " & Date.Now
If Parts.length > 0 Then
dt("二级科目") = Parts(0)
If Parts.length > 1 Then
dt("三级科目") = Parts(1)
If Parts.length > 2 Then
dt("四级科目") = Parts(2)
If Parts.length > 3 Then
dt("五级科目") = Parts(3)
End If
End If
End If
End If
dt.Save
Next
'DataTables("财务数据源").LoadOrder = "日期,字号,[借或贷] = '借',凭证号"
'DataTables("财务数据源").Save()
DataTables("财务数据源").load
Dim r As DataRow = DataTables("财务数据源").SQLFind("[字号] = '收' And [日期] = #" & e.Form.Controls("rq").Value & "# And [安日期生成单号辅助列] = '" & e.Form.Controls("dh1").text & "' And [借或贷] = '借'")
If r Is Nothing Then
r = DataTables("财务数据源").addnew
End If
r("日期") = e.Form.Controls("rq").text
r("凭证号") = e.Form.Controls("dh").text
r("借或贷") = "借"
r("安日期生成单号辅助列") = e.Form.Controls("dh1").text
r("附件张数") = e.Form.Controls("TextBox1").text
r("录入员") = e.Form.Controls("lry").text
r("字号") = "收"
r("操作人姓名") = User.Name & " " & Date.Now
r("会计科目") = e.Form.Controls("ComboBox3").Value
Dim Parts0() As String = r("会计科目").Split("-")
If Parts0.length > 0 Then
r("借方科目") = Parts0(0)
If Parts0.length > 1 Then
r("二级科目") = Parts0(1)
If Parts0.length > 2 Then
r("二级科目") = Parts0(2)
End If
End If
End If
r("借方金额") = Tables("收款凭证_Table1").Compute("Sum(金额)")
r.save
Dim drs As List(Of DataRow) = DataTables("财务数据源").Select("[字号] = '收' And [日期] = #" & e.Form.Controls("rq").Value & "# And [安日期生成单号辅助列] = '" & e.Form.Controls("dh1").text & "' And [借或贷] = '贷'")
Dim zheyao As String = ""
For c As Integer = 0 To drs.count - 1
zheyao = zheyao & drs(c)("摘要") & ","
Next
r("摘要") = zheyao.TrimEnd(",")
For i As Integer = DataTables("财务数据源").DataRows.count - 1 To 0 Step -1
Dim tr As DataRow = DataTables("财务数据源").DataRows(i)
If tr.Isnull("日期") Then
tr.delete
End If
Next
DataTables("财务数据源").LoadOrder = "日期,字号,[借或贷] = '借',凭证号"
DataTables("财务数据源").Save()
DataTables("财务数据源").load
[此贴子已经被作者于2021/4/26 15:43:37编辑过]