电脑桌面
添加蚂蚁七词文库到电脑桌面
安装后可以在桌面快捷访问

打开动态表单后获取返回值

来源:金蝶云社区作者:金蝶2024-09-163

打开动态表单后获取返回值

第一种情况是打开系统已有得单据通过表单/列表形式打开,这种情况下获取返回值就比较简单,如下

 

                ListShowParameter listShowParameter = new ListShowParameter();
                listShowParameter.FormId = "ENG_BOM";
                listShowParameter.MultiSelect = true;
                listShowParameter.IsLookUp = true;
                listShowParameter.PageId = Guid.NewGuid().ToString();
                listShowParameter.ParentPageId = base.View.PageId;
                listShowParameter.OpenStyle.ShowType = Kingdee.BOS.Core.DynamicForm.ShowType.Modal;
                //方法2,传result返回
                this.View.ShowForm(listShowParameter, delegate (FormResult result)
                {
                    //读取返回值
                    object returnData = result.ReturnData;
                    //判断是否是RowCollection
                    if (returnData is ListSelectedRowCollection)
                    {
                        //如果是,执行,转换格式
                        ListSelectedRowCollection listSelectedRowCollection = returnData as ListSelectedRowCollection;
                        //如果不是空值,说明有返回值
                        if (listSelectedRowCollection != null)
                        {
                            List<string> bom = new List<string>();
                            for (int i = 0; i < listSelectedRowCollection.Count; i++)
                            {
                                //获取值.i代表第几行值
                                DynamicObjectDataRow datarow = (DynamicObjectDataRow)listSelectedRowCollection[i].DataRow;
                                bom.Add(datarow.DynamicObject["FNUMBER"].ToString());
                            }
                            //去重——因为列表中选择单据时如果单据有多行明细,这个时候你选单时把明细也选进去了这里就会返回重复得数据
                            for (int i = 0; i < bom.Count; i++)//外循环是循环的次数
                            {
                                for (int j = bom.Count - 1; j > i; j--)//内循环是 外循环一次比较的次数
                                {
                                    if (bom[i] == bom[j])
                                    {
                                        bom.RemoveAt(j);
                                    }
                                }
                            }
                        }
                    }
                });


第二种就是自己新建得动态表单,要获取返回值,这个时候有俩种方式,第一种方法是直接在对应单据内通过parentfrom获取到对应得数据,论坛内应该有大家可以去找一下,第二种方法是现在动态表单内传值,再在对应单据内获取,这里我们将第二种方法

动态表单内

    public override void BarItemClick(BarItemClickEventArgs e)
        {
            base.BarItemClick(e);
            if (e.BarItemKey.Equals("RZCN_Confirm"))
            {
                string aa = this.Model.GetValue("F_RZCN_Account").ToString() + ";" + this.Model.GetValue("F_RZCN_PassWord").ToString();
                this.View.ReturnToPa

打开动态表单后获取返回值

第一种情况是打开系统已有得单据通过表单/列表形式打开,这种情况下获取返回值就比较简单,如下 ListShowParameter list...
点击下载文档文档为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

已经是第一篇
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息
QQ群
  • 答案:my7c点击这里加入QQ群
支持邮箱
微信
  • 微信