以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  [求助]  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=47893)

--  作者:lwj396086371
--  发布时间:2014/3/19 10:26:00
--  [求助]

现有两个表,一个表是销售明细,另外一个表为销售货物条码明细表(该表除了条码列外其他列是根据第一个表的数据自动生成的)

生成的样式为附件“销售货物条码明细表.png"

求助代码


图片点击可在新窗口打开查看此主题相关图片如下:销售单.png
图片点击可在新窗口打开查看

图片点击可在新窗口打开查看此主题相关图片如下:销售货物条码明细.png
图片点击可在新窗口打开查看

--  作者:Bin
--  发布时间:2014/3/19 10:40:00
--  
请上例子.
--  作者:lwj396086371
--  发布时间:2014/3/19 10:54:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:条码练习.foxdb


--  作者:e-png
--  发布时间:2014/3/20 15:49:00
--  

MainTableChanged中:
If MainTable.Name = "销售货物条码明细"
DataTables("销售货物条码明细").DataRows.Clear() 
    For Each r0 As Row In Tables("销售单").Rows
        For i As Integer = 1 To r0("数量") 

            Dim t As Table = Tables("销售货物条码明细")
            Dim r As Row = t.addnew()
            r("销售单号") = r0("销售单号")
            r("货物名称") = r0("货物名称")
            r("提货机型") = r0("提货机型")
            r("数量") = 1
        Next
    Next
End If


--  作者:lwj396086371
--  发布时间:2014/3/24 21:51:00
--  
这样会将以前已经输入的条码全部清除
--  作者:lwj396086371
--  发布时间:2014/3/24 22:01:00
--  

其实就是想实现当“销售单表”增加一行后,“销售货物条码明细”表自动根据“销售单表”中的“数量”列的值增加行数

(实现这个功能就是为了后期录入条码且因为每一个货物条码的唯一性)


--  作者:有点酸
--  发布时间:2014/3/24 22:31:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目1.rar


--  作者:lsy
--  发布时间:2014/3/25 8:25:00
--  

BeforeSaveDataRow

If e.DataRow.RowState = DataRowState.Added AndAlso e.DataRow.IsNull("销售单号") = False AndAlso e.DataRow.IsNull("货物名称") = False _

    AndAlso e.DataRow.IsNull("提货机型") = False AndAlso e.DataRow("数量") > 0 Then
    For i As Integer = 1 To e.DataRow("数量")
        Dim dr As DataRow = DataTables("销售货物条码明细").AddNew()
        For Each s As String In "销售单号|货物名称|提货机型".Split("|")
            dr(s) = e.DataRow(s)
            dr("数量") = 1
        Next
    Next
End If

跨表新增行的操作,最好用BeforeSaveDataRow

如果用DataColChanged,在修改相关列值的时候,会造成重复新增行。


--  作者:lwj396086371
--  发布时间:2014/3/25 9:02:00
--  

谢谢!还有一个问题,如果销售表进行了修改相对应的“销售条码明细表”也要修改,这个代码咋弄?


--  作者:lwj396086371
--  发布时间:2014/3/25 9:32:00
--  

有两种情况:

1、比如订单号为001的货物A原来数量3,相对应的“销售条码明细表”增加了三行,现将数量修改为2,那么现将相对应的“销售条码明细表”增加了的三行删除,同时在原有位置增加2行;

2、比如订单号为001的货物A原来数量3,相对应的“销售条码明细表”增加了三行,现将货物名称改为“B”,数量为“5”,那么现将相对应的“销售条码明细表”增加了的三行删除,同时在原有位置将货物名称改为“B”,增加5行;