前往Shuct.Net首页

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

关于PowerBuilder的搜索

PowerBuilder和MapInfo的集成开发技术_论文范文 免费论文论文范文网,4年品牌,如需帮助欢迎在线申请帮助 www.csmayi.cn 论文首页 报告总结 行业材料 演讲致辞 讲话发言 心得体会 党建材料 百家集粹 法律常识 节日材料 各种材料 论文发表 互联网 www.csmayi.cn 您现在的位置: 蚂蚁论文网 >> 讲话发言 >> 政务讲话 >> 正文 PowerBuilder和MapInfo的集成开发技术 本文导读:此文由免费论文论文范文网编辑整理,我们为您提供原创论文、免费论文、毕业论文、论文下载、工作总结、简历、论文写作指导等服务!蚂蚁论文网真诚欢迎您的光临与惠顾!这是一篇关于PowerBuilder和MapInfo的集成开发技术的论文范文,摘要:摘要: 本文介绍了客户/服务器开发工具PowerBuilder和桌面地图信息系统MapInfo集成开发的方法。了集成开发中的关键技术的方法。  关键词:PowerBuilder,MapInfo,MapBasic,系统集成,OLE自动化,回调  0 引言 PowerBuilder …  摘要: 本文介绍了客户/服务器开发工具PowerBuilder和桌面地图信息系统MapInfo集成开发的方法。了集成开发中的关键技术的方法。  关键词:PowerBuilder,MapInfo,MapBasic,系统集成,OLE自动化,回调  0 引言 PowerBuilder 是面向的用于构造基于客户/服务器(Client/Server)数据库应用系统的开发工具,它ODBC可支持Sysbase、Oracle、Informix、SQL Server等多种关系数据库,强大的数据库应用程序开发功能,是它的如数据窗口(Data Window)等工具,使其能够地访问与操纵数据库。 MapInfo是由美国MapInfo公司推出的地理信息系统开发平台,其核心包括MapInfo Professional和MapBasic两个部件。MapInfo平台,能把信息直观地与地理图形有机起来,使枯燥的表格数据可视化,从而地了数据分析和辅助决策。 PowerBuilder强大的数据访问与操纵能力和MapInfo的地图信息管理功能,Integrated Mapping技术、OLE自动化技术等,将MapInfo地图集成到PowerBuilder的应用中,可以迅速地开发出强大地图能力的应用程序,使数据库中繁杂抽象的数据、、灵活地显示于电子地图之上,将数据可视化,空间数据和属性数据的有机。 1 开发框架 使用PowerBuilder和MapInfo集成开发技术所开发的应用程序,称为集成的地图应用程序(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事件中添加代码,创建新的OLEObject,而将MapInfo新的OLEObject的OLE服务器。要调用MapInfo服务,则需调用ConnectToNewObject()函数并传递OLE Programmable Object的程序标识,即“MapInfo.Application”: //OLEObject的实例 OLEObject MapInfo //接收错误代码 Integer ErrCode //创建与MapInfo通信的OLE自动化 MapInfo = Create OLEObject //连接OLE自动化到MapInfo服务器 ErrCode = MapInfo.ConnectToNewObject("MapInfo.Application") 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服务器的连接 MapInfo.DisConnectToObject() //释放OLE自动化 Destroy MapInfo 3.将地图窗口集成到PowerBuilder应用程序中 要将MapInfo的地图窗口集成到PowerBuilder开发的客户程序中,在客户程序中为MapInfo中的应用窗口重新指定父窗口,并指定Picture控件集成的地图窗口的父窗口。可以使用OLE自动化的Do方法上述功能: //重新指定MapInfo中的应用窗口的父窗口为应用程序窗口 //w_map为窗口 MapInfo.Application.Do ("Set Application Window " + String(Handle(w_map))) //指定Picture控件棗p_map为地图窗口的父窗口,将地图窗口集成到客户程序中 MapInfo.Do ("Set Next Document Parent " + string(Handle(p_map)) + " Style 1").gif (11237 字节)" src="/Newspic/20051181642511909.gif" width=681> 图2 回调技术的 4.回调 在PowerBuilder的客户程序中,是OLE自动化对集成的地图窗口控制,如图2所示。当客户程序在地图窗口的操作后(例如使用某个自定义工具在地图窗口上单击某个地图时),对应的事件只传递给MapInfo服务器,而不直接传递给客户程序,在客户程序中对事件,采用回调技术。在PowerBuilder中定义公共的回调类,编写在MapInfo服务器中运行的MapBasic应用程序,用来将回调信息反馈给PowerBuilder客户程序。其过程为: ,在包含集成地图窗口的PowerBuilder应用窗口创建用户自定义事件ue_SelectionMade,事件ID为pbm_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_bg,SELECTION_MADE,0,0) End If End Sub 下面的程序段中给出了回调时PowerBuilder客户程序的过程。该过程使用了MapBasic编写的mbserver.mbx程序。在MapBasic程序中保存事件信息的变量为g_SelTabName,而g_PbHWnd是MapBasic程序中用来接收PowerBuilder客户程序窗口句柄的全局变量。 //在MapInfo服务器中运行MapBasic应用程序 MapInfo.Do("Run Application ~"" + gs_AppDir + "DataFusion.mbx~"") //创建对MapBasic应用程序控制的OLE自动化 MBAppOleObject = Create OleObject MBAppOleObject = MapInfo.MBApplications.Item(1) //传递PowerBuilder客户程序中的窗口句柄给MapBasic应用程序 //以便MapBasic应用程序将返回给PowerBuilder客户程序 MBAppOleObject.MBGlobals.Item("g_pbhwnd_bg").Value = String(Handle(this)) 由下面代码所示的PowerBuilder客户程序就可以在窗口w_map的用户自定义事件ue_SelectionMade中地图窗口事件: //在PowerBuilder客户程序的用户自定义事件中使用MBAppOleObject获[1] [2] 下一页 【 取回调信息 ls_MI_CommandInfo = MBAppOleObject.MBGlobals.Item("g_CommandInfoString").Value 5.MapBasic应用程序 MapBasic是MapInfo的用户系统开发工具,它对地图的管理、对含有地图的MapInfo表的管理等的强大功能。 在将MapInfo地图集成到PowerBuilder的开发应用中,MapBasic仅能用来回调,还可其它诸多功能。例如,在开发过程中经常会遇到需要保存地图类型的中间结果的问题,而在PowerBuilder中与之对应的数据类型,又难以MapInfo OLE自动化的方法和属性等诸如此类的问题,若MapBasic应用程序使用它的OLE自动化MBApplications的方法和属性来解决,可以事半功倍之。 与MapInfo OLE自动化相似,MapBasic的OLE自动化MBApplications也有的Do方法和Eval方法。每当PowerBuilder客户程序调用它们时,MapInfo就会自动调用MapBasic的保留过程RemoteMsgHandler()或RemoteQueryHandler()过程,并可以在过程中CommandInfo(CMD_INFO_MSG)调用Do方法或Eval方法的参数。 代码运用MBApplications的Do方法,当前选中地图的颜色: //要求将当前选中地图的颜色改为兰色 MBAppOleObject.Do("Blue") MapInfo将自动调用RemoteMsgHandler()过程: Sub RemoteMsgHandler() Dim MyObject As Object '获取并分析Do方法的参数 CmdInfoStr = CommandInfo(CMD_INFO_MSG) '地图的颜色 If CmdStr= "Blue" then MyObject = Selection.obj Alter Object MyObject Info 2, MakeCustomSymbol ("Towe1-32.bmp", RGB(0,0,255), 18, 2) Update Selection set obj = MyObject Where RowID = 1 End If End Sub MBApplications的Eval方法的调用与Do方法的类似,只不过MapInfo将自动调用RemoteQueryHandler()过程,并要求返回结果。 6 结束语 ,关于MapInfo地图的集成应用大VB、VC++开发的,PowerBuilder开发的应用却很少,以至人难以PowerBuilder对MapInfo的集成开发,就算了也难以地对地图窗口的控制。本文介绍了如何将MapInfo地图集成到PowerBuilder的开发应用中的方法,的关键技术。运用此方法开发应用程序,可以PowerBuilder强大的数据访问与操纵能力和MapInfo的地图信息管理功能,迅速地、灵活地开发基于地理信息系统的客户/服务器的信息管理系统。 参考文献: 1.William B.Heys著,王艺,徐利平,范维等译PowerBuilder 6 开发指南,1998 2.张剑平,任福继,叶荣华,骆红波著,地理信息系统与MapInfo应用,科学出版社,1999 3.宜晨等著,MapInfo 4.0 实用培训教程,电子工业出版社,1998上一页 [1] [2] 【 本文源自:蚂蚁论文网转载保留版权,源头地址 ------分隔线---------------------------- 上一个讲话发言: 巧用数组实现长整数的精确计算 下一个讲话发言: 一种基于“陷门收缩”原理的公钥算法 欢迎您的光临与惠顾 推荐内容 烟草邮政五一文艺联欢晚会主持词 “日照海关2012年工作总结”—论… 关于对总部三级经理举行任职廉洁… 推拿治疗小儿泄泻的体会_第2页_论… 乡镇农村统计调查数据质量大检查… 民国宪政的一段往事 中医院开展医院管理年活动总结报… “五好”乡村党组织考评办法 大学生入党自传 二○○五年党风廉政建设和反腐败… 幼儿园规章制度-课题研究(1)-免费… 讲台,你是我永远的依托(教师节… 市劳动和社会保障局劳动保障工作… 欢迎您的光临与惠顾 热点内容 在庆祝三八国际劳动妇女节文艺晚会上… 校园DV剧本《似水流年》(情景喜剧)… 小学教师先进性教育党性自我剖析材料 学校人事部门个人工作总结 广电局关于实行《工作证管理制度》… 学****经理在“五.四”青年大会上的… 办公室秘书某年个人工作总结 办公室秘书个人党性分析材料范文 论职业经理人的激励机制(一) 急性一氧化碳中毒心肌损害的临床诊治 县长在老区建设促进会三届五次全体理… 在重阳节老干部座谈会上的讲话 创建五好活动 baidumap 蚂蚁论文网免费提供各类优秀毕业论文范文、以及个人述职报告、工作总结、个人简历格式、演讲稿等一切论文资源,是找资料的好帮手! Email:ainglaoda#qq.com(#换成@) 论文范文官方网站信息产业部备案号:湘ICP备11019447号-5