2009年9月20日星期日

ADF_036:ADF开发初体验之一:开发富互联网应用

本文最近一次修改时间为 2011-09-27,本实验使用JDeveloper 11.1.2.1.0重新开发。
开发环境:JDeveloper 11.1.2.1.0。
完成《Developing RIA Web Applications with Oracle ADF》。

学习要点:

1. 创建Read-Only(Query-based)VO
字典表一般可以考虑使用Read-Only(Query-based)VO,因为字典数据一般不会修改,一般作为下拉列表选项出现在UI中,如Job VO。

2. 运行Application Module验证Model。
点击关联外键,可以显示主从数据。

点击查询按钮,可以输入条件进行查询。


3. Panel Accordion 布局组件的使用

4. Panel Splitter 布局组件的使用

5. Panel Collection 布局组件的使用

6. Panel Tabbed 布局组件的使用

7. 拖放Departments VO 生成Read-Only Form

8. 拖放Employees VO 生成Read-Only Table
注意,拖放Employees VO时,要选择Departments VO下的Employees VO,这样才能自动关联一对多的关系。
这样,部门与员工的一对多的关系体现在界面上就是:当部门改变时,员工跟着改变。
注意,这里并没有在页面中传递任何参数,完全是根据Data Control定义而来的。
这正是Data Control的强大之处。

9. 为EO的字段:Salary 定义验证规则:Range between 0 and 99000。
除了可以为EO的字段定义验证规则(Attributes Level Validator )之外,你还可以为整个EO定义验证规则(Entity Level Validator )。
Attributes Level Validator 在attribute值变时触发;Entity Level Validator 在验证 Entity 时触发。
如果想要自定义Java验证规则,Rule Type选择Method方式,会自动帮你生成相应的方法,Java验证规则也可以定义在Attributes 或 Entity 上。

10. 为EO的字段:HireDate 设置默认值:当前日期
当前日期,adf.currentDate,显示格式。
当前时间,adf.currentDateTime。
注意,必须要选择Expression方式。

设置日期格式:


11. 设置table属性ColumnSelection=single
设置该属性后,可以选择表格的某一列,冻结指定列,设置某列自动换行等等。


12. 使用数据可视化组件:Graph中的饼图 Pie
拖放DataControl中的DepartmentView下的EmployeeView。
统计某部门下所有员工的工资所占比例。因此设置参数Pie:Salary;Slices:Lastname。


13. 根据已有的EO创建VO(Updatable access through entity objects),
(1)创建VO的方式除了从数据库表的方式创建以外,也可以通过抽取多个EO的属性来构建,如EmpDetails VO就来自Employees EO和Departments EO。
(2)为EmpDetails VO增加自动计算的Transient属性,如年薪 AnnualSalary = Salary * 12 。
(3)为EmpDetails VO 增加View Accessors:Job VO,供以下拉列表的方式选择Job。
注意,手工创建的VO必须加入Application Module的Data Model中才能使用。


14. 增加全字段查询功能

15. 使用Partial Page Refresh功能
当Salary字段值被改变时,自动计算年薪。
(1)设置salary Input component 的AutoSubmit=True。
(2)设置AnnualSalary Input component 的PartialTriggers =salary Input component的ID。

16. 自动建议操作功能
员工的工作使用可输入的下拉列表来展示,这样既可以通过下拉列表选择,也可以人工输入。
如果添加了自动建议操作功能,输入时,将会自动匹配输入字符,显示建议下拉列表。
这是因为在EmpDetails VO中的JobId属性设置了LOV,并且显示类型选择了Combo Box wiht List of Values。
如果显示类型是Choice List,JobId显示出来是个只读的下拉列表,无法法输入,也就不能添加自动建议功能。


JobId显示类型改成Combo Box wiht List of Values后,重新拖放JobId字段,拖放时选择ADF LOV Choice List。


17. 增加下拉菜单:表格导出成Excel功能和表格打印功能

18. 创建EmpByEmail VO(Read-only access through SQL query)
可以用自定义SQL query的方式来创建Read-Only VO,如EmpByEmail VO,带查询参数。
参数直接定义在查询语句中,如select first_name,last_name from employees where email=:p_email。
这种方式定义的VO,生成Data Control时,会在该VO的Opertions下生成对应的ExecuteWithParams。
拖放ExecuteWithParams 时,选择ADF Parameter Form,自动生成查询表单(查询参数自动绑定到一个Input Text)。
然后,再使用Data Control拖放EmpByEmail时,选择ADF Read Only Form,自动生成查询结果表单。

19. 创建可重用的Bounded Task Flows,Page Fragments 和Regions

问题1. 点击Create Insert按钮时,弹出错误窗口如下:

这是因为AnnualSalary=Salary * 12,新增记录时,Salary为null,所以做乘法时,报错。
解决方法:可以在EmpDetails VO上给Salary设置默认值0。

Project 下载:HRSystem.7z

没有评论: