以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  表B中datacolchanged事件程序统计数据写到表A中  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=180031)

--  作者:小螺号
--  发布时间:2022/9/23 22:40:00
--  表B中datacolchanged事件程序统计数据写到表A中
有A表单位信息表,B表人员信息表,并以所在单位建立关联,现想在B表中的“编制类型”列发生变化时自动统计在A表中的“行政编制”、“事业编制”、“工勤编制”三列中,在表B中的datacolchanged事件中编辑了如下程序后总是报错,请高手指点:

If e.DataCol.Name = "编制类型" Then
    Dim Values As New List(Of String) From {"行政编制", "事业编制", "工勤编制"}
    For Each Value As String In Values
        If Value = "行政编制" Then
           DataTables("表A").dataRows("实有_行政编制") = DataTables("表B").Compute("count(编制类型)", "所在单位 = \'" & e.DataRow("所在单位") & "\' and 编制类型=\'行政编制\'") 
        ElseIf Value = "事业编制" Then
           DataTables("表A").dataRows("实有_事业编制") = DataTables("表B").Compute("count(编制类型)", "所在单位 = \'" & e.DataRow("所在单位") & "\' and 编制类型=\'事业编制\'") 
        ElseIf Value = "工勤编制" Then
           DataTables("表A").datarows("实有_工勤编制") = DataTables("表B").Compute("count(编制类型)", "所在单位 = \'" & e.DataRow("所在单位") & "\' and 编制类型=\'工勤编制\'") 
            Exit For
        End If
    Next
End If

--  作者:有点蓝
--  发布时间:2022/9/24 9:20:00
--  
If e.DataCol.Name = "编制类型" Then
dim dr as datarow = DataTables("表A").Find("count(编制类型)", "所在单位 = \'" & e.DataRow("所在单位") & "\'") 
if dr isnot nothing then
if e.oldvalue > "" then
dr("实有_" & e.oldvalue) = e.DataTable.Compute("count(编制类型)", "所在单位 = \'" & e.DataRow("所在单位") & "\' and 编制类型=\'" & e.oldvalue & "\'") 
end if
if e.newvalue > "" then
dr("实有_" & e.newvalue ) = e.DataTable.Compute("count(编制类型)", "所在单位 = \'" & e.DataRow("所在单位") & "\' and 编制类型=\'" & e.newvalue  & "\'") 
end if
end if
End If

--  作者:小螺号
--  发布时间:2022/9/24 22:55:00
--  
感谢有点蓝,我好好消化一下。