蓝老师:我有一BPM流程管理项目...每张表都有"本单编号" "来源单号"要让A表新增时按其发放部门自动生成B C的对应资料这一步我搞定了....
但当A表原笔资料修改发放部门 要同步修正原关联B表及C表我搞不定 跟您求救下...
A表为父表 关联 "文管收发台账"
> (A表 "本单编号")→(文管收发台账 "来源单号")
"文管收发台账" 关联 "文件收发子档"
> (文管收发台账 "本单编号")→(文件收发子档
"来源单号")我现在的代码如下:
A表代码 (DataColChanged 事件)
Case "会办抄送" '此列为多值列-勾选发放部门
If dr.IsNull("会办抄送") = False Then '如果已经勾选
If dr.GetChildRows("文管收发台账").Count = 0 Then '而且无对应文管发放单
Dim cr As DataRow = DataTables("文管收发台账").AddNew() '生成关联文管发放单
cr("来源单号") = dr("本单编号")
cr("文件名称") = dr("使用单据")
cr("抄送对象") = dr("会办抄送")
cr("标的项目") = dr("项目名称")
cr("风险评估") = dr("风险评估")
cr("内容摘要") = dr("申作内容")
cr("编制部门") = dr("项目负责人")
cr("BOM说明") = dr("BOM说明")
End If
End If
文管收发台账 代码(DataColChanged 事件)
Case "抄送对象"
If e.DataRow.GetChildRows("文件收发子档").Count = 0 Then
For Each s As String In e.DataRow("抄送对象").split("、")
Dim r As Row = Tables("文管收发台账.文件收发子档").addnew
r("抄送部门") = s
r("来源单号") = ar("本单编号")
Next
End if
实在很小白 看了帮助档与论坛 学习3天了也没能搞定 只能跟您求救...
另外 我关联太多 打开项目耗时 (因为有28张来源A表要 关联到文件收发记录)
能怎样优化吗? 就是不要用每张表和"文管收发台账" 关联 应该怎样做?
谢谢!
调试
A表代码 (DataColChanged 事件)
Case "会办抄送" '此列为多值列-勾选发放部门
msgbox(dr("会办抄送"))
If dr.IsNull("会办抄送") = False Then '如果已经勾选
msgbox("Count =" & dr.GetChildRows("文管收发台账").Count )
If dr.GetChildRows("文管收发台账").Count = 0 Then '而且无对应文管发放单
Dim cr As DataRow = DataTables("文管收发台账").AddNew() '生成关联文管发放单
cr("来源单号") = dr("本单编号")
cr("文件名称") = dr("使用单据")
cr("抄送对象") = dr("会办抄送")
msgbox("抄送对象=" & cr("抄送对象") )
cr("标的项目") = dr("项目名称")
cr("风险评估") = dr("风险评估")
cr("内容摘要") = dr("申作内容")
cr("编制部门") = dr("项目负责人")
cr("BOM说明") = dr("BOM说明")
End If
End If
文管收发台账 代码(DataColChanged 事件)
Case "抄送对象"
msgbox("文件收发子档Count =" & e.DataRow.GetChildRows("文件收发子档").Count )
If e.DataRow.GetChildRows("文件收发子档").Count = 0 Then
For Each s As String In e.DataRow("抄送对象").split("、")
msgbox("s=" & s )
Dim r As Row = Tables("文管收发台账.文件收发子档").addnew
r("抄送部门") = s
r("来源单号") = ar("本单编号")
Next
End if
蓝老师: 搞定了的最后代码...分享给看帖的人
A表Case "会办抄送" '此列为多值列-勾选发放部门
msgbox(ar("会办抄送"))
If ar.IsNull("会办抄送") = False Then '如果已经勾选
If ar.GetChildRows("文管收发台账").Count = 0 Then '而且无对应文管发放单
Dim cr As DataRow = DataTables("文管收发台账").AddNew() '生成关联文管发放单
cr("来源单号") = ar("本单编号")
cr("文件名称") = ar("使用单据")
cr("抄送对象") = ar("会办抄送")
cr("标的项目") = ar("项目名称")
cr("风险评估") = ar("风险评估")
cr("内容摘要") = ar("策划目的")
cr("编制部门") = ar("项目负责人")
cr("BOM说明") = ar("BOM说明")
Else '如果已有文管发放单 但修改发放部门
msgbox(ar("会办抄送"))
Dim cr As DataRow = DataTables("文管收发台账").Find("来源单号='" & ar("本单编号") & "'")'查找对应文管发放单
cr("抄送对象") = ar("会办抄送")'修改发放部门
End If
End If
B表代码
Case "抄送对象"
'msgbox("文件收发子档Count =" & e.DataRow.GetChildRows("文件收发子档").Count)
DataTables("文件收发子档").DeleteFor("来源单号='" & ar("本单编号") & "'")
If e.DataRow.GetChildRows("文件收发子档").Count = 0 Then
For Each s As String In e.DataRow("抄送对象").split("、")
'msgbox("s=" & s)
Dim r As Row = Tables("文管收发台账.文件收发子档").addnew
r("抄送部门") = s
r("来源单号") = ar("本单编号")
Next
End If