回复 3# kharry
你好,我要的是三个要求同时实现,不过我已经做好了,谢谢……我的操作是,早明细表上加一个状态的字段,在“保存”的脚本里面,先判断那些字段非空的验证,如果非空的验证都能通过,那么再执行方法去更新明细表状态的字段。不过我这样做的弊端就是,需要验证的非空字段越多,脚本里面不为空的判断就越多。
“保存”上的脚本
#include "constant";
var doc = getCurrentDocument();
var value = getItemValue("couriernumber");
var expresscompany = getItemValueAsString("expresscompany");
var starttime = getItemValueAsDate("reportdate");
var deadline = getItemValueAsDate("senddate");
var expressnumber = getItemValueAsString("expressnumber");
var docid=doc.getId();
var updateSql = "update tlk_fm_express_sendmanagement_sub set state='结束' where parent='"+docid+"'";
if(value == null || value.trim().length() <= 0){
value = countNext2(expresssendnumberletter,true,true,true,3);
doc.findItem("couriernumber").setValue(value);
if(expresscompany != null && starttime != null && expressnumber != null ){
var startDate = format(starttime,"yyyy-MM-dd HH:mm:ss");
var endDate = format(deadline,"yyyy-MM-dd HH:mm:ss");
if(startDate >= endDate){
updateByDSName(datasourceName,updateSql);
}
}
var process = getDocProcess(getApplication());
process.doUpdate(doc);
}else{
if(expresscompany != null && starttime != null && expressnumber != null ){
var startDate = format(starttime,"yyyy-MM-dd HH:mm:ss");
var endDate = format(deadline,"yyyy-MM-dd HH:mm:ss");
if(startDate >= endDate){
updateByDSName(datasourceName,updateSql);
}
}
var process = getDocProcess(getApplication());
process.doUpdate(doc);
}
如果有更好的方法处理,请指点下我吗,谢谢……联系方式个人信息上有,可以结贴了,谢谢 |