二开案例.表单插件.动态表单关闭后返回数据到父窗体

栏目:云星空知识作者:金蝶来源:金蝶云社区发布:2024-09-23浏览:1

二开案例.表单插件.动态表单关闭后返回数据到父窗体

【应用场景】动态表单关闭后返回数据到父窗体

【案例演示】在采购订单新增界面上,打开一个动态表单,动态表单关闭后,显示其返回的数据。

【实现步骤】

<1>编写表单插件,代码如下。

using Kingdee.BOS.Core.DynamicForm;

using Kingdee.BOS.Core.DynamicForm.PlugIn;

using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;

using Kingdee.BOS.Core.Permission;

using Kingdee.BOS.Util;

using System;

using System.Collections.Generic;

using System.ComponentModel;


namespace Jac.XkDemo.BOS.Business.PlugIn

{

    /// <summary>

    /// 【表单插件】动态表单关闭后返回数据到父窗体

    /// </summary>

    [Description("【表单插件】动态表单关闭后返回数据到父窗体"), HotUpdate]

    public class DynamicFormReturnDataPlugIn : AbstractDynamicFormPlugIn

    {

        public override void BeforeClosed(BeforeClosedEventArgs e)

        {

            base.BeforeClosed(e);

            var returnData = this.View.Model.GetValue("F_Jac_Text");


            #region 方式1:用ReturnToParentWindow方法返回数据


            // 直接返回数据,或者将数据包装成FormResult后再返回都可以。

            //this.View.ReturnToParentWindow(returnData);

            var result = new FormResult(returnData);

            this.View.ReturnToParentWindow(result);


            #endregion


            #region 方式2:直接往父对象Session集合写入数据


            this.View.ParentFormView.Session["returnData2"] = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss");


            #endregion

        }

    }


    /// <summary>

    /// 【表单插件】父窗体接收动态表单关闭后返回的数据

    /// </summary>

    [Description("【表单插件】父窗体接收动态表单关闭后返回的数据"), HotUpdate]

    public class ReturnToParentDynamicFormGetReturnDataPlugIn : AbstractDynamicFormPlugIn

    {

        public override void BarItemClick(BarItemClickEventArgs e)

        {

            base.BarItemClick(e);

            if (e.BarItemKey.Equals("tbGetReturnData", StringComparison.OrdinalIgnoreCase))

            {

                var showParameter = new DynamicFormShowParameter();

                showParameter.FormId = "Jac_DynamicFormReturnData";

                showParameter.PageId = Guid.NewGuid().ToString();

                showParameter.ParentPageId = this.View.PageId;

                showParameter.PermissionItemId = PermissionConst.View;

                this.View.ShowForm(showParameter, result =>

                {

                    var list = new List<string>();

                    if (result != null && result.ReturnData != null)

                    {

                        list.Add("方式1返回的数据:" + result.ReturnData);

                    }


                    if (this.View.Session.ContainsKey("returnData2"))

                    {

                        list.Add("方式2返回的数据:" + this.View.Session["returnData2"]);

                    }


                    this.View.ShowMessage(string.Join("\r\n", list));

                });

            }

        }

    }

}


<2>拷贝插件组件到应用站点的WebSite\Bin目录下,重启IIS。


<3>BOSIDE新建动态表单,注册表单插件,扩展采购订单,注册表单插件,保存元数据,开发完毕。

新建动态表单:

扩展采购订单:




现在可以登录业务站点,打开采购订单新增界面,验证一下插件的控制效果啦。

-------------------------------------------------------------------------------------------------------













【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696

二开案例.表单插件.动态表单关闭后返回数据到父窗体

【应用场景】动态表单关闭后返回数据到父窗体【案例演示】在采购订单新增界面上,打开一个动态表单,动态表单关闭后,显示其返回的数据。【...
点击下载文档
确认删除?
回到顶部
客服QQ
  • 客服QQ点击这里给我发消息