VFP9的10件酷事(4)--将报表保存为图形文件
4、 将报表保存为图形文件
ReportListener 的另一种很大的用途是通过在你专门的子类中覆盖 OutputPage 方法来将一个报表保存为图形文件。可以保存的图形文件格式包括 EMF、JPEG、GIF、PNG、BMP、TIFF、以及多页的 TIFF(这种格式对于用传真发送报表来说特别有用)。 注意,在这个示例的代码中,我将 ListenerType 属性设置为了2,这意味着让你自己来控制输出,每次用参数 nDeviceType = -1 调用 OutputPage 方法就打印一页,但并不将输出发送到一个打印设备。MyReportListener 有一个自定义的 OutputPage 方法,它先检查 nDeviceType 的参数是否为 -1,然后再次调用 OutputPage 方法(给方法传递一个文件名和图形文件类型),再执行一个 NODEFAULT。这个示例在生成第一页的时候建立一个 TIFF 文件,然后将其它的页添加到同一个图形文件中去。 LOCAL olistener * 建立一个 ReportListener 的实例
olistener = CREATEOBJECT("MyTiffListener")
olistener.tifffilename = "c:\tifftest.tif" * 运行一个将会引用我们设置好了的 Listener的 报表
REPORT FORM (_samples+"solution\reports\invoice.frx") ;
OBJECT olistener RANGE 1,2 * 在浏览器中显示结果
RUN /n Explorer.exe c:\tifftest.tif DEFINE CLASS MyTiffListener AS ReportListener
tifffilename = []
listenertype = 2 && 一次一页,不输出 FUNCTION OutputPage(nPageNo, eDevice, nDeviceType)
* 由于 ListenerType 指定了 "不打印输出"
* 在报表引擎调用这个方法的时候,nDeviceType 将会是 -1
* 而我们现在则捕捉这个条件,然后自己来调用
* OutputPage 方法,调用时带上文件名和图形类型参数
IF nDeviceType = -1 ;
AND NOT EMPTY(THIS.tifffilename)
IF nPageNo = 1
* 如果是第一页,则建立TIFF文件
THIS.OutputPage(nPageNo, THIS.tifffilename, 101)
ELSE
* 否则,则向 TIFF 文件添加剩下的页
* (这段代码要运行,首先 TIFF 文件必须已经存在)
THIS.OutputPage(nPageNo, THIS.tifffilename, 201)
ENDIF
* 我们已经用需要的设置调用过 OutputPage 方法了
NODEFAULT
ENDIF
ENDDEFINE
ReportListener 的另一种很大的用途是通过在你专门的子类中覆盖 OutputPage 方法来将一个报表保存为图形文件。可以保存的图形文件格式包括 EMF、JPEG、GIF、PNG、BMP、TIFF、以及多页的 TIFF(这种格式对于用传真发送报表来说特别有用)。 注意,在这个示例的代码中,我将 ListenerType 属性设置为了2,这意味着让你自己来控制输出,每次用参数 nDeviceType = -1 调用 OutputPage 方法就打印一页,但并不将输出发送到一个打印设备。MyReportListener 有一个自定义的 OutputPage 方法,它先检查 nDeviceType 的参数是否为 -1,然后再次调用 OutputPage 方法(给方法传递一个文件名和图形文件类型),再执行一个 NODEFAULT。这个示例在生成第一页的时候建立一个 TIFF 文件,然后将其它的页添加到同一个图形文件中去。 LOCAL olistener * 建立一个 ReportListener 的实例
olistener = CREATEOBJECT("MyTiffListener")
olistener.tifffilename = "c:\tifftest.tif" * 运行一个将会引用我们设置好了的 Listener的 报表
REPORT FORM (_samples+"solution\reports\invoice.frx") ;
OBJECT olistener RANGE 1,2 * 在浏览器中显示结果
RUN /n Explorer.exe c:\tifftest.tif DEFINE CLASS MyTiffListener AS ReportListener
tifffilename = []
listenertype = 2 && 一次一页,不输出 FUNCTION OutputPage(nPageNo, eDevice, nDeviceType)
* 由于 ListenerType 指定了 "不打印输出"
* 在报表引擎调用这个方法的时候,nDeviceType 将会是 -1
* 而我们现在则捕捉这个条件,然后自己来调用
* OutputPage 方法,调用时带上文件名和图形类型参数
IF nDeviceType = -1 ;
AND NOT EMPTY(THIS.tifffilename)
IF nPageNo = 1
* 如果是第一页,则建立TIFF文件
THIS.OutputPage(nPageNo, THIS.tifffilename, 101)
ELSE
* 否则,则向 TIFF 文件添加剩下的页
* (这段代码要运行,首先 TIFF 文件必须已经存在)
THIS.OutputPage(nPageNo, THIS.tifffilename, 201)
ENDIF
* 我们已经用需要的设置调用过 OutputPage 方法了
NODEFAULT
ENDIF
ENDDEFINE
...全文
相关推荐
VFP9报表多细节区示例
VFP9允许你精确控制每个节的起始位置和高度。4. **设置分组和排序**:如果需要,可以设置分组和排序规则,以便按照特定标准组织数据。例如,你可以按订单日期分组,然后在每个订单下显示产品信息。5.
VFP6、VFP7、VFP8、VFP9、VFP9sp2运行库合集
**VFP9**:VFP9于2005年发布,它是最后一个主要的VFP版本,增加了对Unicode的支持,增强了报表和图表功能,同时提高了与其他Microsoft Office组件的集成。
VFP 9.0中文版
报表与图表:VFP 9.0内置报表设计器,能生成丰富的报表格式,包括分组、排序、汇总等,同时可创建图表,直观展示数据。4.
VFP使用表单和报表中使用图片事例
这可以通过创建一个临时的OLE服务器进程,例如使用Microsoft Paint打开图片,然后使用VFP的OleCreate方法创建并加载该图片。加载后,可以将OLE对象保存到备注字段。2.
VFP9运行库
其次,`ReportOutput.app` 和 `ReportPreview.app` 与报表处理有关。在VFP9中,报表是数据可视化的重要工具,用于呈现和打印数据。


