欢迎来到天天文库
浏览记录
ID:11441455
大小:24.50 KB
页数:3页
时间:2018-07-12
《利用oleobject对象在powerbuilder中操作复杂excel报表文件的方法》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、利用OLEObject对象在PowerBuilder中操作复杂Excel报表文件的方法1.引言在很多情况下,软件开发人员设计数据库应用系统时,免不了要求系统自动且快速生成大量相关报表,通常采用的技术是使用AutoCad软件,将多个表格批量生成到一个CAD图形文件中(即.DWG文件),再通过打印机输出。其技术优点在于能够批量生成大量报表,但对于少量报表输出的情形,缺乏灵活方便性,而且操作步骤比较繁琐,因此需要寻求一种更加适合少量报表生成并输出情况的可行方法。2.实现思路 MicrosoftOffice中的Excel报表生成组件就是专门为处理各类报表的专用工具,使用起来非
2、常灵活方便,并且具有数据运算、汇总和报表格式设计等丰富的功能,因此,若能在高级编程语言中把Excel当作对象来调用其现成的功能,利用Excel中已经调试好的代码来进行运算,那么就省去了其他程序员编写和调试复杂代码的麻烦过程,因此可以把Excel视为对象服务器,在PowerBuilder应用程序中通过调用其各中方法来进行表格的生成、计算和打印等功能。则可实现编程工具中操作复杂Excel报表文件的目的。3.在PowerBuilder编程语言中生成Excel报表 PowerBuider是Sybase公司提供的一种数据库应用系统的前端快速开发工具,诚信http://www.s
3、cgmoutdoor.com/cxzxyl使用其数据窗口对象可以很快捷轻松的访问数据库中各种数据。同时,PowerBuilder开发工具还支持与多种数据库进行访问连接,如目前流行的Oracle、Informian、MicrosoftSQLServer等企业级数据库都可建立连接,处理各种有关报表管理事务。下面具体说明如何在PowerBuilder开发语言环境中实现Excel报表生成的主要步骤。 (1)声明OLE对象,例如:OLEOBJECTOLE_Report_Excel; (2)创建OLE对象,例如:OLE_Report_Excel=CreateOLEOBJECT;
4、 (3)使用PowerBuilder中的ConnectToNewOBJECT()函数来创建一个新的OLE对象,并且连接此对象,例如:OLE_Report_Excel.ConnectToNewObject(‘EXCEL.Application’)。如果该函数的调用返回值为-0,说明连接成功,否则就表示调用失败。 经上述三步即可完成操作报表前的准备工作,下面简要介绍后续操作实现过程。4.生成报表要素 PowerBuilder打开Excel文件时,可以将其设置成后台打开模式进行操作,即通过配置其Visible属性的逻辑值(True或False)来实现,示例语句如下:
5、OLE_Report_Excel.Visible=False OLE_Report_Excel.Application.Workbooks.Open("D:Report-Example.XLS") 然后对该表格的数据-列表中的单元格访问时,必须要通过Application对象的属性对象ActiveCell进行操作,例如对选定单元格赋值时,其操作可分为步骤来实现: (1)选中数据单元格:调用Range对象的Select()方法,Range对象的作用可以选择一个或多个目标数据单元,需要配置起始行数、列数和截至行数、列数,若选择一个单元格,只需配置起始参数。示例代码
6、如下: OLE_Report_Excel.Range("C1").Select() (2)给选中数据单元赋值:选中之后,对ActiveCell对象的Formula(R1C1)属性赋值即可完成。示例代码如下: OLE_Report_Excel.ActiveCell.FormulaR1C1=sle_2.Text//Sle_2为静态文本框控件,将其数值付给 (3)调用SUM()方法可以实现对选定数据单元格的求和运算,也即先调用SELECT()方法制定求和单元格的范围,指定结果单元格的位置,将求和结果赋值,示例代码如下: OLE_Report_Excel.Rang
7、e(“A1:C1”).SELECT() OLE_Report_Excel.Range(“E1”).Activate() OLE_Report_Excel.ActiveCell.FormulaR1C1=‘=SUM(C[5]:C[2])’ …… (4)对单元格其他属性其的设置,例如要求把某单元格字体设置为粗体,先选中后设置,示例代码如下: OLE_Report_Excel.Range(“A1:E1”).SELECT() OLE_Report_Excel.Selection.Font.BOLD=TRUE …… (5)报表打印时,
此文档下载收益归作者所有