分享:如何关闭采用DynamicFormShowParameter弹出的动态表单
金蝶云社区-yufugen
yufugen
2人赞赏了该文章 2,926次浏览 未经作者许可,禁止转载编辑于2016年03月02日 17:12:18

由于最近项目需求,需要在物料列表上浮动显示出选中物料的图片信息,经过论坛上大神们的分享及自身摸索,终于实现了该功能,现将代码分享给大家,希望对未来有需要实现该功能的攻城狮有帮助:
[code]#region 显示图片预览
private void ShowImagePreview()
{
DynamicFormShowParameter showParam = new DynamicFormShowParameter();
//单据名,不能使用继承的单据名,原因未知
showParam.FormId = "ImagePreview";
//该单据的主键值,新建时可以不填
//showParam.PKey = "100001";
//单据才设置状态,动态表单没有状态
//showParam.Status = OperationStatus.ADDNEW;
showParam.ParentPageId = this.View.PageId;
showParam.OpenStyle.ShowType = ShowType.Floating;

//showParam.OpenStyle.ShowType = ShowType.InContainer;
//传递特殊属性到目标模型
//目标模型可以在其表单插件中的OnInitial事件中获取这些参数
//传递物料编码
string strMaterialId = this.ListView.CurrentSelectedRowInfo.PrimaryKeyValue.ToString();
showParam.CustomParams.Add("FMATERIALID", strMaterialId);

showParam.Resizable = false;
showParam.ShowMaxButton = false;
//showParam.HiddenCloseButton = true; //采用客户端打开,该设置无效,浏览器打开有效
//showParam.HOffset = 1590;
//showParam.VOffset = 720;
showParam.HOffset = this.Context.ClientInfo.AvailableAreaSize.Width - 250 - 52; //根据客户端信息的宽度设置浮动窗口的显示位置(250为动态表单的宽度)
showParam.VOffset = this.Context.ClientInfo.AvailableAreaSize.Height - 250 - 25;

IDynamicFormView view = this.View.GetView(strPreSubformPage); //设置前一个打开的动态表单视图
if (view != null)
{
view.Close(); //打开弹出表单前,关闭前一个弹出表单
this.View.SendDynamicFormAction(view); //这里需要注意,没有这段代码关闭无效,当初就是少了一句浪费了好久时间
}
this.View.ShowForm(showParam);
strPreSubformPage = showParam.PageId; //打开弹出表单后,赋值弹出的表单PageId到指定变量
}
#endregion[/code]