t

摘要:本文叙述了在VFP8.0开发的应用程序中,利用报表设计器设计的各种非WINDOWS标准页面大小的报表,在WIN2000/XP下如何打印的问题。通过在WIN2000/XP的“打印机和传真”窗口中设置“服务器属性”,创建多种自定义纸张规格和修改VFP报表文件,在开发的应用程序中让用户控制各种打印报表的纸张大小。

关键词:VFP 8.0Windows 2000/XP纸张格式报表打印

一、VFP报表设计器概述

VFP从3.0版开始,提供了图形界面的报表设计器,报表设计器是对所需打印的内容通过报表控件进行排列,这样能大大地减少编写程序时所录入的代码,把编程者从烦琐的代码编写中解脱出来。VFP中提供的报表设计器可以进行多种样式的排列,运用各种报表控件,可以设计出各种复杂的打印作业,甚至打印图形对象,这样比用编程方式设计的打印程序要灵活得多。

二、问题的引出

在以往的VFP版本中,使用VFP提供的报表设计器设计的报表,如果报表页面大小不是Windows操作系统提供的标准规格的纸张大小,在Windows 9X下,可通过自定义纸张来确定纸张的大小,但只能定义一种自定义纸张规格。在Windows 2000/XP下,虽可创建多种纸张格式,在开发程序的机器上,确实也可以实现多种自定义纸张格式的报表打印。但当把程序发布到其他运行Windows 2000/XP的机器上时,即使按同样方式定义了各种纸张格式,在打印报表时却不一定是按定义的纸张格式打印报表。问题出在哪呢?在两台机器上分别打开报表文件(.frx),它实标上也是一种数据表文件,浏览其第一条记录的Expr字段的内容如图1所示,通过比较,问题找到了。

图1

Expr字段的内容记录着相关的打印参数,其中的PAPERSIZE=140行说明了纸张尺寸大小的编号,但在Windows 2000/XP下,在不同机器上所定义的相同规格的自定义纸张,在VFP报表文件中其PAPERSIZE的值并不一定是相同的,这也就是在不同机器上会出现同一自定义纸张规格的报表却打印出不同页面大小的报表的原因。

三、解决问题的方法

引起问题的原因找到了,如何解决呢?方法可能有多种,笔者通过实验发现,在VFP8.0的报表设计器中,首先按自定义的纸张规格设计报表。自定义纸张规格可通过WIN2000/XP的“打印机和传真”窗口,设置“服务器属性”,“创建新格式”进行定义,如图2、图3所示。

图2

图3

在图3中,可以看出创建了“10x5.5”和“14 7/8 x 33”两种自定义的纸张格式。在VFP8.0的报表设计器中,通过“文件”|“页面设置”菜单项来设置纸张的大小。按自定义纸张格式设计好报表后,保存并退出报表设计器,使用“数据工作期”对话框打开报表文件(.frx),双击其第一条记录的Expr字段打开编辑窗口如图1所示,清空Expr字段中的所有内容,关闭报表文件。通过上述修改,报表文件中没有了相关打印参数的记录信息,报表打印时的页面大小将由当前打印机的“纸张大小”决定。

接下来的问题是如何在程序中设置当前打印机的“纸张大小”。这个问题比较好解决,VFP提供了一个SYS(1037)函数,该函数的功能是显示如图4所示的“打印设置”对话框,允许用户调整打印机设置(诸如:打印机名、打印纸张大小、打印方向等)。

图4

图5

在程序的适当位置(如“文件”菜单中或表单中)调用SYS(1037)函数,即可设置要打印报表的打印机名,纸张大小和打印方向等参数。如图5所示,在表单中添加一个“页面设置”按钮,在按钮的click事件中写入:=SYS(1037)一条语句即可。在程序运行时,如果用户要打印清单,可先点击“页面设置”按钮,在弹出的如图4所示的“打印设置”对话框中选择打印机、纸张大小和打印方向后,再点击图5中的“打印清单”按钮,其后输出的报表将按“10x5.5”的纸张规格输出。

四、总结

本文所述方法的核心是修改报表文件(.frx)第一条记录的Expr字段的内容,清除其记录的相关打印参数信息,使报表的页面大小随当前打印机的纸张大小而定。只要通过WIN2000/XP的“打印机和传真”窗口,设置“服务器属性”,创建好各种所需要的自定义纸张格式,在应用程序中调用SYS(1037)函数,让用户在程序运行时控制各种打印报表的纸张大小,以实现多种自定义纸张格式的报表打印。

在这里需要说明的是,对于使用Windows系统提供的标准纸张格式(如A4,A5)的报表,无需修改报表文件(.frx)第一条记录的Expr字段的内容,其纸张格式也不受当前打印机的纸张大小设置的影响。只有自定义纸张格式的报表才需要修改报表文件。“打印设置”对话框中的设置,在程序退出前或重新设置前一直起作用,对同样格式的自定义纸张大小的报表,只需设置一次。但在第一次打印前,或要打印不同规格的自定义纸张大小的报表前,需重新设置。

该方法只能用于运行在WIN2000/XP环境下的用VFP 8.0编译的应用程序,对其他VFP版本编译的应用程序无效。

vfp报表纸张设置_VFP 8.0 中实现多种自定义纸张格式的报表打印(转贴)相关推荐

  1. vfp报表纸张设置_VFP 9.0中实现多种自定义纸张格式的报表打印

    VFP 9.0 中实现多种自定义纸张格式的报表打印 徐小栋 [期刊名称] <福建电脑> [年 ( 卷 ), 期] 2009(025)001 [摘要] 该文叙述了在 VFP 9.0 开发的应 ...

  2. vfp报表纸张设置_Excel表格美化十四招,让你的报表不再那么丑

    小伙伴们好啊,今天老祝和大家分享的是一组表格美化技巧. 一个高质量的Excel文档,除了应具备数据准确.易读等特性,还应该有合理的布局结构.清新的色彩搭配以及整洁清晰的版面.这样才能提高数据的展现能力 ...

  3. CSS3中引入多种自定义字体(font-face)

    今天在HTML中发现了一个问题,提供给我们默认的字体有很多,但是除了那些"黑体"."宋体"."楷体"等支持中文字体之外,其余的都不知道中文字 ...

  4. 水晶报表中如何创建自定义的纸张大小格式?

    问题 水晶报表中使用一个自定义的纸张类型格式(使用预先定义的纸张格式显示或者打印一个报表)? 解决方法 要创建一个自定义的纸张格式,来完成你工作中所使用的特殊纸张.在你开始工作之前,你必须确认你的打印 ...

  5. word涂改涂掉图片_修正Word文档中太多不一致的格式-word技巧-电脑技巧收藏家

    修正Word文档中太多不一致的格式 您是否收到过一篇包含成打的字体和字号的MicrosoftWord2003文档,然后不得不将其修正一致?或者需要将他人处理的小文档合并为一个长文档?或者只是偶然在一个 ...

  6. access的papersize命令_[access报表]报表中使用自定义纸张,及设置自定义纸张大小

    时 间:2009-05-08 08:39:23 作 者:摘 要:报表中使用自定义纸张,及设置自定义纸张大小 正 文: 报表中使用自定义纸张,及设置自定义纸张大小 Private Type str_DE ...

  7. vfp报表纸张设置_JimuReport积木报表 — API数据源报表制作

    积木报表 ,一个开源免费的报表工具,像搭建积木一样在线设计报表!功能涵盖数据报表设计.打印设计.图表设计.大屏设计等! 领先的企业级Web报表平台软件,采用纯Web在线技术,专注于解决企业报表快速制作 ...

  8. 如何在Windows XP中设置自定义纸张,300K打印机进纸长度

    用300K针式打印机打印票据,只5行数据,但是要走A4纸那么长. 在网上搜集了资料,解决办法如下: 1.XP中设置自定义纸张 点击"开始→设置→打印机和传真",在出现的窗口中选择& ...

  9. asp.net 2.0 中GridView里设置日期格式

    在asp.net 1.0 中的datagrid 中 设置日期字段格式时用 DataFormatString="{0:yyyy-MM-dd}"即可.    在gridview 中设置 ...

最新文章

  1. USB学习笔记连载(八):FX2替换到FX2LP需要注意事项
  2. iOS开发笔记 -- 推送证书的创建及合并
  3. sql where子查询5中字句的使用顺序
  4. jdbcTemplate快速入门
  5. python语言包括哪些实现_Python语言基础考察点:python语言基础常见考题(一)
  6. RabbitMQ消息队列简单异步邮件发送和订单异步处理实战【应用解耦】【异步削峰】
  7. devops_将DevOps带到教室
  8. 倍福服务器维修,Beckhoff TwinCAT
  9. mysql 等于_mysql 不等于 符号写法
  10. Oracle脚本(二)
  11. ISO8583报文格式分析
  12. [TJOI2018]教科书般的亵渎
  13. server2008服务器进不了桌面,解决windows server 2008 r2 登录进入桌面只显示一片蓝色背景...
  14. 最新全国行政区划,省市区县乡镇四级json数据
  15. 模拟时钟c语言编码,C语言模拟时钟转动程序
  16. Web爬虫|入门教程之爬虫简介
  17. 宏观经济及贵金属年报:经济温和复苏,金银宽幅震荡-20210104.PDF
  18. 峰会回顾 | 阿里云与StarRocks合作、开放、共赢
  19. 网络远程教育实施方案交流之(三)——服务器架构及视频存储方案
  20. apex哪个服务器稳定,apex哪个服务器

热门文章

  1. python利用twilio模块给自己发短信
  2. 软件需求分析案列_软件需求分析案例资料-共29页
  3. 搜狗号码通: 骚扰电话一看就知
  4. 43.windbg-.expr、n(设置默认的表达式语法、默认的数字基础0x、0n、0t、0y)
  5. 牛客暑假四 A Task Computing 【如何排序使得对答案的贡献值最大】【cmp里面不等式的推导】【累加累乘符号的学习】【DP】
  6. 推荐系统强化学习DRN
  7. PTA 7-17 直角坐标->极坐标
  8. 润乾报表制作echarts地图
  9. 【蓝桥杯总决赛】第十三届蓝桥杯省赛C/C++B组个人题解
  10. 使用git管理项目(一)搭建环境