以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  跨表数据更新  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=75406)

--  作者:kaituozhe
--  发布时间:2015/10/8 8:09:00
--  跨表数据更新

例子中有三个表,计划表、清单表及物料表,我的想法有以下几项

1、计划表中增加一项任务,先判断清单表中是否有该产品的物料清单,如果有则继续执行,没有则提示增加,

2、如果物料表表没有相应的物料,则增加,有则计算;

有一个问题我解决不了,每重置列一次,计算都要重新增加一次,怎么处理。

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目10.table


--  作者:Hyphen
--  发布时间:2015/10/8 8:55:00
--  
不想重置所有列使用RaiseDataColChanged,参考http://www.foxtable.com/help/topics/2237.htm
--  作者:大红袍
--  发布时间:2015/10/8 9:37:00
--  
Select Case e.DataCol.name
    Case "发生年月","物料编号","责任部门","责任人","数量"
        If e.DataRow.Isnull("发生年月")=False AndAlso e.DataRow.Isnull("物料编号") = False AndAlso e.DataRow.Isnull("数量")=False AndAlso e.DataRow.Isnull("责任部门") = False AndAlso e.DataRow.Isnull("责任人") = False Then
            Dim drs As List (of DataRow) = DataTables("清单表").Select("产品编号= \'" & e.DataRow("物料编号") & "\' and 使用状态= \'使用\'")
            If drs.count = 0 Then
                msgbox("清单表没有,请先增加")
            Else
                For Each  dr As DataRow In drs
                    Dim dr1 As DataRow = DataTables("物料表").find("物料编号 = \'" & dr("物料编号") & "\' and 发生年月 = \'" & e.DataRow("发生年月") & "\'and 责任人 = \'" & e.DataRow("责任人") & "\'and 责任部门 = \'" & e.DataRow("责任部门") & "\'")
                    If dr1 Is Nothing Then
                        dr1 = DataTables("物料表").addnew
                        dr1("发生年月")=e.DataRow("发生年月")
                        dr1("责任部门")=e.DataRow("责任部门")
                        dr1("责任人")=e.DataRow("责任人")
                        dr1("物料编号")=dr("物料编号")
                        dr1("物料名称")=dr("物料名称")
                        dr1("规格型号")=dr("规格型号")
                        dr1("基本单位")=dr("基本单位")
                        dr1("数量")=dr("数量")*e.DataRow("数量")
                    Else
                        Dim sum As Double = 0
                        For Each jh As DataRow In e.DataTable.Select("物料编号 = \'" & e.DataRow("物料编号") & "\' and 发生年月 = \'" & e.DataRow("发生年月") & "\'and 责任人 = \'" & e.DataRow("责任人") & "\'and 责任部门 = \'" & e.DataRow("责任部门") & "\' ")
                            sum += dr("数量")*jh("数量")
                        Next
                        dr1("数量") = sum
                    End If
                Next
            End If
        End If
End Select