|
|
我想在“保存”按钮的动作执行后脚本中,写一段实现向很多表中插入数据的操作,但是不成功,只有第一个中插入了,我是循环插入的,循环到第二次的时候就出错
代码如下:
var process = getDocProcess(getApplication());
var currentdoc=getCurrentDocument();
var sql1 = "select id as item_id,* from tlk_fm_油务监督春检模版_nor";
var subdocs1 = queryBySQL(sql1);
if(subdocs1 != null && subdocs1.size() > 0) {
for (var iter1 = subdocs1.iterator(); iter1.hasNext();) {
var doc = iter1.next();
var formProcess = new Packages.cn.myapps.core.dynaform.form.ejb.FormProcessBean();
var formname=doc.getItemValueAsString("表单名称");
var formname1="fm_"+formname+"_nor";
var sql3="select formid as item_formid,* from T_document where formname like '技术监督/油务监督/"+formname1+"%'";
$PRINTER.println("```````````````````````````````````````````````````````````````````````````````"+sql3);
var subdocs3=queryBySQL(sql3);
var str="";
if(subdocs3!= null && subdocs3.size() > 0 && subdocs3.iterator().hasNext())
{ var doc3 = subdocs3.iterator().next();
str=doc3.getItemValueAsString("formid");
}
else
{$PRINTER.println("$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$"); }
var did=doc.getItemValueAsString("id");
$PRINTER.println("```````````````````````````````````````````````````````````````````````````````"+did);
var sql="select * from TLK_FM_油务监督设备记录_SUB where parent='"+did+"'";
var subdocs2=queryBySQL(sql);
var user=getWebUser();
if(subdocs2 != null && subdocs2.size() > 0) {
for (var iter2 = subdocs2.iterator(); iter2.hasNext();) {
var doc1 = iter2.next();
//var form = formProcess.doView(did);
//var params = new Packages.cn.myapps.base.action.ParamsTable();
//var newdoc = process.doNew(form,getWebUser(),createParamsTable());
var newdoc = new Packages.cn.myapps.core.dynaform.document.ejb.Document();
newdoc.setIstmp(false);
newdoc.setParent(did);
newdoc.setFormid(str);
newdoc.setFormname("技术监督/油务监督/"+formname1);
newdoc.setAuthor(user.getId());
newdoc.setApplicationid(getApplication());
newdoc.setDomainid(user.getDomainid());
newdoc.addStringItem("年份",currentdoc.getItemValueAsString("年份选择"));
newdoc.addStringItem("试验性质","春检");
newdoc.addStringItem("油种",doc1.getItemValueAsString("油种"));
// newdoc.addStringItem("电压等级",doc1.getItemValueAsString("电压等级"));
newdoc.addStringItem("设备名称",doc1.getItemValueAsString("设备名称"));
newdoc.addStringItem("变电所",doc1.getItemValueAsString("变电所名称"));
newdoc.addStringItem("是否完成","");
$PRINTER.println("77777777777777777777777777777777777777777777777777777777"+newdoc);
process.doCreate(newdoc);
}
}
}
}
结果是:
报空指针的异常,插入的结果是我循环中需要插入的第一个表单的数据都插入了,向第二个表单插入时就出错了,空指针异常,第二次执行到
$PRINTER.println("```````````````````````````````````````````````````````````````````````````````"+sql3);
输出了,下面就错误了,求管理员看看代码,不胜感激 |
|