Создание и редактирование отчета
Для запуска дизайнера без отчета не требуется никаких действий. После загрузки компонента, отобразится главное меню дизайнера. При необходимости запуска дизайнера с новым (пустым) отчетом, можно создать новый объект отчета StiReport и присвоить его дизайнеру.
Для редактирования отчета в дизайнере, достаточно создать объект StiReport, загрузить в него шаблон отчета, и присвоить полученный объект дизайнеру. Все остальные действия будут выполнены автоматически, дизайнер отобразит первую страницу шаблона:
app.py |
from flask import Flask, url_for, request from stimulsoft_reports.report import StiReport from stimulsoft_reports.designer import StiDesigner
app = Flask(__name__)
@app.route('/designer', methods = ['GET', 'POST']) def designer(): designer = StiDesinger() designer.options.appearance.fullScreenMode = True
if designer.processRequest(request): return designer.getFrameworkResponse()
report = StiReport() report.loadFile(url_for('static', filename='reports/SimpleList.mrt')) designer.report = report
return designer.getFrameworkResponse()
|
Дизайнер умеет работать со стандартными, упакованными и зашифрованными шаблонами. Подробное описание работы с различными форматами отчетов находится в разделе Загрузка и сохранение отчета.
Новый отчет можно создать, используя главное меню дизайнера. Для предварительной загрузки данных для нового отчета, либо выполнения какие-либо других необходимых действий с новым отчетом, предназначено событие onCreateReport. Данное событие будет вызвано при создании нового пустого отчета из главного меню, либо при создании отчета с использованием мастера.
В событии на стороне Python сервера допускается изменение отчета либо его параметров.
app.py |
from stimulsoft_reports.designer import StiDesigner from stimulsoft_reports.events import StiReportEventArgs
def createReport(args: StiReportEventArgs): args.report['ReportDescription'] = 'This is a report description from the Python server-side.'
designer = StiDesigner() designer.onCreateReport += createReport
|
В событии на стороне JavaScript клиента доступны все функции генератора отчетов. Например, можно подключить данные для нового отчета и синхронизировать их со словарем.
app.py |
from stimulsoft_reports.designer import StiDesigner
designer = StiDesigner() designer.onCreateReport += 'createReport'
|
designer.html |
<script> function createReport(args) { let dataSet = new Stimulsoft.System.Data.DataSet("Demo"); dataSet.readJsonFile("/static/data/Demo.json");
let report = args.report; report.regData(dataSet.dataSetName, "", dataSet); report.dictionary.synchronize(); } </script>
|
Подробное описание доступных значений аргументов находится в разделе События дизайнера.