二开实现设计bom库选择多个bom展示bom报表;
【应用场景】
设计bom库选择多个bom展示bom报表。
【注意事项】
该实现方案涉及到性能和页签的展示,(树状bom报表需要加载时间,页签有控制打开个数),非最佳实践,不推荐使用,仅限于特殊场景下的特殊应用。
【案例演示】
需先设置bom为模块,再bomide中扩展bom模板添加按钮 多个树状报表展示,再绑定二开插件;
【实现步骤】
前置操作参考帖子:
https://vip.kingdee.com/article/83591896433330944?productLineId=1
https://vip.kingdee.com/article/181757918948438784?productLineId=1
<1>BOSIDE扩展操作:
<2>编写表单插件和服务插件,代码如下。
引用参考:
列表插件重写BarItemClick方法:
public override void BarItemClick(BarItemClickEventArgs e)
{
if (OperationRefused(e)) return;
switch (e.BarItemKey.ToUpper())
{
case "TBBOMSREPORT":
var lsts = this.ListView.SelectedRowsInfo;
var dicObject = DomainObjectManager.AutoLoad(PLMContext, lsts.Select(m => Convert.ToInt64(m.PrimaryKeyValue)).ToArray()).ToDictionary(m => m["id"].ToString());
foreach (var dic in dicObject)
{
var parameters = new Dictionary<string, object>();
string formId = PLMFormIdConst.PLM_CFG_BOMREPORT;
var fid = Convert.ToInt64(dic.Key);
var bomObj = BaseObjectManager.Instance(PLMContext).Get(PLMContext, fid);
var categoryID = Convert.ToInt64(bomObj["CategoryID_Id"]);
parameters.Add(FormParameterConst.MaterialPlatform_BomId, fid);
parameters.Add(FormParameterConst.plm_param_MaxLayerStr, 30);
parameters.Add(FormParameterConst.plm_param_BomReportCategoryId, categoryID);//BOM 允许扩展子业务类型,bom报表也需要支持
parameters.Add(FormParameterConst.plm_param_BomReportType, BomReportType.Tree);
var treeField = PLMMetadataHelper.GetForm(PLMContext, PLMFormIdConst.PLM_CFG_BOMREPORT).BusinessInfo.GetField("FISTREEVIEW");
bool autoTreeReport = treeField != null && treeField.DefValue != null && treeField.DefValue.Value != null && Convert.ToBoolean(treeField.DefValue.Value);
if (autoTreeReport)
{
formId = PLMFormIdConst.PLM_CFG_BOMTREEREPORT;
parameters.Add(FormParameterConst.plm_param_BomReportIsTreeView, autoTreeReport);
}
PageManager.Instance.ShowDynamicForm(PLMView, formId, ResManager.LoadKDString("BOM报表", "120006000014518", SubSystemType.PLM), parameters, ShowType.MainNewTabPage);
}
break;
}
}
其他bom报表参考参数修改:
switch (operation)
{
case "BOMFILIATIONREPORTOP":
parameters.Add(FormParameterConst.plm_param_BomReportType, BomReportType.Filiation);
break;
case "BOMGATHERREPORTOP":
parameters.Add(FormParameterConst.plm_param_BomReportType, BomReportType.Gather);
break;
case "BOMREPORTOP":
parameters.Add(FormParameterConst.plm_param_BomReportType, BomReportType.Tree);
var treeField = PLMMetadataHelper.GetForm(plugin.PLMContext, PLMFormIdConst.PLM_CFG_BOMREPORT).BusinessInfo.GetField("FISTREEVIEW");
bool autoTreeReport = treeField != null && treeField.DefValue != null && treeField.DefValue.Value != null && Convert.ToBoolean(treeField.DefValue.Value);
if (autoTreeReport)
{
formId = PLMFormIdConst.PLM_CFG_BOMTREEREPORT;
parameters.Add(FormParameterConst.plm_param_BomReportIsTreeView, autoTreeReport);
}
break;
default:
plugin.PLMView.CurrentView.ShowWarnningMessage(ResManager.LoadKDString("操作名称不对", "120006000014517", SubSystemType.PLM));
return;
}
<2>拷贝插件组件到应用站点的WebSite\Bin目录下,重启IIS。
<3>BOSIDE扩展BOM模板,注册表单插件,保存元数据,开发完毕。
【功能验证】
<1>登录业务站点,打开设计bom库界面,点击保存菜单,即可通过VS调试或者日志文件观察到最新的服务插件执行顺序。
二开实现设计bom库选择多个bom展示bom报表;
【应用场景】设计bom库选择多个bom展示bom报表。【注意事项】该实现方案涉及到性能和页签的展示,(树状bom报表需要加载时间,页签有控制打...
点击下载文档
本文2024-09-23 03:04:09发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-156489.html
您需要登录后才可以发表评论, 登录登录 或者 注册
最新文档
热门文章