Foxtable(狐表)用户栏目专家坐堂 → 如何在表C中找出对应的多行并自动增加到表A中


  共有2411人关注过本帖树形打印复制链接

主题:如何在表C中找出对应的多行并自动增加到表A中

帅哥哟,离线,有人找我吗?
wangj6666
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:232 积分:1891 威望:0 精华:0 注册:2016/1/11 8:40:00
如何在表C中找出对应的多行并自动增加到表A中  发帖心情 Post By:2017/5/16 10:22:00 [只看该作者]

各位专家:您们好!
图片点击可在新窗口打开查看此主题相关图片如下:附件多行2表c.png
图片点击可在新窗口打开查看
      如“附件多行1表A”,我想在这个表A中输入图中数据后,能自动在“附件多行2表C”中找出对应”工艺名称“和对应”报料阶段“的行,并自动在表A中增加行并将“工序名称”、“加料顺序”、“材料名称”、“用量百分比”、“材料干湿”的数据填入。请问如何实现?谢谢!
图片点击可在新窗口打开查看此主题相关图片如下:附件多行1表a.png
图片点击可在新窗口打开查看

 回到顶部
帅哥哟,离线,有人找我吗?
18523982317
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:852 积分:6109 威望:0 精华:0 注册:2015/12/24 13:02:00
  发帖心情 Post By:2017/5/16 11:08:00 [只看该作者]

建议参考帮助里面  自定义录入界面之三

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/16 11:09:00 [只看该作者]

DataColChanged

 

Select Case e.DataCol.name
    Case "报料阶段", "使用工艺名称"
        If e.DataRow.isnull("报料阶段")= False AndAlso e.DataRow.isnull("使用工艺名称") = False Then
            Dim Cols1() As String = {"来源列一","来源列二","来源列三"}
            Dim Cols2() As String = {"接收列一","接收列二","接收列三"}
            Dim drs As List(Of DataRow) = DataTables("表B").Select("报料阶段 = '" & e.DataRow("报料阶段") & "' and 工艺名称 = '" & e.DataRow("使用工艺名称") & "'")
            systemready = False
            For i As Integer = 0 To drs.count-1
                Dim dr2 As DataRow
                If i = 0 Then
                    dr2 = e.DataRow
                Else
                    dr2 = e.DataTable.addnew
                End If
                For j As Integer = 0 To Cols1.Length -1
                    dr2(Cols2(j)) = e.DataRow(Cols1(j))
                Next
               
                dr2("报料阶段") = e.DataRow("报料阶段")
                dr2("使用工艺名称") = e.DataRow("使用工艺名称")
               
            Next
            systemready = True
        End If
End Select


 回到顶部
帅哥哟,离线,有人找我吗?
wangj6666
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:232 积分:1891 威望:0 精华:0 注册:2016/1/11 8:40:00
  发帖心情 Post By:2017/5/16 13:05:00 [只看该作者]

谢谢专家的回复,我将其修改为以下的代码后,未见在表A中增加行,也未见自动填入对应几列的数据,仅有“用量百分比”填入了1个“0”,请问是什么地方没有写对吗?请再帮我看看!谢谢!
Select Case e.DataCol.name
    Case "报料阶段", "使用工艺名称"
        If e.DataRow.isnull("报料阶段")= False AndAlso e.DataRow.isnull("使用工艺名称") = False Then
            Dim Cols1() As String = {"使用工序","加料序号","材料名称","用量百分比","材料干湿"}
            Dim Cols2() As String = {"使用工序","加料序号","材料名称","用量百分比","材料干湿"}
            Dim drs As List(Of DataRow) = DataTables("工艺配方").Select("报料阶段 = '" & e.DataRow("报料阶段") & "' and 使用工艺名称 = '" & e.DataRow("使用工艺名称") & "'")
            systemready = False
            For i As Integer = 0 To drs.count-1
                Dim dr2 As DataRow
                If i = 0 Then
                    dr2 = e.DataRow
                Else
                    dr2 = e.DataTable.addnew
                End If
                For j As Integer = 0 To Cols1.Length -1
                    dr2(Cols2(j)) = e.DataRow(Cols1(j))
                Next
                
                dr2("报料阶段") = e.DataRow("报料阶段")
                dr2("使用工艺名称") = e.DataRow("使用工艺名称")
                
            Next
            systemready = True
        End If
End Select

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/16 14:32:00 [只看该作者]

是不是你表名写错了?要写表C的名字

 

Dim drs As List(Of DataRow) = DataTables("工艺配方").Select("报料阶段 = '" & e.DataRow("报料阶段") & "' and 工艺名称 = '" & e.DataRow("使用工艺名称") & "'")

 

如果还不行,单独做个小例子上传上来测试。


 回到顶部
帅哥哟,离线,有人找我吗?
wangj6666
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:232 积分:1891 威望:0 精华:0 注册:2016/1/11 8:40:00
  发帖心情 Post By:2017/5/16 16:25:00 [只看该作者]

是的,我就是用的表C的名称。做小例子上传,怎么做?我还没有试过呢,能不能给点提示!谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/16 17:09:00 [只看该作者]

以下是引用wangj6666在2017/5/16 16:25:00的发言:
是的,我就是用的表C的名称。做小例子上传,怎么做?我还没有试过呢,能不能给点提示!谢谢!

 

新建一个项目,把你的表A、表C数据导入,上传上来。

 

或者,直接把你的项目上传上来。


 回到顶部
帅哥哟,离线,有人找我吗?
wangj6666
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:232 积分:1891 威望:0 精华:0 注册:2016/1/11 8:40:00
  发帖心情 Post By:2017/5/16 17:26:00 [只看该作者]

是不是这样上传,我试一下,您帮我看看!谢谢了!
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:水场配料核算系统.table


 回到顶部
帅哥哟,离线,有人找我吗?
有点色
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:超级版主 帖子:13837 积分:69650 威望:0 精华:0 注册:2016/11/1 14:42:00
  发帖心情 Post By:2017/5/16 18:06:00 [只看该作者]

改一下

 

Select Case e.DataCol.name
    Case "配料日期"
        If e.NewValue Is Nothing Then
            e.DataRow("结算日期") = Nothing
        Else
            Dim dt As Date = e.NewValue
            If dt.Day > 25 Then '如果为25日以后的日期
                dt = new Date(dt.year,dt.month,1) '改为下个月的第一天
                dt= dt.AddMonths(1)
            End If
            e.DataRow("结算日期") = dt
        End If
End Select

Select Case e.DataCol.name
    Case "报料阶段", "使用工艺名称"
        If e.DataRow.isnull("报料阶段")= False AndAlso e.DataRow.isnull("使用工艺名称") = False Then
            Dim Cols1() As String = {"使用工序","加料序号","材料名称","用量百分比","材料干湿"}
            Dim Cols2() As String = {"使用工序","加料序号","材料名称","用量百分比","材料干湿"}
            Dim drs As List(Of DataRow) = DataTables("工艺配方").Select("报料阶段 = '" & e.DataRow("报料阶段") & "' and 使用工艺名称 = '" & e.DataRow("使用工艺名称") & "'")
            systemready = False
            For i As Integer = 0 To drs.count-1
                Dim dr2 As DataRow
                If i = 0 Then
                    dr2 = e.DataRow
                Else
                    dr2 = e.DataTable.addnew
                End If
                For j As Integer = 0 To Cols1.Length -1
                    dr2(Cols2(j)) = drs(i)(Cols1(j))
                Next
               
                dr2("报料阶段") = e.DataRow("报料阶段")
                dr2("使用工艺名称") = e.DataRow("使用工艺名称")
               
            Next
            systemready = True
        End If
End Select


 回到顶部
帅哥哟,离线,有人找我吗?
wangj6666
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:童狐 帖子:232 积分:1891 威望:0 精华:0 注册:2016/1/11 8:40:00
  发帖心情 Post By:2017/5/17 13:51:00 [只看该作者]

已更改了红色部分,数据能找到并填入,但还是只填入了第一行的数据,并没能够增加另外的几行,并填入工艺配方表中对应的数据。还请您再帮我看看如何解决。谢谢!

 回到顶部
总数 14 1 2 下一页