axioma.core.dp.
JsonDataCreationController
¶Контроллер. Предназначен для описания объекта типа JsonDefinition
при создании объектов данных.
Унаследован от:
create
(def)¶Контроль установленного режима создания обекта данных
Параметры: def ( JsonDefinition
) – Контейнер со свойствамиТип результата: bool
setCreate
(def, value)¶Устанавливается режим создания объекта данных
Параметры:
- def (
JsonDefinition
) – Контейнер со свойствами- value (
bool
) – Если установлено True, включен режим создания объекта
setSpec
(def, spec)¶Установка параметры спецификации (схемы таблицы). Подробнее описаны в
create_from_json()
Параметры:
- def (
JsonDefinition
) – Контейнер со свойствами- spec (
QJsonObject
) – Параметры спецификации (схемы таблицы). Подробнее описаны вcreate_from_json()
spec
(def)¶Контроль установленных параметров спецификации
Параметры: def ( JsonDefinition
) – Контейнер со свойствамиТип результата: QJsonObject
Пример экспорта таблицы в TAB MapInfo:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 | import axioma.render
from axioma.common import RuntimeException
from axioma.core.dp import *
from PyQt5.QtCore import *
from PyQt5.QtGui import QGuiApplication
import sys
from axioma.cs import *
'''
Пример экспорта таблицы в TAB MapInfo. Для простоты создается копия таблицы под другим именем.
'''
a = QGuiApplication(sys.argv)
render = axioma.render.Render()
render.initialize()
# Открываем исходную таблицу
table = axioma.core.open_json({'src': '/tmp/SubjectRF.TAB'})
# Целевая координатная система
cs_merc = CoordSysFactory.defaultCoordSysFactory().createFromPRJ("Earth Projection 10, 104, \"m\", 0")
try:
if table is None:
raise RuntimeException("Таблица не открыта")
# Находим необходимый провайдер.
dataProvider = axioma.app.core.dataProviderById("TabDataProvider")
if dataProvider is not None:
# Устанавливаем параметры экспорта
jd = JsonDefinition()
JsonDataCreationController.setSource(jd, '/tmp/SubjectRF_copy.TAB')
JsonDataCreationController.setPrj(jd, cs_merc)
JsonDataCreationController.setCreate(jd, True)
JsonDataCreationController.setOpenWith(jd, dataProvider.class_id())
JsonDataCreationController.setAccessMode(jd, Access_ReadWrite)
# Создаем контекст
context = ProviderExportContext(ModifiedTableSchema(table.tableSchema()))
# Открывем запрос для исходной таблицы
cursor = table.select(QuerySelectAll( table.tableSchema().attributeNames()))
# Производим экспорт. Если необходим отклик системы предлагаем использовать SignalingCursor
dataProvider.exportFeatures(cursor, context, jd)
else:
raise RuntimeException("Провайдер не найден")
except Exception as ex:
print(ex)
|