Для запуска дизайнера без отчета не требуется никаких действий. После загрузки компонента, отобразится главное меню дизайнера. При необходимости запуска дизайнера с новым (пустым) отчетом, можно создать новый объект отчета 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>

 

 

 

Подробное описание доступных значений аргументов находится в разделе События дизайнера.