天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

 找回密码
 注册成为天翎用户
查看: 1829|回复: 7

多用户使用如何生成一个唯一的编号

[复制链接]
xxychao 发表于 2012-5-31 16:43:07 | 显示全部楼层 |阅读模式
本帖最后由 irene 于 2012-6-1 17:13 编辑

我用的是sp37900 ,在序号文本框的值脚本中使用如下代码生成值,多用户使用时重复,请问如何解决最科学!

var prefix = "";
var val = getItemValue("序号");
if(val == null || val.trim().length() <= 0){
   var code = getLastCount(prefix);
   if(code<=0){
     val=countNext2(prefix,false,false,false,6); //新自动编号
   }else{
      val =getLastCount2(prefix,false,false,false,6);
   }
   var dql = "$formname='测试主表' and 序号='" + val + "' and $id <>'" + getId() + "'";
   var datas = queryByDQL(dql);
   if (datas !=null && datas.size()>0){
          val = countNext2(prefix,false,false,false,6);
   }
}
val;
irene 发表于 2012-5-31 17:26:44 | 显示全部楼层
您好,请详细描述您具体的业务需求,以便我这边结合平台为您提供最优的解决方案。同时countNext2()函数在表单打开自动加一,多个用户使用时,平台会根据根据用户打开表单的先后顺序去递增,所以不会重复。
 楼主| xxychao 发表于 2012-5-31 17:28:36 | 显示全部楼层
本帖最后由 xxychao 于 2012-5-31 17:30 编辑

我就是一个多用户填报,序号是第一个字段,使用上述代码出现重复序号!代码本身没有什么漏洞吧?
irene 发表于 2012-5-31 17:45:15 | 显示全部楼层
您好,麻烦提供您具体的业务需求,以便我这边结合平台为您提供最优的解决方案,谢谢
 楼主| xxychao 发表于 2012-5-31 18:33:49 | 显示全部楼层

就是一个新建表单,序号如图,代码如上,出现重号现象,这样清楚吗?

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有帐号?注册成为天翎用户

x
irene 发表于 2012-6-1 09:22:12 | 显示全部楼层
您好,方便和您远程看看吗?我的QQ:2676466983
irene 发表于 2012-6-1 17:13:14 | 显示全部楼层
跟客户以远程的方式解决此问题。解决方案:表单打开时自动编号的文本框是空白的,在表单保存动作执行后里写脚本给自动编号字段赋值,多用户使用时该值就不会出现重复和重号的问题。保存动作执行后脚本如下:
  1. var doc = getCurrentDocument();
  2. var value = doc.getItemValueAsString("自动编号");
  3. if(value == null  ||  value.trim().length() <= 0){
  4. value = countNext2("TLK",true,true,false,4);
  5. doc.findItem("自动编号").setValue(value);
  6. var process = getDocProcess(getApplication());   //Document操作类
  7. process.doUpdate(doc);
  8. }
复制代码
 楼主| xxychao 发表于 2012-6-1 18:18:01 | 显示全部楼层
感谢技术支持!希望对论坛对较常用的代码进行归纳整理!

本版积分规则

QQ|手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-13 02:33

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表