Foxtable(狐表)用户栏目专家坐堂 → 关联表增加行问题


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

主题:关联表增加行问题

美女呀,离线,留言给我吧!
13775189031
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:805 积分:5564 威望:0 精华:0 注册:2017/12/19 14:46:00
关联表增加行问题  发帖心情 Post By:2018/4/14 9:55:00 [只看该作者]

Select Case e.DataCol.Name
Case
"订单编号"
If e.DataRow.IsNull("订单编号") = False Then '如果已经输入订单编号
If e.DataRow.GetChildRows("订单明细").Count = 0 Then '而且无订单明细
Dim dr As DataRow = DataTables("订单明细").AddNew()
dr(
"订单编号") = e.DataRow("订单编号")
End
If
End If
End
Select



这个参考编码是一行父表生成一行子表,能不能根据筛选来生产子表,比如根据某列(逻辑列)判断,选中的则自动生成子表行,未选中的则不生成!


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


加好友 发短信
等级:超级版主 帖子:106675 积分:542564 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/4/14 10:01:00 [只看该作者]

Select Case e.DataCol.Name
    Case "订单编号"
        If e.DataRow.IsNull("订单编号") = False Then '如果已经输入订单编号
            If e.DataRow("某逻辑列") = True Then 
                Dim dr As DataRow = DataTables("订单明细").AddNew()
                dr("订单编号") = e.DataRow("订单编号")
            End If
        End If
End Select

 回到顶部
美女呀,离线,留言给我吧!
13775189031
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:805 积分:5564 威望:0 精华:0 注册:2017/12/19 14:46:00
  发帖心情 Post By:2018/4/14 10:12:00 [只看该作者]

显示:
编译错误:“dr”在封闭块中隐藏变量

错误代码Dim dr As DataRow = DataTables("订单明细").AddNew()

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


加好友 发短信
等级:超级版主 帖子:106675 积分:542564 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/4/14 10:16:00 [只看该作者]

事件其它地方有定义了dr这个名称了,不能重复,改为dr1等

 回到顶部
美女呀,离线,留言给我吧!
13775189031
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:805 积分:5564 威望:0 精华:0 注册:2017/12/19 14:46:00
  发帖心情 Post By:2018/4/14 11:07:00 [只看该作者]

好了!谢谢!

 回到顶部
美女呀,离线,留言给我吧!
13775189031
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:805 积分:5564 威望:0 精华:0 注册:2017/12/19 14:46:00
  发帖心情 Post By:2018/4/14 13:31:00 [只看该作者]

Dim ary1() As String = {"下料", "机加工", "无损探伤", "镀层", "组合焊接", "热处理", "试装配", "酸洗", "装配", "水压试验", "喷砂油漆", "打包装箱"}
Dim ary2() As String = {"下料", "机加工", "无损探伤", "镀层", "组合焊接", "热处理", "试装配", "酸洗", "装配", "水压试验", "喷砂油漆", "打包装箱"}
If e.DataCol.Name = "工序流程" Then
    Dim str As String = e.DataRow("工序流程")
    'MessageBox.Show("你选择的是" & str & "项.")
    Dim ary3 = str.split("|")
    'MessageBox.Show("你选择的是" & ary3(0) & "项.")
    For i As Integer = 0 To ary1.length-1
        Dim idx As Integer = array.indexof(ary3, ary1(i))
        If idx >= 0 Then
            Tables("零部件清单").current(ary2(i)) = True
        Else
            Tables("零部件清单").current(ary2(i)) = False
        End If
    Next
Else 'MessageBox.Show("你选择的是" & "项.")
End If

Select Case e.DataCol.Name
    Case "零部件编号"
        If e.DataRow.IsNull("零部件编号") = False Then '如果已经输入订单编号
            If e.DataRow("下料") = True Then 
                Dim dr1 As DataRow = DataTables("下料清单").AddNew()
                dr1("零部件编号") = e.DataRow("零部件编号")
            End If
        End If

逻辑列“下料”=true是根据第一段代码生成的
现在“下料清单”自动增加行没反应


 回到顶部
美女呀,离线,留言给我吧!
13775189031
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:805 积分:5564 威望:0 精华:0 注册:2017/12/19 14:46:00
  发帖心情 Post By:2018/4/14 14:09:00 [只看该作者]

发现问题了!必须先点击“下料”,再填写行里的其他信息,才可以在“下料清单”中生成,
如果先填其他信息,再点“下料”就不行了!
怎样才能反过来实现,就是先填信息,再点下料也可以?

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


加好友 发短信
等级:超级版主 帖子:106675 积分:542564 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2018/4/14 15:00:00 [只看该作者]

Select Case e.DataCol.Name
    Case "零部件编号","下料"
        If e.DataRow.IsNull("零部件编号") = False Then '如果已经输入订单编号
            If e.DataRow("下料") = True Then 
                Dim dr1 As DataRow = DataTables("下料清单").AddNew()
                dr1("零部件编号") = e.DataRow("零部件编号")
            End If
        End If

 回到顶部
美女呀,离线,留言给我吧!
13775189031
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:四尾狐 帖子:805 积分:5564 威望:0 精华:0 注册:2017/12/19 14:46:00
  发帖心情 Post By:2018/5/28 13:16:00 [只看该作者]

之前的问题,“下料”逻辑列选中后,在下料清单中自动生成一行,但若修改“下料”逻辑列后,及不勾选,下料清单中怎样实现自动删除行?

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


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2018/5/28 14:28:00 [只看该作者]

Select Case e.DataCol.Name
    Case "零部件编号","下料"
        If e.DataRow.IsNull("零部件编号") = False Then '如果已经输入订单编号
            If e.DataRow("下料") = True Then 
                Dim dr1 As DataRow = DataTables("下料清单").AddNew()
                dr1("零部件编号") = e.DataRow("零部件编号")
            Else
                DataTables("下料清单").DeleteFor("零部件编号='" & e.DataRow("零部件编号") & "'")
            End If
        End If

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