Для работы с переменными отчета во вьювере реализована поддержка специальной панели параметров. Для добавления параметра на панель необходимо в отчете определить переменную, запрашиваемую у пользователя. При просмотре отчета во вьювере такая переменная будет автоматически добавлена на панель параметров. Поддерживаются все типы переменных отчета (обычные переменные, дата и время, диапазон, списки и др.).

 

Значения переменных на панели параметров

Для выполнения каких-либо действий перед применением параметров предназначено специальное событие onInteraction, которое будет вызвано при любых интерактивных действиях вьювера. В аргументах события будут переданы тип действия, объект отчета, а также коллекция переменных и их значений, расположенных на панели параметров. Тип действия в данном случае будет иметь значение "Variables". Подробное описание доступных значений аргументов события находится в разделе События вьювера.

 

app.py

 

from stimulsoft_reports.viewer import StiViewer

 

viewer = StiViewer()

viewer.onInteraction += 'interaction'

 

 

viewer.html

 

<script>

  function interaction(args) {

      if (args.action == "Variables") {

          let variables = args.variables;

       }

   }

</script>

 

 

 

Коллекция переменных представляет собой объект, содержащий все переменные панели параметров. Допустимо изменять значения переменных, при этом тип нового значения должен соответствовать типу изменяемой переменной.

 

viewer.html

 

<script>

  let variables = {

       VariableString: "Text value",

       VariableInt: 20

   }

</script>

 

 

 

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

 

 

Настройка панели параметров

Если работа с переменными во вьювере не требуется, то можно полностью отключить данную возможность. Для этого предназначено свойство showParametersButton, которому необходимо установить значение False.

 

app.py

 

from stimulsoft_reports.viewer import StiViewer

 

viewer = StiViewer()

viewer.options.toolbar.showParametersButton = False

 

 

Информация

 

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

 

 

 

Значения переменных при построении отчета

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

 

app.py

 

from stimulsoft_reports.viewer import StiViewer

from stimulsoft_reports.events import StiReportEventArgs

 

def prepareVariables(args: StiVariablesEventArgs):

   variables = args.variables

 

viewer = StiViewer()

viewer.onPrepareVariables += onPrepareVariables

viewer.onPrepareVariables += 'onPrepareVariables'

 

 

 

viewer.html

 

<script>

  function prepareVariables(args) {

      let variables = args.variables;

   }

</script>

 

 

 

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