class Types/collection:RecordSet

Рекордсет - список записей, имеющих общий формат полей.

Примечание

Основные аспекты рекордсета (дополнительно к аспектам Types/collection:ObservableList):

  • манипуляции с форматом полей. За реализацию аспекта отвечает примесь Types/entity:FormattableMixin;
  • манипуляции с сырыми данными посредством адаптера. За реализацию аспекта отвечает примесь Types/entity:FormattableMixin.

Элементами рекордсета могут быть только записи, причем формат полей всех записей должен совпадать.

Пример 1. Создадим рекордсет, в котором в качестве сырых данных используется JSON (адаптер для данных в таком формате используется по умолчанию):

import {RecordSet} from 'Types/collection';
const characters = new RecordSet({
    rawData: [{
        id: 1,
        firstName: 'Tom',
        lastName: 'Sawyer'
    }, {
        id: 2,
        firstName: 'Huckleberry',
        lastName: 'Finn'
    }]
});
characters.at(0).get('firstName'); // 'Tom'
characters.at(1).get('firstName'); // 'Huckleberry'

Пример 2. Создадим рекордсет, в котором в качестве сырых данных используется объект в формате СБИС (адаптер для данных в таком формате нужно указывать явно):

import {RecordSet} from 'Types/collection';
const characters = new RecordSet({
    rawData: {
        d: [
          [1, 'Иванов'],
          [2, 'Петров'],
          [3, 'Сидоров'],
          [4, 'Молодцов']
       ],
       s: [{
           n: 'id',
           t: 'Число целое'
       }, {
           n: 'name',
           t: 'Строка'
       }]
    },
    adapter: 'adapter.sbis'
});
characters.at(0).get('name'); // 'Иванов'
characters.at(1).get('name'); // 'Петров'

Соответствие названий полей в формате сырых данных БЛ СБИС и в формате Types смотрите здесь.

Пример 3. Создадим рекордсет, в котором в качестве сырых данных используется ответ БЛ СБИС (адаптер для данных в таком формате укажем явно):

import {RecordSet} from 'Types/collection';
import {SbisService} from 'Types/source';
const ds = new SbisService({endpoint: 'Employee'});
ds.call('list', {department: 'designers'}).then((response) => {
    const designers = new RecordSet({
        rawData: response.getRawData(),
        adapter: response.getAdapter()
    });
    console.log(designers.getCount());
});

Опции

protected

Адаптер, обеспечивающий доступ к необработанным данным определенного формата. По умолчанию поддерживаются необработанные данные в формате Types/entity:adapter.Json.

FormattableMixin
protected

Формат полей. Это может быть либо полный формат (в этом случае он должен быть определен как массив или экземпляр класса Types/_collection/format/Format), либо как частичный формат (в этом случае он должен быть определен как простой объект).

FormattableMixin
protected

Название свойства записи, содержащего первичный ключ.

protected

Метаданные

protected

Формат всех полей метаданных.

protected

Конструктор записей, порождаемых рекордсетом. По умолчанию Types/entity:Model.

protected

Данные в необработанном формате, которые могут быть распознаны через определенный адаптер.

FormattableMixin

Обработчик изменения версии

VersionableMixin

Поля

protected

Модель по умолчанию

protected

Метаданные - локальная обработанная копия _$metaData

Состояние коллекции до выключения генерации событий

EventRaisingMixin

Сообщение для режима блокировки изменений

EventRaisingMixin

Метод получения содержимого элемента коллекции (если такое поведение поддерживается)

EventRaisingMixin

Изменение коллекции: добавлены элементы

IObservable

Изменение коллекции: изменены элементы

IObservable

Изменение коллекции: перемещены элементы

IObservable

Изменение коллекции: удалены элементы

IObservable

Изменение коллекции: заменены элементы

IObservable

Изменение коллекции: значительное изменение

IObservable
protected

Индексатор элементов.

List

Количество измененных элементов, что важно для генерации одного события с действием ACTION_RESET вместо нескольких.

ObservableList

Элементы, измененные во время работы события, были выключены.

ObservableList

Поля элементов коллекции, измененные во время работы события, которые были выключены.

ObservableList

Экземпляр был разрушен

DestroyableMixin
protected

Работа с необработанными данными в режиме Copy-On-Write.

FormattableMixin
protected

Окончательно построенный формат.

FormattableMixin
protected

Копия _format, которая используется для кэширования в getFormat()

FormattableMixin

Значение _$format не связано с исходным значением.

FormattableMixin

Экземпляр адаптера для работы с необработанными данными.

FormattableMixin
protected

Список имен полей, взятых из адаптера необработанных данных.

FormattableMixin
protected

Уникальный идентификатор

InstantiableMixin

Префикс значений идентификатора

InstantiableMixin

Медиатор, отвечающий за связи между сущностями

ManyToManyMixin

Канал событий

ObservableMixin
protected

Очередь событий

ObservableMixin

Декларированные события

ObservableMixin
deprecated
protected
ReadWriteMixin
protected

Метод реализован в OptionsToPropertyMixin.

SerializableMixin

Уникальный номер инстанса

SerializableMixin
protected

Название класса-конструктора.

SerializableMixin

Методы

protected

Добавляет отношение с другой сущностью

ManyToManyMixin

Вставляет сырые данные записей в сырые данные рекордсета

Добавляет поле в _rawDataFields.

FormattableMixin

Анализирует серию обновлений, генерирует события об изменениях

EventRaisingMixin

Переустанавливает сырые данные

protected

Создает формат поля по его описанию.

FormattableMixin
protected

Строит формат по описанию.

FormattableMixin
protected

Создает новый экземпляр модели

Проверяет совместимость адаптеров.

FormattableMixin
protected

Проверяет, что переданный элемент - это запись с идентичным форматом

Проверяет, что в прототипе указано имя модуля для RequireJS, иначе не будет работать десериализация

SerializableMixin
protected

Рекурсивно уведомляет родительские сущности об изменении дочерней

ManyToManyMixin
protected

Очищает формат полей. Это работает, только если формат не был объявлен.

FormattableMixin

Очищает _formatClone.

FormattableMixin
protected

Очищает индексатор коллекции

List

Создает посредника для установления отношений с детьми

ManyToManyMixin

Создает экземпляр адаптера для определенного типа данных (таблица, запись, декоратор или метаданные).

FormattableMixin

Разбивает элементы списка на пачки в порядке их следования в списке.

EventRaisingMixin

Завершает серию обновлений

EventRaisingMixin
protected

Возвращает общий экземпляр адаптера.

FormattableMixin
deprecated
protected

Возвращает адаптер по умолчанию, как это и должно быть.

FormattableMixin

Возвращает формат поля с указанным именем.

FormattableMixin
protected

Возвращает тип поля по его формату.

FormattableMixin
protected

Возвращает формат поля.

FormattableMixin
protected

Возвращает индексатор коллекции

List
protected

Возвращает посредника для установления отношений с детьми

ManyToManyMixin
protected

Возвращает опции объекта

OptionsToPropertyMixin
protected

Возвращает необработанные данные из адаптера.

FormattableMixin

Возвращает экземпляр адаптера для определенного типа данных.

FormattableMixin

Возвращает список имен полей, взятых из адаптера необработанных данных.

FormattableMixin

Возвращает исходные данные, введенные через параметр.

FormattableMixin
protected

Возвращает запись по индексу

Возвращает всё, что нужно сложить в состояние объекта при сериализации, чтобы при десериализации вернуть его в это же состояние

SerializableMixin
protected

Псевдоним для hasDeclaredFormat().

FormattableMixin
protected

Возвращает признак наличия посредника

ManyToManyMixin

Возвращает признак наличия одинакового посредника

ManyToManyMixin

Пересоздает элементы из сырых данных

Инициализирует экземпляр адаптера.

FormattableMixin

Возвращает признак, что нужно генерировать события об окончании изменений коллекции

ObservableList

Возвращает признак, что нужно генерировать события об изменениях коллекции

EventRaisingMixin

Возвращает признак, что нужно генерировать события об изменениях элементов коллекции

ObservableList

Check if the instance was unserialized.

SerializableMixin
protected

Проверяет корректность индекса

List
protected

Извлекает элементы, входящие в указанный отрезок

ObservableList
protected

Приводит переденные элементы к массиву.

List

Returns record copy with target format

Normalizes given records by producing their copies with recordset's format

protected

Извещает о наступлении события. Если в процессе извещения приходит очередное событие, то извещение о нем будет отправлено после выполнения обработчиков предыдущего.

ObservableMixin

Генерирует событие об окончании изменений коллекции

ObservableList

Генерирует событие об изменении коллекции

EventRaisingMixin

Генерирует событие об изменении элемента

ObservableList
protected

Ставит в очередь извещение о наступлении события.

ObservableMixin

Добавляет извещение о событии в очередь.

ObservableMixin
protected

Инициирует выполнение обработчиков из очереди событий

ObservableMixin

Уведомляет дочерние сущности об изменении родительской

ManyToManyMixin
protected

Декларирует наличие событий

ObservableMixin
protected

Переиндексирует список

List
protected

Удаляет отношение с другой сущностью

ManyToManyMixin

Удаляет из очереди все обработчики указанного события

ObservableMixin

Сбрасывает экземпляр адаптера для определенного типа данных.

FormattableMixin

Сбрасывает _rawDataFields.

FormattableMixin
protected

Устанавливает посредника для установления отношений с детьми

ManyToManyMixin

Проверяет сериализованное состояние перед созданием инстанса. Возвращает метод, восстанавливающий состояние объекта после создания инстанса.

SerializableMixin
protected

Вызывает метод splice.

List

Запускает серию обновлений

EventRaisingMixin

Разрыв связи _$format с исходным значением.

FormattableMixin

Подтверждает изменения всех записей с момента предыдущего вызова acceptChanges().

Обрабатывает состояние записей следующим образом:

  • Changed и Added - меняют state на Unchanged;
  • Deleted - удаляются из рекордсета, а их state становится Detached;
  • остальные не меняются.
IStateful

Добавляет запись в рекордсет путем создания новой записи, в качестве сырых данных для которой будут взяты сырые данные аргумента item.

Если формат созданной записи не совпадает с форматом рекордсета, то он будет приведен к нему принудительно:

лишние поля будут отброшены, недостающие - проинициализированы значениями по умолчанию.

При недопустимом at генерируется исключение.

IList

Добавляет поле в формат.

FormattableMixin

Добавляет копии записей другой коллекции в конец рекордсета.

Если формат созданных копий не совпадает с форматом рекордсета, то он будет приведен к нему принудительно: лишние поля будут отброшены, недостающие - проинициализированы значениями по умолчанию.

IList

Заменяет записи рекордсета копиями записей другой коллекции.

Если формат созданных копий не совпадает с форматом рекордсета, то он будет приведен к нему принудительно: лишние поля будут отброшены, недостающие - проинициализированы значениями по умолчанию.

IList

Возвращает запись по позиции.

При недопустимом index возвращает undefined.

IList

Очищает список.

IList

Создает новый RecordSet, который является копией текущего RecordSet.

ICloneable

Конструктор RecordSet, принимающий набор опций в качестве первого аргумента

OptionsToPropertyMixin

Создает новый формат из полей текущего построенного и выставляет его как явно заданный формат.

FormattableMixin

Разрушает экземпляр

DestroyableMixin

Перебирает записи рекордсета.

IEnumerable

Конструирует экземпляр класса из сериализованного состояния

SerializableMixin

Возвращает адаптер для обработки необработанных данных.

FormattableMixin

Возвращает количество элементов списка

IList

Возвращает энумератор для перебора записей рекордсета.

Пример использования можно посмотреть в модуле Types/collection:IEnumerable.

IEnumerable

Возвращет массив подписчиков на событие

ObservableMixin

Возвращает формат поля в режиме "только для чтения".

FormattableMixin

Возвращает позицию первого вхождения элемента в список.

IList

Возвращает индекс первого элемента с указанным значением свойства. Если такого элемента нет - вернет -1.

IIndexedCollection

Возвращает индексы всех элементов с указанным значением свойства. Если таких элементов нет - вернет пустой массив.

IIndexedCollection

Возвращает уникальный идентификатор экземпляра класса.

IInstantiable

Возвращает название свойства записи, содержащего первичный ключ

Возвращает метаданные RecordSet'а.

Подробнее о метаданных смотрите в описании опции metaData.

Возвращает конструктор записей, порождаемых рекордсетом.

Возвращает необработанные данные (клонирует, если есть объект).

FormattableMixin

Возвращает запись по ключу.

Если записи с таким ключом нет - возвращает undefined.

Возвращает версию объекта.

Версия соответствует некому состоянию объекта и меняется при изменении как то значимых свойств объекта, например для рекорда это будет изменение значений полей.

IVersionable

Возвращает признак того, что формат был задан явно (передан через опцию format конструктора).

FormattableMixin

Проверяет наличие подписки на событие

ObservableMixin

Возвращает признак, что изменено хотя бы одно поле, хотя бы в одном элементе.

IStateful

Проверяет эквивалентность текущего объекта другому объекту.

IEquatable

Возвращает признак, включена ли генерация событий об изменении проекции

EventRaisingMixin

Объединяет два рекордсета.

Перемещает элемент с одной позиции на другую.

При недопустимом from или to генерируется исключение.

IList

Создает из рекордсета патч - запись с измененными, добавленными записями и ключами удаленных записей.

Добавляет копии записей другой коллекции в начало рекордсета.

Если формат созданных копий не совпадает с форматом рекордсета, то он будет приведен к нему принудительно:

лишние поля будут отброшены, недостающие - проинициализированы значениями по умолчанию.

IList

Откатывает изменения всех записей к состоянию на момент после предыдущего вызова acceptChanges().

Обрабатывает состояние записей следующим образом:

  • Changed - меняет state на Unchanged; значения внутренних полей откатываются
  • Added - меняет state на Detached;
  • Deleted - меняет state на Unchanged, значения внутренних полей откатываются;
  • Detached - возвращает запись в рекордсет, меняет state на Unchanged, значения внутренних полей откатываются;
IStateful

Удаляет элемент из списка (первый найденный). Элементы, следующие за удаленным, смещаются вверх.

IList

Удаляет элемент в указанной позиции. Элементы, следующие за удаленным, смещаются вверх.

При недопустимом index генерируется исключение.

IList

Удаляет поле из формата по его имени.

FormattableMixin

Удаляет поле из формата по его позиции.

FormattableMixin

Заменяет запись в указанной позиции через создание новой записи, в качестве сырых данных для которой будут взяты сырые данные аргумента item.

Если формат созданной записи не совпадает с форматом рекордсета, то он будет приведен к нему принудительно: лишние поля будут отброшены, недостающие - проинициализированы значениями по умолчанию.

При недопустимом at генерируется исключение.

IList

Обнуляет явно заданный формат.

FormattableMixin

Включает/выключает генерацию событий об изменении коллекции

EventRaisingMixin

Устанавливает название свойства записи, содержащего первичный ключ

Устанавливает метаданные RecordSet'а.

Подробнее о метаданных смотрите в описании опции metaData.

  • path - путь для хлебных крошек, возвращается как Types/collection:RecordSet;
  • results - строка итогов, возвращается как Types/entity:Record. Подробнее о конфигурации списков для отображения строки итогов читайте в этом разделе;
  • more - Boolean - есть ли записи для подгрузки (используется для постраничной навигации).

Устанавливает необработанные данные.

FormattableMixin

Добавляет подписку на событие

ObservableMixin

Возвращает сериализованный экземпляр класса

SerializableMixin

Отменяет подписку на событие

ObservableMixin

События

После завершения изменения коллекции

IObservable

После изменения коллекции

IObservable

После изменения элемента коллекции

IObservable

После изменения набора свойств объекта.

IObservableObject

Тайпдефы