0

私はOracle ADFを初めて使用します。

ビュー オブジェクトを作成しましたが、一時属性があります。(リテラルを選択し、値を指定しませんでした。)Javaクラスから同じビューオブジェクト(いくつかのビジネス計算があります)の別の列を使用して列にデータを入力したいと思います。どのクラスまたはどのようにそれを行うことができるか考えていますか?

ロジックを記述しなければならないのはrowImplクラスですか?もしそうなら、例を挙げていただけますか?

ここに私が作成しようとしているものの例があります。Hr スキーマには、Department と Employees テーブルがあり、外部キーの関係が気に入っています。

DepartmentName Noofemployees パーセンテージ

HR 2 10.52631579 管理者 8 42.10526316 エンジニア 9 47.36842105 総計 19 100

ここでパーセンテージは私の一時的な属性です。したがって、値は 2/19*100 または 8/19*100 などです。

4

3 に答える 3

1

解決策: 部門 VO で、一時属性「TotalEmployees」を次の式で作成します: EmployeesView.count("Employee_id") これにより、各部門の従業員数が得られます。次に、DepartmentsView.xml でビュー アクセサーを作成し、DepartmentsView を追加します。したがって、このアクセサーを使用して同じビューの各行にアクセスできるようになりました。「 Percentage 」という名前の別の一時属性を作成し、式に次のコードを記述します。

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

注: null 条件は、null 値例外による div を回避するためのものです。

于 2013-03-24T11:54:21.590 に答える
1

一時的な属性の値を計算するためにGroovyを検討してみてください。それを「式」に設定してから、同じVO内の他の属性を参照するGroovy式を記述します。 Groovy の使用 ホワイトペーパー ウェビナー サンプル ドキュメント

于 2013-03-23T18:50:58.983 に答える
0

属性のgeetterメソッドとsetterメソッドを提供するViewRowImplクラスをjdevに作成させることができます。一時属性の取得では、計算を実装して結果を返します。

于 2013-03-23T09:28:39.600 に答える