Download presentation
Presentation is loading. Please wait.
1
BOS二次开发规范
2
课程说明: 课程简介: 本课程为K/3 Cloud BOS二次开发提供开发标准。
3
提纲 命名空间规范 程序集 BOS设计器规范 数据库规范
4
开发环境及参数设置 开发工具:VS2010+{Oracle11gClient|SQLServer2008} VS环境设置:
服务端组件输出路径 %TFS%\K3Cloud\K3CloudServer\Bin
5
提纲 命名空间规范 程序集 BOS设计器规范 数据库规范 插件继承体系
6
命名空间规范 命名要求表达准确,无歧义 ISV ::= 开发商标识符 业务系统 ::= K/3业务系统标识符 模块 ::= K/3模块标识符
功能 ::= 功能标识符 技术名称和功能均使用 Pascal 大小写 KDV.K3.SCM.SAL.ExpOrder KDV.K3.ExpOrder KDV.ExpOrder
7
提纲 命名空间规范 程序集 BOS设计器规范 数据库规范 插件继承体系
8
程序集规范 与命名空间一致 格式:{ISV}[.K3][.业务系统][.模块][.功能]
KDV.K3.SCM.SAL.ExpOrder.dll KDV.K3.ExpOrder.dll KDV.ExpOrder.dll
9
提纲 命名空间规范 程序集 BOS设计器规范 数据库规范 插件继承体系
10
BOS设计器规范 业务对象编号(FormID) 自动生成 GUID
11
BOS设计器规范 BOS设计器对象属性标识(Key)不允许重复 格式:{ISV标识符}_{标识} 单据体标识 字段标识
12
提纲 命名空间规范 程序集 BOS设计器规范 数据库规范 插件继承体系
13
数据库规范 数据库对象规范 表命名 {ISV标识符}_T_{名称} 长度:< 30 示例: KDV_T_USER
14
数据库规范 数据库对象规范 字段命名 [F_]{ISV标识符}_{名称} 长度:< 30 示例: KDV_USERNAME
15
数据库规范 数据库对象规范 对象 命名规则 最大长度 示例 视图 {ISV标识符}_V_{名称} 30 KDV_V_USER 存储过程
{ISV标识符}_P_{名称} KDV_P_GETUSERLIST 主键 {ISV标识符}_PK_{名称} KDV_PK_USER 索引 {ISV标识符}_IX_{表缩写}_{字段缩写} KDV_IX_USER_FID 缺省值 {ISV标识符}_DF_{名称} KDV_DF_USER_FID 函数 {ISV标识符}_FN_{名称} KDV_FN_GETCOUNT 触发器 {ISV标识符}_TRG_{名称} KDV_TRG_USERINS 序列 Z_{ISV标识符}_T_{名称} Z_KDV_T_USER
16
数据库规范 数据库对象规范 避免扩展冲突 函数、触发器不建议使用
17
数据库规范 数据类型规范 使用的数据类型 CHAR NCHAR VARCHAR NVARCHAR BLOB NCLOB
SMALLINT INT DECIMAL DATETIME
18
提纲 命名空间规范 程序集 BOS设计器规范 数据库规范 插件继承体系
19
继承体系 业务系统扩展 业务对象 单据 基础资料 列表 过滤条件 报表 扩展学习:使用特定前缀的原因
因为当Visual Basic遇到一个枚举成员名时,如果其他被引用的类型库中包含相同的名字,它就会搞混。例如,Visual Basic的所有系统常量都有个前缀vb。遇到vbFixedSingle这样一个常量时,马上就知道该常量属于Visual Basic的类型库。 推荐在K/3的代码中使用kd 前缀。
20
继承体系 业务系统扩展 业务系统插件 单据 基础资料 动态表单 列表 扩展学习:使用特定前缀的原因
因为当Visual Basic遇到一个枚举成员名时,如果其他被引用的类型库中包含相同的名字,它就会搞混。例如,Visual Basic的所有系统常量都有个前缀vb。遇到vbFixedSingle这样一个常量时,马上就知道该常量属于Visual Basic的类型库。 推荐在K/3的代码中使用kd 前缀。
21
继承体系 抽象类(组件:Kingdee.BOS.Core) 类(插件、服务) 继承自抽象类 业务系统插件 单据插件
AbstractBillPlugIn 基础资料插件 AbstractBasePlugIn 动态表单插件 AbstractDynamicFormPlugIn 列表插件 AbstractListPlugIn 扩展学习:使用特定前缀的原因 因为当Visual Basic遇到一个枚举成员名时,如果其他被引用的类型库中包含相同的名字,它就会搞混。例如,Visual Basic的所有系统常量都有个前缀vb。遇到vbFixedSingle这样一个常量时,马上就知道该常量属于Visual Basic的类型库。 推荐在K/3的代码中使用kd 前缀。
22
插件开发规范 插件实现 重载抽象类操作方法 扩展学习:使用特定前缀的原因
因为当Visual Basic遇到一个枚举成员名时,如果其他被引用的类型库中包含相同的名字,它就会搞混。例如,Visual Basic的所有系统常量都有个前缀vb。遇到vbFixedSingle这样一个常量时,马上就知道该常量属于Visual Basic的类型库。 推荐在K/3的代码中使用kd 前缀。
23
插件开发规范 单据插件 基础资料插件 动态表单插件 继承:AbstractBillPlugIn 继承: AbstractBasePlugIn
继承: AbstractDynamicFormPlugIn
24
插件开发指南 实现接口——IDynamicFormViewPlugin OnInitialize AfterLoadData
视图模型初始化事件 AfterLoadData 加载数据后事件 AfterBindData 绑定数据后事件处理接口 AfterF7Select F7操作后事件 LanguageChanged 语言切换
25
插件开发指南 实现接口——IDynamicFormViewPlugin BarItemClick AfterBarItemClick
菜单单击事件处理扩展接口 AfterBarItemClick 菜单单击事件后 BeforeDoOperation 操作调用前事件 AfterDoOperation 操作调用完成后事件 ListViewClick —— 列表项目单击事件 TreeNodeClick —— 树控件单击事件 TreeDragDrop ——数控件拖拽 EntityRowClick —— 分录行单击事件
26
插件开发指南 实现接口——IDynamicFormModelPlugIn CreateNewData AfterCreateNewData
数据模型创建实体对象事件 AfterCreateNewData 数据模型创建实体对象完成后事件 BeforeUpdateValue 数据更新前事件 DataChanged 数据改变后事件 CreateNewEntryRow 创建分录行事件 BeforeDeleteRow 删除分录行事件 AfterDeleteRow 删除分录后事件
27
插件开发规范 序时簿插件 继承: AbstractListPlugIn
28
插件开发指南 实现接口——IListViewPlugin BarItemClick AfterBarItemClick
菜单单击事件处理扩展接口 AfterBarItemClick 菜单单击事件后 BeforeDoOperation 操作调用前事件 AfterDoOperation 操作调用完成后事件 CellDbClick 单元格双击事件 AfterGetData 取数完成后事件
29
插件开发指南 优先使用表单业务逻辑服务 使用表单校验规则实现校验 表单服务和插件中尽量使用函数 简单业务逻辑通过python脚本描述
特殊场景通过插件实现
30
附——数据类型对应关系 数据类型 长度 Sql server Oracle CHAR [1,254] CHAR[(n)] VARCHAR
[1,4000] VARCHAR[(n)] VARCHAR2(n) NCHAR [1,2000] NCHAR[(n)] NVARCHAR NVARCHAR[(n)] NVARCHAR2(n) BLOB [1,] IMAGE NCLOB NTEXT INT,INTEGER [-2^31,2~31-1] INT NUMBER(10) SMALLINT NUMBER (5) DATETIME DATE BIGINT [-2^63,2^63-1] NUMBER(19) NUMERIC DECIMAL NUMBER
31
Q&A
Similar presentations