Chinaunix首页 | 论坛 | 博客
  • 博客访问: 841887
  • 博文数量: 372
  • 博客积分: 10063
  • 博客等级: 中将
  • 技术积分: 4220
  • 用 户 组: 普通用户
  • 注册时间: 2012-02-24 11:36
文章分类

全部博文(372)

文章存档

2012年(372)

分类: 虚拟化

2012-03-16 16:08:29

 一.需求背景

假设我们在开发一个人力资源模块,现在需要一个窗口来管理员工的工资信息。这里面涉及到员工信息与工资信息。OB里面已经有管理员工信息的窗口了,只需要把ISEMPLOYEE勾选上,这个客户信息就变成了员工信息了。我们只需要新建一张表来保存对应的工资信息就好了。

二.具体步骤

1. 创建一个模块

Openbravo的ERP的2.50推出了模块化概念模块化使开发人员能够开发,打包和分发他们的工作。对于Openbravo ERP的用户而言模块化设计使得他们可以下载,安装更新自己想要的模块

a. 主菜单:Application Dictionary ---> Module 如下图所示建立一个模块



b. 切到这个模块下面的3个子页签:Dependency,DB Prefix,Data Package。依次如下设置:

Dependency(模块依赖,所有新增的模块都依赖于Core模块)

DB Prefix(这个模块对应的数据库表的表前缀,表前缀必须全局唯一,在你将你这个模块注册到OB的Central Repository的时候,会检查它的唯一性,避免你开发的模块的表与其他开发者开发的表混淆。另外注册的时候,也会检查你模块的java package是否重复)



Data Package(存放着与数据库中表对应的对象,也就是我们常说的pojo类. 在src-gen文件夹下)



2. 创建对应的表

a. 利用PLSQL登陆上oracle数据库,在里面新建一张表。(如果你用的是大象数据库,自己想办法) SQL语句如下:

Sql代码 复制代码 收藏代码
  1. -- Create table
  2. create table LWE_SALARY
  3. (
  4. LWE_SALARY_ID VARCHAR2(32) not null,
  5. AD_CLIENT_ID VARCHAR2(32) not null,
  6. AD_ORG_ID VARCHAR2(32) not null,
  7. ISACTIVE CHAR(1) default 'Y' not null,
  8. CREATED DATE default SYSDATE not null,
  9. CREATEDBY VARCHAR2(32) not null,
  10. UPDATED DATE default SYSDATE not null,
  11. UPDATEDBY VARCHAR2(32) not null,
  12. C_BPARTNER_ID VARCHAR2(32) not null,
  13. AMOUNT NUMBER not null,
  14. C_CURRENCY_ID VARCHAR2(32) not null,
  15. VALIDFROM DATE not null
  16. )
  17. tablespace USERS
  18. pctfree 10
  19. initrans 1
  20. maxtrans 255
  21. storage
  22. (
  23. initial 64K
  24. minextents 1
  25. maxextents unlimited
  26. );
  27. -- Create/Recreate primary, unique and foreign key constraints
  28. alter table LWE_SALARY
  29. add constraint LWE_SALARY_KEY primary key (LWE_SALARY_ID)
  30. using index
  31. tablespace USERS
  32. pctfree 10
  33. initrans 2
  34. maxtrans 255
  35. storage
  36. (
  37. initial 64K
  38. minextents 1
  39. maxextents unlimited
  40. );
  41. alter table LWE_SALARY
  42. add constraint LWE_SALARY_AD_CLIENT foreign key (AD_CLIENT_ID)
  43. references AD_CLIENT (AD_CLIENT_ID);
  44. alter table LWE_SALARY
  45. add constraint LWE_SALARY_AD_ORG foreign key (AD_ORG_ID)
  46. references AD_ORG (AD_ORG_ID);
  47. alter table LWE_SALARY
  48. add constraint LWE_SALARY_C_BPARTNER foreign key (C_BPARTNER_ID)
  49. references C_BPARTNER (C_BPARTNER_ID);
  50. alter table LWE_SALARY
  51. add constraint LWE_SALARY_C_CURRENCY foreign key (C_CURRENCY_ID)
  52. references C_CURRENCY (C_CURRENCY_ID);
-- Create table create table LWE_SALARY ( LWE_SALARY_ID VARCHAR2(32) not null, AD_CLIENT_ID VARCHAR2(32) not null, AD_ORG_ID VARCHAR2(32) not null, ISACTIVE CHAR(1) default 'Y' not null, CREATED DATE default SYSDATE not null, CREATEDBY VARCHAR2(32) not null, UPDATED DATE default SYSDATE not null, UPDATEDBY VARCHAR2(32) not null, C_BPARTNER_ID VARCHAR2(32) not null, AMOUNT NUMBER not null, C_CURRENCY_ID VARCHAR2(32) not null, VALIDFROM DATE not null ) tablespace USERS pctfree 10 initrans 1 maxtrans 255 storage ( initial 64K minextents 1 maxextents unlimited ); -- Create/Recreate primary, unique and foreign key constraints alter table LWE_SALARY add constraint LWE_SALARY_KEY primary key (LWE_SALARY_ID) using index tablespace USERS pctfree 10 initrans 2 maxtrans 255 storage ( initial 64K minextents 1 maxextents unlimited ); alter table LWE_SALARY add constraint LWE_SALARY_AD_CLIENT foreign key (AD_CLIENT_ID) references AD_CLIENT (AD_CLIENT_ID); alter table LWE_SALARY add constraint LWE_SALARY_AD_ORG foreign key (AD_ORG_ID) references AD_ORG (AD_ORG_ID); alter table LWE_SALARY add constraint LWE_SALARY_C_BPARTNER foreign key (C_BPARTNER_ID) references C_BPARTNER (C_BPARTNER_ID); alter table LWE_SALARY add constraint LWE_SALARY_C_CURRENCY foreign key (C_CURRENCY_ID) references C_CURRENCY (C_CURRENCY_ID);

b. 在应用字典注册这张表

主菜单下面: Application Dictionary ---> Tables and Columns



Data Package : 选择模块里面定义的那个Data Package

Name: 用于在程序中定位到这张表的唯一标志

DB Table Name:对应数据库中表的名称

Java Class Name:这张表对应的pojo类的名称。(在src-gen文件夹定义的那个Data Package下面能够找到这个类)

Data Access Level:数据访问级别,这里可以设置是集团访问,公司访问还是 系统才能访问等等。

Window:这里不需要填,还没有定义对应的窗口。(这个得定义好了窗口回来填写)

b. 点击保存之后,点击 Create columns from DB 这个按钮,会自动生成对应的列。

c. 主菜单:Application Dictionary ---> Synchronize Terminology 这个程序将会自动将系统里面已经定义好的一些通用信息(比如,集团,组织机构,是否有效,创建人,创建日期等等)与你这个表里面的通用信息挂上钩,方便今后维护。

d. 那些自动生成的列有一些需要调整,具体调整如下:

  • Amount: Reference = Amount, Length = 10
  • C_BPartner_ID: Reference = Search, Reference Search Key = Business Partner, Length = 32, Link To Parent Column = Y
  • Valid From: used as Record Identifier = Y
  • Amount: used as Record Identifier = Y

3. 创建窗口

a. 主菜单:Application Dictionary ---> Windows, Tabs and Fields 如下图所示:



b. 切到Tab子页签,点击新建,如下图所示



c. 保存之后,点击Copy Tab Fields 按钮,选择Business Partner-Business Partner 这一项。点击OK。

d. 仍然在Tab页签,点击新建,创建第二个页签



Module:选择我们上面创建的那个模块

Name:页签名称

Table:对应在应用字典注册好的表

e. 保存之后,点击 Create Fields 按钮,即可自动创建字段。当然这些字段可能不符合要求,你可以进行隐藏或者布局之类的,就不细讲了。

f. 将窗口与在应用字典定义的表对应起来,也就是第2步的b步骤,将window字段填上我们刚刚定义好的窗口。

4. 新建菜单

a. 主菜单:General Setup ---> Application ---> Menu ,点击新建



Module: 选择我们定义的模块

window:选择我们定义好的窗口

b. 保存之后,点击工具条上 如下按钮 。切换到菜单树形结构,拖动刚刚新建的菜单到想要的位置。

5. 编译

a. 编译之前最好把tomcat停掉。

b. 在eclipse里面选中 eclipse.compile.launch文件点击右键 Run As -->Eclipse Compile , 在弹出的对话框中输入窗口的名称。如下图所示



如果编译成功,重新编译整个项目,然后启动tomcat应该就可以使用了!

阅读(577) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~