以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]这样代码能获取到“_Identify”吗?  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=134904)

--  作者:shenhq
--  发布时间:2019/5/12 11:24:00
--  [求助]这样代码能获取到“_Identify”吗?
新增记录窗口_afterload()

\'增加新行
Dim dr As Row
dr = Tables("权利人名单").AddNew()
\'定位到新增行
Tables("权利人名单").Position = Tables("权利人名单").Rows.count -1
CurrentTable.Current("项目编号") = xmbh
\'生成档案编号
Dim bh As Integer
bh = CurrentTable.Current("_Identify")
CurrentTable.Current("档案编号") = "P" & bh

以上代码获取 "_Identify" 赋值给  bh ,作为档案编号
---------------------------------------------------

add_Click()

\'确认新增
If e.Form.Controls("TextBox6").value ="" Then
    MessageBox.Show("<权利人>不能为空!")
    e.Form.Controls("TextBox6").Select()
Else
    Dim bh As String   
   bh = e.Form.Controls("TextBox2").value    \'获取文本框中生成的编号
    Dim dr As DataRow
    dr = DataTables("权利人名单").SQLFind("[档案编号] = \'" & bh & "\'")
    If dr Is Nothing Then       \'如果没找到重复的档案编号,保存新增行
        CurrentTable.Current("档案编号") =  bh
        CurrentTable.Current("录入日期") = Date.Now
        CurrentTable.Current("录入用户") = User.Name
        CurrentTable.Current.save()
        CurrentTable.Current.DataRow.load()
        e.Form.Close()
    Else
        MessageBox.show("档案编号重复,请取消当前窗口,重新点击<新增>获取编号后保存!")
       
    End If
End If

\'以上代码验证 bh (档案编号唯一)后保存。
------------------------------------------------------------------

多用户环境,使用mssql

出现问题是:老是“ MessageBox.show("档案编号重复,请取消当前窗口,重新点击<新增>获取编号后保存!")”,
但有时却能很顺利地增加记录。


--  作者:cbt
--  发布时间:2019/5/12 11:35:00
--  
_Identify
外部数据源的话,新增行需要先保存后 再获取!

--  作者:有点甜
--  发布时间:2019/5/12 21:30:00
--  
先save一下,再获取_Identify的值,不然,_Identify的值,是临时的。