2014-06-02 Created By BaoXinjian
一、摘要
实现控件AdvancedTable功能
二、 案例
需求:实现控件AdvancedTable功能
1.AdvancedTable下的插件
(1). 属性
i. Column
ii. Column Group
iii. Footer: Add new Row & Total
iv. MutiSelection: 在VO中添加非数据库Item<DetailFlag>,将此Item对应值MutiSelection中
v. SingeSelection: 在VO中添加非数据库Item<SelectFlag>, 将此Item对应值SingleSelection中
vi. Table Action:放在Table上,列入Create Button
vii. Detail:在VO中添加非数据库Item<DetailFlag>,将此Item对应值Table的Detail View Attribute属性
2. 测试AdvancedTable -> Detail Region
(1). 设定属性
(2). 测试结果
3. 测试AdvancedTable -> SingleSelection Item
(1). 设定属性
(2). 测试结果
4. 测试AdvancedTable -> MutiSelection Item
(1). 设定属性
(2). 测试结果
5. 设定Item Sort,实现栏位Sort功能
6. AdvancedTable下的属性Form Value / Column / ColumnGroup / MultipleSelection / SingleSelection / tableActions / footer / detail
三、 案例实现
1. 测试AdvancedTable -> Detail Region
(1). 设定属性
(2). 测试结果
2. 测试AdvancedTable -> SingleSelection Item
(1). 设定属性
(2). 测试结果
3. 测试AdvancedTable -> MutiSelection Item
(1). 设定属性
(2). 测试结果
4. 关键代码
public void processRequest(OAPageContext pageContext, OAWebBean webBean)
{
super.processRequest(pageContext, webBean);
OAApplicationModule am = pageContext.getApplicationModule(webBean);
Boolean executeQuery = BooleanUtils.getBoolean(false);
Serializable[] parameters = { executeQuery };
Class[] paramTypes = { Boolean.class };
am.invokeMethod("initTableQuery", parameters, paramTypes);
OAAdvancedTableBean table = (OAAdvancedTableBean)webBean.findChildRecursive("TableRN");
if (table == null)
{
MessageToken[] tokens = { new MessageToken("OBJECT_NAME", "TableRN") };
throw new OAException("AK", "FWK_TBX_OBJECT_NOT_FOUND", tokens);
}
table.queryData(pageContext, true);
OAAdvancedTableBean table2 = (OAAdvancedTableBean)webBean.findChildRecursive("Table2RN");
table2.queryData(pageContext, true);
am.invokeMethod("initLookupCodes");
am.invokeMethod("initTable3VO");
}
5. 设定Item Sort,实现栏位Sort功能
6. AdvancedTable下的属性Form Value / Column / ColumnGroup / MultipleSelection / SingleSelection / tableActions / footer / detail
7. Table Region可以可通过手工的方式写成AdvancedTable的形式,会更加灵活,下图为Table Region右击后可以做的操作
Thanks and Regards