0

我对 Oracle ADF 很陌生。

我创建了一个视图对象,它有一个瞬态属性。(选择文字并且不提供任何值。)现在我想使用 Java 类中相同视图对象的另一列(那里有一些业务计算)来填充该列。知道哪个班级或我该怎么做吗?

是我必须编写逻辑的 rowImpl 类吗?如果可以,你能举个例子吗?

这是我要创建的示例。在 Hr 模式中,我们有 Department 和 Employees 表,喜欢外键关系。

部门名称 Noofemployees Percentage

HR 2 10.52631579 管理员 8 42.10526316 工程师 9 47.36842105 总计 19 100

这里百分比是我的瞬态属性。所以值为 2/19*100 或 8/19*100 等

4

3 回答 3

1

为什么不考虑使用 Groovy 来计算瞬态属性的值,方法是将其设置为“表达式”,然后编写一个 Groovy 表达式来引用同一 VO 中的其他属性。 使用 Groovy 白皮书 网络研讨会 示例 文档

于 2013-03-23T18:50:58.983 回答
1

解决方案:在部门 VO中,使用以下表达式 创建一个临时属性“ TotalEmployees ”: EmployeesView.count("Employee_id") 这为您提供了每个部门的员工数量。现在在 DepartmentsView.xml 创建一个视图访问器,添加 DepartmentsView。因此,现在您可以使用此访问器访问同一视图的每一行。创建另一个名为“百分比”的瞬态属性 在表达式中编写以下代码:

if(TotalEmployees == null){
return TotalEmployees}
else {
return TotalEmployees/DepartmentsView.sum("TotalEmployees")*100 
}

注意:null 条件是为了避免 div by null 值异常。

于 2013-03-24T11:54:21.590 回答
0

您可以让 jdev 创建 ViewRowImpl 类,该类将为您提供属性的 getter 和 setter 方法。在获取瞬态属性时,您执行计算并返回结果。

于 2013-03-23T09:28:39.600 回答