保存提交暂存时开始计数¶
保存提交暂存时开始计数脚本示例。
值脚本代码¶
//值脚本代码!
(function(){
var dValue = getItemValueAsString("########"); //当前字段名称#############
if(dValue!=null && dValue.trim().length>0){
return dValue;
}
var dName = "###########"; //就是编号前缀 例如 标号 DF20160302 0004 dName = DF20160302 ###########
var digit = ##########; //就是编号后面几位 例如 标号 DF20160302 0004 digit = 4
var sql = "SELECT domainid,count_vER as item_count_v from t_count_ver where name ='"+dName+"'";
var date = findBySQL(sql);
if(date!=null){
var count_v = date.getItemValueAsDouble("count"); //数量
var val = "";
if (count_v < 10) {
for (var temp = 1; temp <= digit - 1; temp++) {
val += "0";
}
val += count_v;
} else if (count_v < 100) {
for (var temp = 1; temp <= digit - 2; temp++) {
val += "0";
}
val += count_v;
} else if (count_v < 1000) {
for (var temp = 1; temp <= digit - 3; temp++) {
val += "0";
}
val += count_v;
} else if (count_v < 10000) {
for (var temp = 1; temp <= digit - 4; temp++) {
val += "0";
}
val += count_v;
} else if (count_v < 100000) {
for (var temp = 1; temp <= digit - 5; temp++) {
val += "0";
}
val += count_v;
} else if (count_v < 1000000) {
for (var temp = 1; temp <= digit - 6; temp++) {
val += "0";
}
val += count_v;
} else if (count_v < 10000000) {
for (var temp = 1; temp <= digit - 7; temp++) {
val += "0";
}
val += count_v;
} else{
val += count_v;
}
return (dName + val);
}
})();
保存/暂存/提交脚本前¶
(function(){
var doc = getCurrentDocument();
var docid = doc.getId();
var iscountSql ="select domainid from tlk_####### where id = '"+docid+"'";
if(countBySQL(iscountSql)<=0){
var dNum = countNext2("JM", true, false, false, 3); //JM2016 0004 需要的那个编码的代码 ################
doc.findItem("#######").setValue(dNum); //编码字段字段名称#############
}
})();
脚本说明¶
该脚本实现了在保存、提交或暂存时自动生成编号的功能:
- 值脚本部分:
- 检查当前字段是否已有值,如果有则直接返回
- 从
t_count_ver表中获取当前计数 - 根据计数位数自动补零,生成完整编号
-
返回格式:前缀 + 补零后的数字(如:DF20160302 0004)
-
保存/暂存/提交前脚本:
- 检查文档是否已存在(通过 SQL 查询)
- 如果不存在,使用
countNext2函数生成新编号 - 设置到指定字段
参数说明¶
dName: 编号前缀(如:DF20160302)digit: 编号后数字的位数(如:4,表示 0004)countNext2: 系统函数,用于生成下一个计数编号- 参数1:前缀
- 参数2-4:布尔值配置
- 参数5:数字位数
使用示例¶
例如生成编号:DF20160302 0004
- dName = "DF20160302"
- digit = 4
- 当前计数为 4,自动补零为 0004
- 最终返回:DF20160302 0004
本文档内容来源于 http://doc.myapps.cn/docs/common-script/common-script-1f1a4rs4947vt
文档更新时间: 2023-09-16 06:49 作者:admin