Отчет - Report

class axipy.render.Report(printer)

План отчета для последующей печати.

draw(context)

Выводит отчета в заданном контексте.

Параметры

context (Context) – Контекст, в котором будет отрисован отчет.

Пример:

# Пример создания отчета с геометрическим элементом и вывод его в pdf
printer = QPrinter()
printer.setPaperSize(QPrinter.A4)
printer.setOutputFormat(QPrinter.PdfFormat)
printer.setOutputFileName('report.pdf')
painterReport = QPainter(printer)
contextReport = Context(painterReport)

report = Report(printer)
geometryReportItem = GeometryReportItem()
geometryReportItem.geometry = Geometry.from_wkt('POLYGON ((10 10, 10 100, 100 100, 10 10))')
geometryReportItem.style = Style.from_mapinfo(mapbasic.brush(45, 255, 65535))
report.items.add(geometryReportItem)
report.draw(contextReport)
fill_on_pages()

Максимально заполняет страницу(ы) отчета.

property horisontalPages

Количество страниц отчета по горизонтали.

Тип результата

int

property items

Элементы отчета.

Тип результата

ReportItems

property name

Наименование отчета.

Тип результата

str

property need_redraw

Signal[] Сигнал о необходимости перерисовки части или всего отчета.

Параметры

rect (Union[Rect, QRectF]) – Часть отчета, которую необходимо обновить.

Тип результата

Signal

property pageSize

Размеры одного листа отчета.

Тип результата

QSizeF

property unit

Единицы измерения в отчете.

Тип результата

LinearUnit

property verticalPages

Количество страниц отчета по вертикали.

Тип результата

int

Список элементов отчета - ReportItems

class axipy.render.ReportItems

Список элементов отчета.

add(item)

Добавляет новый элемент в отчет.

Параметры

item (ReportItem) – Вставляемый элемент

at(idx)

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

Параметры

idx (int) – Индекс.

Тип результата

ReportItem

Результат

Элемент отчета. Возвращает None в случае, если не найдено.

property count

Количество элементов отчета в текущем отчете на данный момент.

Тип результата

int

remove(idx)

Удаляет элемент по его индексу. Если индекс корректен, элемент будет удален.

Параметры

idx (int) – Индекс удаляемого элемента.

Элемент отчета - ReportItem

digraph geometry { node [shape="box", style=filled, fillcolor="lightgray"] rankdir=LR labelloc="t"; label="Элементы отчета:"; ReportItem [ href="#ref-label-reportitem-class" ]; GeometryReportItem [ href="#ref-label-geometryreportitem-class" ]; MapReportItem [ href="#ref-label-mapreportitem-class" ]; RasterReportItem [ href="#ref-label-rasterreportitem-class" ]; TableReportItem [ href="#ref-label-tablereportitem-class" ]; LegendReportItem [ href="#ref-label-legendreportitem-class" ]; ScaleBarReportItem [ href="#ref-label-scalebarreportitem-class" ]; ReportItem -> GeometryReportItem; ReportItem -> MapReportItem; ReportItem -> RasterReportItem; ReportItem -> TableReportItem; ReportItem -> LegendReportItem; ReportItem -> ScaleBarReportItem; }
class axipy.render.ReportItem

Базовый класс элемента отчета.

property borderStyle

Стиль обводки элемента отчета.

Тип результата

Style

property fillStyle

Стиль заливки элемента отчета.

Тип результата

Style

intersects(checkRect)

Пересекается ли с переданным прямоугольником.

Параметры

checkRect (Union[Rect, QRectF]) – Прямоугольник для анализа.

property rect

Размер (ограничивающий прямоугольник) элемента отчета в единицах измерения отчета.

Тип результата

Rect

Элемент отчета: геометрия - GeometryReportItem

class axipy.render.GeometryReportItem

Базовые классы: axipy.render.ReportItem

Элемент отчета типа геометрия.

property geometry

Геометрическое представление объекта.

Тип результата

Geometry

property style

Стиль геометрического представления объекта.

Тип результата

Style

Элемент отчета: карта - MapReportItem

class axipy.render.MapReportItem(rect, map)

Базовые классы: axipy.render.ReportItem

Элемент отчета, основанный на созданной ранее карте.

Примечание

Перед созданием элемента отчета необходимо предварительно создать карту, на основе которой будет создан элемент отчета.

Параметры
  • rect (Union[Rect, QRectF]) – Размер элемента отчета в единицах измерения отчета.

  • map (Map) – Карта, на базе которой будет создан элемент отчета.

Пример:

mapReportItem = MapReportItem(Rect(10, 10, 200, 100), map)
mapReportItem.scale = 200000000
report.items.add(mapReportItem)
property center

Центр карты в координатах карты.

Тип результата

Pnt

map()

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

Тип результата

Map

property scale

Текущее значение масштаба карты.

Тип результата

float

Элемент отчета: растр - RasterReportItem

class axipy.render.RasterReportItem(rect, data)

Базовые классы: axipy.render.ReportItem

Элемент отчета, основанный на растре.

Примечание

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

Параметры
  • rect (Union[Rect, QRectF]) – Размер элемента отчета в единицах измерения отчета.

  • data (str) – Путь к растровому файлу или его URL.

Пример:

# Растр на базе URL
rasterReportItem = RasterReportItem(Rect(10, 10, 140, 70),
    'https://upload.wikimedia.org/wikipedia/en/7/72/World_Map_WSF.svg.png')
report.items.add(rasterReportItem)

Пример:

# Растр на базе локального файла
rasterReportItem = RasterReportItem(Rect(10, 10, 140, 70), 'TrueMarble.tif')
report.items.add(rasterReportItem)
property preserveAspectRatio

Сохранять пропорции при изменении размеров элемента.

Тип результата

bool

Элемент отчета: таблица - TableReportItem

class axipy.render.TableReportItem(rect, table)

Базовые классы: axipy.render.ReportItem

Элемент отчета табличного представления данных.

Примечание

Позволяет отображать как таблицу целиком, так и накладывая дополнительные ограничения при отображении.

Параметры
  • rect (Union[Rect, QRectF]) – Размер элемента отчета в единицах измерения отчета.

  • table (Table) – Таблица.

Пример:

table_world = io.openfile('world.tab')
tableReportItem = TableReportItem(Rect(10, 150, 180, 100), table_world)
tableReportItem.columns = table_world.schema.attribute_names()[:3] # Берем для показа первые три атрибута
tableReportItem.rowFrom = 5 # С 5-й сторки
tableReportItem.rowCount = 5 # Показываем 5 строк
tableReportItem.startNumber = 5 # Нумерация с 5
tableReportItem.borderStyle = Style.from_mapinfo("Pen (1, 2, 0)") # Стиль рамки
tableReportItem.fillStyle = Style.from_mapinfo("Brush (8, 65535)") # Стиль фона
report.items.add(tableReportItem)
property columns

Перечень наименований для отображения. Если задать пустой список, будут отображены все поля таблицы.

Тип результата

list

refreshValues()

«Обновление данных из таблицы.

property rowCount

Количество записей. Если указано -1, то берутся все оставшиеся записи.

Тип результата

int

property rowFrom

Номер первой строки из таблицы или запроса.

Тип результата

int

property startNumber

Нумерация записей. Порядковый номер первой записи.

Тип результата

int

table()

Базовая таблица или запрос.

Тип результата

Table

Элемент отчета: легенда - LegendReportItem

class axipy.render.LegendReportItem(rect, legend)

Базовые классы: axipy.render.ReportItem

Элемент отчета, основанный на легенде векторного или тематического слоя.

Параметры
  • rect (Union[Rect, QRectF]) – Размер элемента отчета в единицах измерения отчета.

  • legend (Legend) – Предварительно созданная легенда. Она может относиться как к векторному, так и к тематическому слою.

Пример создания легенды для тематического слоя:

world = Layer.create(table_world) # Базовый слой
range_ = RangeThematicLayer("Население") # Тематический слой
world.thematic.add(range_)
legend = Legend(range_) # Легенда
legendReportItem = LegendReportItem(Rect(100, 130, 50, 70), legend) # Элемент отчета
report.items.add(legendReportItem)  # Добавляем в отчет

Элемент отчета: масштабная линейка - ScaleBarReportItem

class axipy.render.ScaleBarReportItem(rect, map)

Базовые классы: axipy.render.ReportItem

Элемент отчета - масштабная линейка для карты.

Пример:

scaleBarReportItem = ScaleBarReportItem(Rect(120, 130, 80, 50), mapReportItem)
report.items.add(scaleBarReportItem)