JsonDataCreationController

class axioma.core.dp.JsonDataCreationController

Контроллер. Предназначен для описания объекта типа JsonDefinition при создании объектов данных.

Унаследован от:

  • JsonController

    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)