二开案例.账表服务插件.使用高级过滤
【应用场景】
在账表过滤窗体上启用高级过滤。
【案例演示】
采购订单执行明细表,启用高级过滤。
【案例演示】
<1>编写账表服务插件,代码如下。
using Kingdee.BOS.Core.Report;
using Kingdee.BOS.Util;
using Kingdee.K3.SCM.App.Purchase.Report;
using System.ComponentModel;
namespace Jac.XkDemo.BOS.Report.PlugIn
{
/// <summary>
/// 【账表服务插件】使用高级过滤
/// https://vip.kingdee.com/article/96303660623174656
/// </summary>
[Description("【账表服务插件】使用高级过滤"), HotUpdate]
public class UseBatchFilterReportPlugIn : PurchaseOrderExecuteRpt
{
public override void BuilderReportSqlAndTempTable(IRptParams filter, string tableName)
{
// 快捷过滤条件已自动存放在FilterParameter.CustomFilter中,账表插件需要取值后自行封装成SQL过滤条件
var customFilter = filter.FilterParameter.CustomFilter;
// 高级过滤条件已自动存放在FilterParameter.FilterString中,账表插件可以直接拿来使用
var commonFilter = filter.FilterParameter.FilterString;
// TODO
base.BuilderReportSqlAndTempTable(filter, tableName);
}
}
}
<2>拷贝插件组件到应用站点的WebSite\Bin目录下,重启IIS。
<3>登录BOSIDE,扩展采购订单执行明细表过滤界面,给高级页签下的【批量过滤条件表格】添加字段,注意字段的名称需要和条件页签下的【过滤条件表格】中的字段定义保持一致。
<4>采购订单执行明细表注册新的服务器插件,禁用原有的服务器插件,保存元数据,开发完毕。
现在可以登业务站点,打开采购订单执行明细表,验证一下高级过滤是否已生效。
VS附加进程启动调试,断点账表插件代码,可从插件事件中拿到我们在界面上输入的高级过滤的条件。
拿到高级过滤条件以后,就可以对报表数据源进行过滤啦。
过滤条件:( FSupplierName IN (N'新宇集团',N'雅俊实业',N'明瑞五金') AND FMaterialName IN (N'普通物料A',N'接板-A系列',N'六角螺母') )产生的最终查询结果如下图。
【知识点】
<1>对于标准产品中的账表而言, 高级过滤条件已自动存放在FilterParameter.FilterString中,生成数据源的SQL语句也会自动把该条件附加上,因此,启用高级过滤,只需给对应账表的过滤窗体中的高级页签下的【批量过滤条件表格】添加字段,而账表插件本身通常不需要进行修改。
---------------------------------------------------------------------------------------------------------
【金蝶云星空BOS二次开发案例演示】https://vip.kingdee.com/article/94751030918525696
二开案例.账表服务插件.使用高级过滤
本文2024-09-23 04:19:13发表“云星空知识”栏目。
本文链接:https://wenku.my7c.com/article/kingdee-k3cloud-164549.html