-- 作者:huangjiacai
-- 发布时间:2020/5/29 10:57:00
--
代码在“申请表”啊,根据申请表“编号”列当前行内容的变化去查找“汇总表”的编号,再填入对应的信息,表单输入信息是一对一的
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
|