以文本方式查看主题 - Foxtable(狐表) (http://foxtable.net/bbs/index.asp) -- 专家坐堂 (http://foxtable.net/bbs/list.asp?boardid=2) ---- 自动生成行 (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=123578) |
||||
-- 作者:13775189031 -- 发布时间:2018/8/18 10:21:00 -- 自动生成行 表A Select Case e.DataCol.name
若表A 中数量改变,表“组装件详单及尺寸要求”中自动生成的行数也要随之改变,该怎么改? |
||||
-- 作者:有点蓝 -- 发布时间:2018/8/18 10:33:00 -- 代码没有问题。不过查询条件是"零部件编号",为什么Case "焊缝编号"判断这个列,整个代码貌似和这个列没有关系,是不是应该改为: Select Case e.DataCol.name Case "零部件编号" If e.DataRow.IsNull("零部件编号") Then DataTables("组装件详单及尺寸要求").DeleteFor("零部件编号=\'" & e.OldValue & "\'") Else Dim ndr1 As DataRow = DataTables("组装件详单及尺寸要求").Find("零部件编号 = \'" & e.DataRow("零部件编号") & "\'") If ndr1 Is Nothing Then For i As Integer = 1 To e.DataRow("数量") Dim ndr As DataRow = DataTables("组装件详单及尺寸要求").AddNew ndr("零部件编号") = e.DataRow("零部件编号") ndr("数量") = "1" Next End If End If End Select |
||||
-- 作者:13775189031 -- 发布时间:2018/8/18 10:43:00 -- 是不是因为表A 中“数量”是表达式列,所以不行,要怎么改? |
||||
-- 作者:有点蓝 -- 发布时间:2018/8/18 11:04:00 -- 和这个没有关系。2楼用法测试有什么问题?具体上传实例看看 |
||||
-- 作者:13775189031 -- 发布时间:2018/8/18 15:23:00 -- 在“焊接部件清单”中只要列“焊缝编号”不为空,则在表“组装件详单及尺寸要求”中自动增加行 当“数量”列有变化时,“组装件详单及尺寸要求”中的行数不能随之改变
|
||||
-- 作者:有点蓝 -- 发布时间:2018/8/18 15:46:00 -- 意思是数量等于3时,“组装件详单及尺寸要求”添加3行,如果数量改为4,“组装件详单及尺寸要求”在增加一行?如果数量改为2,“组装件详单及尺寸要求”要减去一行? |
||||
-- 作者:13775189031 -- 发布时间:2018/8/18 16:23:00 -- 是的 |
||||
-- 作者:有点蓝 -- 发布时间:2018/8/18 16:43:00 -- 零部件清单,datacolchanged。1楼的代码不用改 Select Case e.DataCol.name Case "数量" If e.DataRow.IsNull("数量") Then DataTables("组装件详单及尺寸要求").DeleteFor("零部件编号=\'" & e.DataRow("零部件编号") & "\'") Else Dim dr As DataRow = DataTables("焊接部件清单").Find("零部件编号 = \'" & e.DataRow("零部件编号") & "\' and 焊缝编号 is not null") If dr IsNot Nothing Then Dim drs As List(Of DataRow) = DataTables("组装件详单及尺寸要求").Select("零部件编号 = \'" & e.DataRow("零部件编号") & "\'") If drs.Count > e.DataRow("数量") Then Dim cnt = drs.Count - e.DataRow("数量") For i As Integer = 1 To cnt drs(drs.Count - i).delete Next ElseIf drs.Count < e.DataRow("数量") Dim cnt = e.DataRow("数量") - drs.Count For i As Integer = 1 To cnt Dim ndr As DataRow = DataTables("组装件详单及尺寸要求").AddNew ndr("零部件编号") = e.DataRow("零部件编号") ndr("生产令号") = e.DataRow("生产令号") ndr("项目名称") = e.DataRow("项目名称") ndr("零件名称") = e.DataRow("零件名称") ndr("零件图号") = e.DataRow("零件图号") ndr("数量") = "1" Next End If End If End If End Select [此贴子已经被作者于2018/8/18 16:44:30编辑过]
|
||||
-- 作者:13775189031 -- 发布时间:2018/8/20 15:48:00 -- Select Case e.DataCol.name
这一类代码中参数如“焊缝编号”或“工艺卡号”等,若主表中参数修改,如何能让关联表中生成行中的参数也自动修改? |
||||
-- 作者:有点蓝 -- 发布时间:2018/8/20 16:16:00 -- 父表:datacolchanged Select Case e.DataCol.name Case "焊缝编号" Dim drs As List(Of DataRow) = e.DataRow.GetChildRows("关联表子表名称") For Each dr As DataRow In drs dr("焊缝编号") = e.NewValue Next End Select
|