Openbravo3.0 怎样新建一个窗口
?? 一.需求背景
?
?? 假设我们在开发一个人力资源模块,现在需要一个窗口来管理员工的工资信息。这里面涉及到员工信息与工资信息。OB里面已经有管理员工信息的窗口了,只需要把ISEMPLOYEE勾选上,这个客户信息就变成了员工信息了。我们只需要新建一张表来保存对应的工资信息就好了。
?
????? 二.具体步骤
?????
?????1. 创建一个模块
????? Openbravo的ERP的2.50推出了模块化概念。模块化使开发人员能够开发,打包和分发他们的工作。对于Openbravo
?
?????? 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语句如下:
?
-- Create tablecreate 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. 那些自动生成的列有一些需要调整,具体调整如下:?
?? 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应该就可以使用了!
?
?
?