如何根据另一个表列的值显示表列的值?

时间:2015-07-04 07:06:00

标签: oracle-adf jdeveloper

Jdev Version 11.1.1.7.1

我的用例场景如下: -

我有2个表作为"员工详细信息",它显示不同员工的详细信息和#34;薪资明细",显示每个员工不同月份的薪资明细。将根据第一个表中选择的行(即Employee)填充第二个表。 第一个表格中有一栏“总薪资”,该栏目最初为空白,并将根据“薪资”进行填充。单击名为" Estimate Salary"。

的按钮后,第二个表的列

以下是我的代码: - 员工详细信息: -

  <af:table value="#{bindings.EmployeeView.collectionModel}" var="row"
                rows="#{bindings.EmployeeView.rangeSize}"

                fetchSize="#{bindings.EmployeeView.rangeSize}"
                rowBandingInterval="0"
                selectedRowKeys="#{bindings..EmployeeView.collectionModel.selectedRow}"
                selectionListener="#{bindings.EmployeeView.collectionModel.makeCurrent}"
                rowSelection="single" id="resId1"
                binding="#{backingBeanScope.backing_calculation.resId1}">

<af:column sortProperty="#{bindings.EmployeeView.hints.Name.name}"
                   sortable="true"
                   headerText="Employee Name"
                   id="resId1c1" width="230">
          <af:outputText value="#{row.Name}" id="ot17"/>
        </af:column>
<af:column sortProperty="#{bindings.EmployeeView.hints.Salary.name}"
                   sortable="true"
                   headerText="Total Salary"
                   id="resId1c5" noWrap="true" width="120">
          <af:outputText value="#{row.Salary}" id="ot1" visible="false">
            <af:convertNumber groupingUsed="false"
                              pattern="#{bindings.EmployeeView.hints.SalesVol.format}"/>
          </af:outputText>
        </af:column>
</af:table>

Salary Details :-

<af:table value="#{bindings.SalaryView.collectionModel}"
                    var="row"
                    rows="#{bindings.SalaryView.rangeSize}"

                    fetchSize="#{bindings.SalaryView.rangeSize}"
                    rowBandingInterval="0"
                    selectedRowKeys="#{bindings.SalaryView.collectionModel.selectedRow}"
                    selectionListener="#{bindings.SalaryView.collectionModel.makeCurrent}"
                    rowSelection="single" id="resId2"
                    binding="#{backingBeanScope.backing_calculation.resId2}"
                    partialTriggers="::resId1">

<af:column sortProperty="#{bindings.SalaryView.hints.Month.name}"
                       sortable="true"
                       headerText="#{bindings.SalaryView.hints.Month.label}"
                       id="resId2c1">
              <af:outputText value="#{row.Month}" id="ot26"/>
            </af:column>
<af:column sortProperty="#{bindings.SalaryView.hints.Salary.name}"
                       sortable="true" headerText="Salary"
                       id="resId2c5" width="195">
              <af:outputText value="#{row.Salary}" id="ot22">
                <af:convertNumber groupingUsed="false"
                                  pattern="#{bindings.SalaryView.hints.Salary.format}"/>
              </af:outputText>
            </af:column>
</af:table>

Estimate Salary:-
<af:commandButton text="Estimate Salary"
                      binding="#{backingBeanScope.backing_calculation.cb3}"
                      id="cb3"/>

有人可以帮助我吗?

2 个答案:

答案 0 :(得分:0)

您可以编写托管bean方法来计算总薪水,并通过访问托管bean中的ViewObjectIterator来设置。

一些有用的adf代码

http://biemond.blogspot.in/2009/03/some-handy-code-for-backing-beans-adf.html

答案 1 :(得分:0)

如果要在单击“估计薪金”按钮之前不填充“总薪金”列,则可以在托管Bean中的按钮的动作侦听器中添加计算逻辑。从Employee到Salary的查看链接将确保您在Employee中选择一行时,显示相应的Salary记录,更像是父子关系。如果您不希望“估计薪金”按钮带来额外负担,则可以在RowImpl类的Total Salary的setter方法中添加逻辑,该方法将为特定人员执行薪金记录的合并逻辑(查看链接有助于限制总和在一个人的背景下。