- 1、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、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(
文档评论(0)