以文本方式查看主题 - Foxtable(狐表) (http://foxtable.com/bbs/index.asp) -- 专家坐堂 (http://foxtable.com/bbs/list.asp?boardid=2) ---- 关联表增加行问题 (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=117537) |
-- 作者:13775189031 -- 发布时间:2018/4/14 9:55:00 -- 关联表增加行问题 Select
Case e.DataCol.Name
这个参考编码是一行父表生成一行子表,能不能根据筛选来生产子表,比如根据某列(逻辑列)判断,选中的则自动生成子表行,未选中的则不生成! |
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间:2018/4/14 10:12:00 -- 显示: 编译错误:“dr”在封闭块中隐藏变量 错误代码Dim dr As DataRow = DataTables("订单明细").AddNew()
|
-- 作者:有点蓝 -- 发布时间:2018/4/14 10:16:00 -- 事件其它地方有定义了dr这个名称了,不能重复,改为dr1等 |
-- 作者:13775189031 -- 发布时间:2018/4/14 11:07:00 -- 好了!谢谢! |
-- 作者:13775189031 -- 发布时间: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 -- 发布时间:2018/4/14 14:09:00 -- 发现问题了!必须先点击“下料”,再填写行里的其他信息,才可以在“下料清单”中生成, 如果先填其他信息,再点“下料”就不行了! 怎样才能反过来实现,就是先填信息,再点下料也可以?
|
-- 作者:有点蓝 -- 发布时间: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 -- 发布时间:2018/5/28 13:16:00 -- 之前的问题,“下料”逻辑列选中后,在下料清单中自动生成一行,但若修改“下料”逻辑列后,及不勾选,下料清单中怎样实现自动删除行? |
-- 作者:有点甜 -- 发布时间: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
|