单元格内动态宏的引用
关于变量的传递功能,有宏和参数两种形式,宏又分动态宏和普通宏(静态)两种形式,宏值的优点是可以在数据集里直接使用${}引用。而单元格的宏,尤其是动态宏的值引用却需要特殊应用。
步骤一:建立demo的含有宏的数据集。如图一
图一
数据集表达式: SELECT * FROM 订单 where ${macro1} =? or ? is null,
宏值为动态宏:case(arg1,”东北“,”货主地区“,”沈阳“,”货主城市“)
步骤二:发布报表
当参数arg1为“东北”时。如图二
图二
步骤三:单元格引用动态宏
图三
A3单元格引用宏:=${macro1}
您会发现后台报错,报错信息为:
单元格A3中有错误表达式:货主地区中不能识别的表达式:货主地区
这是因为单元格将“货主地区”作为表达式使用了。
步骤四:建立一个和macro1的表达式相似的动态宏,macro2表达式:
‘case(arg1,”东北“,”货主地区“,”沈阳“,”货主城市“)’,和macro1相比,多了英文的引号,
将该表达式写如单元格A1,如图五
图五
表达式=Str(${macro1}).
步骤六:发布报表