氚云代码——根据关联表单多选控件,自动填充人员多选控件

功能:

根据用户在氚云页面填写关联表单多选的数据,自动填充同表内人员多选控件。

前端代码        

    // 加载事件
    OnLoad:function(){ 

        var tab = this;
        //绑定 关联表单多选控件 F0000001
        this.F0000001.BindChange( "Options", function() {
             $.SmartForm.PostForm( "ajaxPost", {F0000001:tab.F0000001.GetValue().join(',')}, function(res) {
                if( res.Successful == true ) {
                    // 获取前端返回的数组
                    var result = res.ReturnData;
                    //赋值给要填充的人员多选控件F0000002
                    tab.F0000002.SetValue(result["result_obj"]);    
                }
            },
                function( err ) {
                    $.IShowError( "错误" + err );
                }, false);
        });
    },

后端代码


        if(actionName == "ajaxPost")
        {
            //创建一个人员objectid的集合
            List < object > Options_obj = new List<object>();

            //获取前端控件F0000001的值
            string  Options = this.Request["F0000001"] + string.Empty;
           
            //分割Opnions的值,加入数组
            string[] Opnion_objectids =  Options.Split(',');

            // 将数组中的每个字符串作为键存储在字典中,并指定一个相应的值
            foreach(string Option_objectid in Opnion_objectids)
            {
                //通过前端传回来的关联表单objectid,加载出业务对象
                H3.DataModel.BizObject biz = H3.DataModel.BizObject.
                    Load(this.Request.UserContext.UserId, this.Engine, "关联表单编码", Option_objectid, false);
                //得到业务对象的id
                string o_id = biz.ObjectId;
                //手写sql语句 F0000004是人员控件
                string  sql = "SELECT F0000004 FROM i_表单编码  where objectid = '" + o_id + "' ";
                //执行sql语句,返回结果是个DataTable 对象
                System.Data.DataTable dt = this.Request.Engine.Query.QueryTable(sql, null);
                if(dt != null && dt.Rows != null && dt.Rows.Count > 0)
                {
                    foreach(System.Data.DataRow row in dt.Rows)
                    {
                        //取值加入集合
                        object f4_obj = row_name_day["F0000004"];
                        Options_obj.Add(f4_obj);
                    }
                }
            }

            // 使用 Dictionary来存储不重复的元素
            Dictionary < object, bool > uniqueobjDict = new Dictionary<object, bool>();
            // 遍历列表,将不重复的元素添加到 Dictionary 中
            foreach(string obj in Options_obj)
            {
                if(!uniqueobjDict.ContainsKey(obj))
                {
                    uniqueobjDict[obj] = true;
                }
            }
            // 提取不重复的元素
            List <object> uniqueobjList = new List<object>(uniqueobjDict.Keys);
            //转换成数组
            string[] result_obj = uniqueobjList.ConvertAll(obj => obj.ToString()).ToArray();

            response.Message = "查询人员";
            response.ReturnData = new Dictionary<string, object>();
            //在返回结果中加入人员数组
            response.ReturnData.Add("result_obj", result_obj);
        }

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值