BOS IDE中配置了个界面,拖了动态表单界面,加了5个测试按钮。
直接看效果:
点击“打开单据”维护界面,
会跳转到一个新的主界面页签,【物料】新增
点击“打开列表”,会弹出【物料】列表界面,
击“打开动态表单”,会弹出动态表单,
这个打开动态表单界面是空的,一般动态表单都是要压入自定义参数值进去,或者从父界面获取需要的值。
点击“打开简单帐表”,会弹出简单帐表,
点击“打开直接SQL帐表”,会弹出直接SQL帐表,
可以看到报错了,因为这个是所有【直接Sql帐表】的基对象,是不能直接使用的,我们开发的直接SQL帐表都是继承这个的,演示帐套里默认没有其他的直接SQL帐表,也就拿这个测试看下效果了。
附上代码:
-
using Kingdee.BOS.Core.DynamicForm.PlugIn;
-
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
-
using System;
-
using System.Collections.Generic;
-
using System.ComponentModel;
-
using System.Linq;
-
using System.Text;
-
-
namespace ClassLibrary60.Business.PlugIn
-
{
-
[Description("模型打开测试")]
-
public class CustDynamicFormPlugIn : AbstractDynamicFormPlugIn
-
{
-
public override void ButtonClick(ButtonClickEventArgs e)
-
{
-
base.ButtonClick(e);
-
if (e.Key.EndsWith("Bill", StringComparison.OrdinalIgnoreCase))
-
{
-
Kingdee.BOS.Core.Bill.BillShowParameter param = new Kingdee.BOS.Core.Bill.BillShowParameter();
-
param.FormId = "BD_MATERIAL";//【物料】基础资料 业务对象标识,此处基础资料、单据类型都可以
-
param.OpenStyle.ShowType = Kingdee.BOS.Core.DynamicForm.ShowType.MainNewTabPage;//打开方式,到主界面一个新的页签
-
param.ParentPageId = this.View.PageId;//指定ParentPageId,可以实现打开的界面直接拿到父界面的数据 如this.View.ParentFormView.Model.DataObject
-
this.View.ShowForm(param);
-
}
-
else if (e.Key.EndsWith("List", StringComparison.OrdinalIgnoreCase))
-
{
-
Kingdee.BOS.Core.List.ListShowParameter param = new Kingdee.BOS.Core.List.ListShowParameter();
-
param.FormId = "BD_MATERIAL";// 【物料】基础资料 业务对象标识,此处基础资料、单据类型都可以
-
this.View.ShowForm(param);
-
}
-
else if (e.Key.EndsWith("DynamicForm", StringComparison.OrdinalIgnoreCase))
-
{
-
Kingdee.BOS.Core.DynamicForm.DynamicFormShowParameter param = new Kingdee.BOS.Core.DynamicForm.DynamicFormShowParameter();
-
param.FormId = "BD_QUERYAUXMATERIAL";//【查询辅助属性启用的物料】动态表单 业务对象标识,此处动态表单、基础资料、单据类型的都可以
-
this.View.ShowForm(param);
-
}
-
else if (e.Key.EndsWith("SysReport", StringComparison.OrdinalIgnoreCase))
-
{
-
Kingdee.BOS.Core.Report.SysReportShowParameter param = new Kingdee.BOS.Core.Report.SysReportShowParameter();
-
param.FormId = "GL_RPT_GeneralLedger";//简单账表 总分类账 此处简单账表、树形账表、分页账表、透视表类型的该都是可以的
-
this.View.ShowForm(param);
-
}
-
else if (e.Key.EndsWith("SQLReport", StringComparison.OrdinalIgnoreCase))
-
{
-
Kingdee.BOS.Core.Report.SQLReportShowParameter param = new Kingdee.BOS.Core.Report.SQLReportShowParameter();
-
param.FormId = "BOS_SQLReport";
-
this.View.ShowForm(param);
-
}
-
}
-
}
-
}
-
复制代码
至于每种类型的不同打开参数控制,可自行赋下值分析研究下