以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关于父表加项,若子表没有,自动新增行问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=60323)

--  作者:信达
--  发布时间:2014/11/22 18:43:00
--  关于父表加项,若子表没有,自动新增行问题

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(16,3)) + 1 \'获得最大编号的后二位顺序号,并加1
                Else
                    idx = 1 \'否则顺序号等于1
                End If
                e.DataRow("计划编号") = lb & "-" & Format(idx,"000")
            End If
        End If
    Case "计划编号"
        If e.DataRow.IsNull("计划编号") = False Then \'如果已经输入计划编号
            If e.DataRow.GetChildRows("执行动态").Count = 0 Then \'而且无执行动态
                Dim dr As DataRow = DataTables("执行动态").AddNew()
            End If
        End If
    Case "图号","计划数量","单价"  \'如果订单中图号?计划数量?单价?变化,则同步修改修改订单中数据
        Dim Filter As String = "[计划编号] = \'" & e.DataRow("计划编号") & "\'"
        Dim nm As String = e.DataCol.Name
        DataTables("修改订单").ReplaceFor(nm, e.DataRow(nm), Filter)
End Select

 

我想请问一下老师,高亮黄色部分为什么不工作?程序哪里出了问题?


--  作者:有点甜
--  发布时间:2014/11/23 9:40:00
--  

1、列名写错;

 

2、加入msgbox弹出对应数据调试一下,比如 msgbox(e.DataCol.Name)