天翎MyApps技术社区 - 低代码平台 | 流程管理系统 | BPM软件

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

视图选择框确定脚本

[复制链接]
lovesun000 发表于 2011-9-9 09:25:31 | 显示全部楼层 |阅读模式
本帖最后由 shary 于 2011-9-19 17:35 编辑

我在试图选择框确定脚本上写了如下代码:
var did = getId();
var parentId = getParameterAsText("_selects");
//获取视图选择框对应的doc
var parentDoc = findDocument(parentId);
if(parentDoc!=null && parentId !=null && parentId.trim().length()>0){
//获取视图选择框对应的doc的子doc
var subDocs1 = parentDoc.getChilds("FM_油务监督设备记录_NOR");
var process = getDocumentProcess();
var domain = getDomainid();
var application = getApplication();
//如果子doc不为空,遍历子doc,取出每个子doc的值并保存到另一张子doc中。
if(subDocs1!=null){
//    var sql = "delete from tlk_FM_油务监督设备记录_SUB  where PARENT='"+did+"'";
//    deleteByDSName("htsjsdSQL ",sql);
    var formProcess = getFormProcess();
    var form = formProcess.doViewByFormName("FM_油务监督设备记录_SUB",application);
    for(var iter = subDocs1.iterator(); iter.hasNext();){
      var subdoc = iter.next();
      var uuid = new Packages.cn.myapps.util.sequence.Sequence();
      var doc = process.doNew(subform,getWebUser(),createParamsTable());
      doc.setIstmp(false);
      doc.setParent(did);
      doc.addStringItem("设备类型",subdoc.getItemValueAsString("设备类型"));
      doc.addStringItem("设备名称",subdoc.getItemValueAsString("设备名称"));
      doc.addStringItem("电压等级",subdoc.getItemValueAsString("电压等级"));
      doc.addStringItem("台数",subdoc.getItemValueAsString("台数"));
      doc.addStringItem("油种",subdoc.getItemValueAsString("油种"));
      doc.addStringItem("变电所名称",subdoc.getItemValueAsString("变电所名称"));
      doc.addStringItem("检修周期",subdoc.getItemValueAsString("检修周期"));
      process.doCreate(doc);
    }
}
}
var rtn = "<script>";
rtn += "var subfrms = getFormFieldByName('选择设备');";
rtn += "if (subfrms){ ";
rtn += "subfrms.document.location.reload();";
rtn +="}";
rtn +="</script>";
rtn;
但是没有任何效果,我想实现的功能是 我当前为一个表单,下面包含一个视图,主子的,我表单中有一个"视图选择框",点击视图选择框,选择记录,返回刷新当前子视图数据.但是没效果
后台出现的是:

我不知道是平台的问题, 还是我代码的问题,求指导,谢谢

本帖子中包含更多资源

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

x
shary 发表于 2011-9-9 09:32:11 | 显示全部楼层
不是很明白您代码的意思。您是在主表中有个视图选择框。视图选择框选定记录后刷新子表。你勾选视图的刷新子表的重计算。还有其他业务吗?
 楼主| lovesun000 发表于 2011-9-9 09:57:37 | 显示全部楼层
回复 2# shary

对,我就是要视图选择框中选择记录后,把选择的记录赋值给我的子试图上,但是就是不好使,刷新,重计算的按钮我都选了,我查数据库,数据库中是没有数据的,也就是没有成功执行,我不知道是代码的错误,还是我平台缺少配置,因为我看后台那报WORN警告了
shary 发表于 2011-9-9 10:03:07 | 显示全部楼层
明白您的需求了。应该是您的脚本没有写对。那个警告没关系。您用打印语句测试下您的脚本到哪句出问题了。因为我没太看明白您的脚本。呵呵。有问题我们再沟通。
 楼主| lovesun000 发表于 2011-9-9 10:09:18 | 显示全部楼层
回复 4# shary


   这个脚本基本就是你们提供的开发帮助脚本中的——视图选择框脚本,我只是改了表名和字段名,能不能再详细解释下,我真的找不到错误了,不太理解你们的帮助脚本的语法,能解读下那个脚本吗
shary 发表于 2011-9-9 10:21:38 | 显示全部楼层
呵呵。我指导你弄好。你主要是想把视图选择框勾选的几条记录插入到对应的子表中?

var params = getParameter("_selects");//获取选中的记录ID数组
var docids = splitText(params,";");//拆分
var pids ="";
var process = getDocProcess(getApplication());   //Document操作类
for(var i=0;i<docids.length;i++){
        var doc = process.doView(docids[i]);//遍历查询到的document对象。
}
然后再做后面的添加记录操作。不知道我理解对没。因为确实不太清楚你这几个表是否有关联。你前面取数据是写错了。你先试下。如果还有问题我再帮您看。
 楼主| lovesun000 发表于 2011-9-9 10:52:47 | 显示全部楼层
回复 6# shary


    再问个小问题哈,我要在视图选择框确定脚本中,取到当前表单的ID好为我的子视图数据赋PARENT,用什么方法取呢??
shary 发表于 2011-9-9 10:59:25 | 显示全部楼层
额。。。这个取不到哦。
 楼主| lovesun000 发表于 2011-9-9 11:00:57 | 显示全部楼层
回复 8# shary


    那岂不是都是无用功了吗,我这个需求不能实现吗
 楼主| lovesun000 发表于 2011-9-9 11:09:42 | 显示全部楼层
回复 8# shary


var did = getParentDocument().getId();
var params = getParameter("_selects");//获取选中的记录ID数组
var docids = splitText(params,";");//拆分
var pids ="";
var process = getDocProcess(getApplication());   //Document操作类
for(var i=0;i<docids.length;i++){
var doc= process.doView(docids);//遍历查询到的document对象。
var domain = getDomainid();
var application = getApplication();
if(doc!=null){
   var sql = "delete from tlk_FM_油务监督设备记录_SUB  where PARENT='"+did+"'";
   deleteByDSName("htsjsdSQL ",sql);
    var formProcess = getFormProcess();
    var form = formProcess.doViewByFormName("FM_油务监督设备记录_SUB",application);
      var uuid = new Packages.cn.myapps.util.sequence.Sequence();
      var doc1 = process.doNew(form,getWebUser(),createParamsTable());
      doc1.setIstmp(false);
      doc1.setParent(did);
      doc1.addStringItem("设备类别",doc.getItemValueAsString("设备类别"));
      doc1.addStringItem("设备名称",doc.getItemValueAsString("设备名称"));
      doc1.addStringItem("电压等级",doc.getItemValueAsString("电压等级"));
      doc1.addStringItem("台数",doc.getItemValueAsString("台数"));
      doc1.addStringItem("油种",doc.getItemValueAsString("油种"));
      doc1.addStringItem("变电所名称",doc.getItemValueAsString("变电所名称"));
      doc1.addStringItem("检验周期",doc.getItemValueAsString("检验周期"));
      process.doCreate(doc1);
    }
}
var rtn = "<script>";
rtn += "var subfrms = getFormFieldByName('表单关联设备');";
rtn += "if (subfrms){ ";
rtn += "subfrms.document.location.reload();";
rtn +="}";
rtn +="</script>";
rtn;


这是我的代码,执行时候会插入一条空数据到我的子视图中,请帮我看下还有什么错误吗,还有我插入的空数据是有PARENT的,而且是我要的父ID,不知道怎么回事了,乱了有点

本版积分规则

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

GMT+8, 2026-8-12 13:38

Powered by Discuz! X3.4

Copyright © 2001-2020, Tencent Cloud.

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