二开案例.过滤插件.账表过滤窗体上查询基础资料时设置过滤条件

【应用场景】账表过滤窗体上查询基础资料时设置过滤条件,简单的过滤条件可以通过BOSIDE完成设置(https://vip.kingdee.com/article/104902355959012352),更复杂的场景需使用插件的方式设置。
【案例演示】采购订单执行明细表过滤界面,给供应商和采购部门分别设置过滤条件。
【实现步骤】
<1>编写账表过滤插件,代码如下。
using Kingdee.BOS.Core.CommonFilter.PlugIn;
using Kingdee.BOS.Core.DynamicForm.PlugIn.Args;
using Kingdee.BOS.Util;
using System.ComponentModel;
namespace Jac.XkDemo.BOS.Business.PlugIn
{
/// <summary>
/// 【过滤插件】账表过滤窗体上查询基础资料时设置过滤条件
/// </summary>
[Description("【过滤插件】账表过滤窗体上查询基础资料时设置过滤条件"), HotUpdate]
public class RptSetBaseDataFilterBeforeFilterGridF7SelectListFilterPlugIn : AbstractCommonFilterPlugIn
{
/// <summary>
/// 基础资料查询前事件,账表过滤窗体上的快捷页签中的基础资料字段查询触发此事件
/// </summary>
/// <param name="e"></param>
public override void BeforeF7Select(BeforeF7SelectEventArgs e)
{
base.BeforeF7Select(e);
// 给供应商查询附加过滤条件
if (e.FieldKey.EqualsIgnoreCase("FBeginSupplierId") && e.FormId.EqualsIgnoreCase("BD_Supplier"))
{
e.ListFilterParameter.Filter = e.ListFilterParameter.Filter.JoinFilterString(" FNumber like '%SCM%' ");
return;
}
// 给物料查询附加过滤条件
if (e.FieldKey.EqualsIgnoreCase("FBeginMaterialId") && e.FormId.EqualsIgnoreCase("BD_MATERIAL"))
{
e.ListFilterParameter.Filter = e.ListFilterParameter.Filter.JoinFilterString(" FName like N'%轴承%' ");
return;
}
}
/// <summary>
/// 基础资料查询前事件,账表过滤窗体上的过滤条件表格、批量过滤条件表格中的基础资料字段查询触发此事件
/// </summary>
/// <param name="e"></param>
public override void BeforeFilterGridF7Select(BeforeFilterGridF7SelectEventArgs e)
{
base.BeforeFilterGridF7Select(e);
// 给供应商编码查询附加过滤条件
if (e.FieldKey.EqualsIgnoreCase("FSupplierNumber"))
{
e.ListFilterParameter.Filter = e.ListFilterParameter.Filter.JoinFilterString(" FNumber like '%SCM%' ");
return;
}
// 给物料名称查询附加过滤条件
if (
二开案例.过滤插件.账表过滤窗体上查询基础资料时设置过滤条件
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



