Foxtable(狐表)用户栏目专家坐堂 → 取_identify值居然失败了?


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

主题:取_identify值居然失败了?

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


加好友 发短信
等级:二尾狐 帖子:515 积分:5051 威望:0 精华:0 注册:2017/9/1 23:28:00
取_identify值居然失败了?  发帖心情 Post By:2021/4/27 22:51:00 [只看该作者]

是这样的,我要把_identify作为记录的唯一标识,我在明细表增加了一个叫ID的字段,然后在点击“审核”按钮之后,执行下面代码:
Tables("采购单").Current("审核") = "已审核"
Tables("采购单").Current.Locked = True
Tables("采购单").Current.Save()
     For Each cdr As DataRow In dr.DataRow.GetChildRows("采购明细") 
CDR.LOCK
        CDR.SAVE
cdr(“ID”)=Tables("采购明细").Current("_identify")
     NEXT
然后发现ID值都是1??按照帮助的说法,_identify只有在保存之后才会生效,按道理这时候记录应该已经得到正确的ID值了啊?
然后再改下,重复循环一次吧,代码改成:
Tables("采购单").Current("审核") = "已审核"
Tables("采购单").Current.Locked = True
Tables("采购单").Current.Save()
     For Each cdr As DataRow In dr.DataRow.GetChildRows("采购明细") 
CDR.LOCK
        CDR.SAVE
     NEXT

For Each cid As DataRow In dr.DataRow.GetChildRows("采购明细") 
Dim id As Integer = Tables("采购明细").Current("_identify")
  cid("ID")=id
  cid.save
msgbox(id)
Next

但是ID的值仍然是1???我错在哪里??

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


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/27 23:08:00 [只看该作者]

Tables("采购单").Current是指"采购单"表当前选中的行,选一个不同的行,还是1吗?

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


加好友 发短信
等级:二尾狐 帖子:515 积分:5051 威望:0 精华:0 注册:2017/9/1 23:28:00
  发帖心情 Post By:2021/4/27 23:15:00 [只看该作者]

蓝老师好,采购单是主表,主表已经有唯一标识了。
需要加ID的是采购明细,明细是子表,ID在子表,我的代码要表达的意思是,建立一个主表后,增加子表记录,然后保存的时候,通过循环,把子表新增的明细记录的_identify的值写入ID字段。

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


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/27 23:24:00 [只看该作者]

Tables("采购明细").save
For Each cid As DataRow In dr.DataRow.GetChildRows("采购明细") 
  cid("ID")=cid("_identify")
Next

Tables("采购明细").save

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


加好友 发短信
等级:二尾狐 帖子:515 积分:5051 威望:0 精华:0 注册:2017/9/1 23:28:00
  发帖心情 Post By:2021/4/27 23:36:00 [只看该作者]

搞定!谢谢蓝老师!
但是按照这个代码来说,帮助文档就是错误的了。如果子表执行了.save,这时候的_identify就应该是已经生成了。不应该再执行一次啊?

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


加好友 发短信
等级:超级版主 帖子:107135 积分:544918 威望:0 精华:9 注册:2015/6/24 9:21:00
  发帖心情 Post By:2021/4/28 8:37:00 [只看该作者]

4楼第二次是为了保存ID值,当然如果想以后填入其它数据后再保存,可以去掉第二次的保存语句

 回到顶部