前往Shuct.Net首页

Shudepb PB反编译专家长时间以来,为业内同类软件事实上的唯一选择.细节,彰显专业.态度,决定品质.

关于PowerBuilder的搜索

PowerBuilder和MapInfo的集成开发技术-搜一百范文网 公文首页 | 报告总结 | 演讲发言 | 讲话致辞 | 心得体会 | 党建材料 | 百家争鸣 | 论文频道 | 法律常识 首页→ 论文频道→ 理工论文 → 计算机与信息技术论文 → 正文 PowerBuilder和MapInfo的集成开发技术 中国人民解放军电子工程学院梁亚声s0100 摘要:本文介绍了客户/服务器开发工具PowerBuilder和桌面地图信息系统MapInfo集成开发的基本方法。重点讨论了集成开发中的一些关键技术的实现方法。 关键词:PowerBuilder,MapInfo,MapBasic,系统集成,OLE自动化,回调 0引言 PowerBuilder是一个面向对象的用于构造基于客户/服务器(Client/Server)数据库应用系统的开发工具,它通过ODBC可同时支持Sysbase、Oracle、Informix、SQLServer等多种关系数据库,具有强大的数据库应用程序开发功能,尤其是它提供的如数据窗口(DataWindow)等工具,使其能够更加方便有效地访问与操纵数据库。 MapInfo是由美国MapInfo公司推出的地理信息系统开发平台,其核心包括MapInfoProfessional和MapBasic两个部件。通过MapInfo平台,能把大量信息直观地与地理图形有机联系起来,使枯燥的表格数据可视化,从而极大地方便了数据分析和辅助决策。 利用PowerBuilder强大的数据访问与操纵能力和MapInfo的地图信息管理功能,结合IntegratedMapping技术、OLE自动化技术等,将MapInfo地图集成到PowerBuilder的应用中,可以迅速地开发出具有强大地图处理能力的应用程序,使数据库中繁杂抽象的数据快速、准确、灵活地显示于电子地图之上,将数据可视化,实现空间数据和属性数据的有机结合。 1开发框架 使用PowerBuilder和MapInfo集成开发技术所开发的应用程序,称为集成的地图应用程序(IntegratedMappingApplication)。在集成的地图应用程序中,以客户/服务器的开发模式,使用PowerBuilder开发的应用程序称为客户程序。客户程序运行在前台,通过OLE调用在后台运行的作为OLE自动化服务器的Mapinfo。 在集成的地图应用程序中,根据MapInfo提供的IntegratedMapping接口,在PowerBuilder客户程序中使用OutboundOLEAutomation(输出OLE自动化)技术,将MapInfo的地图窗口集成到客户程序中,从而使客户程序具备地图处理能力。客户程序使用MapInfoOLE自动化对象、MapBasicOLE自动化对象的有关属性和方法,通过MapInfoOLE自动化服务器对集成的地图窗口进行控制。图1给出了客户程序和服务器程序间的关系。 图1PowerBuilder客户程序和MapInfo服务器的关系 2.建立PowerBuilder客户程序和MapInfoOLE服务器的连接 建立PowerBuilder客户程序和MapInfoOLE服务器的连接在原理上是:在PowerBuilder开发的客户程序中,通过使用OutboundOLEAutomation技术实现客户程序和MapInfo服务器的连接,借助OLE调用MapInfo服务器。具体实现上是:在包含地图窗口的框架窗口的Open事件中添加代码,创建一个新的OLEObject,而将MapInfo作为这个新的OLEObject的OLE服务器。要调用MapInfo服务,则需调用ConnectToNewObject()函数并传递OLEProgrammableObject的程序标识,即“MapInfo.Application”: //OLEObject对象的实例 OLEObjectMapInfo //接收错误代码 IntegerErrCode //创建一个与MapInfo进行通信的OLE自动化对象 MapInfo=CreateOLEObject //连接OLE自动化对象到MapInfo服务器 ErrCode=MapInfo.ConnectToNewObject(”MapInfo.Application”) IfErrCode<>0Then MessageBox(”FatalError”,”Errorconnectingtothemapserver.Exiting...”) Ruturn EndIf 在退出应用程序时,要调用DisConnectToObject()函数断开OLE自动化对象和MapInfoOLE自动化服务器之间的连接,并撤消OLE自动化对象,以释放其占用的系统资源。为此,可在上述框架窗口的Close事件中添加代码实现: //断开与OLE自动化对象与MapInfo服务器的连接 MapInfo.DisConnectToObject() //释放OLE自动化对象 DestroyMapInfo 3.将地图窗口集成到PowerBuilder应用程序中 要将MapInfo的地图窗口集成到PowerBuilder开发的客户程序中,必须在客户程序中为MapInfo中的应用窗口重新指定父窗口,并指定一个Picture控件作为集成的地图窗口的父窗口。可以使用OLE自动化对象的Do方法实现上述功能: //重新指定MapInfo中的应用窗口的父窗口为应用程序窗口 //其中w_map为一个窗口 MapInfo.Application.Do(”SetApplicationWindow”+String(Handle(w_map))) //指定一个Picture控件棗p_map为地图窗口的父窗口,将地图窗口集成到客户程序中 MapInfo.Do(”SetNextDocumentParent”+string(Handle(p_map))+”Style1”) 图2回调技术的实现 4.实现回调 在PowerBuilder的客户程序中,是通过OLE自动化对象对集成的地图窗口进行控制,如图2所示。当客户程序在地图窗口进行有关的操作后(例如使用某个自定义工具在地图窗口上单击某个地图对象时),对应的事件只传递给MapInfo服务器,而不直接传递给客户程序,为了在客户程序中对事件进行处理,必须采用回调技术。由于在PowerBuilder中不能定义公共的回调类,因此必须编写一个在MapInfo服务器中运行的MapBasic应用程序,用来将回本新闻共3页,当前在第1页 1 2 3 更多关于PowerBuilder和MapInfo的集成开发技术的论文>> 技术承包合同纠纷起诉状数据加密技术详解加密技术概念、加密方法以及应用信息技术对高校图书馆工作的影响脉冲功率装置能源计算机控制技术QTVR技术在物理实验网络教学中的应用广东省中小学教师继续教育现代远程教育技术路线与实现方法 【上一文章 多数据库系统互联机制的设计与实现】 【下一文章 遗传算法在试题组卷中的应用】