二开案例.基础资料.过滤

【应用场景】给单据上的基础资料字段,设置额外的过滤条件。
【案例演示】给采购订单的供应商字段,设置不同的过滤条件,并观察其影响范围。
【基础知识】
<1>单据上的础资料字段,可设置三种过滤条件,分别是过滤、高级过滤和过滤界面条件。

过滤:专用于在单据中进行基础资料查询,最终会和高级过滤的条件合并在一起使用。
高级过滤:专用于在单据中进行基础资料查询,最终会和过滤的条件合并在一起使用。
过滤界面条件:专用于在单据的列表过滤界面中进行基础资料查询,包括过滤条件表格,批量过滤条件表格,快捷过滤等。

<2>单据中的基础资料字段的过滤条件来源有:基础资料.过滤、基础资料.高级过滤、BeforeF7Select事件(https://vip.kingdee.com/article/104945110479021056)等。
列表过滤界面中的基础资料字段的过滤条件来源有:基础资料.过滤界面条件、BeforeFilterGridF7Select事件(https://vip.kingdee.com/article/104956800675357696)等。
【实操1-基础资料.过滤】
<1>BOSIDE扩展采购订单,选中供应商字段,将过滤属性设置为:FNumber like '%GY%',保存元数据,如下图所示。

此过滤条件的含义为:只查询编码包含GY的供应商,过滤条件需要遵循SQL语法,用于查询的字段名必须使用字段的标识。
<2>登录业务站点,打开采购订单,观察供应商字段的模糊查询结果,此时返回的查询结果都是编码包含GY的供应商。

<3>数据库抓包SQL如下:
SELECT TOP 5
t0.FNUMBER AS FNumber ,
t0_L.FNAME AS FName ,
t0.FSUPPLIERID AS FSupplierId
FROM T_BD_SUPPLIER t0
LEFT JOIN T_BD_SUPPLIERBASE t1 ON ( t0.FSUPPLIERID = t1.FSUPPLIERID )
LEFT JOIN T_BD_SUPPLIER_L t0_L ON ( t0.FSUPPLIERID = t0_L.FSUPPLIERID
AND t0_L.FLOCALEID = 2052
)
WHERE ( (( t0.FNUMBER LIKE '%GY%' )
AND ( t1.FSUPPLYCLASSIFY <> 'WW' ))
)
AND t0.FUSEORGID = 100003
AND t0.FDOCUMENTSTATUS = 'C'
AND t0.FFORBIDSTATUS = 'A'
ORDER BY t0.FNUMBER;
【实操2-基础资料.高级过滤】
<1>在实操1的基础上继续,BOSIDE扩展采购订单,选中供应商字段,将高级过滤的前提条件设置为:FPurchaseOrgId.FNumber = '101.2',将前置条件成立时的过滤条件设置为:FName like '%YS%',保存元数据,如下图所示。

<2>登录业务站点,打开采购订单,观察供应商字段的模糊查询结果,此时返回的查询结果是编码包含GY且名称包含YS的供应商。

<3>数据库抓包SQL如下:
SELECT TOP 5
t0.FNUMBER AS FNumber ,
t0_L.FNAME AS FName ,
t0.FSUPPLIERID AS FSupplierId
FROM T_BD_SUPPLIER t0
LEFT JOIN T_BD_SUPPLIERBASE t1 ON ( t0.FSUPPLIERID = t1.FSUPPLIERID )
LEFT JOIN T_BD_SUPPLIER_L t0_L ON ( t0.FSUPPLIERID = t0_L.FSUPPLIERID
AND t0_L.FLOCALEID = 2052
)
WHERE ( (( ( t0.FNUMBER LIKE '%GY%' )
AND ( t0_L.FNAME LIKE N'%YS%' )
)
AND ( t1.FSUPPLYCLASSIFY <> 'WW' ))
)
AND t0.FUSEORGID = 100003
AND t0.FDOCUMENTSTATUS = 'C'
AND t0.FFORBIDSTATUS = 'A'
ORDER BY t0.FNUMBER;
----------------------------------------------------------------------------------------------
观察上面的SQL可知,高级过滤条件会和过滤条件合并在一起。
【实操3-基础资料.过滤界面条件】
<1>BOSIDE扩展采购订单,选中供应商字段,将过滤界面条件属性设置为:FName like N'%新宇%',保存元数据,如下图所示。

<2>登录业务站点,打开采购订单列表的过滤界面,观察供应商字段的模糊查询结果,此时返回的查询结果是名称包含新宇的供应商。

<3>数据库抓包SQL如下:
SELECT TOP 5
t0.FNUMBER AS FNumber ,
t0_L.FNAME AS FName ,
t0.FSUPPLIERID AS FSupplierId
FROM T_BD_SUPPLIER t0
LEFT JOIN T_BD_SUPPLIER_L t0_L ON ( t0.FSUPP
二开案例.基础资料.过滤
声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。



