ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

业务规则,关联表单操作

2022-04-11 00:00:37  阅读:161  来源: 互联网

标签:BizObject H3 Request 关联 规则 子表 表单 DataModel


对目标表进行修改删除操作       

//第一个参数是加载人,第二个参数Engine,第三个参数目标表的表名,第四个参数关联表单存的就是关联表单的BizObjectId第五个是string.Empty第六个false H3.DataModel.BizObject biz=H3.DataModel.BizObject.Load(this.Request.UserContext.UserId,this.Engine,"D0020330726c545863e4932b64842d40f9a6fd1",this.Request.BizObject["F0000001"]+string.Empty,false); //对数据进行更新 // biz["Sex"]=this.Request.BizObject["ex"]+string.Empty; // biz.Update(); //对数据进行删除 biz.Remove();

主表对目标表单进行数据自动添加,并指定流程状态

对删除主表数据内容且删除目标表单数据

//目标表单为联系人
        if(actionName == "Submit")
        {
            //固定获取业务对象额方式
            //构建schema
            H3.DataModel.BizObjectSchema schema = this.Engine.BizObjectManager.GetPublishedSchema("D00203300be3bf060104e0db4d170d8de9675e2");
            //new一个对象
            H3.DataModel.BizObject targetBiz = new H3.DataModel.BizObject(this.Engine, schema, this.Request.UserContext.UserId);
            //把表单的值赋给目标表单
            targetBiz["F0000001"] = this.Request.BizObject["F0000003"] + string.Empty;
            targetBiz["F0000002"] = this.Request.BizObject["F0000004"] + string.Empty;
            //把当前表单的BizObjectID给到目标表单
            targetBiz["F0000003"] = this.Request.BizObjectId;
            //给目标表单指定一个状态
            /*
        XXX.Status的所有取值与意义:
       H3.DataModel.BizObjectStatus.Draft:草稿
       H3.DataModel.BizObjectStatus.Effective:生效(若此表单有业务规则,则此项设置会在Create()中触发生效时业务规则)
       H3.DataModel.BizObjectStatus.Running:进行中(此设置并不会发起流程,带流程的表单数据创建请参考他处,一般不会将数据状态设置成进行中)
       H3.DataModel.BizObjectStatus.Canceled:作废         
值为0表示 草稿;
值为1表示 生效/流程结束;
值为2表示 流程进行中;
值为3表示 作废
            */
            targetBiz.Status = H3.DataModel.BizObjectStatus.Effective;
            //对数据进行创建
            targetBiz.Create();
        }
        //删除当前表单信息,也要对目标表单信息删除
        if(actionName == "Remove") 
        {
            //在数据库里面获取到目标表单对应的关联表单字段进行删除
            string delSql = string.Format("delete from I_D00203300be3bf060104e0db4d170d8de9675e2 where F0000003='{0}'",this.Request.BizObjectId);
            this.Engine.Query.QueryTable(delSql,null);
            
        }
对目标表单进行跟进信息,每加一条信息都在目标表单子表中写上一条信息
//业务场景:对目标表单进行跟进信息,每加一条信息都在子表中写上一条信息
        //目标表单为客户信息
        if(actionName == "Submit")
        {   
            
            //获取到插入目标的对象,找到子表
            //第一个参数UserId,第二个参数Engine,第三个参数是目标表单code编码D002033e2a8f3b04552478aa2984195e0e87eed,第4个参数关联表单的BizObjectid(主表的关联表单id不是目标表单的id)
            H3.DataModel.BizObject biz = H3.DataModel.BizObject.Load(this.Request.UserContext.UserId, this.Engine, "D002033e2a8f3b04552478aa2984195e0e87eed", this.Request.BizObject["F0000003"] + string.Empty, false);
            //子表对象
            H3.DataModel.BizObject[] bizChild = (H3.DataModel.BizObject[]) biz["D002033F7c2515ea3dea4bdbb3a4ac8313d1e4ba"];
            //放进list表单里面去
            //用数组直接加不进去,所以还是用一个list进行存放子表数据
            List < H3.DataModel.BizObject > childList=new List<H3.DataModel.BizObject>();
            //往子表对象里面添加一行子表
            if(bizChild != null)
            {
                //先把原来的子表存起来
                childList.AddRange(bizChild);
            }
            //创建带待加入子表的对象
            //创建子表对象
            //创建子表的BizObjectSchema,使用子表的控件编码
            H3.DataModel.BizObjectSchema schema = this.Engine.BizObjectManager.GetPublishedSchema("D002033F7c2515ea3dea4bdbb3a4ac8313d1e4ba");
            //new子表业务对象
            H3.DataModel.BizObject childBiz = new H3.DataModel.BizObject(this.Engine, schema, this.Request.UserContext.UserId);
            //赋值给客户(主表)对象

            childBiz["F0000005"] = this.Request.BizObject["F0000001"] + string.Empty;
            childBiz["F0000006"] = this.Request.BizObject["F0000002"] + string.Empty;
            //往主表对象添加数据
            childList.Add(childBiz);
            biz["D002033F7c2515ea3dea4bdbb3a4ac8313d1e4ba"] = childList.ToArray();
            //调用Update更新数据对象
            biz.Update();
        }

 

标签:BizObject,H3,Request,关联,规则,子表,表单,DataModel
来源: https://www.cnblogs.com/FaustDream/p/16128229.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有