以文本方式查看主题

-  Foxtable(狐表)  (http://www.foxtable.com/bbs/index.asp)
--  专家坐堂  (http://www.foxtable.com/bbs/list.asp?boardid=2)
----  [求助]网络编辑下的列不重复  (http://www.foxtable.com/bbs/dispbbs.asp?boardid=2&id=97347)

--  作者:seal51
--  发布时间:2017/3/10 11:48:00
--  [求助]网络编辑下的列不重复
业务编号设为禁止重复, 也写了datacolchanging事件禁止业务编号重复, 窗口有个新增按钮。问题是张三点击新增了一个业务编号, 李四如果新增一个业务编号之前没有同步当前表就会新增一个同张三一样的业务编号, 如何处理呢?
--  作者:wyz20130512
--  发布时间:2017/3/10 12:13:00
--  
在新增按钮的前部加入同步数据的代码即可。
--  作者:seal51
--  发布时间:2017/3/10 12:28:00
--  

谢谢!好办法!不过数据多了, 同步就慢慢了


--  作者:wyz20130512
--  发布时间:2017/3/10 12:34:00
--  
可以设置同步的条件呀!
--  作者:有点蓝
--  发布时间:2017/3/10 14:31:00
--  
1、新增编号后就保存,查询判断的时候从后台查询

2、由服务端生成编号,参考:http://www.foxtable.com/webhelp/scr/3008.htm

--  作者:seal51
--  发布时间:2017/3/10 15:20:00
--  

有点蓝老师,下面这段代码如何更改?

e.DataRow.Save
Dim max As String
max = e.DataTable.Compute("max(业务编号)")
If max > "" Then
    Dim idx As Integer
    idx = CInt(max.SubString(2,4)) + 1
    e.DataRow("业务编号") = "DZ" & Format(idx,"0000")
Else
    e.DataRow("业务编号") = "DZ" & "0001"
End If
e.DataRow.Save


--  作者:有点色
--  发布时间:2017/3/10 16:00:00
--  

Dim max As String
max = e.DataTable.SqlCompute("max(业务编号)")
If max > "" Then
    Dim idx As Integer
    idx = CInt(max.SubString(2,4)) + 1
    e.DataRow("业务编号") = "DZ" & Format(idx,"0000")
Else
    e.DataRow("业务编号") = "DZ" & "0001"
End If
e.DataRow.Save


--  作者:seal51
--  发布时间:2017/3/10 16:03:00
--  
谢谢! 不过这样写就不用先同步表在新增数据了, 对吗?
--  作者:有点色
--  发布时间:2017/3/10 17:34:00
--  
以下是引用seal51在2017/3/10 16:03:00的发言:
谢谢! 不过这样写就不用先同步表在新增数据了, 对吗?

 

嗯嗯是的,直接后台查询了。


--  作者:seal51
--  发布时间:2017/3/10 17:43:00
--  
这太好了!