- 1、本文档共6页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
Visual Foxpro通用报表打印程序.doc
Visual Foxpro通用报表打印程序
数据库报表程序是经常使用的,现在很多用户都使用报表设计器设计报表,且简单方便;但笔者在工作中遇到要对成百个数据库打印的情况,这些数据库除了字段名不相同外,其他结构信息基本相同,因此笔者就编制了如下的一个通用程序,供同行参考。
set talk offhh1=printstatus()set print ondo while .not.hh1 ?打印机未准备好,请准备好打印机 hh1=printstatus()enddoset talk offset device to printcleara1=getfile(dbf) 打开打开文件对话框use a1 打开指定的文件n1=fcount() 获取打开的库中的字段数dimension a(n1) 定义一个存放字段名的数组dimension b(n1) 定义一个存放字段宽度的数组k=1do while k=n1 a(k)=field(k) k=k+1enddo 将字段名赋给数组w=1do while w=n1 b(w)=fsize(a(w)) 获取字段的长度 if b(w)6 b(w)=8 else b(w)=b(w)+2 endif w=w+1enddo
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 enddom=1 显示字段名行col1=1do 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+1enddo
m=1 由于字段多,一行不能完全显示整个行,因此分为两行显示字段名行col1=1do 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 col1=col1+b(m) m=m+1enddo
m=1 显示字段名下面的一行表格线col1=1do while m=n1 if m=1 @r1+3,col1 say ├+replicate(-,b(m)) else if m=n1 @r1+3,col1 say ┼+replicate(-,b(m))+┤ else @r1+3,col1 say ┼+replicate(-,b(m)) endif endif col1=col1+b(m) m=m+1enddorow1=r1+4
do while .not.eof() 每页显示20个记录 m=1 显示各记录的值 col1=1 do while m=n1 if type(a(m))=C if m=1 @row1,col1 say ∣+a(m) else if m=n1 @row1,col1 say ∣+alltrim(a(m))+replicate( ,(b(m)-len(alltrim(a(m)))))+∣ else @row1,col1 say ∣+a(m) endif endif else if m=1 @row1,col1 say ∣+str(
您可能关注的文档
- RSA 公钥加密系统.ppt
- RSA加密算法安全性分析.doc
- RT 探伤方法应用.ppt
- RTK在山区测量中应用研究分析.doc
- RTK测量中几个关键技术.doc
- Ruby_on_Rails下网站内容管理研究分析.doc
- S0000003 研究分析现状 马克思主义思想来源.doc
- S350型三晶变频器在工业锅炉控制系统中应用.doc
- SA8000管理体系审核.doc
- SACOM相关深入分析~~.doc
- 2023年陕西省商洛市柞水县两河乡招聘社区工作者真题参考答案详解.docx
- 2023年陕西省延安市宝塔区青化砭镇招聘社区工作者真题参考答案详解.docx
- 2023年陕西省汉中市西乡县罗镇乡招聘社区工作者真题及参考答案详解.docx
- 2023年陕西省延安市洛川县永乡招聘社区工作者真题及答案详解1套.docx
- 2023年陕西省商洛市商州区三岔河乡招聘社区工作者真题及参考答案详解一套.docx
- 2023年陕西省宝鸡市陇县八渡镇招聘社区工作者真题及参考答案详解一套.docx
- 2023年陕西省延安市洛川县石泉乡招聘社区工作者真题及参考答案详解一套.docx
- 2023年陕西省商洛市商州区沙河子镇招聘社区工作者真题附答案详解.docx
- 2023年陕西省咸阳市礼泉县赵镇招聘社区工作者真题及参考答案详解1套.docx
- 2023年陕西省商洛市丹凤县留仙坪乡招聘社区工作者真题及参考答案详解一套.docx
文档评论(0)