Scout Eclipse表格表格数据行数

时间:2015-10-22 11:55:46

标签: form-data eclipse-scout

我遇到了非常奇怪的行为,我不知道这是故意还是侦察中的错误。 (我可以理解为什么这可能是一个功能,但后来我需要一些解决方法...)

我在表格中有一些表格。假设我有两列Column AColumn B,我有两行。

------------------------
| Column A  | Column B | 
------------------------
|  10       | 20       |
------------------------
|  30       | 40       |
------------------------

如果我像这样检查客户最后一行:

getTField().getTable().getAColumn().getValue(getTField().getTable().getRowCount() -1) = 30

final TFormData formData = new TFormData();
this.exportFormData(formData);
formData.getTable().getAColumn(formData.getTable().getRowCount() - 1) = 30

这没关系。现在我更新最后一行并删除第一行所以现在它看起来像这样:

------------------------
| Column A  | Column B | 
------------------------
|  60       | 40       |
------------------------

现在如果我像以前一样尝试:

// row count = 1
getTField().getTable().getAColumn().getValue(getTField().getTable().getRowCount() -1) = 60 

final TFormData formData = new TFormData();
this.exportFormData(formData);
// row count = 2
formData.getTable().getAColumn(formData.getTable().getRowCount() - 1) = 30
formData.getTable().getAColumn(formData.getTable().getRowCount() - 2) = 60

就像之前(已删除)行保留在表单数据中一样。

我了解只是将已创建的行更新为当前值更快然后替换所有行但不应该{0}返回正确的数字?

1 个答案:

答案 0 :(得分:1)

如果我理解你的问题,你想知道为什么删除的行留在表中以及它如何影响行数。

首先:Eclipse Scout有两种方法可以处理已删除的行:

  1. "回收箱模式"已删除的行只会将其行状态(ITableRow.getRowState())更改为ITableRow.STATUS_DELETED。您可以使用它将表的所有行发送到服务,并轻松查看已删除的行并保留这些更改。 (与您可以看到插入/更改了哪些行的方式相同)。如果您的用户添加/修改/删除多行,并且仅在“保存操作”上保留更改,则通常会使用此模式。 (确定按钮或类似)。
  2. "立即删除模式"在删除行时立即丢弃哪些行。您以后不能再次从侦察模型中检索这些丢弃的行。通常在您要立即应用用户的任何更改时在表格页面中操作时使用。
  3. 您可以通过覆盖AbstractTable.getConfiguredAutoDiscardOnDelete()来切换这两种模式。默认返回值为false,即"模式1",true会使您进入"模式2"并指示侦察员立即丢弃任何已删除的行。

    要解决问题的行数/索引部分:

    如果删除行并且不丢弃它们(模式1),则需要考虑用户不可见的这些行。行计数将包括那些已删除的不可见行!

    来源: Eclipse Scout Concept Wiki: Table - Delete a row from the table