首页 > 其他分享 >金蝶云星空打开子界面后,子界面操作保存成功后关闭父窗体刷新父页面

金蝶云星空打开子界面后,子界面操作保存成功后关闭父窗体刷新父页面

时间:2024-08-12 19:16:25浏览次数:9  
标签:界面 金蝶 保存 OtherInAdd 成功 窗体 刷新

 

一、业务需求

售后单界面点击按钮打开其他入界面,关闭其他入库单时是否刷新售后单,分两种情况:

第一种:刷新:

保存成功才刷新父窗体;

第一次保存成功再次保存失败,刷新

第二种:以下情况不刷新:

不操作保存直接关闭其他入库单

操作保存但是报错无法保存而关闭其他入库单

 

二、开发实现

2.1、父窗体的表单插件,在打开子窗体时,传递回调函数

                    BillShowParameter OtherInAdd = new BillShowParameter()
                    {
                        FormId = FormIdConst.STK_MISCELLANEOUS,//子窗体
                        ParentPageId = base.View.PageId,//父窗体
                        Status = OperationStatus.ADDNEW,//打开新增界面
                        AllowNavigation = false,
                        //OpenStyle.ShowType = ShowType.NewTabPage
                    };
                    ncList = ncList.GroupBy(x => x.InterID).Select(y => y.First()).ToList();
                    idList = ncList.Select(s => Convert.ToString(s.InterID)).Distinct().ToList();

                    #region 携带参数
                    //售后类型
                    OtherInAdd.CustomParams.Add("FAfterType", afterType);
                    //更换序列号 IsSerial
                    OtherInAdd.CustomParams.Add("FIsSerial", IsSerial.ToString());
                    //售后单 FIDList
                    OtherInAdd.CustomParams.Add("FIDList", string.Join(",", idList));
                    //明细 FEntity
                    OtherInAdd.CustomParams.Add("FEntryList", entryList);
                    #endregion

                    OtherInAdd.OpenStyle.ShowType = ShowType.MainNewTabPage;//NewTabPage会导致在客户端无法打开新页签
                    OtherInAdd.OpenStyle.TagetKey = "FMainTab";//这个不能少
                    OtherInAdd.CreateWebParams();
                    this.View.ShowForm(OtherInAdd, BackFuncIn);

 

 

2.2、子窗体的表单插件

2.2.1、定义一个变量,默认保存失败

       /// <summary>
        /// 下推其他入库成功标志
        /// </summary>

        bool pushInStatus = false;

 

2.2.2、在保存成功事件判断如果是第一次保存就更改标记为保存成功

       public override void AfterSave(AfterSaveEventArgs e)
        {
            base.AfterSave(e);
            if (e.OperationResult.IsSuccess)
            {
                if (!this.entryList.IsNullOrEmptyOrWhiteSpace() && !pushInStatus)//如果是售后单打开的界面,且这是第一次保存成功
                {
                    pushInStatus = true;//设置保存成功标记为true
                }
            }
        }

 

2.2.3、在关闭事件,判断是父窗体打开的子窗体,传递参数给父窗体

        public override void BeforeClosed(BeforeClosedEventArgs e)
        {
            base.BeforeClosed(e);
            if (!this.entryList.IsNullOrEmptyOrWhiteSpace())
            {
                Dictionary<string, object> returnData = new Dictionary<string, object>();
                returnData["FPushInStatus"] = pushInStatus;
                this.View.ReturnToParentWindow(returnData);//从被调用的动态表单界面返回数据
            }
            
        }

 

2.3、父窗体的表单插件回调函数根据参数的返回值进行窗口刷新

        private void BackFuncIn(FormResult result)
        {
            object data = result.ReturnData; //子窗体返回的数据
            if (data != null)
            {
                Dictionary<string, object> docContacts = data as Dictionary<string, object>;
                if (Convert.ToBoolean(docContacts["FPushInStatus"]))//返回的数据项
                {
                    this.View.Refresh();//返回的成功状态进行当前界面的刷新操作
                }
            }

        }

 

 

标签:界面,金蝶,保存,OtherInAdd,成功,窗体,刷新
From: https://www.cnblogs.com/lanrenka/p/17824863.html

相关文章

  • iPhone卡在iTunes图标界面?最全教程帮你快速修复恢复模式问题
    引言iPhone手机卡在iTunes图标界面(也称为恢复模式界面)是用户可能遇到的一个常见问题。通常,这种情况发生在设备升级、恢复或越狱失败时,导致手机无法正常启动。面对这种情况,很多用户可能感到手足无措。本文将详细介绍iPhone卡在iTunes图标界面的原因,并提供几个有效的解决......
  • 界面控件DevExpress WPF v24.1系统环境配置要求
    DevExpressWPF 拥有120+个控件和库,将帮助您交付满足甚至超出企业需求的高性能业务应用程序。通过DevExpressWPF能创建有着强大互动功能的XAML基础应用程序,这些应用程序专注于当代客户的需求和构建未来新一代支持触摸的解决方案。无论是Office办公软件的衍伸产品,还是以数据为中......
  • C#窗体自定义快捷操作键的实现 - 开源研究系列文章
          这次想到应用程序的窗体的快捷操作键的使用的问题。      上次发布过一个快捷键的例子(https://www.cnblogs.com/lzhdim/p/18342051),区别在于它是操作系统全局注册的热键,如果其它应用程序注册了对应的热键,那就会失效。此例子是对某个窗体里的按键的操作进行的......
  • RabbitMQ Web管理界面简介
    OverviewTotalsQueuedmessagesReadyNumberofmessagesthatareavaliabletobedeliverednow.待消费的消息数量一般来说,如果队列中ready状态的消息数量比较多,则说明消费者的处理能力可能不足,可以考虑适当增加消费者UnackedNumberofmessagesforwhichthe......
  • win10子系统运行图形界面和声音
    win10子系统运行图形界面和声音环境图形化界面播放声音子系统安装pulseaudiowin10安装pulseaudio子系统配置连接win的pulseaudio并播放声音环境1.win1064位,unbuntu22.042.镜像源国内清华源访问地址3.wls版本2图形化界面1.参考链接在适用于Linux的Windo......
  • ubuntu20.04中文界面设置
    1,进入ubuntu界面,首先要做的是更换下载源。打开Software&Updates,选择UbuntuSoftware菜单,在Downloadfrom处选择“阿里云”下载源(xxxx.aliyun.com)2,然后更新系统中可用软件包的信息,以便后续包含中文语言包的信息。3.打开设置,找到地区和语言(Region&Language),选择"Manageinsta......
  • 010.Vue3入门,数组变化侦听,实时在界面显示变化后的数据
    1、代码如下:<template><h3>数组变化侦听</h3><button@click="addListHandle">添加数据</button><ul><liv-for="(item,index)ofnames":key="index">{{item}}</li></ul>&l......
  • 扩展【从0制作自己的ros导航小车】C++_ROS_QT5联合编译,简单界面为ROS开发增添交互
    从0制作自己的ros导航小车前言一、环境搭建二、联合编译三、测试前言前面已经实现了导航功能,对于之后的一些开发,有交互能力是比较重要的,比如小车上连接一块屏幕,通过屏幕来选择模式,可视化等等。QT是不错的选择,但是需要做一些额外的工作,让QT与ROS能够建立联系,实现通信......
  • Windows图形界面(GUI)-MFC-C/C++ - 树形视图(Tree Control) - CTreeCtrl
    公开视频-> 链接点击跳转公开课程博客首页-> ​​​链接点击跳转博客主页目录树形视图(TreeControl)-CTreeCtrl创建和初始化添加和删除项获取和设置项属性操作项项选择变化项双击项展开示例代码树形视图(TreeControl)-CTreeCtrl创建和初始化Subclas......
  • Windows图形界面(GUI)-MFC-C/C++ - 列表视图(List Control) - CListCtrl
    公开视频-> 链接点击跳转公开课程博客首页-> ​​​链接点击跳转博客主页目录列表视图(ListControl)-CListCtrl创建列表视图设置列表视图属性成员函数注意事项示例代码列表视图(ListControl)-CListCtrl创建列表视图在对话框编辑器中,从工具箱中拖拽一个Li......