含多个页. 怎样使发票合计每张发票的最后一页的底部? 如果把它放在概要(summary)带中, 它只在细节带的最后一行打印. 如果把它放在页脚带中, 它又在每一页中都打印出来.
将合计放在页脚带中其它的字段和标签的下面. 在报表表达式对话框中, 单击打印条件按钮, 然后在满足以下条件时打印文本框中输入:
RECNO()=RECCOUNT()
这会使合计只在最后一条记录时打印. (该情况假设你为每一张发票使用一个单独的临时表或游标, 且没有设置排序.)
10 如果用户在一个没有安装打印驱动程序的电脑上运行我的
程序,会发生什么情况?
在执行与打印相关的任务时会产生一个或多个运行时错误. 典型的错误是 "打印机未准备好", "载入打印驱动程序错", 两个. 它们会在应用程序打印报表时出现, 也会在执行 SET PRINTER, GETPRINTER() 和其它相似的命令或函数时发生, 但幸运的是可以预览报表.
要避免这些运行时错误, 在执行与打印相关的任务前,检查 APRINTERS() 函数的返回值. 如果该值为零, 就意味着未安装打印驱动程序.
11 能否废止或移去报表预览工具条上的打印按钮?
要移去VFP 内置的工具条上的按钮, 在开发环境中打开工具条, 按住Alt 键, 将按钮拖离工具条. 该设置保存在资源文件中 (FOXUSER.DBF 和 FOXUSER.FPT), 因此要使该设置在用户系统上生效,你必须将这两文件复制到用户
系统中.
12 我想在报表中包含页数, 例如, "共 Y 页第 X 页", Y 是报表总页数,X是当前页号. 可能吗?
唯一的办法是运行该报表两次, 象这样:
nTotalPages = 0
REPORT FORM MyReport NOCON
SOLE
nTotalPages = _pageno
REPORT FROM MyReport TO PRINT NOCONSOLE
第一次不会实际打印任何东西 (因为没有使用TO PRINT 子句), 但该过程会将报表总页数放入 VFP 的系统内存变量 _pageno 中. 要打印"共 Y 页第 X 页", 报表中应包含以下表达式:
"共 "+ ALLTRIM(STR(nTotalPages))+ " 页第 "+ALLTRIM(STR(_pageno)) +" 页"
13 我使用 Microsoft Web Browser 控件来显示
HTML 页. 怎样打印页呢?
Web Browser 控件没有Print 方法. 但是你可以用它的ExecWB 方法来打印当前
文档. 通常, 该方法将执行browser 用户界面的通常可用的命令.
你的代码可应该象这样:
THISFORM.WebBrowser.ExecWB(6,1)
第一个参数, 6, 告诉method 你想进行打印. 第二个参数设置为 1, browser 将显示一个打印对话框(象Internet Explorer 中那个一样). 若不想显示该对话框, 设置该参数为2