AppQuicker

快速搭建应用系统教程

  • 首页
  • 教程
  • 疑难解答
  • 关于AppQuicker

#10 带查询参数的人员列表——宏的作用

你用过office 的宏吗?记录了多条操作或编写了既定流程的宏是否给你的工作带来方便?Appquicker 中也提供了宏的功能,下面我们一起看看:这里的宏能解决什么问题?

写在前面:

Appquicker 的宏分普通宏和动态宏两种类型,普通宏可以作为常量使用,动态宏中能够写入逻辑判断语句,可以动态返回值或字符串。

第一步:定义宏

打开设计器,打开人员列表(employeelist.raq ),【配置]宏定义 】,在呈现的报表宏编辑窗口,点击增加

image116

双击值所在的空格,在弹出的表达式编辑窗口中输入:

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窗口,在设计器中重新打开人员列表,点击s1,输入参数,打开报表后,切换到command窗口,看到了吗?程序与数据库的交互记录都在这里了。

image118

仔细观察上面图中标示的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 ,如果没有输入部门参数,则返回一个空字符串。

本章和第九章介绍了动态数据报表的制作方法,现在你是否能够按照业务人员的需求编制出一些查询报表了呢?记住!当编写表达式的时候,函数帮助是你的指路明灯。你可以使用函数帮助来查看某一个函数的语法和应用例子。

SNAG-0006

下一章开始,我将用三个章节介绍如何制作可以填写数据的业务单据。

教程 |2007/11/07
#11 人员档案——能录入数据的卡片式单据 #9 带查询参数的人员列表——参数

Comments are closed.


  • 询问问题

  • 关于AppQuicker

    • 认识APPQUICKER
    • AppQuicker适用于哪些企业
    • APPQUICKER的开发模式
    • 为什么可以快速开发
    • 打造企业级系统的优势

AppQuicker © 2007 All Rights Reserved.