本帖最后由 spiral 于 2013-2-28 15:49 编辑
Q:现在有多个主子文档,我想把某个子文档移到另外一个主文档下,应该如何操作?
A:由于我们的主子关系的记录,就是通过主表的id字段和子表的parent字段关联的,所以,客户只需要将对应a记录下需要转换的子记录的parent字段的值修改为b记录的id字段的值即可.
实现代码如下:- var process = getDocumentProcess(); //实例化DocumentProcess()对象
- var name =getItemValueAsString("p_selcet"); //获取当前父表单对象的字段的值
- //println("name=111=="+name);
- var sql="";
- var docid="";
- //判断name的值是否为空
- if( name !=null && name !="") //当name的值不为空
- {
- //查询父表单中,name的值等于表单中输入的字段的值
- sql ="select * from tlk_Parent where item_p_name ='"+name+"'";
- //println("sql-==111="+sql)
- var data=queryBySQL(sql);
- //println("data的大小"+data.size());
- //当查询结果不为空
- if(data!=null && data.size()>0){ //遍历结果集
- for(var iter1 = datas.iterator();iter1.hasNext();){
- var doc = iter1.next();
- if(doc!=null){
- docid=doc.getId(); //获取查询出的文档的id
-
- }
- }
- }
- //获取当前父文档对象的子文档集,如果存在子文档,那么就将所有的子文档的父文档对象修改
-
- var childs =getCurrentDocument().getChilds("Child"); //获取当前父表单文档的所有子文档记录
- if(childs!=null && childs.size()>0){ //判断当前父文档对象存在子文档
- for(var iter2 = childs.iterator();iter2.hasNext();){ //遍历子文档集
- var cdoc = iter2.next();
- cdoc.setParent(docid); //给文档对象设置父文档
- //println("获取parent的值=222="+cdoc.getParent());
- process.doUpdate(cdoc); //更新文档对象
- }
- }
- }
复制代码 |