参考如下代码:
var sureDetailsId = getParameterAsText("_selects"); //选择申请单
var relate = getRelateDocument();
var docProcess = getDocumentProcess();
var formProcess = getFormProcess();
var newForm = formProcess.doViewByFormName("DDD",getApplication()); //需要生成的明细表的表名,不需要添加tlk
if(sureDetailsId !=null && sureDetailsId !=""){
var sql ="select * from tlk_BBB where parent ='"+sureDetailsId+"'"; //申请单的明细表
var datas =queryBySQL(sql);
if(datas !=null){
for(var it=datas.iterator(); it.hasNext(); ){
var sin = it.next();
var parentId = relate.getId();
var sqlChard ="select * from tlk_DDD where parent ='"+parentId+"' and item_BBID ='"+sin.getId()+"'"; //判断该表中是否存在当前选择的单据
var dataChard = findBySQL(sqlChard);
if(dataChard==null){
var newDoc = docProcess.doNew(newForm,getWebUser(),createParamsTable());
newDoc.setParent(relate);
newDoc.setAuthor(getWebUser().getId());
newDoc.setIstmp(false);
newDoc.setApplicationid(getApplication());
newDoc.setDomainid(getWebUser().getDomainid());
newDoc.addStringItem("aa",sin.getItemValueAsDouble("aa"));
/**
DDD表中 需要从BBB中获取的字段 以"newDoc.addStringItem("aa",sin.getItemValueAsDouble("aa"));"这种方式 对应好字段类型一一列出 就ok了
*/
docProcess.doCreate(newDoc);
}else{
newDoc.addStringItem("aa",sin.getItemValueAsDouble("aa"));
/**
DDD表中 需要从BBB中获取的字段 以"newDoc.addStringItem("aa",sin.getItemValueAsDouble("aa"));"这种方式 对应好字段类型一一列出 就ok了
*/
process.doUpdate(data);
}
}
}
} |