代码在“申请表”啊,根据申请表“编号”列当前行内容的变化去查找“汇总表”的编号,再填入对应的信息,表单输入信息是一对一的
With Tables("预算使用申请表").Current
' Dim r As Row = Tables("预算使用申请表").Current
If .IsNull("预算编号") = False Then
Dim r As Row = Tables("预算使用申请表").Current
' Dim dr As DataRow
Dim dr1 As DataRow
' dr = DataTables("基础预算表").Find("[预算编号] = '" & Tables("预算使用申请表").Current("预算编号") & "'")
' If dr IsNot Nothing Then
' r("预算项目名称") = dr("项目名称")
' r("预算金额") = dr("预算金额")
' r("一级科目") = dr("一级科目")
' r("二级科目") = dr("二级科目")
' r("三级科目") = dr("三级科目")
' r("四级科目") = dr("四级科目")
' r("五级科目") = dr("五级科目")
' r("预算使用说明") = dr("预算使用说明")
' End If
dr1 = DataTables("预算使用情况汇总表").Find("[预算编号] = '" & Tables("预算使用申请表").Current("预算编号") & "'")
If dr1 IsNot Nothing Then
r("已使用金额") = dr1("预算发生数")
r("已使用占比") = dr1("预算完成率")
r("预算余额") = dr1("预算余额")
End If
End If
' If .IsNull("结算金额") = True Then
' e.DataRow.Locked = True
' End If
' If .IsNull("请示金额") = False Then
' Dim r1 As Row = Tables("预算使用申请表").Current
' Dim dr1 As DataRow
' dr1 = DataTables("预算使用情况汇总表").Find("[预算编号] = '" & Tables("预算使用申请表").Current("预算编号") & "'")
' r1("预算余额") = dr1("预算余额")
' End If
End With
'Select e.DataCol.Name
' Case "预算编号"
' If e.DataRow.IsNull("预算编号") Then
' e.DataRow("申请编号") = Nothing
' Else
' Dim lb As String = e.DataRow("预算编号")
' If e.DataRow("申请编号").StartsWith(lb) = False '如果单据编号前缀不符
' Dim max As String
' Dim idx As Integer
' max = e.DataTable.Compute("Max(申请编号)","预算编号 = '" & lb & "' And [_Identify] <> " & e.DataRow("_Identify")) '取得该类别的最大编号
' If max > "" Then '如果存在最大编号
' idx = CInt(max.Substring(2,3)) + 1 '获得最大编号的后三位顺序号,并加1
' Else
' idx = 1 '否则顺序号等于1
' End If
' e.DataRow("申请编号") = lb & Format(idx,"000") & "SQ"
' End If
' End If
' End Select
Select Case e.DataCol.Name
Case "预算编号"
Dim dr As DataRow
dr = DataTables("基础预算表").Find("[预算编号] = '" & e.DataRow("预算编号") & "'")
If dr IsNot Nothing Then
e.DataRow("预算项目名称") = dr("项目名称")
e.DataRow("预算金额") = dr("预算金额")
e.DataRow("一级科目") = dr("一级科目")
e.DataRow("二级科目") = dr("二级科目")
e.DataRow("三级科目") = dr("三级科目")
e.DataRow("四级科目") = dr("四级科目")
e.DataRow("五级科目") = dr("五级科目")
e.DataRow("预算使用说明") = dr("预算使用说明")
End If
End Select
If e.DataCol.Name = "申请部门" Then
If e.DataRow.IsNull("申请部门") Then
e.DataRow("申请编号") = Nothing
Else
If e.DataRow.IsNull("申请日期") Then
MessageBox.Show("请输入日期并重新填写部门!","提 示",MessageBoxButtons.OK,MessageBoxIcon.Information)
Else
Dim bh As String = Format(e.DataRow("申请日期"),"yyyyMMdd") '取得编号的8位前缀
Dim bm As String = e.DataRow("申请部门")
If e.DataRow("申请编号").StartsWith(bh) = False '如果编号 的前8位不符
Dim max As String
Dim idx As Integer
max = e.DataTable.SQLCompute("Max(申请编号)","申请日期 = '" & e.DataRow("申请日期") & "' And [_Identify] <> " & e.DataRow ("_Identify")) '取得该天的最大编号
If max > "" Then '如果存在最大编号
idx = CInt(max.Substring(9,3)) + 1 '获得最大编号的 后三位顺序号,并加1
Else
idx = 1 '否则顺序号等于1
End If
Select Case bm
Case "收费管理部"
bm = "01"
Case "综合事务部"
bm = "02"
Case "党群监审(人力)部"
bm = "03"
Case "养护工程部"
bm = "04"
Case "财务管理部"
bm = "05"
Case "路政管理部"
bm = "06"
Case Else
bm = "07"
End Select
e.DataRow("申请编号") = bh & "-" & Format(idx,"000") & bm & "SQ"
e.DataRow.save
End If
End If
End If
End If