电脑桌面
添加盘古文库-分享文档发现价值到电脑桌面
安装后可以在桌面快捷访问

OLE自动化范文

来源:漫步者作者:开心麻花2025-09-191

OLE自动化范文(精选7篇)

OLE自动化 第1篇

目前,计算机辅助设计技术(CAD)在变压器行业内广泛使用。电力变压器种类繁多,但相同电压等级下某一容量段下变压器内部结构特征基本相似,标准件、通用件的应用比例相当高,工程设计人员在绘图时重复工作量大且容易出现错误。随着C A D技术的不断发展,实现计算机绘图参数化,是提高设计效率和图纸质量、减少图纸差错及降低设计人员劳动强度的重要手段之一[1,2,3]。三维辅助设计软件AutoCAD以其开放式的体系结构和强大的图形处理能力,在工程设计制图领域得到了广泛的应用。但AutoCAD设计计算能力相对比较弱,且人机交互方式输入数据较为繁琐。AutoCAD从R14版本开始支持Automation技术,使得很多支持OLE自动化技术的编程工具可以直接从外部访问和控制AutoCAD。运用OLE自动化技术,可以实现编程工具与AutoCAD之间的数据通信,以面向对象的思想对AutoCAD进行二次开发。这种开发方式综合了AutoCAD强大的绘图功能以及高级语言执行效率高、数据计算处理能力强的优点,可以实现工程设计图纸的参数化绘制。

介绍了利用OLE自动化技术实现C++Builder对AutoCAD进行二次开发的方法。以绘制变压器铁心叠积图为例,说明了该方法进行变压器结构参数化绘图的特点。

1 OLE自动化技术简介

OLE(Object Linking and Embedding)是微软公司为解决Windows系统下应用程序之间的通信而提出的,其主要目的是为一些应用软件提供标准接口,可以让其它应用程序通过对象的方式来调用这个软件的功能。对象根据软件功能提供相应属性、方法和事件等成员的调用。OLE自动化技术能使用户能够通过编程实现不同应用程序的信息共享。Auto CAD自R14版本开始提供了Active X Automation(ActiveX Automation由OLE自动化技术扩充和复合而成)技术接口,即使AutoCAD本身成为一个服务器程序,提供了各种对象和接口,使得AutoCAD可以被许多编程工具和其他应用程序访问[4]。因此,可以把AutoCAD作为自动化服务器对OLE服务提供强有力的支持,C++Builder作为自动化控制器以客户端方式向Auto CAD提交命令,实现数据通信。

C++Builder支持OLE Automation技术,通过设定对象的属性和调用该对象的方法来操纵OLE对象。C++Builder编程工具封装了一系列OleObject Class函数,如CreateOleObject、OleFunction、Ole Property Set、Ole Property Get等。程序包含了“comobj.hpp”、“utilcls.h”头文件后,通过调用这些函数,可以灵活地操作Auto CAD。

2 基于OLE自动化技术AutoCAD二次开发

2.1 C++Builder与AutoCAD的连接

在C++Builder编程环境下,首先定义一个类型为Variant的变量Acad,使用Get Active Ole Object或者Create Ole Object函数给这个变量赋值,从而获得或构造一个应用程序对象(Auto CAD.Application),再由Acad的成员函数Ole Property Get获得当前活动文档对象,通过文档对象可获得模型空间、图纸空间、图层、图块等对象。最后,通过Model Space等对象提供的各种属性和方法来完成对Auto CAD的操作。C++Builder与Auto CAD连接的示例程序如下所示。

2.2 图层的设置

AutoCAD提供了很多系统变量作为绘图的辅助设计。通过获取或改变系统变量可以实现设置图层的目的。在Auto CAD中设置图层主要是设置颜色、线型和线宽。颜色与线宽的设置直接通过SetVariant的方法设置相应的属性即可。而线型的设置,必须首先从文档对象中获取一个LineTypes对象,用该LineTypes对象在指定文件中加载所需线型。设置线型的程序实例如下所示。

2.3 图元对象的创建及修改

在完成C++Builder与AutoCAD的连接,设置绘图环境之后,就可以创建点、直线、圆弧、圆、多段线、标注等各图元对象。利用这些基础图元对象就能绘制二维图形。在创建图元对象过程中必须注意应用程序之间参数传递的问题。由于不同的应用程序数据类型的差异,OLE Automation服务器与客户程序之间数据传递比较复杂。AutoCAD中的数组类型返回值使用Variant类型[4]。Variant是一种特殊的数据类型,除了定长String数据及用户定义的类型外,可以包含任何种类的数据类型。Variant能够在运行期间动态的改变类型。因此,点坐标、实体数组等参数一般无法采用普通的数组传递数据。在C++Builder 6.0环境下,可以用安全数组[5]或者V a r i a n t数组传递参数。下面给出了在模型空间画圆的程序实例,其余图元的创建可以参考Auto CAD的帮助文件,调用相应方法即可。

在创建图元对象的同时,可以利用Ole PropertySet函数修改其属性。例如通过调用AddDimAligned方法创建的对齐标注对象,在实际绘图比例不是1:1时,不能采用其默认的标注尺寸值,必须修改相应的属性(对齐标注具体创建过程略)。

3 应用实例

铁心是电力变压器的重要部分,各种直径的铁心叠积图都有很强的相似性。在变压器铁心叠积图参数化绘制模块设计中,可以预设绘图环境,将图幅边框、标题栏等图纸信息保存在相应的模板中。必要的绘图参数如铁心直径、中心距、窗高、级数,每级片宽和级厚等,从变压器电磁优化设计结果数据库中直接获取。同时提供初始化界面由用户手工输入或者修改参数。在确定参数后,通过结构分析和数据计算,得到图纸各个重要点的坐标,绘制图形,并进行尺寸标注。通过该模块,可以实现铁心叠积图参数化自动生成。

软件参数输入界面如图1所示。铁心直径、中心距、窗高、级数,每级片宽和级厚等参数由变压器优化设计得到,图纸型号、绘图比例等可从界面输入,系统根据这些参数自动生成图纸。在实际设计中,可以对铁心数据库进行增加、修改等操作,以满足不同的实际需要。铁心数据库管理界面如图2所示。以一台型号为SG10-100/0.38变压器为例,生成的铁心叠积图如图3所示。

有效截面积:147.54 cm2叠片系数:0.97

4 结语

借助OLE自动化技术,采用C++Builder 6.0编程工具和AutoCAD2004绘图软件,可以实现工程设计图纸的参数化绘制,有效地缩短了绘图时间。此技术可以引入变压器参数化绘图系统中,使绘图设计人员从重复劳动中解脱出来,提高工作效率。

摘要:简述了OLE自动化技术原理,介绍了以C++Builder为编程工具,利用OLE自动化技术实现对三维辅助设计软件AutoCAD二次开发的方法,给出了关键步骤的程序代码。并以绘制变压器铁心叠积图为例,说明该方法可以实现变压器结构图纸的参数化设计,提高了绘图效率。

关键词:OLE自动化技术,AutoCAD软件,变压器

参考文献

[1]谢毓城.电力变压器手册[G].北京:机械工业出版社,2003.

[2]张安红,刘军.在开目CAD中自动生成变压器铁心片图[J].变压器,2002,39(1):10-12.

[3]李玉玲,巫付专,宋中瑜.变压器CAD系统的设计[J].成组技术与生产现代化,2001,18(3):51-54.

[4]刘红卫,高荣慧,柯尊忠,蒋劲刚.Automation技术在AutoCAD中的应用[J].机械,2000,27(6):27-28.

OLE自动化 第2篇

爱着弗拉门戈的北方人

来到北京之前, Javi和Yolanda就像爱流浪的吉普赛人一样在世界各国巡演、游历。已经在中国生活了两年多, 还开设有自己的弗拉门戈学校, 但Javi和Yolanda并不会说中文, 上课、演出都是由一个叫安然的中国女孩帮忙翻译。

回溯到爱上弗拉门戈的时光, 那已是多年以前的童年时代。不像很多弗拉门戈舞者那样, 一出生就是吉普赛人, 或者出生在弗拉门戈流行的地区, Javi和Yolanda都在没有任何弗拉门戈基础的城市出生、长大。在不少地方, 南北地区文化差异特别大, 西班牙就是这么一个国家。在西班牙南部地区, 尤其是安达卢西亚, 人们对弗拉门戈爱到骨子里, 她已然是生活的一部分。安达卢西亚的传统节庆从4月春会开始持续到10月份, 大型、小型, 各式各样的弗拉门戈表演每一天都在上演。西班牙的北部地区则完全相反, Javi和Yolanda处于北部的加太福尼亚达区对弗拉门戈没有多大兴趣, 那里的人看上去都很严肃。

虽然生活在北方, 不过Yolanda的老家是在安达卢西亚, 这就是她热爱弗拉门戈的缘由。他们全家人都是“安达卢西亚式”的性格, 热情奔放, 祖母特别喜欢弗拉门戈, Yolanda从小就听着那些充满韵味的安达卢西亚民间音乐和弗拉门戈音乐。Javi有着和Yolanda相似的经历, 是一个和安达卢西亚有着奇妙联系的北方人。Javi有一位住在安达卢西亚的叔叔, 他常坐车去看叔叔, 车上总是放着弗拉门戈音乐, 他为此着迷, 即使到了目的地, Javi还是在车里反复地听弗拉门戈音乐, 听完这一首放下一首。

吉普赛人式的游历

Javi和Yolanda的家庭并不富裕, 学好弗拉门戈却要花费大量的金钱。为了学好弗拉门戈, 年轻他们来到巴塞罗那, 一边打工, 一边学习, 攒够学费了他们就去找老师上课, 看着钱快用完了就赶紧去工作。随着舞技见长, 他们逐渐得到了正式的表演邀约。在西班牙弗拉门戈盛行的地区有专门表演弗拉门戈的酒馆, Javi和Yolanda就在这样的酒馆表演, 经济和生活都渐渐稳定下来。后来, 经过层层筛选, Javi和Yolanda进入到弗拉门戈舞团里, 他们跟着舞团在世界各地巡演, 两人变得稍有名气后, 不同的舞团邀请他们一起巡演。Javi和Yolanda的足迹踏遍了南美洲和欧洲。带着传播弗拉门戈的想法, 他们来到了中国, Javi和Yolanda希望这里像西班牙一样, 既有弗拉门戈舞团, 也有深入人们生活的弗拉门戈酒馆。

Javi说在中国, 人们对弗拉门戈的认识有些误区。说到这个舞蹈, 大家会想到是男人穿着斗牛服装, 女人一定是红裙子, 再叼着一支花。Javi和Yolanda希望能向舞蹈爱好者传递弗拉门戈最原始的味道。

歌者·舞者·吉他手·节拍者

歌者、舞者、吉他手、节拍者 (击掌) , 这是传统弗拉门戈里最基本的4个角色。只不过大概舞蹈看上去更直观, 所以被更多的人了解到。实际上最早的弗拉门戈只有歌唱, Javi说, 在田里干活, 在矿下工作, 在海上工作, 从前唯一能表达人们内心情感的方法就是歌唱。

说到舞团, 国人大概都会想到国内舞团二三十人乃至上百人“气势磅礴”的架势, Javi也曾被“震惊”过, 他说, 在西班牙, 一般的弗拉门戈舞团都是保持“歌者、舞者、吉他手、击掌者”4个基本角色, 如果不止4个表演者, 那么增加的则是各个角色的人数, 10个人的弗拉门戈舞团都已算是大舞团。

尽管弗拉门戈舞者更容易被大众认同, 但事实上在弗拉门戈表演中, 4个角色都有属于自己单独展示的时间。有时候舞者在跳舞, 同时歌者也在唱一句歌词时, 舞者的脚掌是不允许击地声音很大的, 因为这一时刻是属于歌者的, “噼里啪啦”会打断他正在述说的情感。或者吉他手想要秀一段指法时, 舞者也不可以跳得很重。舞团的每一个组成部分都彼此默契地相互尊重。吉他手秀了一段之后会做一个“结”, 相当于一个信号, 告诉舞者我弹完了, 于是舞者就变换出丰富的脚步节奏, 又响又快, 让大家震撼一下, 接着又回到很缓慢的节奏。每个角色都有自己的时刻, 多层次的组合让人久久回味。

近期由Javi和Yolanda在北京主办的弗拉门戈表演《映像》里的吉他手Savla同时也是歌者, 他是西班牙大师级弗拉门戈弹唱艺术家, 与Javi和Yolanda认识多年, 被特地邀请过来合演, Savla的声音和琴声充满了力量和沧桑感, 似乎他的生命里经历了刻骨铭心的重生。节拍击掌者Clair是致力于弗拉门戈推广工作的加拿大舞蹈家, 她有着和Yolanda一样漂亮的披肩和舞姿, 歌声也是醇厚有力。在西班牙和世界各地有许多为弗拉门戈痴迷的艺术家, 他们相识、碰撞, 创造了不一样的视听感受。

OLE自动化 第3篇

关键词:PowerBuilder,OLE,Word,VBA

前言

大多数的管理软件都具有大量的报表打印功能;但只能以程序员设计的规则报表的形式展示数据库中的数据。然而实际应用中所需表格常常是不规则的, 需将数据库某些记录中某些字段的数据放在不规则表格中的任意位置或有不定的数据列选项;表格中还经常包含数据库以外的内容。这时, 常规的报表形式就很难实现, 因此, 实现能够根据数据需要生成相应的不规则报表是很有必要的。

Power Builder (以下简称PB) 是Sybase公司推出的优秀的数据库前端开发工具, 虽然具有强大的数据窗口形式的报表, 但格式比较死板, 用户自身不易修改。而Word作为office系列软件之一, 凭借其强大的文字排版功能和简单实用的操作, 获得了广泛应用。若将排版、打印任务交给Word处理, 容易获得较好的效果。

一、原理

OLE (object linking and embed-ding) 技术通过“对象”方式集成Windows应用程序。使用OLE技术, 一个应用程序可以同其他应用程序合作, 以生成包含有不同种类对象的复合文档, 且文档中所包含的对象易于被当前程序操作。

在PB中, 通过OLE控件可方便地实现OLE对象的链接或嵌入。借助于OLE控件, 可以在应用程序中嵌入或链接OLE服务器程序。这样就可以通过编程方式激活OLE服务器程序, 从而完成OLE服务程序的编辑、修改等相关操作。

本文通过使用OLE对象链接和嵌入技术, 将PB与Word连接起来, 将数据库中的数据写入到Word中, 实两者之间的通信和数据交换。

二、实现方法

将PB中OLE控件的OLE对象与远程对象Word.Application连接, 远程对象Word.Application的属性、方法、事件将会添加到OLE Object对象中。OLE对象就可以调用Documents、Active Document、Selection等子对象的属性和方法, 完成对Word文档的数据写入操作。

具体实现步骤 (关键代码) 如下:

1、声明OLE对象

2、建立ole_word与Word的远程对象连接

3、调用ole_word对象实例的属性和方法

4、将数据库中检索出的数据写入到Word文档中

5、保存新建的Word文档。

6) 文档保存完毕, 断开连接, 释放OLE对象

结束语

采用OLE技术, 将PB开发的应用程序与Word应用程序结合起来, 实现了将数据以用户熟悉的word文档的形式提供给用户, 便于用户操作。在作者所实施的诸多系统中, 都成功地运用了该技术, 取得了不错的效果。

参考文献

[1]张全法:《数据库数据在Word中的不规则表格化打印》, 《河南科技大学学报》, 2007.2。

OLE自动化 第4篇

关键词:VC++6.0,ADO技术,ACCESS数据库,长二进制数据,OLE对象

1 绪论

随着计算机科学技术的不断发展,在应用程序中,数据库不但要处理简单类型的数据,还要处理大量的大对象数据,比如:图形、音频、视频文件或其他二进制数据,这些数据称之为二进制大对象(BLOB Binary Large Object)[1]。翻阅资料发现,对图形、音视频的大对象数据的读取的资料比较多,而对“大文本文件”的资料较少,因此本文以“大文本文件”为例,给出了在VC++6.0中,使用A-DO中Field想象的GetChunk()方法和AppendChunk()方法对ACCESS中OLE对象类型数据读取和存储的实现方法。

2 ADO技术

ADO是ActiveX数据对象(ActiveX Data Object),是Microsoft开发的数据库应用程序的面向对象的新接口[2]。它封装并实现了OLE DB的所有功能,他通过OLE DB提供的COM接口访问数据库,可以访问各种类型的数据源。ADO同OLE DB、数据库应用以及数据源之间的关系如图1所示[3]。

2.1 ADO对象模型

ADO对象模型包括的主要对象:

1)连接对象(Connection)

用于建立与数据库的连接。通过连接可从应用程序访问数据源。它保存诸如指针类型、连接字符串、查询超时、连接超时和缺省数据库这样的连接信息。

2)命令对象(Command)

定义了将对数据源执行的指定命令。Command对象可以在数据库中添加、删除或更新数据、或者在表中进行数据查询。返回的结果保存在Recordset对象中。

3)记录集(RecordSet)

表示的是来自基本表或命令执行结果的记录全集。任何时候,Recordset对象所指的当前记录均为集合内的单个记录。使用ADO时,通过Recordset对象可对几乎所有数据进行操作。所有Recordset对象均使用记录(行)和字段(列)进行构造。在一个Connection对象上,可以同时打开多个Recordset。

4)字段对象(Field)

Recordset对象包含一个或多个Fields对象。每一个字段(列)都分别包含有名称、数据类型和值的属性,值中包含了来自数据源的真实数据。要修改数据源中的数据,可在记录集行中修改Field对象的值,对记录集的更改最终被传送给数据源。

ADO对象模型可以表示为如图2所示[4]。

2.2 ADO编程的基本步骤

在VC++中,使用ADO操作数据库的主要步和方法:

1)初始化COM库,引入ADO库定义文件。

ADO是一组COM动态库,这意味着应用程序在调用ADO前,必须初始化OLE/COM库环境,在MFC应用程序中,通常在CWinApp::InitIns tance()的重载函数中完成。代码如下:

在VC中利用ADO访问数据库时,需要导入ADO库。通常在ADO程序的预编译头文件:stdAfx.h中导入该库,方法是利用improt指令将此动态链接库导入,具体代码如下[5]:

3)操作数据库数据。

在数据库打开之后,通过Connection、Command对象执行SQL命令,或者创建记录集(Recordset)对象,使用该对象的各种方法就可以进行数据库数据的查询、定位以及增加、删除和修改。

4)关闭数据库。使用上面创建的数据库连接对象的close方法就可以进行数据库的关闭。

2.3 ADO存取OLE对象类型数据的方法

VC++中用ADO对OLE对象类型数据存取是利用Field对象提供的AppendChunk()和GetChunk()[6]方法来存取的。

GetChunk()返回一个variant值,该值包含大的文本或二进制数据Field对象的全部内容或部分内容。

AppendChunk()用于将数据追加到大的文本或二进制数据Field或追加到Parameten对象。

3 应用举例

Microsoft Access具备完善的数据库功能,可以作为独立的DBMS使用,是PC机上开发客户机/服务器型数据库应用的优秀工具。它将若干个相互关联的表(table)组成一个数据库(*.mdb)[7]。

在db1.mdb数据库中,存在一张名为avtw的表,数据结构如表1所示。

其中,avld字段中存储的为250个地区每天的亮温数据。

3.1 前期准备

1)利用MFC AppWizard[exe]创建一个单文档的工程,名为OLEData。首先为该工程添加一个子菜单,名称为“长二进制数据”。接着,为该子菜单添加两个菜单项,分别为他们添加相应的命令响应函数。各菜单项的ID、名称、以及响应函数如表2所示。

2)在InitInstance()成员函数中用AfxOleInit()函数来初始化COM库。

3)在stdafx.h头文件中用#import导入ADO库文件。

3.2 从OLE类型字段读出数据

从OLE字段读数据,我们采用GetChunk()返回包含数据的VARIANT类型变量,然后利用SafeArrayAccessData()得到VARIANT变量中指向数据的short*类型的指针,以方便我们的处理对象。关键代码如下:

3.3 把数据保存到OLE类型字段

保存数据到OLE字段,我们需要先从文件中读取数据存入内存中,然后组织一天数据到pRow,利用AppendChunk()将数据存到OLE字段,而存取的关键问题是需把二进制数据赋值给VARIANT类型的变量。关键代码如下:

4 结束语

该文利用实例讨论了在VC中如何使用ADO技术对ACCESS数据库中的OLE对象类型的数据进行读取和存储,从而解决了在数据库编程中对大量数据存取的难题。

参考文献

[1]费巧玲,徐向阳.VC中用ADO实现大数据的存取[J].计算机工程与应用,2005(24):182.

[2]吴涵.基于VC++的研究生信息管理系统的设计与实现[J].计算机技术与发展,2006,16(12):184.

[3]郑慧,范忠诚.零基础学Visual C++[M].北京:机械工业出版社,2008.

[4]齐永奇,乔文生.基于Visual C++的ADO数据库开发技术[J].华北水利水电学院学报,2008,29(4):68.

[5]孙鑫.VC++深入详解[M].北京:电子工业出版社,2008.

[6]马乐荣,高兴慧.Visual C++6.0中使用ADO实现数据库大字段存取[J].计算机应用与软件,2005,22(12):36.

OLE自动化 第5篇

在很多情况下,软件开发人员设计数据库应用系统时,免不了要求系统自动且快速生成大量相关报表,通常采用的技术是使用AutoCad软件,将多个表格批量生成到一个CAD图形文件中(即.DWG文件),再通过打印机输出。其技术优点在于能够批量生成大量报表,但对于少量报表输出的情形,缺乏灵活方便性,而且操作步骤比较繁琐,因此需要寻求一种更加适合少量报表生成并输出情况的可行方法。

1 实现思路

Microsoft Office中的Excel报表生成组件就是专门为处理各类报表的专用工具,使用起来非常灵活方便,并且具有数据运算、汇总和报表格式设计等丰富的功能,因此,若能在高级编程语言中把Excel当作对象来调用其现成的功能,利用Excel中已经调试好的代码来进行运算,那么就省去了其他程序员编写和调试复杂代码的麻烦过程,因此可以把Excel视为对象服务器,在PowerBuilder应用程序中通过调用其各中方法来进行表格的生成、计算和打印等功能[1,2]。则可实现编程工具中操作复杂Excel报表文件的目的。

2 在PowerBuilder编程语言中生成Excel报表

PowerBuider是Sybase公司提供的一种数据库应用系统的前端快速开发工具,使用其数据窗口对象可以很快捷轻松的访问数据库中各种数据。同时,PowerBuilder开发工具还支持与多种数据库进行访问连接,如目前流行的Oracle、Informian、Microsoft SQL Server等企业级数据库都可建立连接,处理各种有关报表管理事务。下面具体说明如何在PowerBuilder开发语言环境中实现Excel报表生成的主要步骤。

1)声明OLE对象,例如:OLEOBJECT OLE_Report_Excel;

2)创建OLE对象,例如:OLE_Report_Excel=Create OLEOBJECT;

3)使用PowerBuilder中的Connect To NewOBJECT()函数来创建一个新的OLE对象,并且连接此对象,例如:OLE_Report_Excel.Connect To NewObject(EXCEL.Application’)。如果该函数的调用返回值为-0,说明连接成功,否则就表示调用失败。

经上述三步即可完成操作报表前的准备工作,下面简要介绍后续操作实现过程。

3 生成报表要素

PowerBuilder打开Excel文件时,可以将其设置成后台打开模式进行操作,即通过配置其Visible属性的逻辑值(True或False)来实现,示例语句如下:

然后对该表格的数据列表中的单元格访问时,必须要通过Application对象的属性对象ActiveCell进行操作,例如对选定单元格赋值时,其操作可分为步骤来实现:

1)选中数据单元格:调用Range对象的Select()方法,Range对象的作用可以选择一个或多个目标数据单元,需要配置起始行数、列数和截至行数、列数,若选择一个单元格,只需配置起始参数。示例代码如下:

2)给选中数据单元赋值:选中之后,对ActiveCell对象的Formula(R1C1)属性赋值即可完成。示例代码如下:

Text//Sle_2为静态文本框控件,将其数值付给

3)调用SUM()方法可以实现对选定数据单元格的求和运算,也即先调用SELECT()方法制定求和单元格的范围,指定结果单元格的位置,将求和结果赋值,示例代码如下:

4)对单元格其他属性其的设置,例如要求把某单元格字体设置为粗体,先选中后设置,示例代码如下:

5)报表打印时,首先必须指定打印的内容,再调用Application对象的PrintOut(),例如,打印输出WorkSheet的Sheet1内容时,示例代码如下:

6)结束时关闭Excel文件,同时释放内存资源,同时向操作者发出弹出提示,可以通过对Application对象的DisplayAlerts属性值进行相应的配置,即可完成。此时参数的设置有2个选择,值为TRUE时表示关闭Excel时提出是否保存选择对话[3];值为FALSE时不弹出对话提示,直接自动保存。

7)全部工作完成以后,需要关闭OLE对象,同时断开与Excel服务的连接。程序示例代码如下:

8)其余属性的设置可以查阅相关资料,在此不另描述。

4 程序代码组合示例

5 结语

采用文中介绍的方法,在实际报表应用开发中,通过与数据库的连接和调用Excel对象的方法,在高级编程语言中灵活方便地实现对复杂报表的生成、报表数据运算的方面功能。

文中实例代码已在Wnidows XP、PowerBuidler 8.0、Mcirosolft SQL Server 2000、Microsoft Office Excel 2000环境下调试并通过,其运行结果符合设计要求,且能够达到预期目的[4]。可以使用这种方法快捷方便地制作复杂的Excel报表,能够极大地提高程序开发和维护的效率。

摘要:Excel是当前较为流行的数据报表制作和管理工具。作者在文中介绍了一种在PoweBuilder中通过OLE制作Excel报表的方法,在PowerBulider中与Excel的OLE连接。并通过VBA语言,向Exce1写入数据,并对产生的Excel文件进行存储、打印等操作的方法。

关键词:PowerBuilder,OLE,Excel报表,自动化技术

参考文献

[1]肖刚王,洪恩,王昌建,等.基于Word文档的数据交换策略及其实现[J].计算机应用与软件,2004(3).

[2]龙腾,杨俊,张勤,等.PowerBuilder8.0实例[M].长沙:国防科技大学出版社,2002.03.

[3]张振坤,李文立,焦虹,等.PowerBuidler精彩编程200例[M].北京:机械工业出版社,2004.02.

OLE自动化 第6篇

1 OLE技术和word对象

OLE(对象链接与嵌套,Object Linking and Embedding)是Microsoft公司同计算机界合作并发展起来的产品规范,目前已发展成为Microsoft公司面向对象策略的基石。许多大的WINDOWS应用程序都是围绕它设计的。从用户的角度讲,OLE是一种能使它们共享不同应用程序信息资源的技术,用户能够构造声、文、图、像、影于一体的复合文档,可以很容易地集成应用程序。从开发的角度看,OLE是一个可解决许多难题的技术。WINDOWS开发者面临的最大的难题之一是让应用程序之间的相互通信,在过去,没有一个工业标准,而OLE所做的正是标准化这些协议。

OLE包含三个概念。即对象、链接和嵌入。对象是应用程序间共享的数据,对象可以是几乎所有的信息类型,如文字、位图、矢量图,甚至于声音注解和录像剪辑等。链接是指在程序设计中把两个或多个分别编写、汇编或编译过的程序集合成单一的实体的处理方法。嵌入是指应用程序所创建的对象包含在另一个应用程序之中。OLE是一组服务功能,它提供了一种用源于不同应用程序的信息创建复合文档的强有力方法。实现OLE交换数据需要一个OLE服务器(Server)和一个包容器(Container,有时也称客户),服务器是指能产生并编辑OLE对象的应用程序,而客户是一个可以将OLE对象链接或嵌入其程序中的应用程序。其工作原理是服务端公开一些对象功能,客户端程序可以通过OLE的机制去驱动服务端程序包含的对象功能,这里的服务端和客户端可以是在同一台计算机上,也可以在同一个网络上的不同计算机上。其结构如图1所示。

Word对象模型是指Word中各种对象之间的相互关系。在Word中,文档、对话框、文本框、图形、图表甚至Word本身都是对象。同时,这些对象都有自己的属性和方法,并且可以通过OLE技术来访问和控制。因此,用户可以通过编程来访问这些已有的对象,操控他们的属性和方法,以完成所期望的功能。

以基于Word对象模型的试题库软件为例,Word是OLE服务器,Word提供的项目是OLE对象,试题库软件是容器。

2 对WORD的控制实现

要实现以Word为OLE服务器的试题库客户程序,需要用一种程序语言来设计完成,这种语言不但要能支持OLE技术,而且要有完善的数据库功能以及能方便地控制Word进行发送指令。Borland公司的Delphi是最佳的选择,它具有丰富而强大的可视组件,对数据库、OLE、Word都能完美地支持。

在本系统中需要调用Ms Word作为试题编辑器和试卷的排版输出工具。通过OLE方式调用Word工作非常方便,程序员可以像调用内部对象一样调用Word对象来完成工作。调用word工作的关键是理解Idispatch接口的工作模式,为了让其他应用程序可以方便调用word提供的功能,word实现了一个Idispatch接口。用户可以通过Windows提供的COM方式获取该接口。用户可以通过Windows API CreateOleObject('word.basic')来获取一个Idispatch接口。控制word的所有命令可以直接在Ms word中得到。

下面就通用题库系统中,在Delphi环境下实现对word的控制程序中的题库管理模块和卷库管理模块部分作一描述。

2.1 题库管理模块

主要任务是试题库的建立和维护。可以完成:在科目的对应章节上新增、修改、删除试题;实现试题的导入导出功能;实现题型编辑的功能;实现查找特定试题的功能以便修改试题。

考虑到试题的形式是多种多样的,系统必须考虑试题中可能有非文本部分。系统应该提供某种机制使用户可以方便的输入这样的试题(含有图片的试题)。基于这个原因,再考虑到试题信息磁盘占用量,把试题和答案分成两种方式(纯文本方式和word文件形式的试题)。同时系统应该提供一种机制使用户可以用较方便的方式输入那些已经存为word文件形式的试题。

如图2为涉及word控制的题库系统中的题库维护模块界面。

其中输入/导入试题部分涉及word控制的代码实现为:

2.2 卷库管理模块

实现的功能之一是自动化出卷。即根据用户对科目考核的具体要求,在试题库中抽取符合要求的题目组成试卷,对试卷及其答案进行自动排版并输出到ms word中供用户进行手工再排版,再根据实际情况调整试题,最后完成试卷的排版输出。

如图3为涉及word控制的题库系统中的卷库维护模块界面。

其中排版打印部分涉及word控制的代码实现为:

3 结束语

在通用题库的试题编辑和试卷生成的浏览、打印等过程中,应用OLE技术对实现WORD的控制实现是目前设计题库管理系统的一种较好的选择。既省却了试题、试卷编辑程序的开发之辛苦,而且利用MS WORD所提供的功能,可以方便、有效地解决文本编辑中的所有问题,故值得选择。

摘要:介绍了在Delphi环境下基于OLE技术和WORD对象模型实现通用题库中试题和试卷编辑、浏览的基本原理,并在此基础上给出了具体的实现过程。

关键词:题库系统,Delphi,OLE,WORD

参考文献

[1]谢俊.通用题库管理系统的设计与实现[J].计算机时代,2008(3).

OLE自动化 第7篇

Visual FoxPro(以下简称为VFP)作为一桌面数据系统,在许多领域得到了广泛应用。但是由于功能的局限性,在网络共享方面,在客户/服务器体系结构(Client/Server Architecture)上容易实现,但在浏览器/服务器体系结构(Browse/Server Architecture)上就显得有些不足。因此,VFP在当前的Web应用上没有得到推广。经过研究发现,VFP可以利用浏览器控件实现VFP与远程HTTP服务器间的数据交换,这也许是对VFP功能的一个重要的补充。

2 实现思路

原理示意图如图1所示。

2.1 网络数据库转换到到本地数据库

HTTP网络数据库通过ASP下载到VFP浏览器控件的存储数据对象中,VFP通过命令对浏览器中存储数据的对象的属性,直接用VFP命令将对象中的数据转换到本地数据库中。

2.2 本地数据库转换到网络数据库

VFP本地数据库通过命令生成HTM文件到浏览器控件中的存储数据对象中,HTTP通过ASP执行对浏览器中存储数据的对象中数据对服务器数据库进行更新,从而实现数据转换。

3 关键代码及示例

在本地主目录下有一个表data_client.dbf,字段为考号、分数。在Web主目录下有一个表data_web.dbf,字段为考号、班级、班编号、姓名、性别、语文、数学、英语。分别实现本地表data_client.dbf的数据上更新到网络上表data_web.dbf,网络上表data_web.dbf的数据转换到本地临时表Rs_。

在VFP8.0中设计一个表单,如图2所示。

(1)本地表data_client.dbf的数据上更新到网络上表data_web.dbf的方法:

1)在表单的init事件代码:

2)在按纽1(本地数据web远程)的click事件代码:

3)Web服务器端Upload.asp代码:

(2)网络上表data_web.dbf的数据转换到本地临时表Rs_的方法:

1)在按纽2(web远程本地数据)的click事件代码:

2)Web服务器端rec_fiel_dbf.asp代码:

4 结语

利用浏览器控件实现VFP与远程HTTP服务器间的数据交换,是一项实现对VFP网络共享功能的一个重要扩充。可以充分利用VFP客户端的功能与当今流行的B/S技术相结合,为VFP用户带来方便。

摘要:介绍在VFP中利用浏览器控件实现VFP与远程HTTP服务器间数据交换的基本思路与方法,并提供了用VFP8.0实现的演示程序。

关键词:控件,动态服务器页面,ActiveX数据对象,记录集

参考文献

[1]Rick Strahl,Using the Windows Shell API and Internet Ex-plorer Controls in Visual FoxPro Desktop applications,http://www.west-wind.com/,2004-9-27.

[2]Rick Strahl,Passing objects between FoxPro and.NET COM Componentss,http://www.west-wind.com/,2008-11-14.

OLE自动化范文

OLE自动化范文(精选7篇)OLE自动化 第1篇目前,计算机辅助设计技术(CAD)在变压器行业内广泛使用。电力变压器种类繁多,但相同电压等级下...
点击下载文档文档内容为doc格式

声明:除非特别标注,否则均为本站原创文章,转载时请以链接形式注明文章出处。如若本站内容侵犯了原著者的合法权益,可联系本站删除。

确认删除?
回到顶部