普通宏-动态字段
报表样例
通过本示例,可以了解如何通过利用普通宏实现报表的字段动态查询与展现。
制作如下图所示的报表:
报表特点:
- 用户可以在查看报表时,选择需要查询的订单表的字段
- 报表根据用户选择的字段动态地展现出订单表N列字段对应的数据
报表中的数据来自产品中自带的演示数据表“演示_订单表”,采用复杂sql数据集,sql语句中应用了普通宏,数据集sql语法如下:
制作方法
定义复杂sql数据集时,在sql语句select关键字后面的字段部分设置宏“${columns}”,作用是通过宏的值来动态地控制要查询的字段:
在数据集定义界面的“宏配置”Tab页下,将自动获取刚才sql语句中设置的宏,默认类型即为普通宏,为该宏设置默认值,表示数据集默认查询的字段:
绘制报表格式,并设置各单元格表达式,注意B3单元格设置为向右扩展:
- A5:=ds1.select(#0)
- B3:=to(1,ds1.colCount())
- B4:=ds1.fieldName(B3)
- B5:=ds1.field(B4)
设置第一列、第三行的单元格均为隐藏:
进入通用查询,将宏columns添加为查询条件,为条件设置编辑风格为可多选的列表选择:
详细了解宏在通用查询中的使用,请参考:通用查询 -> 使用参数和宏。
详细了解编辑风格列表选择的使用,请参考:列表选择编辑风格。
功能点说明
利用普通宏实现数据集sql动态字段查询
在上面的示例报表中,数据集sql语句定义为:select ${columns} from demo_orders。当查看报表时系统会根据传入的宏值替换sql语句中select关键字后边的宏。
宏可以添加到通用查询中作为查询条件。例如上面示例报表中,就将宏columns设为了查询条件,从而实现了可以根据用户选择的字段,在sql语句中动态地拼接成最终要查询的字段,进行动态地表字段数据获取。
详细了解宏的应用,请参考:宏。