JsonDataCreationController¶
-
class
axioma.core.dp.
JsonDataCreationController
¶ Контроллер. Предназначен для описания объекта типа
JsonDefinition
при создании объектов данных.Унаследован от:
-
-
create
(def)¶ Контроль установленного режима создания объекта данных
- Параметры
def (
JsonDefinition
) – Контейнер со свойствами- Тип результата
-
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)
|