【知识分享】如何在子界面确定时,把字段值填写到父界面
金蝶云社区-_哇哈哈
_哇哈哈
13人赞赏了该文章 696次浏览 未经作者许可,禁止转载编辑于2018年07月13日 09:19:24

背景:
在父界面上弹出子界面,供用户录入数据,确定返回后,把子界面上的数据填写到父窗口字段上;

案例说明:
1. 设计两个界面,分别为父界面、子页面;
2. 两个界面上,各有一个文本框、一个按钮;
3. 用户点击父界面上的按钮,会弹出子界面;
4. 用户在子界面上录入文本,点击确定按钮,会把文本返回,并填写到父界面上;

示例代码:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.ComponentModel;
using Kingdee.BOS;
using Kingdee.BOS.Util;
using Kingdee.BOS.Core;
using Kingdee.BOS.Core.DynamicForm;
using Kingdee.BOS.Core.DynamicForm.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;

namespace JDSample.FormPlugIn.DynamicForm
{
    /// <summary>
    /// 演示如何从子界面返回数据
    /// </summary>
    /// <remarks>
    /// 案例说明:
    /// 1. 需要有两个界面,父界面通过按钮弹出子界面;
    /// 2. 用户在子界面上编辑数据,确定后返回父界面;
    /// 3. 把子界面上的字段F_JD_Text值,填写到父界面的同名字段上;
    /// </remarks>
    [Description("演示如何从子界面返回数据 - 父界面插件")]
    public class S150804ReturnInfoParentEdit : AbstractDynamicFormPlugIn
    {
        public override void ButtonClick(ButtonClickEventArgs e)
        {
            if (e.Key.EqualsIgnoreCase("F_JD_ShowChildForm"))
            {
                DynamicFormShowParameter showParam = new DynamicFormShowParameter();
                showParam.FormId = "1606a9d2-fd34-4616-8582-6e4f732664a9";
                this.View.ShowForm(showParam, 
                    new Action<FormResult>((formResult) =>
                    {
                        if (formResult != null && formResult.ReturnData != null)
                        {
                            this.Model.SetValue("F_JD_Text",
                                ((S150804ReturnInfo)formResult.ReturnData).JD_Text);
                        }
                    }));
            }
        }
    }
    [Description("演示如何从子界面返回数据 - 子界面插件")]
    public class S150804ReturnInfoChildEdit : AbstractDynamicFormPlugIn
    {
        public override void ButtonClick(ButtonClickEventArgs e)
        {
            // 用户点击确定按钮
            if (e.Key.EqualsIgnoreCase("F_JD_OK"))
            {
                // 构建返回数据对象
                S150804ReturnInfo returnInfo = new S150804ReturnInfo();
                returnInfo.JD_Text = Convert.ToString(this.Model.GetValue("F_JD_Text"));
                // 把数据对象,返回给父界面
                this.View.ReturnToParentWindow(new FormResult(returnInfo));
                this.View.Close();
            }
        }
    }
    /// <summary>
    /// 由子窗体返回给父窗体的数据对象
    /// </summary>
    class S150804ReturnInfo
    {
        public string JD_Text { get; set; }
    }
}

赞 13