起步软件技术论坛
搜索
 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3989|回复: 9

[结贴] 请教数据规则中设置自动编号

[复制链接]

3

主题

8

帖子

21

积分

新手上路

Rank: 1

积分
21
QQ
发表于 2014-7-3 08:57:20 | 显示全部楼层 |阅读模式
版本: X5.2.7 小版本号:
数据库: MS SQLServer 服务器操作系统: Windows 应用服务器: Tomcat
客户端操作系统: Windows 7 浏览器: Chrome
请教数据规则中设置自动编号如何实视?
主表是树,中有两个字段,一个是tpyeCode假设当前值为'S,另一个字段为Code.假设当前值为'00000'
想在从表的NO字段设置据规则中实现从的NO字段在新增时的值为S00001的自动编号,且需要连续编号


123

主题

503

帖子

831

积分

高级会员

Rank: 4

积分
831
QQ
发表于 2014-7-3 09:04:08 | 显示全部楼层
你的意思是从表的no字段,值为主表的typeCode和code这两个字段加在一起是吗?
这个你可以在js里面写一个函数,然后在你每次new子表的时候,调用这个函数把返回值使用setValue的方法赋给no字段
共同进步
愿起步一统开发平台
回复 支持 反对

使用道具 举报

3

主题

8

帖子

21

积分

新手上路

Rank: 1

积分
21
QQ
 楼主| 发表于 2014-7-3 09:09:40 | 显示全部楼层
wz1383691 发表于 2014-7-3 09:04
你的意思是从表的no字段,值为主表的typeCode和code这两个字段加在一起是吗?
这个你可以在js里面写一个函 ...

能写个例子吗?刚接触JAVA,语法不熟!
回复 支持 反对

使用道具 举报

123

主题

503

帖子

831

积分

高级会员

Rank: 4

积分
831
QQ
发表于 2014-7-3 09:15:38 | 显示全部楼层
alanwu 发表于 2014-7-3 09:09
能写个例子吗?刚接触JAVA,语法不熟!

var m=justep.xbl('mData');
var n=justep.xbl('nData');
var sNo=m.getValue("typeCode")+(m.getValue("Code")+1);//单纯的取出主表的这两个字段来拼在一起
不知道你主表的这个0000会不会增加
n.setValue("no",sNo)

评分

参与人数 1 +3 收起 理由
jishuang + 3 赞一个!

查看全部评分

共同进步
愿起步一统开发平台
回复 支持 反对

使用道具 举报

123

主题

503

帖子

831

积分

高级会员

Rank: 4

积分
831
QQ
发表于 2014-7-3 09:21:40 | 显示全部楼层
如果你的主表这个00000是不会变的 只是子表的no字段变化
你需要些一个action 调用X5的BizUtils.createNextSequenceString(key, format);
这个方法来生成流水号
共同进步
愿起步一统开发平台
回复 支持 反对

使用道具 举报

3

主题

8

帖子

21

积分

新手上路

Rank: 1

积分
21
QQ
 楼主| 发表于 2014-7-3 09:28:13 | 显示全部楼层
本帖最后由 alanwu 于 2014-7-3 09:37 编辑
wz1383691 发表于 2014-7-3 09:15
var m=justep.xbl('mData');
var n=justep.xbl('nData');
var sNo=m.getValue("typeCode")+(m.getValue(" ...

主表的code字段只是标明这个分类下自动编号是多少位,不同的分类下,自动编码的位数不同

回复 支持 反对

使用道具 举报

123

主题

503

帖子

831

积分

高级会员

Rank: 4

积分
831
QQ
发表于 2014-7-3 09:45:27 | 显示全部楼层
alanwu 发表于 2014-7-3 09:28
主表的code字段只是标明这个分类下自动编号是多少位,不同的分类下,自动编码的位数不同

...

那你要写一个action了,调用BizUtils.createNextSequenceString(key, format);
这个方法
共同进步
愿起步一统开发平台
回复 支持 反对

使用道具 举报

3

主题

8

帖子

21

积分

新手上路

Rank: 1

积分
21
QQ
 楼主| 发表于 2014-7-3 10:09:51 | 显示全部楼层
wz1383691 发表于 2014-7-3 09:45
那你要写一个action了,调用BizUtils.createNextSequenceString(key, format);
这个方法

mainActivity.trigger1Click = function(event){
var m=justep.xbl('dataMain');
  var n=justep.xbl('datagoodNO');       
  var sTypeCode=m.getValue("fTypeCode");
  var sCode=m.getValue("fCode");
  var sNO=tempNextSeqString("sTypeCode","sCode");
  n.setValue("fPN",sNO);       
};
我写成这样,老报错呢!哪里不对
回复 支持 反对

使用道具 举报

15

主题

650

帖子

1723

积分

金牌会员

Rank: 6Rank: 6

积分
1723
QQ
发表于 2014-7-3 10:12:22 | 显示全部楼层
可以在保存之前使用js 调用action返回自动编号,赋值与特定的字段。可以将tpyeCode 作为参数传递给action 然后使用 com.justep.system.util.BizUtils.createNextSequenceString(); 得到想要的值。例如:
public static String getCode(String typeCode){
      if(typeCode.length != 0){
          return  com.justep.system.util.BizUtils.createNextSequenceString(typeCode,'00000');
      }
}
这样就产生了一个你需要的编号,而且不可能重复。
回复 支持 反对

使用道具 举报

123

主题

503

帖子

831

积分

高级会员

Rank: 4

积分
831
QQ
发表于 2014-7-3 10:40:45 | 显示全部楼层
alanwu 发表于 2014-7-3 10:09
mainActivity.trigger1Click = function(event){
var m=justep.xbl('dataMain');
  var n=justep.xbl('da ...

sCode不要加引号
加额引号就是字符串了
不加引号才是值
共同进步
愿起步一统开发平台
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|X3技术论坛|Justep Inc.    

GMT+8, 2024-5-4 22:59 , Processed in 0.067812 second(s), 29 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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