# 报表样例 通过本示例,可以了解动态宏在报表中的应用。 制作如下图所示的报表: ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_2e3290404f25469b7d550d04f4601700_r.png) # 报表特点 - 报表实现便捷多条件查询订单记录。 - 根据输入的查询条件控制报表展现的数据,并获取输入的查询条件值。 # 制作方法 ## 第一步 定义带有条件宏的数据集 报表数据来自复杂sql数据集,sql语句中应用了条件宏,具体操作如下: 1)点击【添加数据集】按钮,在弹出的新建数据集页面选择【复杂SQL】。 2)在数据集编辑页面输入SQL:select * from demo_orders where ${mac} ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_f2904303064c434ba2a57f4592376d60_r.png) 3)切换到“宏配置”Tab页下,将宏类型设置为条件宏,在右侧选择数据库模式之后,找到所需数据表点击【添加】按钮将数据表添加到已选数据表列表。选中已选数据表,设置表别名,勾选需要做查询的字段,条件宏配置完成。 ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_e1de5812c2a994ed0b44f59961b19a32_r.png) 4)点击【确定】,保存为“订单信息表”。 ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_454725dec727e1c33b4964dac1557e71_r.png) ## 第二步 制作表样 绘制报表基本结构: ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_ce93f7e90652409f37e6fa4387f14ae0_r.png) ## 第三步 定义单元格表达式 1)快捷公式选择【列表】,将“订单ID”字段拖拽至A3单元格;选择【取值】,将字段“客户ID”、“订购日期”、“货主地区”、“货主名称”、“运货费”分别拖拽至B3、C3、D3、E3、F3单元格。 ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_ba14153881abc207ebd9d70456d04023_r.png) 拖拽完成后生成的各单元格表达式如下: A3单元格表达式为:`=订单信息表.Select(订单ID)` B3单元格表达式为:`=订单信息表.客户ID` C3单元格表达式为:`=订单信息表.订购日期` D3单元格表达式为:`=订单信息表.货主地区` E3单元格表达式为:`=订单信息表.货主名称` F3单元格表达式为:`=订单信息表.运货费` 2)选中F2单元格,输入表达式:`=conditionMacro("DEMO_ORDERS.货主名称") `,用于获取条件宏输入的条件。 ## 第四步 设置通用查询 点击【编辑】--【通用查询】进入通用查询设计页面,勾选所需查询条件,并设置别名、编辑风格等。 ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_2c0d3bc7ac49279bdba6bd99faa27b62_r.png) ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_fcd2e70e963bc71761277c0eb935d300_r.png) 点击【保存配置】按钮将通用查询设置保存。 ### 第六步 保存预览 点击【保存】按钮对报表模板进行保存,在保存页面设置报表的资源名称、保存路径 和文件名称,点击【确定】,此报表模板保存资源名称为“订单记录查询表”。 点击【预览】按钮对报表进行查看,点击预览按钮时也会对报表进行保存。 预览界面: ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_1465ecc164fc997ff8b387ba7dcf9201_r.png) # 功能点说明 条件宏可以相当轻松的实现多个查询,而当某个查询条件为空则默认为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(条件宏别名.字段名) ![](/uploads/projects/7.11_online/uploads/sjjc/images/m_819cc89cd30b17a07eccf41bcc55c9af_r.png)