【发布时间】:2019-03-07 01:40:23
【问题描述】:
我在一个片段中有 2 个表。
- 标题表格
- 详细信息表(根据Header表显示的数据)
事情是这样的: Header 表包含订购数量,Detail 表包含 total split quantity(Detail) 必须 。
场景:
一个。记录 A 在 Header 表
中订购了 10 个b. Detail 表中有 2 条拆分数量为 5 和 4 的记录,它们组合在一起为 9,即
要求: 提示错误消息后,将 Detail 表中的 inputText 列重置为先前值的任何方法。
(这是为了防止用户转到 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>
按钮一旦被点击就会进行验证。但是这里的主要问题是当我转到另一个 Header 记录并单击保存按钮时 Detail 表中的错误数量和 Detail 中的先前错误数量保持不变 表也提交到数据库。
【问题讨论】:
标签: java jdeveloper