У меня есть 2 таблицы во фрагменте.
- Заголовок таблица
- Деталь таблица (Данные показаны на основе Заголовок таблица)
Вот в чем дело: таблица заголовков содержит заказанное количество, а таблица подробностей содержит общее количество разделения (деталь), которое должно <= общее заказанное количество (заголовок) </em>.
сценарий:
а.Запись A заказала количество 10 в Заголовок Таблица
b.есть две записи с разделенным количеством 5 и 4 в таблице Detail , которые объединяются вместе, равняется 9, что составляет <= заказанное количество (10) </p>
Требование: любой метод для сброса столбца inputText втаблица Detail к предыдущему значению после появления сообщения об ошибке.
(Это сделано для того, чтобы пользователь не мог перейти к другой записи в таблице Header и зафиксировать, после чего будет зафиксировано неверное значение в таблице Detail )
Код кнопки:
public void saveButton(ActionEvent actionEvent) {
int aQuantity=0;
DCIteratorBinding orderDtl = ADFUtils.findIterator("OrderView4Iterator");
if (orderDtl.getViewObject().getRowCount()>0){
for(Row dtlRow: orderDtl.getAllRowsInRange()){
System.out.println(dtlRow.getAttribute("OrderDtlIid"));
aQuantity = aQuantity + Integer.parseInt(dtlRow.getAttribute("Quantity").toString());
}
int bQuantity = Integer.parseInt(orderDtl.getCurrentRow().getAttribute("OrderQuantity").toString());
if(aQuantity > bQuantity){
errorMessage(null, "Error.");
return;
}
//then commit function}}}
Код столбца (таблица сведений):
<af:column sortProperty="#{bindings.OrderView4.hints.Quantity.name}"
filterable="true" sortable="false"
headerText="#{bindings.OrderView4.hints.Quantity.label}"
id="c3" width="182">
<af:inputText value="#{row.bindings.Quantity.inputValue}"
label="#{bindings.OrderView4.hints.Quantity.label}"
required="#{bindings.OrderView4.hints.Quantity.mandatory}"
columns="#{bindings.OrderView4.hints.Quantity.displayWidth}"
maximumLength="#{bindings.OrderView4.hints.Quantity.precision}"
shortDesc="#{bindings.OrderView4.hints.Quantity.tooltip}"
id="it1" immediate="true" autoSubmit="true">
<f:validator binding="#{row.bindings.Quantity.validator}"/>
</af:inputText>
</af:column>
Кнопка прошла проверку после нажатия.Но главная проблема здесь заключается в том, что неверное количество в таблице Detail остается тем же, когда я перехожу к другой записи Header и нажимаю кнопку saveButton и предыдущее неправильное количество в Detail таблица также передана в базу данных.