Foxtable(狐表)用户栏目专家坐堂 → 关于子表有多个父表的问题


  共有3303人关注过本帖树形打印复制链接

主题:关于子表有多个父表的问题

帅哥哟,离线,有人找我吗?
CBSLULU33
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:142 积分:1000 威望:0 精华:0 注册:2014/2/20 13:25:00
关于子表有多个父表的问题  发帖心情 Post By:2014/8/12 13:48:00 [只看该作者]

老师好,我有一个叫[出库明细表]和TABLE,里面"产品名称","型号规格"等字段有相同值重复出现没问题,但"钢瓶号码"这一字段一出现重复就提示"子行有多个父行",这是为什么呢?
因为我的产品比较特殊,每一件产品都有一个类似ID的编号(钢瓶号码),当一件产品从采购入库到用完出库后,我会将这个瓶号从库存列表中删除,新一轮采购入库时,就有可能出现和以前重复的"钢瓶号码"。
出问题的[出库明细表]TABLE,对应一个叫[出库主表]的TABLE,主表与明细表以"出库单号"相互关联。这样新的出库明细表中出库的钢瓶号码就会和历史记录中拥有别的"出库单号"的钢瓶号码相重复;是不是这个原因导致了系统提示"子行有多个父行",这个问题有办法解决吗?因为长期来看某一个钢瓶号码就算是系统中以前没有出现过的,在以后也是会不断出现的,不解决的话,这个系统就无法继续下去了,谢谢

 回到顶部
帅哥哟,离线,有人找我吗?
rjh4078
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:狐精 帖子:3360 积分:24792 威望:0 精华:0 注册:2012/3/26 21:47:00
  发帖心情 Post By:2014/8/12 14:00:00 [只看该作者]

你做关联的时候尽量用唯一值来关联  比如自己设计一个出库单号  不要使用产品编号这种重复调用的项来关联


 回到顶部
帅哥哟,离线,有人找我吗?
CBSLULU33
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:142 积分:1000 威望:0 精华:0 注册:2014/2/20 13:25:00
  发帖心情 Post By:2014/8/12 14:16:00 [只看该作者]

我就是考虑到这个问题,所以用的是出库单号这个唯一值来做的关联

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  4楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/12 14:26:00 [只看该作者]

以下是引用CBSLULU33在2014-8-12 14:16:00的发言:
我就是考虑到这个问题,所以用的是出库单号这个唯一值来做的关联

 

你的【钢瓶号码】肯定是关联字段,可能是和别的表设置的关联,父表的关联字段是不能重复的。


 回到顶部
帅哥哟,离线,有人找我吗?
CBSLULU33
  5楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:142 积分:1000 威望:0 精华:0 注册:2014/2/20 13:25:00
  发帖心情 Post By:2014/8/12 14:49:00 [只看该作者]

按照甜老师的提示我检查了一遍,发现了"出库明细表"和"库存明细表"之间是以[钢瓶号码]做了关联,而"出库明细表"正是这个关联的父表。但因为同一种产品,如:"HCL",会有许多件分别来源于不同的进货批, [钢瓶号码]作为唯一识别码,而不是[产品名称]; 有没有办法做到相同[钢瓶号码]再次入库时,系统自动前置或后置一个代码,既不重复,又有别的含意。如:钢瓶号码为HBK05660的钢瓶号码又一次入库时,系统自动添加后缀为-02,则这个瓶号则变为:HBK05660-02,意为 HBK05660的钢瓶第二次入库,以此类退,请甜老师指导,谢谢了!

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  6楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/12 14:58:00 [只看该作者]

 自己参考编号的生成

 

http://www.foxtable.com/help/topics/2403.htm

 


 回到顶部
帅哥哟,离线,有人找我吗?
CBSLULU33
  7楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:142 积分:1000 威望:0 精华:0 注册:2014/2/20 13:25:00
  发帖心情 Post By:2014/8/14 9:21:00 [只看该作者]

甜老师,我这个编号和由代码规则生成的编号有不同。我的编号是供应商给定的,我要根据收货单在系统中进行录入,而不是由系统自动生成。我的想法是,在录入编号时,将某编号在[入库明细表]中进行检索,如发现有重复出现的现象,即在新录入的编号前(或后)按照代码提示生成识别码,这样即使作为父表的关联词,也是唯一编号,不再出现上述系统提示,请甜老师帮忙指导,谢谢!

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  8楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/14 9:40:00 [只看该作者]

 

查找重复,参考 http://www.foxtable.com/help/topics/2481.htm

 

[此贴子已经被作者于2014-8-14 9:40:08编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
有点甜
  9楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:版主 帖子:85326 积分:427815 威望:0 精华:5 注册:2012/10/18 22:13:00
  发帖心情 Post By:2014/8/14 9:47:00 [只看该作者]

Datacolchanging事件,参考代码

 

If e.DataCol.Name = "订单号" AndAlso e.newvalue <> Nothing Then
    Dim dr As DataRow
    dr = e.DataTable.Compute("", "订单号 like '" & e.NewValue & "%'")
    If dr IsNot Nothing Then
        Dim max As String = e.DataTable.Compute("max(订单号)", "订单号 like '" & e.NewValue & "%'")
        Dim idx As Integer = val(max.SubString(e.newvalue.length)) + 1
        e.newvalue = e.newvalue & format(idx,"000")
    End If
End If

[此贴子已经被作者于2014-8-14 9:47:12编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
CBSLULU33
  10楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:幼狐 帖子:142 积分:1000 威望:0 精华:0 注册:2014/2/20 13:25:00
  发帖心情 Post By:2014/8/14 10:01:00 [只看该作者]

甜老师,因为实际中需要检索的列是"钢瓶号码"列,所以把您提供的参考代码中的"订单号"替换成了"钢瓶号码",试了一下,如:13C185150,但没有变成13C185150001,这和我录入时采用批量粘贴有关系吗?因为供应商提供了"钢瓶号码"的EXCEL版,我直接复制粘贴进去的,谢谢!

 回到顶部
总数 15 1 2 下一页