以文本方式查看主题 - 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 -- [求助]网络环境下的编号
|
||||||||
-- 作者:有点甜 -- 发布时间: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 -- 两个表的编号,相互不影响的啊,后缀都不一样,为什么要区分?不看后缀,直接看前面的单号,要不一样?
|
||||||||
-- 作者:有点甜 -- 发布时间: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 材料入库主表的BeforeSaveDataRow
生成正式"入库单号",在网络环境下不会有重复编号 测试正常
材料入库主表的"结算单号"避免重号也采用上述方法 需涉及表事件两处的事件: DataRowAdding (生成临时编号), BeforeSaveDataRow 保存是从后台"编号"表获取最大编号 |
||||||||
-- 作者:liuyixin662 -- 发布时间:2018/1/4 12:49:00 -- 我上传的实例中的表是从外部数据源迁移到内部数据源的,实际应为外部表,材料入库主表的"入库单号"是不会重复的,因为是根据网络环境下的实例做的,没发现问题,现因为材料入库主表多了个"结算单号",需要与应付采购主表的"结算单号"相结合,材料入库主表采用sqlCompute("Max(结算单号)")代码,在多台电脑同时操作时会出现重号 |
||||||||
-- 作者:liuyixin662 -- 发布时间:2018/1/4 12:58:00 -- 老师你好,因为是外部数据源,网络环境下的多人操作,需要考虑8楼的方法 |