Table - Абстрактный класс таблицы ===================================== .. currentmodule:: axioma.core.dp .. class:: Table Абстрактный класс таблицы Унаследован от: * :class:`~axioma.core.dp.DataObject` * :class:`~axioma.core.dp.QuerySupport` От него наследуются: * :class:`~axioma.core.dp.EditableTable` * :class:`~axioma.core.dp.SelectionTable` .. method:: Table() Конструктор класса .. method:: Table(table) Конструктор класса. Создать копию таблицы. :param table: таблица :type table: :class:`~axioma.core.dp.Table` .. method:: attributeNames() Список имен атрибутов :rtype: :class:`list` [:class:`str`] .. method:: tableSchema() Схема таблицы :rtype: :class:`~axioma.core.dp.TableSchema` .. .. method:: tableSchemaController() .. Контроллер схемы таблицы .. method:: coordSystem() Координатная система таблицы. Если несколько, берется первая попавшаяся :return: координатная система таблицы, либо None :rtype: :class:`~axioma.cs.CoordSystem` .. method:: sourceOfChanges() Определяет таблицу, данные из которой являются источником изменений в текущей таблице :rtype: :class:`~axioma.core.dp.Table` .. method:: featureIdComparator() Получение функтора сравнения двух идентификаторов записей в этой таблице. Используется для сортировки записей. :return: функтор сравнения двух идентификаторов :rtype: :class:`~axioma.core.dp.VariantComparator` .. method:: sourceTable() Изначальная таблица :rtype: :class:`~axioma.core.dp.Table` .. method:: allFeatures() Все записи таблицы :rtype: :class:`list` [:class:`Feature`] .. method:: selectToFeatureList(query, range=PageRange()) Записи, удовлетворяющие запросу query :param query: запрос к таблице :type query: :class:`~axioma.core.dp.TableQuery` :param range: диапазон страниц :type range: :class:`~axioma.core.dp.PageRange` :return: Список записей :rtype: :class:`list` [:class:`~axioma.core.dp.Feature`] .. method:: selectFeaturesById(ids, attribute_names=list(), range=PageRange()) Получить записи по списку идентификаторов :param ids: идентификаторы запрашиваемых записей :type ids: :class:`list` [:class:`~PyQt5.QtCore.QVariant`] :param attribute_names: имена запрашиваемых атрибутов записей :type attribute_names: :class:`list` [:class:`str`] :param range: диапазон страниц :type range: :class:`~axioma.core.dp.PageRange` :return: Список записей :rtype: :class:`list` [:class:`~axioma.core.dp.Feature`] .. code-block:: python :name: code_sample_select_features_by_id :caption: Пример использования: # Восстановление; получение записей с полным количеством атрибутов # ... # features - записи с усеченным набором атрибутов # ... ids = [feature.id() for feature in features] full_features = table.selectFeaturesById(ids, table.attributeNames()) .. method:: selectFeaturesInMbr(rect, attribute_names=list(), geom_attr_name=str(), range=PageRange()) Получить записи в прямоугольнике. Сравнение производится с ограничивающим прямоугольником объекта. Для более точного соотвествия необходимо произвести дополнительную проверку. :param rect: географический прямоугольник, в границах которого выбираются объекты (записи) :type rect: :class:`~axioma.core.dp.GeoRect` :param attribute_names: имена запрашиваемых атрибутов записей :type attribute_names: :class:`list` [:class:`str`] :param geom_attr_name: имя атрибута с геометрией; если пустая строка, будет выполнена попытка найти атрибут; если несколько - берется первый попавшийся, если нет - возвращается пустой список записей :type geom_attr_name: :class:`str` :param range: диапазон страниц :type range: :class:`~axioma.core.dp.PageRange` :return: Список записей :rtype: :class:`list` [:class:`~axioma.core.dp.Feature`] .. code-block:: python :name: sample_select_features_in_mbr :caption: Пример использования: # ... # coord_system - Долгота-Широта # ... georect = GeoRect(QRectF(-180, 0, 90, 90), coord_system) features = table.selectFeaturesInMbr(georect, table.attributeNames()) .. .. method:: makeIdSet() .. !!! .. .. :param: !!! .. :return: !!! .. :rtype: !!! .. .. method:: tableProperties() .. Свойства таблицы .. .. :rtype: :class:`~axioma.core.dp.Table`Properties .. .. method:: setTableProperties(properties) .. Задать свойства таблицы .. .. :param properties: свойства .. :type properties: :class:`TableProperties` .. method:: hasDataChangeConnection() Имеет ли кто-то подписку на сигнал изменения данных :return: True, если имеет, иначе - False :rtype: :class:`bool` .. method:: contentType() Тип контента :rtype: :class:`~axioma.core.dp.ContentType` .. !!!SIGNALS!!! .. .. method:: dataChanged(event) .. .. [signal]Данные изменились .. .. :param event: событие изменения данных .. :type event: :class:`TableDataChangedEvent` .. method:: dataReset() [signal] Изменились данные таблицы .. method:: schemaChanged() [signal] Изменилась схема таблицы