以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  子表增加行  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=89898)

--  作者:yifan3429
--  发布时间:2016/9/1 0:11:00
--  子表增加行
Select Case e.DataCol.Name
    Case "材料编号"
        If e.DataRow.IsNull("材料编号") = False Then \'如果已经输入订单编号
            If e.DataRow.GetChildRows("核算汇总").Count > 0 Then \'而且有订单明细  (材料编号作为判断的依据列)

            ElseIf e.DataRow.GetChildRows("核算汇总").Count = 0 Then \'而且无订单明细
                Dim dr1 As DataRow = DataTables("核算汇总").AddNew()
                dr1("材料编号") = e.DataRow("材料编号")
                dr1("报价编号") = e.DataRow("报价编号")
            End If
        End If
End Select

现有的代码只关注增加  不能分析是否存在   


我想要如果当前增加的过程中发现已经有了同样的内容存在  则放弃新增  否则新增行 复制内容   谢谢高手
[此贴子已经被作者于2016/9/1 0:11:41编辑过]

--  作者:有点蓝
--  发布时间:2016/9/1 8:58:00
--  
Select Case e.DataCol.Name
    Case "材料编号"
        If e.DataRow.IsNull("材料编号") = False Then \'如果已经输入订单编号
            Dim dr As DataRow = DataTables("核算汇总").Find(CExp("材料编号=\'{0}\' and 报价编号=\'{1}\'",e.DataRow("材料编号"),e.DataRow("报价编号")))
            If dr Is Nothing Then
                Dim dr1 As DataRow = DataTables("核算汇总").AddNew()
                dr1("材料编号") = e.DataRow("材料编号")
                dr1("报价编号") = e.DataRow("报价编号")
            End If
        End If
End Select