Я сталкиваюсь с очень странным поведением, и я не знаю, сделано ли это намеренно или это ошибка внутри разведчика. (Я мог бы понять, почему это может быть функцией, но тогда мне нужно что-то обойти...)
У меня есть таблица внутри формы. Предположим, что у меня есть два столбца Column A
и Column 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
как предыдущая (удаленная) строка остается внутри данных формы.
Я понимаю, что просто обновить уже созданные строки до текущего значения быстрее, чем заменить все строки, но не должен ли getRowCount
возвращать правильный номер?