U8知识库文档
C/S门户集成
摘要
通过企业应用平台(简称门户),企业员工可以通过单一的访问入口访问企业的各种信息,定义自己的业务工作,并设计自己的工作流程。
企业应用平台通过各类导航执行具体的功能,通过桌面提供快捷常用功能和快捷报表信息,通过边框区提供辅助功能。
什么是门户?
门户(Portal):原意是指正门、房屋的出入口;现多用与互联网的门户网站,是指集成了多样化内容服务的Web站点,又称为网络门户;我们这里所说的门户是指客户服务器结构(C/S)的应用程序的入口,集成了用友U8应用的绝大部分内容,为用户提供了一个单一的入口。
U8门户是一个开放的平台,可以支持用户进行二次开发,以拓展U8的功能,满足用户个性化的业务场景。
目标
本文主要介绍使用门户提供的开发框架进行二次开发的相关事项,以方便将用户个性化的应用集成到U8门户中,以解决U8标准产品不提供的、用户实际工作需要的问题。
门户可以做什么?
门户可以将用户开发的程序,通过门户提供的扩展机制,集成到门户中。具体支持如下几种方式的扩展:
1. 将使用VB开发的组件集成到门户 2. 将使用.Net开发的UserControl集成到门户 3. 将独立运行的Exe程序集成到门户 4. 将使用.Net开发的ViewPart集成到门户
www.yonyou.com
U8知识库文档
如何开发可与门户集成的VB dll?
1. 代码修改(890/10.0/10.1)
第一步:引用UFPortalProxyInterface.dll组件
然后在工程中增加实现接口的类,例如:Person 实现接口 ILoginable Option Explicit '修改1 实现接口 Implements UFPortalProxyInterface.ILoginable Private Function ILoginable_CallFunction(ByVal cMenuId As String, ByVal cMenuName As String, ByVal cAuthId As String, ByVal cCmdLine As String) As Object End Function Private Function ILoginable_Login() As Boolean MsgBox \ ILoginable_Login = True End Function Private Function ILoginable_LogOff() As Boolean MsgBox \End Function 各接口含义如下:
1、Login接口( Private Function ILoginable_Login() As Boolean ),不管弹出的是模式窗体还是非模式窗体,此接口在成功登录后须返回True,而且要保证登录成功后,第二次调用此接口时也要返回True。只有在登录失败后方可返回False。也就是说此接口返回值的含义是是
www.yonyou.com
U8知识库文档
否已经成功登录子系统。
2、LogOff接口( Private Function ILoginable_LogOff() As Boolean ),此接口的含义是执行LogOff过程,如查成功使该子系统LogOff状态返回True,否则返回False。也就是说,如果该子统还未登录,则真接返回False就可以了。如果系统处于已经登录的过程,则执行业务组原有所需的LogOff过程,如果执行功能,正确LogOff了子系统,则返回True,否则返回False。如果在实际程序中没有此过程,则直接返回True即可。
3、CallFunction接口(Private Function ILoginable_CallFunction() As Boolean)。如果您的应用没有子系统登录过程的产品,此值须返回True.
第二步:增加Business属性
可读可写,且对大小写敏感。此属性维护一个对于此业务工程全局变量,以实现和VB程序和Portal的交互。参考实现如下: 增加Business属性 Option Explicit '修改2增加Business属性 Public Property Get Business() As Object Set Business = g_business End Property Public Property Set Business(busVal As Object) Set g_business = busVal End Property 第三步:增加全局变量
新建一module文件,并加入如下全局变量
增加Business属性 Option Explicit '修改3增加g_business全局变量 Public g_business As Object Public g_bLogined As Boolean 第四步:修改窗体
1、修改嵌入Portal的窗体文件
原来有MdiExtender控件的窗体,要嵌入Portal的窗体 修改方法:
调用CreateFormEnv方法 调用ShowForm方法
每个窗体都要有方法ExitForm
2、修改第一次弹出就是模态的窗体
www.yonyou.com
U8知识库文档
可以直接使用通过采用VB窗体的Form.Show (vbModal)的方式,也调用ShowForm方法来显示此窗体。
3、由嵌入Portal的窗体弹出的窗体
不作修改,如果是模式窗体,请在此窗体上加入UFFormPartner控件
第五步:UFToolbar的修改,请参考《U8开发之工具栏控件》 第六步:在窗体的Unload事件中加入 窗体的UnLoad修改 Set UFToolbar1.Business = Nothing 其它: FormIsOpened ‘判断窗体是否打开 SetFormActive ‘设置并激活某个已经存在的窗体 CloseForm ‘在显示过程中(窗体已经显示)关闭自身窗体 ShowForm 显示嵌入Portal的窗体 Public Function ShowForm(ByVal obj As Object, ByVal SubID As String, ByVal sKey As String, Optional modalable As Boolean = False, Optional DockToProtal As Boolean = True, Optional ByVal vfd As Object) As String obj: Form对象; SubID: 子产品号; sKey: Key,注意不能是form的Hwnd,在窗体的生命周期中,此值必须唯一; modalable: 该窗体是否为Model窗口; DockToProtal : 是否要嵌入到Portal中; vfd: 由CreateFormEnv对象的返回对象 CreateFormEnv 初始化嵌入Portal的环境 Public Function CreateFormEnv(ByVal sKey As String, ByRef formObj As Object) As VBFormDescriptor sKey: Key,注意不能是form的Hwnd,在窗体的生命周期中,此值必须唯一; formObj: Form对象 CloseForm 关闭一个已经打开的窗体 Public Function CloseForm(ByVal sKey As String, ByVal obj As Object) sKey: Key,注意不能是form的Hwnd,在窗体的生命周期中,此值必须唯一 obj: Form对象。
www.yonyou.com
U8知识库文档
SetFormActive 使某个窗口成为当前窗口 Public Function SetFormActive(ByVal sKey As String, ByVal obj As Object) sKey: Key,注意不能是form的Hwnd,在窗体的生命周期中,此值必须唯一 obj: Form对象 2. 数据库修改
菜单预置数据 --例:增加门户菜单,将您的程序挂接到供应链(SCMG)下面 --select * from ua_menu where cMenu_id='SCMG' --select * from ua_subsys where cSub_Id='dm' DELETE FROM [UFSystem].[dbo].[ua_subsys] WHERE cSub_id='DM' INSERT INTO [UFSystem].[dbo].[ua_subsys](cSub_id,cSub_name,iTasks,bInstalled,iVersion,cObjCreate,dStart,nType,cEntType,iOrder,cMonthEndFld) values('DM','DM',0,0,'11.0','CreateCom',NULL,64,NULL,100,NULL) DELETE FROM [UFSystem].[dbo].[UA_Menu] WHERE [cMenu_Id]='DM' INSERT INTO [UFSystem].[dbo].[UA_Menu]([cMenu_Id], [cMenu_Name], [cMenu_Eng], [cSub_Id], [IGrade], [cSupMenu_Id], [bEndGrade], [cAuth_Id], [iOrder], [iImgIndex], [Paramters], [Depends], [Flag]) VALUES('DM','测试产品',null,'DM',0,'SCMG',0,NULL,0,0,NULL,NULL,NULL) DELETE FROM [UFSystem].[dbo].[UA_Menu] WHERE [cMenu_Id]='DM01' INSERT INTO [UFSystem].[dbo].[UA_Menu]([cMenu_Id], [cMenu_Name], [cMenu_Eng], [cSub_Id], [IGrade], [cSupMenu_Id], [bEndGrade], [cAuth_Id], [iOrder], [iImgIndex], [Paramters], [Depends], [Flag]) VALUES('DM01','测试产品单据',null,'DM',1,'DM',1,NULL,0,0,NULL,NULL,NULL) DELETE FROM [UFSystem].[dbo].[UA_Menu] WHERE [cMenu_Id]='DM02' INSERT INTO [UFSystem].[dbo].[UA_Menu]([cMenu_Id], [cMenu_Name], [cMenu_Eng], [cSub_Id], [IGrade], [cSupMenu_Id], [bEndGrade], [cAuth_Id], [iOrder], [iImgIndex], [Paramters], [Depends], [Flag]) VALUES('DM02','测试产品单据列表
www.yonyou.com
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库U8开发之CS门户集成在线全文阅读。
相关推荐: