以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.com/bbs/index.asp)
--  专家坐堂  (http://foxtable.com/bbs/list.asp?boardid=2)
----  [求助]网络环境下的编号  (http://foxtable.com/bbs/dispbbs.asp?boardid=2&id=112840)

--  作者:liuyixin662
--  发布时间:2018/1/3 21:48:00
--  [求助]网络环境下的编号
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:网络环境下的编号.txt

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:网络环境下编号.zip


--  作者:有点甜
--  发布时间:2018/1/3 22:51:00
--  

没看懂你的逻辑。

 

1、材料入库主表的结算单号,是自己单独生成,还是需要考虑表【应付款采购主表】?也就是生成的编号是否在另一个表重复?

 

2、应付款采购主表的结算单号,直接去【材料入库主表】的单号,还是自己单独生成?

 

3、你现在遇到什么问题?解决什么问题?哪里不会?


--  作者:liuyixin662
--  发布时间:2018/1/4 8:15:00
--  

项目中有两个窗口:1,入库单,2,结算单,项目已上传

1,条件是:入库类型为"采购入库"或"委外,加工入库"时,材料入库主表生成结算单号,同时在应付款采购主表查找该结算单号,如果未查到此单号则添加该材料入库主表生成的结算单号.

2,应付款采购主表的结算单号,两种途经生成:1,由材料入库主表生成,2,通过窗口"结算单"新增单据按钮生成.

3,现在遇到的问题是:1,在网络环境下多人操作测试时,应付款采购主表的结算单号会重复

4,需解决的问题是:1,应付款采购主表的结算单号通过  "编号"  表解决重号问题,需考虑两种途经生成:1,由材料入库主表生成,2,通过窗口"结算单"新增单据按钮生成

谢谢老师


--  作者:有点甜
--  发布时间:2018/1/4 9:24:00
--  

两个表的编号,相互不影响的啊,后缀都不一样,为什么要区分?不看后缀,直接看前面的单号,要不一样?

 

 

 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:网络环境下编号.foxdb


--  作者:有点甜
--  发布时间:2018/1/4 9:25:00
--  
你本来生成编号的方法就没问题,不能生成,是因为你在datarowadding写了代码,你要写到datarowadded事件去。
--  作者:liuyixin662
--  发布时间:2018/1/4 12:22:00
--  

老师你好,材料入库主表的"入库单号"是采用临时编号方式是能正常生成"入库单号",关健是材料入库主表的"结算单号"目前不是通过"编号"表生成的"结算单号",在网络环境下通过sqlCompute("Max(结算单号)")方式生成的,所以会出现重复"结算单号",麻烦老师了


--  作者:有点甜
--  发布时间:2018/1/4 12:26:00
--  

1、用sqlCompute可以处理重复,参考5楼代码。

 

2、即便你用【编号】表这个方式,也无法避免出现重复情况,同步保存的时候,也有可能重复的。


--  作者:liuyixin662
--  发布时间:2018/1/4 12:39:00
--  

以下是材料入库主表的DataRowAdding

临时"入库单号"的代码:

e.DataRow("录入人") = User.Name
e.DataRow("录入日期") = Date.Today
Static Index As Integer = 99999      ,临时编号
e.DataRow("入库单号") = "WLRK" & Format(Date.Today(),"yyMM") & "-" & Index
Index = Index - 1

材料入库主表的BeforeSaveDataRow

生成正式"入库单号",在网络环境下不会有重复编号

测试正常

 

材料入库主表的"结算单号"避免重号也采用上述方法

需涉及表事件两处的事件:

DataRowAdding  (生成临时编号),

BeforeSaveDataRow   保存是从后台"编号"表获取最大编号


--  作者:liuyixin662
--  发布时间:2018/1/4 12:49:00
--  
我上传的实例中的表是从外部数据源迁移到内部数据源的,实际应为外部表,材料入库主表的"入库单号"是不会重复的,因为是根据网络环境下的实例做的,没发现问题,现因为材料入库主表多了个"结算单号",需要与应付采购主表的"结算单号"相结合,材料入库主表采用sqlCompute("Max(结算单号)")代码,在多台电脑同时操作时会出现重号
--  作者:liuyixin662
--  发布时间:2018/1/4 12:58:00
--  
老师你好,因为是外部数据源,网络环境下的多人操作,需要考虑8楼的方法