注册 登录
编程论坛 VFP论坛

请教各位大神,报表打印问题

如歌岁月 发布于 2021-11-24 09:55, 2876 次点击
在使用代码将数据表中的数所用报表打印输出到PDF虚拟打印机后,VFP窗口就一直停留在最后一页打印页面上,现在想直接回到程序界面,结果用用close all无法关闭 ,请问如何用命令关闭该窗口。
14 回复
#2
吹水佬2021-11-24 10:39
给打印输出的那段过程代码看看
#3
laowan0012021-11-24 10:46
打印到PDF就是会有个窗口显示打印结果,需要手动关闭
#4
如歌岁月2021-11-24 12:19
回复 2楼 吹水佬
CLOSE ALL
SET SAFETY off
USE xxb ALIAS a
USE bmddm ALIAS b IN 0
SELECT b
SCAN
i=ALLTRIM(bmddm)
j="d:\pdf\"+ALLTRIM(bmddm)+".pdf"
SELECT * FROM a WHERE bmddm=i INTO TABLE ls.dbf
REPORT FORM D:\2022年\座次表\报表1.frx TO PRINTER

!ren d:\pdf\报表1.pdf to &j

ENDSCAN
SET SAFETY ON

说明:xxb为所有学生的信息数据表;
      bmddm为5所学校的代码表;
      报表虚拟打印输出文件默认为“报表1.pdf”,并存放在“d:\pdf”文件夹里
目的:想让5所学校输出为5个PDF文件,并自动命名为以学校代码为名的PDF文件
问题:执行完报名输出后,VFP窗口还显示输出PDF文件的最后一页,无法关闭,后续也就无法进行重命名。

请高手指点一下问题
#5
如歌岁月2021-11-24 12:20
回复 3楼 laowan001
只能手动关闭吗,有没有什么命令可以操作的?
#6
nbwww2021-11-24 12:34
虚拟打印机要你保存生成的PDF文件吧     要看你是什么虚拟打印机去找办法解决
#7
如歌岁月2021-11-24 12:58
回复 6楼 nbwww
使用的是pdffactory pro虚拟打印机,在设置里没找到相关功能
#8
laowan0012021-11-24 14:46
回复 5楼 如歌岁月
好像没有自动关闭。
网上查可以用虚拟PDF打印机,直接打印成文件,但我没用过
#9
吹水佬2021-11-24 15:47
回复 4楼 如歌岁月
改改试试看
REPORT FORM D:\2022年\座次表\报表1.frx TO PRINTER
REPORT FORM D:\2022年\座次表\报表1.frx
COPY FILE D:\2022年\座次表\报表1.frx TO (j)
**!ren d:\pdf\报表1.pdf to &j
#10
如歌岁月2021-11-24 16:14
生成的文件名是以学校代码命名了,但文件是空的,无法打开
#11
吹水佬2021-11-24 19:22
以下是引用如歌岁月在2021-11-24 16:14:16的发言:

生成的文件名是以学校代码命名了,但文件是空的,无法打开

用什么代码生成的文件
#12
如歌岁月2021-11-25 13:13
回复 11楼 吹水佬
昨天换了个思路,终于实现了相要达到的效果。
由于pdffactory pro虚拟打打印机总是以报表名来保存输出的PDF文件,所以我就直接修改报表名。

CLOSE ALL
SET SAFETY off
USE xxb ALIAS a
USE bmddm ALIAS b IN 0
SELECT b
SCAN
i=ALLTRIM(bmddm)
j=ALLTRIM(bmddm)+".frt"
k=ALLTRIM(bmddm)+".frx"
!ren D:\2022年\座次表\报表1.frt &j
!ren D:\2022年\座次表\报表1.frx &k

SELECT * FROM a WHERE bmddm=i INTO TABLE ls.dbf
REPORT FORM D:\2022年\座次表\&k TO PRINTER

!ren D:\2022年\座次表\&k 报表1.frx
!ren D:\2022年\座次表\&j 报表1.frt
ENDSCAN
SET SAFETY ON
#13
laowan0012021-11-26 08:05
可以在程序中复制报表文件,用完就删除,
如果用ren,一旦程序运行中出现问题,原稿还要手工恢复
#14
sych2021-11-26 08:39
用查找窗口,关闭窗口的API
#15
pvm20002023-01-03 21:54
回复 12楼 如歌岁月
不错
1