什么是参数,什么是宏?起什么作用?
1.在我们设计一张报表的时候,很少有里面的数据是固定不变的,常常需要根据一些条件来过滤出我们想要的数据。
这就需要通过参数的形式控制报表中的数据。
举例来说,一个查询需求为:从数据表T中查询字段a、b,并以字段x、y、z作为过滤条件(其中x固定取10,y和z接受外部传入的值)。
这种情况下就可以使用数据集参数,具体做法为:将数据集的SQL语句定义为“select a,b from T WHERE x=10 AND y=?arg1 AND z=?arg2”,
并为数据集定义两个参数arg1和arg2,分别接受y和z对应的条件值。
2.而宏是一个没有数据类型的字符串标识,在报表运算之前,系统会全面搜索整张报表的表达式定义,将所有的宏名替换成宏值。
参数共有三种类型:
普通参数:参数值应该由外部传入;
动态参数:参数值通过一个表达式运算而来;
会话变量:参数值会从会话(session)中获取对应名称的会话变量;
对于数据集本身来说,数据集并不关心参数的类型,它只需要参数值。而由引擎根据不同的参数类型,以不同的方式拿到参数值,再传给数据集。
在什么数据集中可以使用宏?数据集中的宏分为哪几类?
复杂SQL数据集可以设置宏, 普通宏,条件宏和动态宏
参数和宏的区别是什么
1.参数在表达式中被当成变量来使用,在表达式进行计算的过程中,才引用参数的变量值。
2. 宏在表达式中是没有数据类型的符号,它指代一串字符,这串字符是表达式的一部分。报表在运算前,该表达式会进行宏替换,把宏名替换成宏值,之后才进行报表的表达式运 算。与参数相比较,宏只是单纯进行字符串的替换。
1.在我们设计一张报表的时候,很少有里面的数据是固定不变的,常常需要根据一些条件来过滤出我们想要的数据。
这就需要通过参数的形式控制报表中的数据。
举例来说,一个查询需求为:从数据表T中查询字段a、b,并以字段x、y、z作为过滤条件(其中x固定取10,y和z接受外部传入的值)。
这种情况下就可以使用数据集参数,具体做法为:将数据集的SQL语句定义为“select a,b from T WHERE x=10 AND y=?arg1 AND z=?arg2”,
并为数据集定义两个参数arg1和arg2,分别接受y和z对应的条件值。
2.而宏是一个没有数据类型的字符串标识,在报表运算之前,系统会全面搜索整张报表的表达式定义,将所有的宏名替换成宏值。
参数共有三种类型:
普通参数:参数值应该由外部传入;
动态参数:参数值通过一个表达式运算而来;
会话变量:参数值会从会话(session)中获取对应名称的会话变量;
对于数据集本身来说,数据集并不关心参数的类型,它只需要参数值。而由引擎根据不同的参数类型,以不同的方式拿到参数值,再传给数据集。
在什么数据集中可以使用宏?数据集中的宏分为哪几类?
复杂SQL数据集可以设置宏, 普通宏,条件宏和动态宏
参数和宏的区别是什么
1.参数在表达式中被当成变量来使用,在表达式进行计算的过程中,才引用参数的变量值。
2. 宏在表达式中是没有数据类型的符号,它指代一串字符,这串字符是表达式的一部分。报表在运算前,该表达式会进行宏替换,把宏名替换成宏值,之后才进行报表的表达式运 算。与参数相比较,宏只是单纯进行字符串的替换。