以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  自动填充数据问题  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=153039)

--  作者:356308762
--  发布时间:2020/7/29 15:45:00
--  自动填充数据问题

问题:A表统计成本=B表(多个材料组成的成本)+C表(多个工序成本),已经做了A_B,A_C两个关联表。如何在A表增加1行,并填入商品后,在A_C表和A_B表能自动填入我指定的那几个材料和工序,还有指定的数量。


--  作者:有点蓝
--  发布时间:2020/7/29 15:48:00
--  
参考:http://www.foxtable.com/webhelp/topics/1472.htm
--  作者:356308762
--  发布时间:2020/7/30 0:53:00
--  

图片点击可在新窗口打开查看此主题相关图片如下:捕获.png
图片点击可在新窗口打开查看
老师您好,A表所有商品是不重复的,而所有商品的材料和工序又都是几乎一样的,只是数量不同。
所以我希望的是从A表输入一个商品,子表A_B表和A_C表能自动输入都是一样的材料和工序,并输入一个默认数量,这样我只要修改部分不同的数量就行了。
您给的参考,我没转过来要怎么来实现这个。

--  作者:有点蓝
--  发布时间:2020/7/30 9:01:00
--  
意思是A表输入商品的时候,自动给其它表新增行?到datacolchanged事件处理

if e.datacol.name = "商品" andalso e.newvalue > "" then
dim r as row = tables("xx子表").addnew
r("第一列") = xxx
r("第二列") = xxx
end if

--  作者:356308762
--  发布时间:2020/7/30 12:21:00
--  回复:(有点蓝)意思是A表输入商品的时候,自动给其它...

老师您好,我试了下,这样父表A的商品名称不能更改,不然就会在子表又添加一遍数据会重复。

If e.DataCol.name = "商品_名称" AndAlso e.newvalue > "" Then
Dim r As Row = Tables("成品记录.组装工序").addnew还有一个子表(成品记录.组装表)是否可以加进这个代码里,还是再重新录一遍这个代码,改一下?
r("工序_名称") = {"手工绕线" , "焊接1","装配1","粘合","包装1"}这个分隔符应该用什么?试了好几种都会出错。
r("工序_数量") = {"2","1","1","1","1"}
End If


--  作者:有点蓝
--  发布时间:2020/7/30 14:03:00
--  
如果可以改商品名称,您希望怎么做?

如果还有另外一个表,重复复制中间三行代码使用即可。

分隔符是什么意思,每个名称一行数据?还是指多值字段?

--  作者:356308762
--  发布时间:2020/7/30 14:23:00
--  回复:(有点蓝)如果可以改商品名称,您希望怎么做?...
老师,是每个名称一行数据。
--  作者:有点蓝
--  发布时间:2020/7/30 14:57:00
--  



If e.DataCol.name = "商品_名称" AndAlso e.newvalue > "" Then
dim s1() as string = {"手工绕线" , "焊接1","装配1","粘合","包装1"}
dim s2() as string ={"2","1","1","1","1"}
for i as integer = 0 to s1.length - 1
Dim r As Row = Tables("成品记录.组装工序").addnew
r("工序_名称") = s1(i)
r("工序_数量") = s2(i)
next

End If

--  作者:356308762
--  发布时间:2020/7/30 20:25:00
--  回复:(有点蓝)If e.DataCol.name = "商品_名称" An...
非常感谢老师!
现在又出现了一个问题,就是子表会自动录2遍。我只要1遍就行了。

If e.DataCol.name = "商品_名称" AndAlso e.newvalue > "" Then
    Dim s1() As String = {"手工绕线","焊接1","装配1","粘合","包装1"}
    Dim s2() As String ={"2","2","1","1","1"}
    For i As Integer = 0 To s1.length - 1
        Dim r As Row = Tables("成品记录.组装工序").addnew
        r("工序_名称") = s1(i)
        r("工序_数量") = s2(i)
    Next
    Dim s3() As String = {"111","222","333"}
    Dim s4() As String ={"2","2","1"}
    For i As Integer = 0  To s1.length - 3(这句是什么意思?试了下,这个只能设置3以上,不然会出现超出范围的提示)
        Dim r As Row = Tables("成品记录.组装单").addnew
        r("子件_名称") = s3(i)
        r("子件_数量") = s4(i)
    Next
    
End If

--  作者:有点蓝
--  发布时间:2020/7/30 20:28:00
--  
    Dim s3() As String = {"111","222","333"}
    Dim s4() As String ={"2","2","1"}
    For i As Integer = 0  To s3.length - 1(这句是什么意思?试了下,这个只能设置3以上,不然会出现超出范围的提示)
        Dim r As Row = Tables("成品记录.组装单").addnew
        r("子件_名称") = s3(i)
        r("子件_数量") = s4(i)
    Next