选择显示字体大小

在pb中利用dde

在pb中利用dde


华中科技大学电子与信息工程系 郭小兵


powerbuilder(以下称pb)是一种强有力的企业级数据库应用系统开发工具,利用它可以方便地开发出数据库系统的前台应用软件。但由于用pb所开发的报表具有一定的局限性:报表的表头、列宽等都不能在应用程序中由用户来进行调整,所以若用户报表的格式有所变动,则必须在原程序中对报表进行调整,这在很大程度上降低了软件的灵活性。
excel是microsoft公司的表格处理软件,由于其简单易用,近年来在各单位的报表处理中得到广泛的应用。那么,在应用程序中是否可以调用excel,让用户在用pb开发的应用程序中管理数据库中的数据,而在用户熟悉的excel表格处理软件中调整并打印报表呢?
答案是肯定的,本文介绍如何利用动态数据交换dde(dynamic data exchange)技术,在pb中把数据库中的数据传送到excel应用程序中,以便由用户在excel中调整打印报表。
dde用于在windows平台上的两个正在运行的应用程序之间动态交换数据,它是一种在windows操作系统中基于消息的协议。动态数据交换总是发生在两个正在运行的程序之间,在这两个应用程序之间相互发送和接收命令及数据。这两个正在运行的程序分别称为客户程序和服务器程序,客户程序就是请求服务的程序,而提供服务的程序称为服务器程序。

实现方法

dde应用程序在开始交换数据以前必须由客户端发出初始请求,建立与服务器端的dde连接(又称为通道或会话)。在建立连接后客户端可以连续向服务器发送数据请求和命令请求。
在本文的应用程序中,我们用excel做dde应用服务器程序,在pb中进行dde连接。
1.启动dde服务器应用程序
excel.exe可以在windows环境下单独启动,也可以在pb中用run函数启动。
pb中run函数的语法格式为:
run(string{,windowstate})
●string:字符型,要执行的程序文件名;
●windowstate:枚举型,程序启动后的窗口状态,可以是最小化(minimized!)、最大化(maxized!)或原尺寸(normal!)。
在本文中,我们从客户程序pb中启动服务器应用程序excel.exe,并假设excel.exe的路径为:
c:\program files\microsoft office\office\excel .exe
在pb中启动服务器应用程序的命令为:
run(“c:\program files\microsoft office\office\excel.exe”, minimized!)
2.建立dde连接
在客户程序和服务器程序均启动之后,就必须建立客户程序和服务器程序之间的连接。在客户程序pb中,可以使用openchannel函数建立这种连接,打开一个从客户程序到服务器程序的通道。
pb中openchannel函数的格式为:
openchannel(appname,topicname{,windowhandle }))
●appname:服务器程序的应用程序名;
●topicname:主题名,即客户端要使用的实例,如word文档或excel文档;
●windowhandle:客户端的窗口句柄,如果客户端程序打开了多个窗口,需要指定其中一个作为客户端窗口。
建立dde连接的方式分为冷连接、暖连接和热连接:
●冷连接:是指运行中的客户程序和服务器程序进行直接的数据交换,不需要建立通道或连接,每次操作都要指定应用程序名和项目名;
●暖连接:是指用openchannel函数建立的连接,它可以利用openchannel函数返回的句柄对指定的应用进行操作;
●热连接:是指用starthotlink建立的连接。
无论是冷连接还是暖连接都无法在客户端知道服务器端是否修改了数据,同样,在服务器端也无法知道客户端的数据修改情况。而用热连接就可以使服务器端和客户端彼此知道数据是否被修改。
在本文中,只是在pb中调用excel报表,并向其中传递数据库数据,并不需要知道excel中对数据的修改处理情况,所以选用暖连接方式比较合适。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons