以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  关联表问题  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=96252)

--  作者:luckbetter333
--  发布时间:2017/2/16 12:28:00
--  关联表问题
三个表,父子孙,父和子用列1关联,子和孙用列1和列2关联,一开始做了个窗口把父和父子关联表和父子孙关联表放在一起,结果发现从别的表导入数据到父子孙关联表无法导入,后来改成父和父子关联表一窗口,子和子孙关联表一窗口,发现从别的表导入数据到子孙关联表还是无法导入。
是不是我只能放弃关联关系,用代码来实现功能了?
导入按钮代码如下:
If Tables("导入订单_订单明细表").rows.Count > 0 Then

 

    For Each r1 As Row In Tables("导入订单_订单明细表").GetCheckedRows

        Dim  r2 As Row = Tables("出库主表.出库明细表").AddNew

        r2("客户订单号") = r1("客户订单号")

        r2("物料编号") = r1("物料编号")

        r2("未交数量") = r1("未交数量")

        r2("实交数量") = r1("未交数量")

    Next

    e.Form.close   

Else

    MessageBox.Show("该笔订单无未交项!")

End If


--  作者:有点色
--  发布时间:2017/2/16 12:46:00
--  

 用例子说明你的问题。不能导入什么意思?

 

 用代码可以任意的导入数据。


--  作者:luckbetter333
--  发布时间:2017/2/16 14:10:00
--  
例子已上传,第一笔发票明细可以正常导入,第二笔明细就不好用了。实际开发票会出现一张发票对应半张订单,甚至是订单中一种产品的一定数量,等到下张发票再开这张订单的这种产品的剩余数量。所以才要这样去设计,让发票号可以对应任意订单、订单明细。
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:关联表导入数据.zip


--  作者:有点色
--  发布时间:2017/2/16 14:23:00
--  
 哪个窗口哪个按钮,你哪个表要导入哪个表的数据?
--  作者:luckbetter333
--  发布时间:2017/2/16 14:42:00
--  
导入订单按钮打开导入发票订单窗口,点击导入后自动在发票表.发票订单表新增相应行,从订单表抓数据,导入到发票订单表
导入明细按钮打开导入发票明细窗口,点击导入后自动在发票表.发票订单表.发票明细表新增相应行,从销售台账抓数据,导入到发票明细表。
问题出在导入发票明细窗口
第一个订单的明细正常导入
第二个订单开始,点击导入,关联表发票表.发票订单表.发票明细表看不到新增的行,但是发票明细表中实际有新增的行。

--  作者:有点色
--  发布时间:2017/2/16 14:48:00
--  

这个意思?

 

If Tables("导入发票明细_销售台账").rows.Count > 0 Then
   
    For Each r1 As Row In Tables("导入发票明细_销售台账").GetCheckedRows
        Dim  r2 As Row = Tables("发票表.发票订单表.发票明细表").AddNew
        r2("产品编码") = r1("产品编码")     
    Next
    e.Form.close
Else
    MessageBox.Show("该笔订单无未开票项!")
End If


--  作者:luckbetter333
--  发布时间:2017/2/16 15:35:00
--  
是啊,用的这个代码,但是有的订单明细能够导入,有的不能,我觉得是关联表的问题,因为如果是二级关联表,没出现过这种问题,这三个表是三级,而且关联列不是用的一个,因为发票表里没有销售合同代码,而发票订单表和发票明细表的关联列必须有销售合同代码,否则没法找到相应的订单明细。我尝试了用两个关联列和只用发票号码一个关联列两种方法,都不可行。有什么好办法呢?
--  作者:有点蓝
--  发布时间:2017/2/16 15:57:00
--  
必须有对应的内容才能关联起来的。不然就增加一列辅助列咯
--  作者:luckbetter333
--  发布时间:2017/2/16 16:03:00
--  
申请发票号码就是辅助列,但是销售合同编码这一列没法在发票表中存在,因为一张发票可能对应多个销售合同编码
而且发票订单表和发票明细表不能放弃关联列销售合同编码,因为这样会导致同一个申请发票号码,但是不同销售合同编码的产品项随着申请发票号码关联过来,所以最好能这两个都设置成关联列,但这样就出现现在的情况,无法导入

--  作者:有点蓝
--  发布时间:2017/2/16 16:33:00
--  
关联表新增行的时候,关联列都是来自父表当前选择的行。

导入发票订单的时候,你要在发票订单表查找或手动选择刚刚新增的行,不然就会一直选择的第一行。然后导入发票明细表的时候就一直以发票订单表的第一行为父行了。