Как отобразить значение столбца таблицы на основе значений другого столбца таблицы?

Jdev версии 11.1.1.7.1

Мой сценарий использования выглядит следующим образом: -

У меня есть 2 таблицы: «Сведения о сотрудниках», в которых отображаются сведения о разных сотрудниках, и «Сведения о зарплате», в которых отображаются сведения о зарплате каждого сотрудника за разные месяцы. Вторая таблица будет заполнена на основе строки (т.е. сотрудника), выбранной в первой таблице. В первой таблице есть столбец «Общая заработная плата», который изначально будет пустым и будет заполняться на основе столбца «Заработная плата» второй таблицы после нажатия кнопки «Расчетная зарплата».

Ниже приведен мой код: - Сведения о сотруднике: -

  <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"/>

Может ли кто-нибудь мне помочь?


person novel P    schedule 04.07.2015    source источник


Ответы (2)


Вы можете написать метод управляемого компонента для расчета общей заработной платы и установить его, обратившись к ViewObjectIterator в управляемом компоненте.

Некоторые полезные коды adf

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

person Sam    schedule 07.07.2015

Если вы намереваетесь не заполнять столбец Total Salary, пока не будет нажата кнопка Estimate Salary, вы можете добавить свою логику расчета в прослушиватель действий кнопки в управляемом bean-компоненте. Ссылка «Просмотр от сотрудника на зарплату» гарантирует, что при выборе строки в «Сотрудник» отображаются соответствующие записи «Заработная плата», больше похожие на отношение «родитель-потомок». Если вам не нужна дополнительная нагрузка на кнопку «Оценить зарплату», вы можете добавить свою логику в метод установки общей заработной платы в классе RowImpl, который будет выполнять вашу логику консолидации записей заработной платы для конкретного человека (ссылка на просмотр помогает ограничить сумму в контексте одного человека).

person Midhun K G    schedule 13.02.2019