PowerBuilder和MapInfo的集成开发技术


    PowerBuilderMapInfo集成开发技术
    PowerBuilder 面象构造基客户服务器(ClientServer)数库应系统开发工具通ODBC时支持SysbaseOracleInformixSQL Server等种关系数库具强数库应程序开发功尤提供数窗口(Data Window)等工具够更加方便效访问操数库

            
    MapInfo美国MapInfo公司推出理信息系统开发台核心包括MapInfo ProfessionalMapBasic两部件

            通MapInfo台量信息直观理图形机联系起枯燥表格数视化极方便数分析辅助决策

            
    利PowerBuilder强数访问操力MapInfo图信息理功结合Integrated Mapping技术OLE动化技术等MapInfo图集成PowerBuilder应中迅速开发出具强图处理力应程序数库中繁杂抽象数快速准确灵活显示电子图数视化实现空间数属性数机结合

            
    1 开发框架
    PowerBuilderMapInfo集成开发技术开发应程序称集成图应程序(Integrated Mapping Application)

            集成图应程序中客户服务器开发模式PowerBuilder开发应程序称客户程序

            客户程序运行前台通OLE调台运行作OLE动化服务器Mapinfo

            
    集成图应程序中根MapInfo提供Integrated Mapping接口PowerBuilder客户程序中Outbound OLE Automation(输出OLE动化)技术MapInfo图窗口集成客户程序中客户程序具备图处理力

            客户程序MapInfo OLE动化象MapBasic OLE
    动化象关属性方法通MapInfo OLE动化服务器集成图窗口进行控制

            图1出客户程序服务器程序间关系

            
    图1 PowerBuilder客户程序MapInfo服务器关系
    2.建立PowerBuilder客户程序MapInfo OLE服务器连接
    建立PowerBuilder客户程序MapInfo OLE服务器连接原理:PowerBuilder开发客户程序中通Outbound OLE Automation技术实现客户程序MapInfo服务器连接助OLE调MapInfo服务器

            具体实现:包含图窗口框架窗口Open事件中添加代码创建新OLEObjectMapInfo作新OLEObjectOLE服务器

            调MapInfo服务需调ConnectToNewObject()函数传递OLE Programmable Object程序标识MapInfoApplication:
    OLEObject象实例
    OLEObject MapInfo
    接收错误代码
    Integer ErrCode
    创建MapInfo进行通信OLE动化象
    MapInfo Create OLEObject
    连接OLE动化象MapInfo服务器
    ErrCode MapInfoConnectToNewObject(MapInfoApplication)
    If ErrCode <> 0 Then
    MessageBox(Fatal Error Error connecting to the map server Exiting)
    Ruturn
    End If
    退出应程序时调DisConnectToObject()函数断开OLE动化象MapInfo OLE动化服务器间连接撤消OLE动化象释放占系统资源

            述框架窗口Close事件中添加代码实现:
    断开OLE动化象MapInfo服务器连接
    MapInfoDisConnectToObject()
    释放OLE动化象
    Destroy MapInfo
    3.图窗口集成PowerBuilder应程序中
    MapInfo图窗口集成PowerBuilder开发客户程序中必须客户程序中MapInfo中应窗口重新指定父窗口指定Picture控件作集成图窗口父窗口


            OLE动化象Do方法实现述功:
    重新指定MapInfo中应窗口父窗口应程序窗口
    中w_map窗口
    MapInfoApplicationDo (Set Application Window String(Handle(w_map)))
    指定Picture控件棗p_map图窗口父窗口图窗口集成客户程序中
    MapInfoDo (Set Next Document Parent string(Handle(p_map)) Style 1)gif (11237 字节) srclunwenUploadFiles20050520050517200008607gif width681>
    图2 回调技术实现
    4.实现回调
    PowerBuilder客户程序中通OLE动化象集成图窗口进行控制图2示

            客户程序图窗口进行关操作(例某定义工具图窗口单击某图象时)应事件传递MapInfo服务器直接传递客户程序客户程序中事件进行处理必须采回调技术

            PowerBuilder中定义公回调类必须编写MapInfo服务器中运行MapBasic应程序回调信息反馈PowerBuilder客户程序

            实现程:
    首先包含集成图窗口PowerBuilder应窗口创建户定义事件ue_SelectionMade事件IDpbm_Custom01( 1024)

            
    然编写MapInfo服务器中运行MapBasic应程序应程序中添加图窗口事件进行处理子程序

            客户程序中集成图窗口进行操作时MapBasic程序中应事件处理程序触发

            事件处理程序中传递客户程序信息保存MapBasic中定义全局变量中然Win32 API函数PostMessage()PowerBuilder应窗口句柄该窗口户定义事件ID参数PowerBuilder客户程序发送消息样PowerBuilder客户程序该窗口户定义事件中处理图窗口事件MBApplications象方法获取MapBasic全局变量中保存事件信息

            代码展示MapBasic应程序接收图象选择事件时处理程:

    预定义PowerBuilder应窗口户定义事件唯数值标识符
    DEFINE SELECTION_MADE 1024
    响应图象选择事件
    Sub SelChangedHandler()
    果选中图象
    If CommandInfo(CMD_INFO_SELTYPE) 1 Then
    保存图象表名称
    g_seltabname SelectionInfo(SEL_INFO_TABLENAME)
    PowerBuilder客户程序发送消息
    iRc PostMessage(g_pbhwnd_bgSELECTION_MADE00)
    End If
    End Sub
    面程序段中出实现回调时PowerBuilder客户程序处理程

            该处理程MapBasic编写mbservermbx程序

            MapBasic程序中保存事件信息变量g_SelTabNameg_PbHWndMapBasic程序中接收PowerBuilder客户程序窗口句柄全局变量

            
    MapInfo服务器中运行MapBasic应程序
    MapInfoDo(Run Application ~ gs_AppDir DataFusionmbx~)
    创建MapBasic应程序进行控制OLE动化象
    MBAppOleObject Create OleObject
    MBAppOleObject MapInfoMBApplicationsItem(1)
    传递PowerBuilder客户程序中窗口句柄MapBasic应程序
    便MapBasic应程序返回PowerBuilder客户程序
    MBAppOleObjectMBGlobalsItem(g_pbhwnd_bg)Value String(Handle(this))
    面代码示PowerBuilder客户程序窗口w_map户定义事件ue_SelectionMade中处理图窗口事件:
    PowerBuilder客户程序户定义事件中MBAppOleObject象获取回调信息
    ls_MI_CommandInfo MBAppOleObjectMBGlobalsItem(g_CommandInfoString)Value
    5.充分利MapBasic应程序
    MapBasicMapInfo提供户系统开发工具具图象理含图象MapInfo表理等方面强功

            
    MapInfo图集成PowerBuilder开发应中MapBasic仅仅实现回调实现诸功

            例开发程中常会遇需保存图象类型中间结果问题PowerBuilder
    中没应数类型难通MapInfo OLE动化象方法属性实现等诸类问题利MapBasic应程序OLE动化象MBApplications方法属性解决达事半功倍效果

            
    MapInfo OLE动化象相似MapBasicOLE动化象MBApplicationsDo方法Eval方法

            PowerBuilder客户程序调时MapInfo会动调MapBasic保留程RemoteMsgHandler()RemoteQueryHandler()程程中通CommandInfo(CMD_INFO_MSG)调Do方法Eval方法参数

            
    代码运MBApplicationsDo方法实现改变前选中图象颜色:
    求前选中图象颜色改兰色
    MBAppOleObjectDo(Blue)
    MapInfo动调RemoteMsgHandler()程:
    Sub RemoteMsgHandler()
    Dim MyObject As Object
    获取分析Do方法参数
    CmdInfoStr CommandInfo(CMD_INFO_MSG)
    改变图象颜色
    If CmdStr Blue then
    MyObject Selectionobj
    Alter Object MyObject Info 2 MakeCustomSymbol (Towe132bmp RGB(00255) 18 2)
    Update Selection set obj MyObject Where RowID 1
    End If
    End Sub
    MBApplicationsEval方法调Do方法类似MapInfo动调RemoteQueryHandler()程求返回结果

            
    6 结束语
    目前关MapInfo图集成应利VBVC 开发利PowerBuilder开发实际应少认难利PowerBuilder实现MapInfo集成开发算实现难完成图窗口控制

            文介绍MapInfo图集成PowerBuilder开发应中基方法中关键技术


            运方法开发应程序充分发挥PowerBuilder强数访问操力MapInfo图信息理功迅速灵活开发基理信息系统客户服务器信息理系统

            
    参考文献:
    1William BHeys著王艺徐利范维等译PowerBuilder 6 开发指南1998
    2张剑福继叶荣华骆红波著理信息系统MapInfo应科学出版社1999
    3宜晨等著MapInfo 40 实培训教程电子工业出版社1998
    文档香网(httpswwwxiangdangnet)户传

    《香当网》用户分享的内容,不代表《香当网》观点或立场,请自行判断内容的真实性和可靠性!
    该内容是文档的文本内容,更好的格式请下载文档

    下载文档到电脑,查找使用更方便

    文档的实际排版效果,会与网站的显示效果略有不同!!

    需要 2 积分 [ 获取积分 ]

    下载文档

    相关文档

    0105098基于集成设计和过程技术(IDPT)的产品开发过程管理研究

    基于集成设计和过程技术(IDPT)的产品 开发过程管理研究¶ 本文是国家863/CIMS重点应用工程研究课题资助项目 胥悦红· 胥悦红,女,博士 通讯地址(100039)北京市玉泉...

    13年前   
    18293    0

    PowerBuilder的分布式计算技术及其应用

    PowerBuilder的分布式计算技术及其应用PowerBuilder的分布式计算技术及其应用 浙江大学计算机系 梁荣华浙江大学计算机系 史济建杭州电子工业学院计算机系 周其力摘要: 本文分...

    10年前   
    507    0

    集成电路EDA技术

    本文简述了集成电路的传统设计方法和现代设计方法,并对两者的区别进行了比较,以实例为基础介绍了集成电路的设计过程。对可编程逻辑器件的定义、分类、功能等进行详尽的阐述,介绍了可编程逻辑器件的设计过程...

    4年前   
    1469    0

    物联网系统集成开发方案

    集成了丰富的现代生活中广泛应用的模块硬件资源。运用ADOBE AIR〔FLASH〕、HTML5 等最新技术与单片机微控技术相结合,实现Windows、Linux、Android 跨平台开发...

    2年前   
    969    0

    IT集成企业技术团队的项目管理

    IT集成企业技术团队的项目管理  大部分的IT集成企业处于客户和强势的大型生产厂商之间。资金缺乏,人员不足,长期处于求生存的位置,且随着国内大型IT服务企业的崛起和国外IT服务商的进入,留给国...

    11年前   
    368    0

    技术开发合同

    技术开发合同   项目名称:   委 托 方(甲方): ...

    15年前   
    13737    0

    技术开发合同

    合同编号:   技术开发(合作)合同           项目名称:                                        甲    方:       ...

    5年前   
    1168    0

    第二章 政府和现代技术开发与创新

    学习目的与要求:通过本章学习,了解政府在现代技术开发与创新中的:职能、主要任务和重大措施;各主体在现代技术开发与创新中的分工与定位。

    4年前   
    1105    0

    实用版本技术开发合同

    实用版本技术开发合同 技术合同其实很简洁的,今日我就给大家来看看技术合同,大家一起来保藏一下哦 有关于技术开发合同 项目名称:_______ 托付方:______...

    2个月前   
    202    0

    技术开发(合作)合同

     合同编号:技术开发(合作)合同项目名称: 甲 方: ...

    11年前   
    620    0

    技术开发合同(2)

    技术开发合同(2)   合同类别:   合同编号:      科技合字( ...

    9年前   
    17301    0

    技术开发部经理

    岗位描述 技术部经理 岗位名称: 技术部经理 直接上级: 技术总监 直接下级: 调香室主管、工艺室主管、应用技术室主管、技术部经理助理、技术信息员、基础开发技术人...

    8年前   
    14022    0

    技术开发合同(4)

    技术开发合同(4)   甲方:   法定代表人或负责人:   乙方: ...

    12年前   
    21654    0

    技术开发合同(2)

    技术开发合同(2)  技术开发合同   合同类别:   合同编号:    科技合字(19  )第  号   项目名称:_______________________________   ___...

    12年前   
    633    0

    技术开发合同(1)

    技术开发合同(1) 合同登记编号:    技 术 开 发 合 同 书   项目名称: ...

    15年前   
    15951    0

    开发技术员的工作职责

    开发技术员的工作职责职责:1、新产品结构设计:①铸件结构设计②锻件结构设计③相关机械零部件设计④塑料件结构设计2、新产品可行性分析:①目标成本可行性②制造可行性3、新产品导入:①整体计划管控②...

    2年前   
    446    0

    技术开发协议

    技术开发协议  根据《中华人民共和国合同法》的有关规定,经双方当事人协商一致,签订本合同。  1.项目名称:_________。(注:本参考格式适用于新技术、新产品、新材料、新工艺及其系统的研...

    10年前   
    509    0

    技术项目开发合同书

    技术项目开发合同书  合同编号:_________  项目名称:_________项目  委 托 方:_________ (甲方)  承 接 方:_________科技有限公司?(乙方)  为...

    12年前   
    612    0

    技术开发合同书

    技术开发合同书项目名称 :___________________委托人:_____________________研究开发人:___________________签订地点:_____省___...

    9年前   
    558    0

    技术开发合同样本

    技术开发合同样本  项目名称:_____________  委托方:  (甲方)____________  研究开发方  (乙方)_____________  签订地点:____省____市(...

    9年前   
    549    0