普通宏与动态宏实现数据动态查询
数据集SQL语句的查询遵循所连接的数据源的SQL语句编辑风格。一般的运算函数在数据集的SQL语句运行并不支持,参数也不能直接写入,然而宏的形式却是支持的,这就有利于实现查询数据的动态变化。
步骤一:宏与动态宏的区分
动态宏和普通宏的主要区别在于普通宏是直接将宏值传到报表中计算,动态宏是把传进来的宏值当成表达式进行计算,然后再把计算得到值做为宏值传到报表中参与计算。如图一
图一
预览结果如下
图二
普通宏与字符串拼接则直接传值。
步骤二:宏在数据集SQL检索的应用
建立demo的简单SQL检索数据集。Sql语句如图三
图三
宏的设置如图四,
使用普通宏:macro1:订单.订单ID,订单.货主地区
动态宏:macro2:case(arg1,’东北‘, “订单.货主地区=’”+arg1+”‘”,’华南‘,”订单.货主地区=’”+arg1+”‘”)
图四
步骤三:预览测试
总体查询条件如图五
图五
测试结果
图六
总结:使用宏,尤其是动态宏,可以实现,查询检索的动态改变