你用过office 的宏吗?记录了多条操作或编写了既定流程的宏是否给你的工作带来方便?Appquicker 中也提供了宏的功能,下面我们一起看看:这里的宏能解决什么问题?
写在前面:
Appquicker 的宏分普通宏和动态宏两种类型,普通宏可以作为常量使用,动态宏中能够写入逻辑判断语句,可以动态返回值或字符串。
第一步:定义宏
打开设计器,打开人员列表(employeelist.raq ),【配置]宏定义 】,在呈现的报表宏编辑窗口,点击增加
双击值所在的空格,在弹出的表达式编辑窗口中输入:
if(@dept ==null,”",” deptid = ‘”+@dept +”‘ and “)
点击确定,保存macro1 宏
注意到了吗?
表达式中出现的@dept就是引用的dept参数,在宏中我们先对dept参数做一个判断,如果该参数为空值,即没有输入值,这时宏返回一个空字符串,否则,返回字符串”deptid=dept参数值 and“。
插入语 关于逻辑表达式
上文中我们使用了if表达式,设计器中除if外还有case语句来实现多重平行判断。具体语法请参见函数帮助。
第二步:引用宏
【配置]数据集 】,在呈现的数据集设置窗口,选择ds1, 点击编辑,切换到语法tab 页,修改SQL 如下:
SELECT * FROM employee where ${macro1}
(? is null or birthday >= ?) and (? is null or birthday <= ?)
切换到参数tab 页,删除序号为1 ,2 的参数dept 。
点击确定。浏览报表。
注意到了吗?
宏在SQL语句中的使用格式:${宏名称},结合宏macro1的返回值,你能理解宏的作用吗?
插入语debug 模式启动设计器
到目前为之,浏览报表的过程中,你是否感觉到需要一个日志类工具,能够在你调试报表时可以追踪程序的运行情况?如果你已经有这样的需要,可以首先在设计器【配置Æ选项Æ常规】,去掉接管控制台的勾选,关闭设计器,在windows【开始Æ所有程序ÆappquickerÆ附加工具Ædebug模式启动设计器】这种方式打开设计器,你会发现在任务栏上多了一项runqianreport,打开来是一个command窗口,在设计器中重新打开人员列表,点击
,输入参数,打开报表后,切换到command窗口,看到了吗?程序与数据库的交互记录都在这里了。
仔细观察上面图中标示的SQL 语句,你能发现宏的作用吗?
设计器点击预览,第一次不输入参数,command 窗口中记录执行的SQL 为:
SELECT * FROM employee where
(? is null or birthday >= ?) and (? is null or birthday <= ?)
第二次预览设定dept 参数为1 ,SQL 为:
SELECT * FROM employee where deptid = ‘1′ and
(? is null or birthday >= ?) and (? is null or birthday <= ?)
宏根据查询的参数进行判断,如果输入了部门参数,就生成了部门过滤条件字符串,如:deptid = ‘1′ and ,如果没有输入部门参数,则返回一个空字符串。
本章和第九章介绍了动态数据报表的制作方法,现在你是否能够按照业务人员的需求编制出一些查询报表了呢?记住!当编写表达式的时候,函数帮助是你的指路明灯。你可以使用函数帮助来查看某一个函数的语法和应用例子。
下一章开始,我将用三个章节介绍如何制作可以填写数据的业务单据。


