报表样例

通过本示例,可以了解动态宏在报表中的应用。

制作如下图所示的报表: 条件宏 - 图1

报表特点

  • 报表实现便捷多条件查询订单记录。

  • 根据输入的查询条件控制报表展现的数据,并获取输入的查询条件值。

制作方法

第一步 定义带有条件宏的数据集

报表数据来自复杂sql数据集,sql语句中应用了条件宏,具体操作如下:

1)点击【添加数据集】按钮,在弹出的新建数据集页面选择【复杂SQL】。

2)在数据集编辑页面输入SQL:select * from demo_orders where ${mac} 条件宏 - 图2

3)切换到“宏配置”Tab页下,将宏类型设置为条件宏,在右侧选择数据库模式之后,找到所需数据表点击【添加】按钮将数据表添加到已选数据表列表。选中已选数据表,设置表别名,勾选需要做查询的字段,条件宏配置完成。 条件宏 - 图3

4)点击【确定】,保存为“订单信息表”。 条件宏 - 图4

第二步 制作表样

绘制报表基本结构: 条件宏 - 图5

第三步 定义单元格表达式

1)快捷公式选择【列表】,将“订单ID”字段拖拽至A3单元格;选择【取值】,将字段“客户ID”、“订购日期”、“货主地区”、“货主名称”、“运货费”分别拖拽至B3、C3、D3、E3、F3单元格。 条件宏 - 图6

拖拽完成后生成的各单元格表达式如下: A3单元格表达式为:=订单信息表.Select(订单ID) B3单元格表达式为:=订单信息表.客户ID C3单元格表达式为:=订单信息表.订购日期 D3单元格表达式为:=订单信息表.货主地区 E3单元格表达式为:=订单信息表.货主名称 F3单元格表达式为:=订单信息表.运货费

2)选中F2单元格,输入表达式:=conditionMacro("DEMO_ORDERS.货主名称"),用于获取条件宏输入的条件。

第四步 设置通用查询

点击【编辑】--【通用查询】进入通用查询设计页面,勾选所需查询条件,并设置别名、编辑风格等。 条件宏 - 图7 条件宏 - 图8

点击【保存配置】按钮将通用查询设置保存。

第五步 保存预览

点击【保存】按钮对报表模板进行保存,在保存页面设置报表的资源名称、保存路径 和文件名称,点击【确定】,此报表模板保存资源名称为“订单记录查询表”。

点击【预览】按钮对报表进行查看,点击预览按钮时也会对报表进行保存。

预览界面: 条件宏 - 图9

功能点说明

条件宏可以相当轻松的实现多个查询,而当某个查询条件为空则默认为1=1。此处条件宏可视为占位符使用,其后是将填入值的条件拼接在sql中 ,如上图四个条件假如都填则执行的sql便为select from demo_orders where 客户id=值 and 发行日期=值 and 到货日期 =值 and 货主名称=值 。中间以and连接,而上图只填入一个条件执行sql 为,可以视作select from demo_orders where 货主名称='方先生' and 1=1 and1=1 and1=1

获取条件宏查询条件的函数conditionMacro("DEMO_ORDERS.货主名称") 使用方法 conditionMacro(条件宏别名.字段名) 条件宏 - 图10