Информация

 

В следствие того, что для панелей индикаторов (дашбордов) и отчетов используется одинаковый унифицированный формат шаблона MRT, методы для загрузки шаблона и работы с данными, то в тексте документации будет использоваться слово «отчет».

 

 

 

Объект StiReport поддерживает события, которые предоставляют возможность выполнить необходимые операции перед определенными действиями. Ниже представлены события объекта отчета с описанием и некоторыми примерами их использования:

 

onPrepareVariables

 

Асинхронное событие вызывается в начале построения отчета перед заполнением переменных в отчете. В таблице ниже представлен список аргументов обработчика событий:

 

Наименование

Описание

sender

Идентификатор компонента, который инициировал данное событие.

event

Идентификатор текущего события, имеет значение PrepareVariables.

report

Объект отчета StiReport.

preventDefault

Этот идентификатор предоставляет возможность остановить дальнейшую обработку события. По умолчанию установлено значение false.

async

Этот идентификатор предоставляет возможность остановить дальнейшую обработку события до выполнения callback функции. По умолчанию установлено значение false.

 

designer.html

...

report.onPrepareVariables = (args, callback) => {

args.variables[0].value = "Replace value";

}

...

 

 

onBeginProcessData

 

Асинхронное событие вызывается перед запросом данных, необходимых для построения отчета. В таблице ниже представлен список аргументов обработчика событий:

 

Наименование

Описание

sender

Идентификатор компонента, который инициировал данное событие.

event

Идентификатор текущего события, имеет значение BeginProcessData.

report

Объект отчета StiReport.

preventDefault

Этот идентификатор предоставляет возможность остановить дальнейшую обработку события. По умолчанию установлено значение false.

async

Этот идентификатор предоставляет возможность остановить дальнейшую обработку события до выполнения callback функции. По умолчанию установлено значение false.

command

Идентификатор текущей команды, может иметь значения TestConnection (проверка соединения) и ExecuteQuery (получения данных из хранилища).

database

Предоставляет возможность указать наименование текущей базы данных.

connection

Имя текущего подключения к источнику данных, заданное в шаблоне отчета.

headers

Предоставляет возможность указать заголовки в запросах.

withCredentials

Предоставляет возможность указать cookies в запросах.

connectionString

Предоставляет возможность указать строку подключения к хранилищу данных.

dataSource

Предоставляет возможность указать наименование источника данных.

queryString

SQL запрос на получение данных. Используется только с командой ExecuteQuery.

timeout

Предоставляет возможность указать таймаут запроса.

parameters

Предоставляет возможность указать параметр в запросе.

escapeQueryParameters

Предоставляет возможность использовать экранированную часть запроса. По умолчанию установлено значение true.

pathData

Предоставляет возможность указать путь к файлу данных.

tryParseDateTime

Предоставляет возможность определить возможность преобразования данных в тип DateTime.

relationDirection

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

pathSchema

Предоставляет возможность указать путь к XSD файлу со схемой данных.

firstRowIsHeader

Предоставляет возможность использовать первую строку как заголовки данных в Excel источниках данных.

collectionName

Наименование коллекции в OData источнике данных.

separator

Предоставляет возможность указать разделитель в CSV источнике данных.

dataType

Предоставляет возможность указать тип данных для GIS источника данных.

codePage

Предоставляет возможность определить кодировку данных в CSV и DBF источниках данных.

 

designer.html

...

//Replace connection string

report.onBeginProcessData = (args) => {

if (args.database == "MySQL")

args.connectionString = "new connection string";

}

...

 

//Add a some data

report.onBeginProcessData = (args, callback) => {

if (args.database == "MySQL"){

args.preventDefault = true;

var result = {

success: true,

rows: [

["value1", 1, false],

["value2", 1, true],

["value3", 2, false]

],

columns: [

"Column1_name",

"Column2_name",

"Column3_name"

],

types:[

"string",

"int",

"boolean"

]

}

 

// https://github.com/stimulsoft/DataAdapters.JS/

callback(result);

}

}

...

 

 

onEndProcessData

 

Событие вызывается после получения данных, необходимых для построения отчета. В таблице ниже представлен список аргументов обработчика событий:

 

Наименование

Описание

sender

Идентификатор компонента, который инициировал данное событие.

event

Идентификатор текущего события, имеет значение EndProcessData.

report

Объект отчета StiReport.

command

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

dataSource

Предоставляет возможность указать наименование источника данных.

connection

Имя текущего подключения к источнику данных, заданное в шаблоне отчета.

database

Предоставляет возможность указать наименование текущей базы данных.

result

Результирующий набор данных в определенном JSON формате. Он имеет две коллекции - колонки и строки с их значениями.

 

designer.html

...

report.onEndProcessData = (args) => {

if (args.command == "ExecuteQuery" && args.dataSource == "Categories")

args.result.rows.push(rowData) ;

// https://github.com/stimulsoft/DataAdapters.JS/

}

...

 

 

onBeginRender

 

Cобытие вызывается в начале построения отчета. Событие не актуально для дашбордов.

 

 

onRendering

 

Событие вызывается в процессе (при создании каждой новой страницы) построения отчета. Событие не актуально для дашбордов.

 

 

onEndRender

 

Cобытие вызывается в конце построения отчета. Событие не актуально для дашбордов.

 

 

onExportingRender

 

Cобытие вызывается перед экспортом отчета или дашборда.

 

 

onExportedRender

 

Cобытие вызывается после экспорта отчета или дашборда.

 

 

onPrinting

 

Cобытие возникает при вызове методов report.print() или report.printToPdf(). Событие не актуально для дашбордов.

 

viewer.html

...

//Remove image before report printing

report.onPrinting = () => {

var page = report.renderedPages.getByIndex(0);

var image = page.components.getByName("Image1");

if (image)

page.components.remove(image);

}

...

 

 

onPrinted

 

Асинхронное событие возникает при вызове методов report.print() или report.printToPdf() после экспорта отчета в HTML или PDF файл (в зависимости от вызываемого метода). Событие не актуально для дашбордов. В таблице ниже представлен список аргументов обработчика событий:

 

Наименование

Описание

sender

Идентификатор компонента, который инициировал данное событие.

event

Идентификатор текущего события, имеет значение Printed.

report

Объект отчета StiReport.

preventDefault

Этот идентификатор предоставляет возможность остановить дальнейшую обработку события. По умолчанию установлено значение false.

async

Этот идентификатор предоставляет возможность остановить дальнейшую обработку события до выполнения callback функции. По умолчанию установлено значение false.

data

Экспортированные данные в виде строки или байтового массива.

 

viewer.html

...

//Stop to report print and define a custom print method

report.onPrinted = (args) => {

args.preventDefault = true;

var printData = args.data;

myPrintingMethod(printData);

}

...

 

 

onRefreshing

 

Событие возникает после построения отчета, если свойство report.refreshTime установлено больше нуля. Также событие возникает при нажатии кнопки Обновить (Refresh) при просмотре отчета или дашборда.