没有合适的资源?快使用搜索试试~ 我知道了~
用友ERP-U8二次开发手则
3星 · 超过75%的资源 需积分: 0 62 下载量 161 浏览量
2012-09-27
14:16:56
上传
评论 4
收藏 11.04MB PDF 举报
温馨提示
试读
329页
用友ERP-U8二次开发手则!
资源推荐
资源详情
资源评论
ERP 事业部咨询实施客户化开发部
第 1 页 共 329 页
用友软件股份有限公司
地址:北京市海淀区北清路 68 号
用友软件园
电话:010-62436688
网址:www.ufida.com.cn
客户化开发基本能力提升手册
起草单位 :ERP 咨-客户化开发部
修正单位 :
批 准 :
批准日期 :
ERP 事业部咨询实施客户化开发部
第 2 页 共 329 页
1 U8 基础开发篇
1.1 门户开发与集成
1.1.1 功能概述
如何使二次开发的程序很好地和 U8 产品集成在一起?需要满足什么条
件的程序才能和门户集成?如何开发一个满足这个条件的程序?本文将
为您解答这些问题。
1.1.2 名词解释
1.1.2.1 菜单调整工具
功能:调整菜单位置;新增、修改、删除菜单(除 U8 系统菜单外)。
菜单调整工具在 UAP 中,通过菜单“工具->菜单调整工具”进入。
1.1.2.2 UA_IDT
位置:在 UFSystem 中。
其内容描述了双击每个末级菜单项目时需要调用的物理程序。
--Insert into the Table ua_idt
delete ua_idt where (id = 'effxgl10')
GO
insert into ua_idt
([id],[assembly],[catalogtype],[type],[class],[entrypoint],[parameter],[reserved])
values('EFFXGL10','EFFXGL.clsProductFacade',0,0,Null,Null,Null,Null)
数据库字段描述:
字段名称
描述
数据类型
长度
是否容许为空
assembly
dll 名字 nvarchar 256 False
catalogtype
类型,比如 dotnet vb dll exe 等
int 4 True
ERP 事业部咨询实施客户化开发部
第 3 页 共 329 页
class
用于 createobject nvarchar 512 True
entrypoint
入口 nvarchar 512 True
ID
唯一编号 nvarchar 32 False
parameter
命令行参数 nvarchar 1024
True
reserved
保留字段 nvarchar 1024
True
type
类型 int 4 True
ufts
时间戳 timestamp 8 False
type 中:为 0 时为 VB DLL;为 1 时为可执行程序;为 2 或者 4 时.net
的应用程序.
1.1.3 如何开发可与门户集成的 VB dll
1.1.3.1 代码修改
1.1.3.1.1 引用工程 UFPortalProxyInterface
文件位置:U8 安装路径\Portal\UFPortalProxyInterface.dll
1.1.3.1.2 相关代码修改
clsProductFacade 文件为门户的入口文件,即在 ua_idt 表中 assembly 项所对应的类名。
如下所描述的:
id=’Test01’
type=’0’
assembly=’TestU8Prj.clsProductFacade’
首先,ua_idt 中 assembly 属性描述的对应类要实现接口 ILoginalbe。
比如 ua_idt 中描述了如下信息:
insert into ua_idt
([id],[assembly],[catalogtype],[type],[class],[entrypoint],[parameter],[reserved])
values('EFFXGL10','EFFXGL.clsProductFacade',0,0,Null,Null,Null,Null)
<idt id=’Test01’ type=’0’ assembly=’TestU8Prj.clsProductFacade’/>
则要在 clsProductFacade 中实现 ILoginable 接口。即用代码:
Implements UFPortalProxyInterface.ILoginable
ERP 事业部咨询实施客户化开发部
第 4 页 共 329 页
然后在该接口的实现函数中转发调用原先工程中的 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
ERP 事业部咨询实施客户化开发部
第 5 页 共 329 页
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
1.1.3.1.2.1 增加 Business 属性
可读可写,且对大小写敏感。此属性维护一个对于此业务工程全局变量,以实现和 VB 程序
和 870Portal 的交互。参考实现如下:
1.1 Public Property Get Business() As Object
1.2 Set Business = g_business
End Property
Public Property Set Business(busVal As Object)
Set g_business = busVal
End Property
1.1.3.1.2.2 增加全局变量
新建一 module 文件,并加入如下全局变量:
Public g_business As Object
Public g_bLogined As Boolean
1.1.3.1.3 三种窗体
1.1.3.1.3.1 修改嵌入 Portal 的窗体文件
原来有 MdiExtender 控件的窗体
要嵌入 Portal 的窗体
修改方法:
调用 CreateFormEnv 方法
调用 ShowForm 方法
每个窗体都要有方法 ExitForm
剩余328页未读,继续阅读
资源评论
- windy88482014-04-05资料一般 ,没深入的东西
- sh_yangxiangming2015-09-30还可以,实用的东东。
- lauliming2013-10-29内容很多,但都是一些参考类的描述,我本来希望是能教下在用友U8是怎么二次开发的,包括用什么语言,怎么对接呀等等,在这里就没提到了。
- benson2007benson2015-04-24都是一些参考类的描述,没深入的讲解,很一般哦!
cyq1231
- 粉丝: 1
- 资源: 4
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功