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