R E P O R T 命 令
根据 MODIFY REPORT 或 CREATE REPORT 创建的报表定义文件显示或打印报表
语 法
REPORT FORM FileName1 | ? [ENVIRONMENT]
[ Scope ] [FOR lExpression1 ] [ W H ILE lExpression2 ] [HEADING cHeadingText ]
[NOCONSOLE] [NOOPTIMIZE] [PLAIN]
[RANGE nStartPage [, nEndPage ]]
[PREVI EW [[IN] WINDOW W indowName | IN SCREEN] [NOWAIT]]
[TO PRINTER [PROMPT] | TO FILE FileName2 [ASCII]]
[NAME Ob jectNam e] [SUMMARY]
参 数 描 述
FileName1
指 定 报 表 定 义 文 件 的 名 称
?
显 示 打 开 对 话 框 从 中 可 选 择 报 表 文 件
ENVIRONMENT
包 括 此 子 句 是 为 了 提 供 与 2.x 版 本 报 表 的 向 后 兼 容 性 要 恢 复 与 V isual FoxPro 报 表 相 关 的 数 据 环 境 应 把 数 据 环 境 AutoOpenTables 属 性 设 置 为 默认 值 真 ( .T .) 若 要 确 保 在 报 表 打 印 完 后 关 闭 报 表 环 境 应 把 数 据 环 境AutoCloseTables 属 性 设 置 为 默 认 值 真 ( .T .)
对于从早期 FoxPro 版本转换过来的报表 即便 AutoOpenTables 属性设置为 假
(.F.) 包含 ENVIRONMENT 也会打开并恢复数据环境中的所有表和关系
当创建或修改报表时 可以用报表定义文件保存当前 Visual FoxPro 数据环境 保存Visual FoxPro 数据环境 实际上是在报表定义表中添加了一些附加的记录 保存下列信息 所有打开的表和索引文件 索引顺序以及表之间关系
Scope
指 定 要 包 含 在 报 表 中 的 记 录 范 围 只 有 在 指 定 范 围 内 的 记 录 才 包 括 在 报 表中
Scope 子 句 有 ALL NEXT nRecords RECORD nRecordNumber 和 REST 有 关 scope 子 句 的 详 细 内 容 请 参 阅 帮 助 中 的 “ Scope Clauses ” 和 语 言概 述
REPORT 的默认范围是所有记录 (ALL)
FOR lExpression1
只 有 使 表 达 式 lExpression1 的 计 算 值 为 真 (.T.) 的 记 录 才 打 印 其 中 的数 据 包 括 FOR 可 以 筛 选 出 不 想 打 印 的 记 录
如果 lExpression1 是一个可优化表达式 Rushmore 将优化 REPORT FOR 命令 为获得最佳运行性能 应在 FOR 表达式中使用可优化表达式
详细内容 请参阅稍后的 SET OPTIMIZE 命令与 Microsoft Visual FoxPro 6.0 中文版程序员指南 第十五章 优化应用程序 中的 掌握 Rushmore 技术
W H ILE lExpression2
指 定 一 个 逻 辑 表 达 式 lExpression2 作 为 打 印 数 据 的 条 件 只 要 lExpression2 条 件 计 算 为 真 (.T.) 就 打 印 记 录 中 的 数 据 直 至 遇 到 使 表 达 式 不 为 真(.T.) 的 记 录 为 止
HEADING cHeadingText
指 定 放 在 报 表 每 页 上 的 附 加 标 题 文 本 如 果 既 包 括 HEADING 又 包 括 了
PLAIN 应 把 PLAIN 子 句 放 在 前 面
NOCONSOLE
当 打 印 报 表 或 将 报 表 传 输 到 一 个 文 件 时 不 在 Visual FoxPro 主 窗 口 或 用 户自 定 义 窗 口 中 显 示 有 关 信 息
NOOPTIMIZE
若 要 关 闭 对 REPORT 命 令 的 Rushmore 优 化 应 包 括 NOOPTIMIZE 子句
详 细 内 容 请 参 阅 稍 后 的 SET OPTIMIZE 命 令 与 Microsoft Visual FoxPro 6.0
中 文 版 程 序 员 指 南 第 十 五 章 优 化 应 用 程 序 中 的 掌 握 Rushmore 技 术
PLAIN
指 定 只 在 报 表 开 始 位 置 出 现 的 页 标 题
RANGE nStartPage [, nEndPage ]
指 定 要 打 印 的 页 码 范 围 nStartPage 指 定 了 要 打 印 的 第 一 页 nEndPage 指定 了 要 打 印 的 最 后 一 页 如 果 省 略 nEndPage 则 要 打 印 的 最 后 一 页 默 认 为9,999
PREVIEW [[IN] WINDOW W indowName | IN SCREEN]
以 页 面 预 览 模 式 显 示 报 表 而 不 把 报 表 送 到 打 印 机 中 打 印 要 打 印 报 表 必须 发 出 带 TO PRINTER 子 句 的 REPORT 命 令
请注意 当命令中包括 PREVIEW 子句时 忽略系统变量
使用可选的 WINDOW 或 IN WINDOW 子句中 您可以指定一个窗口 WindowName 报表输出到这个窗口中 该窗口可由 DEFINE W INDOW 命令定义 如果包含WINDOW 子句 则使用 W indowName 指 定 的 窗口的特性 例如标题 大小等等进行预览 如果包含了 IN WINDOW 子句 则在 W indowName 指 定 的 窗口中预览报表
包含可选的 IN SCREEN 子句 表明报表预览窗口位于 Visual FoxPro 主窗口中 并且不能移动到外面去
可以在命令中包括可选的 NOWAIT 子句 这时 Visual FoxPro 能够在运行程序时不等待关闭页面预览窗口就继续执行程序 也就是说 当页面窗口打开时 Visual FoxPro 继续运行程序
在已发布的应用程序中 应确保可以得到 查看 菜单 关掉打印预览工具栏时 如果没有 查看 菜单 将无法恢复 打印预览 工 具 栏
TO PRINTER [PROMPT]
把 报 表 输 送 到 打 印 机 打 印
在 Visual FoxPro 中 命令中可以包括可选的 PROMPT 子句 在打印开始前显示设置打印机的对话框 可调整的打印设置项取决于当前安装的打印机驱动程序 PROMPT 子句应紧跟在 TO PRINTER 子句之后
TO FILE FileName2 [ASCII]
在 Visual FoxPro 中 指 定 报 表 要 送 往 的 文 本 文 件 将 报 表 送 往 文 本 文 件 时使 用 当 前 打 印 机 驱 动 程 序 包 含 TO FILE 子 句 创 建 的 文 件 具 有 默 认 扩 展
名 .TXT
在 Visual FoxPro 中 可以在命令中包括可选 ASCII 子句 用报表定义文件创建一个ASCII 文本文件 没有 ASCII 子句时 则按 PostScrip t® 或其他打印机代码格式将报表写到文本文件中 报表定义中任何图像 线条 矩形以及圆角矩形都不出现在 ASCII 文件中
在 ASCII 文本文件的每一页中 列和行的数目由系统变量 _ASCIICOLS 和
_ASCIIROWS 的内容确定 _ASCIICOLS 和 _ASCIIROWS 的默认值分别为 80 列和
63 行 这些值对应于标准的纵向页
N A M E Ob jectName
给 报 表 的 数 据 环 境 指 定 一 个 对 象 变 量 名 数 据 环 境 和 数 据 环 境 中 的 对 象 都 有一 些 属 性 和 方 法 例 如 AddObject 这 些 属 性 和 方 法 可 在 运 行 时 设 置 或 调用 对 象 变 量 则 提 供 了 存 取 这 些 属 性 和 方 法 的 途 径 如 果 不 指 定 N A M E 子句 V isual FoxPro 则 使 用 报 表 文 件 的 名 称 作 为 默 认 对 象 变 量 名 此 默 认 名 也
可 以 在 事 件 代 码 中 引 用
S U M M A R Y
不 打 印 细 节 行 只 打 印 总 计 和 分 类 总 计 信 息
说 明
报表定义文件的默认扩展名是 .FRX 如果报表定义文件不在默认目录中 文件名中必须包括文件的路径
请 参 阅
_ASCIICOLS, _ASCIIROWS, CREATE REPORT, DataEnvironment 对 象 , MODIFY REPORT