注册 登录
编程论坛 VFP论坛

报表打印输出到文件的问题,求助

chn8690 发布于 2021-02-07 11:49, 1976 次点击
原始文件为:
只有本站会员才能查看附件,请 登录


报表文件打印为:
只有本站会员才能查看附件,请 登录

请教怎样将报表打印内容输出为文件啊,用....to file ...是乱码啊,请各位多多指教
20 回复
#2
厨师王德榜2021-02-07 11:59
装一个pdf虚拟打印机,打印时,选择这个虚拟打印机,打印完毕,会自动生成pdf文件.
#3
sdta2021-02-07 12:21
以下是引用chn8690在2021-2-7 11:49:29的发言:

原始文件为:

报表文件打印为:
请教怎样将报表打印内容输出为文件啊,用....to file ...是乱码啊,请各位多多指教

为什么要通过报表打印生成TXT文件,可以通过DBF文件生成TXT文件啊
#4
chn86902021-02-07 15:09
“虚拟打印机”无法安装,dbf 文件只有3个字段,文件若输出到exl需要人工进行页面调整处理(数据量也大),望继续赐教啊
#5
吹水佬2021-02-07 15:36
输出文件的格式?
#6
chn86902021-02-07 15:38
回复 5楼 吹水佬
exl最好
#7
chn86902021-02-07 15:43
回复 5楼 吹水佬
如果仅仅是打印出来,当然没问题了,但是这个文件要公布。所以能够输出成一个文件最好,谢谢
#8
sdta2021-02-07 17:19
只有本站会员才能查看附件,请 登录

先在VFP中将数据处理成上图格式再导入EXCEL中
#9
chn86902021-02-07 18:05
回复 8楼 sdta
非常谢谢
#10
chn86902021-02-07 18:20
回复 8楼 sdta 再次请教老师。。。。
我有一个小程序,是统计考试一分一段表,总觉得不是很优化,运行感觉有点慢,请老师帮忙看看,
...........
CREATE CURSOR ttt (zf n(6,1))
appen FROM ARRAY vvv
SELECT zf 总分,COUNT(zf) 人数,00000 累计 FROM ttt GROUP BY zf order by zf desc INTO CURSOR ttt READWRITE
i=1
scan
   SUM 人数 TO a FOR RECNO()<=i
   REPLACE 累计 WITH a FOR RECNO()=i
   LOCATE FOR RECNO()=i
   i=i+1
ENDSCAN
SET SAFETY ON
COPY TO .\导出考务文件\一分一段表 xl5
SET SAFETY OFF
#11
sdta2021-02-07 18:22
回复 10楼 chn8690
不是代码少速度就快
#12
sdta2021-02-07 18:24
lnRs = 0
SCAN
    lnRs = lnRs + 人数
    REPLACE 累计 WITH lnRs
ENDSCAN

[此贴子已经被作者于2021-2-7 18:28编辑过]

#13
sdta2021-02-07 18:28
scan
   SUM 人数 TO a FOR RECNO()<=i && 此行运行后,记录指针移到文件尾了
   REPLACE 累计 WITH a FOR RECNO()=i
   LOCATE FOR RECNO()=i && 从头搜索符合条件的记录
   i=i+1
ENDSCAN
综上所述,代码运行速度变慢了
#14
sdta2021-02-07 18:29
一般学校中数据处理的程序能做到秒杀就可以了
#15
chn86902021-02-07 20:10
回复 14楼 sdta
是的是的,谢谢谢谢
#16
sdta2021-02-07 20:12
只有本站会员才能查看附件,请 登录
#17
chn86902021-02-07 20:24
回复 16楼 sdta
感谢老师的耐心指导。还有一个挺奇怪的问题,运行一个表格控件,第一次显示为空白,退出后第二次运行显示正常,或者第一次运行其他功能后再运行这个表格也正常,整理后给老师看看,
#18
sdta2021-02-07 20:29
设置表格控件的数据源(RECORDSOUREC)及数据显示类型(RECORDSOURECTYPE)
#19
chn86902021-02-09 10:32
回复 8楼 sdta 继续请教老师
我有一个表单,在init里:
IF !FILE(".\kwgl\zkzh9.dbf")
   MESSAGEBOX("考场编排尚未完成,文件zkzh9未生成,请退出后先运行程序‘考场编排新’。",0,"")
   thisform.release
endif
.......
不能关闭表单,

只能写一个prg:
IF !FILE(".\kwgl\zkzh9.dbf")
   MESSAGEBOX("考场编排尚未完成,文件zkzh9未生成,请退出后先运行程序‘考场编排新’。",0,"")
   return
ELSE
   DO FORM .\表单\准考证打印
endif
请老师教我,前面办法怎样实现?
#20
sdta2021-02-09 11:01
我有一个表单,在init里:
IF !FILE(".\kwgl\zkzh9.dbf")
   MESSAGEBOX("考场编排尚未完成,文件zkzh9未生成,请退出后先运行程序‘考场编排新’。",0,"")
   thisform.release
endif

可以不用这几行代码,当zkzh9.dbf生成后,再 DO FORM ..........
#21
chn86902021-02-09 14:37
回复 20楼 sdta
好的,谢谢
1