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);
}
}
}
}
原文地址:https://www.cnblogs.com/zfangfang/p/9983109.html