找回密码
 注册成为天翎用户
查看: 1607|回复: 10

脚本出错

[复制链接]
linminxue 发表于 2012-11-30 10:05:04 | 显示全部楼层 |阅读模式
本帖最后由 linminxue 于 2012-11-30 15:11 编辑

doc1.setFormid('11e2-2f0c-90d3aac3-87ed-ff7028f75685');
doc1.setFormname('tlk_设备产品明细表单');
上面是我的部分脚本,执行之后出错了,是不是找不到表

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册成为天翎用户

×
purple 发表于 2012-11-30 10:09:50 | 显示全部楼层
您好,错误信息是doc1变量未定义,请问您有声明这个变量吗?请仔细检查您的脚本,或者请帖出您的完整代码,我们来帮您检查。
回复

使用道具 举报

purple 发表于 2012-11-30 10:09:53 | 显示全部楼层
您好,错误信息是doc1变量未定义,请问您有声明这个变量吗?请仔细检查您的脚本,或者请帖出您的完整代码,我们来帮您检查。
回复

使用道具 举报

 楼主| linminxue 发表于 2012-11-30 10:17:15 | 显示全部楼层
var doc = getParentDocument();
var did = getParentDocument().getId();
var value =doc.getItemValueAsString("合同号");
var num=doc.getItemValueAsString("申购单号");
var today = getCurDate("yyyy-MM-dd");
var day = parseDate(today,"yyyy-MM-dd");
var user = getWebUser();
var params = getParameter("_selects");
var docids = splitText(params,";");
var doc = new Packages.cn.myapps.core.dynaform.document.ejb.Document();
var process = new Packages.cn.myapps.core.dynaform.document.ejb.DocumentProcessBean(getApplication());
for(var i=0;i<docids.length;i++){
        var doc = process.doView(docids[i]);
        var application = getApplication();
        if(doc!=null){
               
                doc1.setFormid('11e2-2f0c-90d3aac3-87ed-ff7028f75685');
        doc1.setFormname('设备产品明细表单');
        doc1.setAuthor(user.getId());
        doc1.setIstmp(false);
        doc1.setApplicationid(getApplication());
        doc1.setDomainid(user.getDomainid());
                doc1.addStringItem("ITEM_申购单号",num);
                doc1.addStringItem("ITEM_合同号",value);
                doc1.addStringItem("ITEM_登记时间",day);
                doc1.addStringItem("ITEM_产品名称",doc.getItemValueAsString("ITEM_设备名称"));
                doc1.addStringItem("ITEM_品牌",doc.getItemValueAsString("ITEM_品牌"));
                doc1.addStringItem("ITEM_型号",doc.getItemValueAsString("ITEM_型号"));
                doc1.addStringItem("ITEM_要求到货时间",doc.getItemValueAsString("ITEM_要求到货时间"));
                doc1.addStringItem("ITEM_合同单价",doc.getItemValueAsString("ITEM_预算单价"));
                process.doCreate(doc1);
        }
}
回复

使用道具 举报

spiral 发表于 2012-11-30 10:21:54 | 显示全部楼层
您好,您的错误是doc 1没有定义,您可以把var doc = process.doView(docids);更改为var doc1 = process.doView(docids);
回复

使用道具 举报

 楼主| linminxue 发表于 2012-11-30 10:24:23 | 显示全部楼层
我是要把doc里面的数据读取插入到doc1里面
回复

使用道具 举报

purple 发表于 2012-11-30 10:36:36 | 显示全部楼层
您好,您的需求是想将当前表单数据也保存一份到“设备产品明细”表单吧?如果是,您的脚本思路没错,可是,请注意细节。第一:您声明了三个doc变量:
var doc = getParentDocument();
var doc = new Packages.cn.myapps.core.dynaform.document.ejb.Document();
var doc = process.doView(docids);
第二:最后您使用的是doc1,您都没去定义这个变量就直接使用,肯定会有问题呀。关于您的需求类似帖子:
http://www.teemlink.com/bbs/view ... hlight=%BF%E2%B4%E6
您可参考该贴。
回复

使用道具 举报

 楼主| linminxue 发表于 2012-11-30 14:23:55 | 显示全部楼层
var _selectId = getParameter("_selects");
var ids = "";
if(_selectId != null && _selectId.length() >0){
    var arrs = splitText(_selectId,";");
    for(var i = 0;i<arrs.length;i++){
                arrs=arrs.replace("undefined","");
                if(i==0){
                        ids += "'"+arrs+"'";
                }
        else{
                        ids += ",'"+arrs+"'";
                }
        }
}
var doc2 = getParentDocument();
var value =doc2.getItemValueAsString("合同号");
var num=doc2.getItemValueAsString("申购单号");
println(value+num);
var process = getDocumentProcess();   
var formProcess = getFormProcess();
var subform = formProcess.doView("11e2-2f0c-90d3aac3-87ed-ff7028f75685");
var doc = process.doNew(subform,getWebUser(),createParamsTable());
var sql="select * from tlk_项目设备产品表单 t1 where t1.ID in ("+ids+")";
var datas = queryBySQL(sql);
if(datas.size()>0){
        for (var iter = datas.iterator(); iter.hasNext();) {   
                var data = iter.next();
                doc.addStringItem("合同号",doc2.getItemValueAsString("合同号"));
                doc.addStringItem("申购单号",doc2.getItemValueAsString("申购单号"));
                doc.addStringItem("产品名称",data.getItemValueAsString("设备名称"));
                process.doCreate(doc);
        }
}
现在可以加入数据,但是只能加入一条,加入多条就会报错,数据库中加了第一条数据

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册成为天翎用户

×
回复

使用道具 举报

spiral 发表于 2012-11-30 14:51:33 | 显示全部楼层
您好,您插入多条数据需要声明多个文档对象,您可以把语句放到循环语句里面执行
var _selectId = getParameter("_selects");
var ids = "";
if(_selectId != null && _selectId.length() >0){
    var arrs = splitText(_selectId,";");
    for(var i = 0;i<arrs.length;i++){
                arrs=arrs.replace("undefined","");
                if(i==0){
                        ids += "'"+arrs+"'";
                }
        else{
                        ids += ",'"+arrs+"'";
                }
        }
}
var doc2 = getParentDocument();
var value =doc2.getItemValueAsString("合同号");
var num=doc2.getItemValueAsString("申购单号");
println(value+num);
var process = getDocumentProcess();   
var formProcess = getFormProcess();
var subform = formProcess.doView("11e2-2f0c-90d3aac3-87ed-ff7028f75685");
//var doc = process.doNew(subform,getWebUser(),createParamsTable());
var sql="select * from tlk_项目设备产品表单 t1 where t1.ID in ("+ids+")";
var datas = queryBySQL(sql);
if(datas.size()>0){
        for (var iter = datas.iterator(); iter.hasNext();) {   
                var data = iter.next();
                var doc = process.doNew(subform,getWebUser(),createParamsTable());
                doc.addStringItem("合同号",doc2.getItemValueAsString("合同号"));
                doc.addStringItem("申购单号",doc2.getItemValueAsString("申购单号"));
                doc.addStringItem("产品名称",data.getItemValueAsString("设备名称"));
                process.doCreate(doc);
        }
}
回复

使用道具 举报

 楼主| linminxue 发表于 2012-11-30 15:06:45 | 显示全部楼层
嗯,可以了,谢谢
回复

使用道具 举报

本版积分规则

手机版|天翎MyApps技术社区 ( 粤ICP备11093750号 )

GMT+8, 2026-8-14 14:51

Powered by Discuz! X5.0

© 2001-2026 Discuz! Team.

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