set talk off
hh1=printstatus()
set print on
do while .not.hh1
?"打印机未准备好,请准备好打印机"
hh1=printstatus()
enddo
set talk off
set device to print
clear
a1=getfile("dbf") &&打开打开文件对话框
use "&a1" &&打开指定的文件
n1=fcount() &&获取打开的库中的字段数
dimension a(n1) &&定义一个存放字段名的数组
dimension b(n1) &&定义一个存放字段宽度的数组
k=1
do while k<=n1
a(k)=field(k)
k=k+1
enddo &&将字段名赋给数组
w=1
do while w<=n1
b(w)=fsize(a(w)) &&获取字段的长度
if b(w)<6
b(w)=8
else
b(w)=b(w)+2
endif
w=w+1
enddo
do while not eof()
r1=1 &&显示表头的第一行
m=1
col1=1
do while m<=n1
if m=1
@r1,col1 say "┌"+replicate("-",b(m))
else
if m=n1
@r1,col1 say "┬"+replicate("-",b(m))+"┐"
else
@r1,col1 say "┬"+replicate("-",b(m))
endif
endif
col1=col1+b(m)
m=m+1
enddo
m=1 &&显示字段名行
col1=1
do while m<=n1
if m=1
@r1+1,col1 say "∣"+substr(a(m),1,6)+replicate(" ",(b(m)-len(a(m))))
else
if m=n1
@r1+1,col1 say "∣"+substr(a(m),1,6)+replicate(" ",(b(m)-len(substr(a(m),1,6))))+"∣"
else
@r1+1,col1 say "∣"+substr(a(m),1,6)+replicate(" ",(b(m)-len(substr(a(m),1,6))))
endif
endif
col1=col1+b(m)
m=m+1
enddo
m=1 &&由于字段多,一行不能完全显示整个行,因此分为两行显示字段名行
col1=1
do while m<=n1
if m=1
@r1+2,col1 say "∣"+substr(a(m),7)
else
if m=n1
@r1+2,col1 say "∣"+substr(a(m),7)+replicate(" ",(b(m)-len(substr(a(m),7))))+"∣"
else
@r1+2,col1 say "∣"+substr(a(m),7)
endif
endif
【VisualFoxpro报表打印程序代码】相关文章:
2012宁夏高考报名方式03-23
中国大地保险公司实习报告03-23
广西壮族自治区财政厅会计继续教育报名登录入口:https://czt.gxzf.gov.cn/kjgl/03-23
07年4月北师大“中国古代文学史(一)”串讲(5)03-23
云南师范大学2025年硕士研究生报名公告03-23
儿童舞蹈教程:国标新手上路03-23
2024年江苏中级导游等级考试准考证打印时间及入口(11月18日9:00起)03-23
盐阜大众报报业集团(盐城)公开招聘《东方生活报》编辑记者的公告 2月25日到3月3日报名03-23
5月11日开始报名!2023年内蒙古鄂尔多斯市乌审旗秋季幼升小入学条件和流程公布03-23
初中学校德育课程整合实施探究03-23
2015年美国化学工程专业排名03-23
