Манипулирование
Доступ к данным
Для получения доступа к данным ячеек сначала получите DataRecord:
DataRecord rec = table.getRecord(5); // The numbering of records is zero-based, so this will return 6th record
DataRecord rec = table.rec(); // This returns first record (with zero index)Теперь вы можете использовать методы, которые возвращают определенные типы значений, для получения значений ячеек:
String s1 = rec.getString("firstField");
Boolean b1 = rec.getBoolean("secondField");
Integer i1 = rec.getInt("thirdField");Итерация по записям
Часто бывает необходимо обработать все записи таблицы. DataTable легко выполняет эту задачу с помощью интерфейса Iterable:
for(DataRecord rec : table)
{
// Process the record
}![]() | Для экземпляра |
Клонирование таблиц и элементов таблиц
Метод clone() работает по-разному для разных подтипов DataTable:
Для SimpleDataTable, метод возвращает полную копию экземпляра. Тип клонированного экземпляра также SimpleDataTable.
Для экземпляров таблиц ResultSetDataTable, FilteringDataTable или ProxyDataTable, метод возвращает SimpleDataTable, содержащую клоны записей, представленных в оригинальной таблице на момент клонирования.
![]() | Обратите внимание, что метод |
Также возможно клонировать запись или формат таблицы:
DataTable clonedTable = table.clone();
DataRecord clonedRecord = table.rec().clone();
TableFormat clonedFormat = table.getFormat().clone();Кодирование и декодирование таблиц
Кодирование таблиц данных работает по-разному для разных подтипов DataTable:
Любую SimpleDataTable можно закодировать в строку и восстановить без потери данных. Экземпляр SimpleDataTable кодируется совместно со всеми ее записями.
Для кодирования и декодирования SimpleDataTable используйте следующий код:
String encodedTable = table.encode(false); // false means don't use visible separators
DataTable restored = new SimpleDataTable(encodedTable);Экземпляры ResultSetDataTable или FilteringDataTable кодируются по-другому. Их записи не кодируются, вместо этого кодируются их идентификаторы. Эти ID позволяют соответствующей ProxyDataTable расположить таблицу на Сервере и получить доступ к нужным записям.
Экземпляры ProxyDataTable не кодируются, так как не требуют такой операции.
Отбор яйчеек таблиц
Для нахождения первой записи, имеющей значение поля Integer field1, равное 123, используйте следующий код:
DataRecord rec = table.select("field1", 123);Если такая запись не найдена, данный метод вернет null.
Сортировка таблиц
Сортировать модно только экземпляры SimpleDataTable. Для сортировки SimpleDataTable в соответствии со значениями поля field1, используйте этот код:
table.sort("field1", true); // Ascending sort orderДля сортировки таблицы данных отличного от SimpleDataTable типа, сначала клонируйте ее, чтобы получить SimpleDataTable копию оригинальной таблицы, а затем отсортируйте клонированный экземпляр.
Дублирование таблиц
Часто бывает необходимо копировать данные в разных таблицах. Прежде всего, DataTable можно клонировать (см. выше).
Однако более расширенные операции дублирования таблиц доступны как статические методы класса DataTableReplication:
Методы семейств
copy()копируют данные из одной таблицы в другую, сохраняя ключевые поля, доступные только для чтения и не предназначенные для дублирования поля, минимальное/максимальное количество записей и прочееМетоды семейств
copyRecord()дублируют данные из однойDataRecordв другую, также сохраняя большинство опций
Расширенные операции
Некоторые расширенные операции таблицы, такие как создание таблиц из списков значений или обработка привязок таблицы, доступны в двух вспомогательных классах с открытым исходным кодом: DataTableBuilding и DataTableUtils.
Was this page helpful?

