文章目录
- 金蝶云星空将子窗体的内容传回到父窗体的开发实现
- 前置任务
- 父窗体打开子窗体时传入回调函数
- 子窗体设置返回参数
- 父窗体接收参数
- 在回调函数根据参数做一些逻辑处理
金蝶云星空将子窗体的内容传回到父窗体的开发实现
前置任务
金蝶云星空表单插件实现父窗体打开子窗体,并携带参数到子窗体
父窗体打开子窗体时传入回调函数
this.View.ShowForm(OtherInAdd, BackFuncIn);
BackFuncIn是在父窗体定义的回调函数。
子窗体设置返回参数
在表单插件,关闭事件
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);//从被调用的动态表单界面返回数据
}
}
父窗体接收参数
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"]))//返回的数据项
{
//逻辑处理
}
}
}
在回调函数根据参数做一些逻辑处理
比如返回成功标记进行刷新界面
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();//比如,返回的成功状态进行当前界面的刷新操作
}
}
}