以文本方式查看主题 - 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 -- 例子已上传,第一笔发票明细可以正常导入,第二笔明细就不好用了。实际开发票会出现一张发票对应半张订单,甚至是订单中一种产品的一定数量,等到下张发票再开这张订单的这种产品的剩余数量。所以才要这样去设计,让发票号可以对应任意订单、订单明细。
|
||||
-- 作者:有点色 -- 发布时间: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 |
||||
-- 作者: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 -- 关联表新增行的时候,关联列都是来自父表当前选择的行。 导入发票订单的时候,你要在发票订单表查找或手动选择刚刚新增的行,不然就会一直选择的第一行。然后导入发票明细表的时候就一直以发票订单表的第一行为父行了。 |