U8门户开发手册 联系客服

发布时间 : 星期一 文章U8门户开发手册更新完毕开始阅读96a1b30551e79b8969022676

U8门户开发手册

1. 功能概述

如何使伙伴二次开发的程序很好地和U8产品集成在一起?需要满足什么条件的程序才能和门户集成?如何开发一个满足这个条件的程序?本文将为您解答这些问题。

2. 名词解释

2.1菜单调整工具

功能:调整菜单位置;新增、修改、删除菜单(除U8系统菜单外)。 菜单调整工具在UAP中,通过菜单“工具->菜单调整工具”进入。

2.2 idt.dll文件

位置:在U8安装目录的Portal目录里。

该文件其实是一个xml文件,可以用任何文本编辑器打开。 其内容描述了双击每个末级菜单项目时需要调用的物理程序。

在872版本里,idt.dll并不在安装盘里,而是U8门户第一次运行时通过UFSystem..UA_IDT表里的内容动态生成的。当UFSystem..UA_IDT有变化时,U8门户会重新生成idt.dll文件。有了这种机制后,菜单调整工具就可以通过维护UFSystem..UA_IDT里的内容,从而达到维护idt.dll的目的。

3. 如何开发可与门户集成的VB dll

3.1代码修改

3.1.1引用工程UFPortalProxyInterface

文件位置:U8安装路径\\Portal\\UFPortalProxyInterface.dll

3.1.2相关代码修改

clsProductFacade文件为门户的入口文件,即在idt.dll文件后assembly项所对应的类名。如下所描述的:

首先,idt.dll中assembly属性描述的对应类要实现接口ILoginalbe。 比如idt.dll中描述了如下信息:

则要在clsProductFacade中实现ILoginable接口。即用代码: Implements UFPortalProxyInterface.ILoginable

然后在该接口的实现函数中转发调用原先工程中的Login,CallFunction,Logoff三个方法,具体参见后附的例子。在左树启动一项命令时依次调用Login和CallFunction。在门户退出或在权限管理中结束该产品时调用LogOff。

子系统必须自己维护是否已经进行了子系统登录过程,业务系统须维护子系统是否已经登录。

Login对象从g_business中通过调用GetVBclsLogin方法获得。 各接口含义如下:

1、Login接口( Private Function ILoginable_Login() As Boolean ),不管弹出的是模式窗体还是非模式窗体,此接口在成功登录后须返回True,而且要保证登录成功后,第二次调用此接口时也要返回True。只有在登录失败后方可返回False。也就是说此接口返回值的含义是是否已经成功登录子系统。

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)。如果861产品没有子系统登录过程的产品,此值须返回True.

4、对于显示模式窗体的产品,如果已经申请了任务,请在模式窗体退出时自已清除任务。

实现这三个方法的例子如下:

Private Function ILoginable_Login() As Boolean If g_bLogined = True Then ILoginable_Login = True Exit Function

End If

If ((Not g_business Is Nothing) And g_bLogined = False) Then Dim oLoginTmp As Object Set oLoginTmp = g_business.GetVBclsLogin() Set g_oLogin = oLoginTmp ILoginable_Login = Login(oLoginTmp) If (ILoginable_Login = True) Then g_bLogined = True End If Else ILoginable_Login = Not g_business Is Nothing End If

End Function

Private Function ILoginable_LogOff() As Boolean If (g_bLogined = True) Then ILoginable_LogOff = LogOff() If (ILoginable_LogOff = True) Then g_bLogined = False End If Else ILoginable_LogOff = True End If

End Function

3.1.2.1增加Business属性

可读可写,且对大小写敏感。此属性维护一个对于此业务工程全局变量,以实现和VB程序和870Portal的交互。参考实现如下:

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

3.1.2.2增加全局变量

新建一module文件,并加入如下全局变量: Public g_business As Object Public g_bLogined As Boolean

3.1.3三种窗体

3.1.3.1修改嵌入Portal的窗体文件 原来有MdiExtender控件的窗体 要嵌入Portal的窗体 修改方法:

调用CreateFormEnv方法 调用ShowForm方法

每个窗体都要有方法ExitForm

3.1.3.2修改第一次弹出就是模态的窗体

可以直接使用通过采用VB窗体的Form.Show (vbModal)的方式,也调用ShowForm方法来显示此窗体。

3.1.3.3由嵌入Portal的窗体弹出的窗体,

不作修改,如果是模式窗体,请在此窗体上加入UFFormPartner控件

3.1.4 UFToolbar的修改

3.1.4.1在Settoolbar之前将g_business传入 3.1.4.2在Settoolbar之前设置Tag信息

设置微软Toolbar每个Button的Tag信息 调用CreatePortalToolbarTag方法设置 示例 button.Tag =

CreatePortalToolbarTag(“ICON_NEW”,”ICOMMON”,”PortalToolbar”) 注意: 严禁创建多次 3.1.4.2.1图标

人机工程部给出完整的图标,并制定相应文件的命名规格 放在%U8SOFT%的icons目录下 直接使用图标的文件名(不需扩展名)