建立自己的报表预览程序

本文介绍了如何在Microsoft Visual FoxPro 9.0中建立自己的报表预览程序,包括创建基于Form的类,设置关键属性,初始化报表预览,显示比例、导航和打印设置等步骤。作者提供了详细的设计过程和代码示例。
摘要由CSDN通过智能技术生成

建立自己的报表预览程序

作者:张洪举 Microsoft Visual FoxPro MVP (http://www.vfptop.com

日期:2005年10月

应用于:Microsoft Visual FoxPro 9.0

目录

概述

Visual FoxPro 9.0 的报表预览应用程序接口

建立自己的报表预览程序

使用建立的报表预览程序预览报表

 
概述

可以通过 ReportListener 的 PreviewContainer 属性指定一个自定义报表预览程序,来代替 Visual FoxPro 默认的 ReportPreview.app 程序。

在 Visual FoxPro 的辅助对象模式下预览一个报表或标签时,ReportListener 需要一个附加的组件来提供预览界面,这个组件被称为预览容器。预览容器是用 Visual FoxPro 代码编写的,因此用户可以自己建立预览容器。

ReportListener 可以通过 ReportListener 的 PreviewContainer 属性指定一个预览容器对象,也可以通过 _REPORTPREVIEW 系统变量指向一个预览容器对象。_REPORTPREVIEW 的默认值为 ReportPreview.App,ReportPreview.App 是 Visual FoxPro 的默认报表预览程序。

Visual FoxPro 9.0 的报表预览应用程序接口

建立自定义报表预览程序一个很重要的问题,是如何获得对 ReportListener 对象的引用,从而控制 ReportListener 的行为。为了实现这个目的,在你建立的报表预览程序中必须包含一个名为 SetReport 的方法,ReportListener将通过该方法将自身引用传递给你的预览程序。该方法的语法格式如下:

PROCEDURE SetReport

LPARAMETER oListenerRef

oListenerRef 参数便是对 ReportListener 对象的引用,你可以通过该参数,将对 ReportListener 对象的引用保存到一个属性或变量中。

同时,在你建立的报表预览程序中还必须包含一个名为 Show 的方法,ReportListener 在报表绘制完毕后将调用该方法进行报表显示。假设已经建立了一个 ControlPreview 类作为我们的预览容器,下面是调用该类时的代码。

lcReport=HOME(2)+"Solution/Europa/EmployeesMD.frx"
oListener = CREATEOBJECT('ReportListener')  &&建立ReportListener对象,并保存到oListener变量中
olistener.ListenerType = 1  &&设置输出模式
oListener.OutputType = 1
 
*!* 下面的代码用于指定预览容器 
olistener.PreviewContainer=NEWOBJECT("ControlPreview","AdditionSamples.vcx")  
 
*!* 下面的 REPORT FORM 命令将开始执行报表,同时将执行 ControlPreview 的 SetReport 方法,
*!* 传递 ReportListener 对象引用给 ControlPreview,但是由于此时报表还未绘制完毕,所以并不
*!* 能获得报表的总页数、页面高度等信息。在绘制完毕后,ReportListener 将调用 ControlPreview
*!* 的 Show 方法,进行预览输出,由于此时报表已经准备完毕,所以你可以在 Show 方法中获得
*!* 报表的页面高度等信息
REPORT FORM (lcreport) OBJECT oListener NOWAIT
建立自己的报表预览程序

我们将通过下面的示例来说明建立自己报表预览程序的方法,任何报表都可以使用该程序进行预览输出。为了更好地说明这个预览程序的功能,首先来看一下设计完成后的执行效果,如图1 所示。通过这个预览程序,可以设置报表的显示百分比、通过导航或直接定位要预览的页,以及指定报表的打印范围。

图1 报表预览程序界面

1)建立基于 Form 的类

在 Visual FoxPro 的 Command 窗口中执行 CREATE CLASS 命令,打开如图2 所示的 New Class(新建类)对话框。设置新建类的名称为 ControlPreview,基于 Form 类,存储在 AdditionSamples.vcx 类库中。

设置完成后单击 OK 按钮,将打开 Class Designer (类设计器)对话框,最终设计结果如图3 所示

  

图2 New Class 对话框

图3 ControlPreview 类最终设计结果

2)表单的关键属性设置

表单的关键属性设置如表1所示。

1

对象

属性

说明

ControlPreview

(表单)

AllowOutput

.F.

不允许将“?”等命令显示输出到该表单中

nCurrentPage

1

自定义属性。储存当前正在显示的报表页号

nPageHeight

100

自定义属性。存储当前报表页面的高度

nPageWidth

  • 0
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 23
    评论
评论 23
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值