Python动态表单插件-子页面关闭返回数据到父页面
对于我们日常开发的功能中,会经常遇到需要做界面交互,需要弹出界面来做数据处理。
父页面和子页面之间需要做数据相互传递,这时候我们就需要用到动态表单。
例如,我之前分享的Python列表插件批改单据明细字段,就需要弹出我们自己设计的字段录入界面,来对单据明细的字段进行批改,那么对于一些简单的弹出界面处理,我们用Python插件来处理开发效率会更高。
父页面弹出动态表单子页面代码示例-传送门:Python表单插件-点击菜单弹出动态表单传递参数到子页面
下面分享一下Python动态表单插件-子页面关闭返回数据到父页面的代码示例。
网页复制代码会有格式问题,如需复制代码,请下载附件!
#引入clr运行库
import clr
#添加对cloud插件开发的常用组件的引用
clr.AddReference('System')
clr.AddReference('System.Data')
clr.AddReference('Kingdee.BOS')
clr.AddReference('Kingdee.BOS.Core')
clr.AddReference('Kingdee.BOS.App')
clr.AddReference('Kingdee.BOS.ServiceHelper')
#导入cloud基础库中的常用实体对象(分命名空间导入,不会递归导入)
from Kingdee.BOS import *
from Kingdee.BOS.Core import *
from Kingdee.BOS.Core.Bill import *
from Kingdee.BOS.Core.DynamicForm.PlugIn import *
from Kingdee.BOS.Core.DynamicForm.PlugIn.ControlModel import *
from System import *
from System.Data import *
from Kingdee.BOS.App.Data import *
from System.Collections.Generic import List
from Kingdee.BOS.ServiceHelper import *
global dic;#定义全局变量,用来记录父页面传过来的参数
def OnInitialize(e):
global dic;
#获取父页面传入的参数:这里是通过字典的方式传入多个字段值
dic=this.View.OpenParameter.GetCustomParameter("DIC");
def AfterBindData(e):
#获取父页面的FormId
parentFormId=this.View.ParentFormView.BillBusinessInfo.GetForm().Id;
#this.View.ShowMessage(parentFormId);
def AfterCreateNewData(e):
global dic;
#将父页面获取到的参数逐个赋值到动态表单的字段上
orgId = str(dic["orgId"]);
year = dic["year"];
month = str(dic["month"]);
this.View.Model.SetItemValueByID("F_ora_OrgId", orgId, 0);
this.View.Model.SetValue("F_ora_Year", year, 0);
this.View.Model.SetValue("F_ora_Month", month, 0);
def ButtonClick(e):
key=e.Key.ToUpper();
if(key=="F_ora_OKBtn".ToUpper()):
global dic;
billObj = this.View.Model.DataObject;
orgId = str(billObj["F_ora_OrgId_Id"]);
year = billObj["F_ora_Year"];
month = str(billObj["F_ora_Month"]);
if(orgId=="0"):
this.View.ShowWarnningMessage("请选择组织!");
return;
if(year<2020 or year>2100):
this.View.ShowWarnningMessage("请输入有效的年份!");
return;
if(month==""):
this.View.ShowWarnningMessage("请选择有效的月份!");
return;
orgObj=billObj["F_ora_OrgId"];
dic["orgId"]=orgId;
dic["year"]=str(year);
dic["month"]=month;
dic["orgName"]=orgObj["Name"];
this.View.ReturnToParentWindow(dic);#构建字典,将界面录入的数据返回父页面
this.View.Close();
else:
this.View.Close();
#======代码结束===================================================
GetCustomParameter 如果有传参的时候,可以正常取值,但是如果通过列表及主菜单创建的时候,没有发送参数,无法取值,请问怎么区分是表单插件创建还是系统列表创建或者菜单创建
为什么我用ButtonClick函数点击按钮不生效,用BarItemClick可以生效,
谢谢
666
牛逼。
Python动态表单插件-子页面关闭返回数据到父页面
本文2024-09-16 17:18:44发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-14887.html