文本介绍了客户希望在Excel中按规则对单据体内容排序后打印或导出的需求。Excel模板的【EntryFilters】页签提供排序规则设置,可与过滤条件同时设置,需使用order by关键字,并遵循SQL语法规则。举例说明了多种排序方式,包括单独字段排序、多字段不同顺序排序,以及特殊字段处理(如物料编码)。特别提醒了物料编码的使用细节。最后展示了排序效果预览。
客户场景:单据体内容较多,希望能按一定规则(排序)进行显示后再打印或导出,方便使用者阅读,如,按物料名称进行排序、按日期进行排序或按日期+代码排序显示。
在Excel模板设计第二个页签【EntryFilters】过滤界面提供说明和设计:
关于单据体字段排序的使用说明如下:
Excel 打印支持设置单据体排序规则,设置方法和注意事项同过滤条件类似。
1、排序规则和过滤条件可以同时设置,但排序规则必须在过滤条件之后,并且排序规则前面必须有order by 关键字,与 SQL 语法类似
举例:打印采购订单时,要过滤明细信息单据体中物料编码包含“Excel”的,且按照交货日期降序排序
${FPOORDERENTRY.FMaterialId.FNumber} like '%Excel%' order by ${FPOORDERENTRY.FDeliveryDate} desc
2、排序规则可以单独设置,但是order by 关键字不能省略
举例:打印采购订单时,明细信息单据体数据按照交货日期降序排序
order by ${FPOORDERENTRY.FDeliveryDate} desc
3、升序关键字asc ,降序关键字desc ,多个字段按照不同的顺序进行排序,需要分别为每个字段设置asc 或desc 关键字,升序关键字asc 可以省略
举例:打印采购订单时,明细信息单据体数据按照交货日期降序排序,交货日期相同的,再按照采购数量升序排序
order by ${FPOORDERENTRY.FDeliveryDate} desc,${FPOORDERENTRY.FQty}
举例说明:
场景设计:打印采购订单编号含cgdd的,并按物料代码降序排序,再按交货日期升序排序
设计操作:在模板第二个页签 单据体.明细信息行:
FPOOrderEntry : ${FPOORDERENTRY.FMaterialId.FNumber} like '%CGDD%' order by ${FPOORDERENTRY.FMaterialId.FNumber} desc,${FPOORDERENTRY.FDeliveryDate}
如下:
特别说明:
在关键字中有两个物料编码(物料编码、物料编码_编码),按物料编码进行过滤或排序时,请使用 物料编码_编码:${FPOORDERENTRY.FMaterialId.FNumber},带有.FNumber的。
单据显示:
预览效果如下:
单据表体按先交货日期排序(升序),再按将物料代码排序(升序),效果如下:
推荐阅读