Информация

 

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

 

 

 

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

 

onPrepareVariables

 

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

 

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

Описание

sender

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

event

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

report

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

preventDefault

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

async

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

 

viewer.html

...

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

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

}

...

 

 

onBeginProcessData

 

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

 

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

Описание

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 источниках данных.

 

viewer.html

...

//Replace connection string

viewer.onBeginProcessData = (args) => {

if (args.database == "MySQL")

args.connectionString = "new connection string";

}

...

 

//Add a some data

viewer.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

 

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

 

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

Описание

sender

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

event

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

report

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

command

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

dataSource

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

connection

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

database

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

result

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

 

viewer.html

...

viewer.onEndProcessData = (args) => {

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

args.result.rows.push(rowData) ;

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

}

...

 

 

onPrintReport

 

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

 

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

Описание

sender

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

event

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

report

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

preventDefault

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

async

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

printAction

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

 

viewer.html

...

//Remove image before report print

viewer.onPrintReport = (args) => {

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

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

if (image)

page.components.remove(image);

}

...

 

 

onBeginExportReport

 

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

 

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

Описание

sender

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

event

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

report

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

preventDefault

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

async

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

action

Этот идентификатор предоставляет возможность определить StiExportAction.

settings

Настройки экспорта отчета или дашборда.

format

Формат, в который будет произведен экспорт:

strel11 Stimulsoft.Report.StiExportFormat.Pdf,

strel11 Stimulsoft.Report.StiExportFormat.Excel2007,

strel11 Stimulsoft.Report.StiExportFormat.Word,

strel11 Stimulsoft.Report.StiExportFormat.Html,

strel11 Stimulsoft.Report.StiExportFormat.Html5,

strel11 Stimulsoft.Report.StiExportFormat.Document.

strel11 Stimulsoft.Report.StiExportFormat.Text,

strel11 Stimulsoft.Report.StiExportFormat.Csv,

strel11 Stimulsoft.Report.StiExportFormat.ImageSvg,

strel11 Stimulsoft.Report.StiExportFormat.PowerPoint,

strel11 Stimulsoft.Report.StiExportFormat.Odt,

strel11 Stimulsoft.Report.StiExportFormat.Ods.

formatName

Название выбранного формата экспорта отчета.

fileName

Наименование файла отчета, которое будет использовано после экспорта.

openAfterExport

Флаг указывает на то, что экспортирование отчета будет происходить в новой вкладке браузера (значение true), либо по завершению экспорта будет вызвано сохранение файла (значение false).

 

viewer.html

...

viewer.onBeginExportReport = function (args) {

switch (event.format) {

case Stimulsoft.Report.StiExportFormat.Html:

args.settings.zoom = 2; // Set zoom to 200%

break;

}

console.log("exporting");

}

...

 

 

onEndExportReport

 

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

 

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

Описание

sender

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

event

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

fileName

Наименование сэкспортированного файла.

report

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

preventDefault

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

async

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

action

Этот идентификатор предоставляет возможность определить StiExportAction.

format

Формат, в который будет произведен экспорт:

strel11 Stimulsoft.Report.StiExportFormat.Pdf,

strel11 Stimulsoft.Report.StiExportFormat.Excel2007,

strel11 Stimulsoft.Report.StiExportFormat.Word,

strel11 Stimulsoft.Report.StiExportFormat.Html,

strel11 Stimulsoft.Report.StiExportFormat.Html5,

strel11 Stimulsoft.Report.StiExportFormat.Document.

strel11 Stimulsoft.Report.StiExportFormat.Text,

strel11 Stimulsoft.Report.StiExportFormat.Csv,

strel11 Stimulsoft.Report.StiExportFormat.ImageSvg,

strel11 Stimulsoft.Report.StiExportFormat.PowerPoint,

strel11 Stimulsoft.Report.StiExportFormat.Odt,

strel11 Stimulsoft.Report.StiExportFormat.Ods.

formatName

Название выбранного формата экспорта отчета.

fileName

Наименование файла отчета, которое будет использовано после экспорта.

openAfterExport

Флаг указывает на то, что экспортирование отчета будет происходить в новой вкладке браузера (значение true), либо по завершению экспорта будет вызвано сохранение файла (значение false).

data

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

 

viewer.html

...

viewer.onEndExportReport = (args) => {

args.fileName = "SampleFileName.txt";

}

...

 

 

onInteraction

 

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

 

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

Описание

sender

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

event

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

report

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

preventDefault

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

async

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

action

Идентификатор текущего интерактивного действия, может принимать следующие значения:

Sorting - This action happens when using sorting columns;
DrillDown - This action happens when using sorting columns;
Collapsing - This action happens when using of collapsing report blocks.

 

viewer.html

...

viewer.onInteraction = (args) => {

if (args.action == "Variables")

args.variables["Variable1"] = "New Value";

}

...

 

 

onEmailReport

 

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

 

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

Описание

sender

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

event

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

async

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

report

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

settings

Предоставляет возможность указать настройки email как объект:
strel11 email - адрес получателя;

strel11 subject - тема письма;

strel11 message - сообщение письма.

format

Формат, в который будет произведен экспорт:

strel11 Stimulsoft.Report.StiExportFormat.Pdf,

strel11 Stimulsoft.Report.StiExportFormat.Excel2007,

strel11 Stimulsoft.Report.StiExportFormat.Word,

strel11 Stimulsoft.Report.StiExportFormat.Html,

strel11 Stimulsoft.Report.StiExportFormat.Html5,

strel11 Stimulsoft.Report.StiExportFormat.Document.

strel11 Stimulsoft.Report.StiExportFormat.Text,

strel11 Stimulsoft.Report.StiExportFormat.Csv,

strel11 Stimulsoft.Report.StiExportFormat.ImageSvg,

strel11 Stimulsoft.Report.StiExportFormat.PowerPoint,

strel11 Stimulsoft.Report.StiExportFormat.Odt,

strel11 Stimulsoft.Report.StiExportFormat.Ods.

formatName

Название выбранного формата экспорта отчета.

fileName

Наименование файла отчета, которое будет использовано после экспорта.

data

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

 

viewer.html

...

viewer.onEmailReport = (args, callback) => {

args.async = true;

 

var emailAddress = args.settings.email;

var emailMessage = args.settings.message;

var emailSubject = args.settings.subject;

var emailAttachmentFileName = args.fileName;

var emailAttachment = args.data;

sendEmail(emailAddress, emailMessage, emailSubject, emailAttachmentFileName, emailAttachment);

 

setTimeout(() => {

callback();

}, 5000);

}

...

 

 

onDesignReport

 

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

 

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

Описание

sender

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

event

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

report

Объект отчета, просматриваемый во вьювере в данный момент.

 

viewer.html

...

var viewerOptions = new Stimulsoft.Viewer.StiViewerOptions();

viewerOptions.toolbar.showDesignButton = true;

var viewer = new Stimulsoft.Viewer.StiViewer(viewerOptions, "StiViewer", false);

viewer.renderHtml("content");

 

viewer.onDesignReport = (args) => {

var viewerDiv = document.getElementById("content");

viewerDiv.innerHTML = "";

var designerOptions = new Stimulsoft.Designer.StiDesignerOptions();

designerOptions.appearance.fullScreenMode = true;

var designer = new Stimulsoft.Designer.StiDesigner(designerOptions, "StiDesigner", false);

designer.renderHtml("content");

 

designer.report = args.report;

}

...

 

 

onShowReport

 

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

 

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

Описание

sender

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

event

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

report

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

preventDefault

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

async

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

 

viewer.html

...

viewer.onShowReport = function (args) {

console.log("showing");

}

...

 

 

onOpenReport

 

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

 

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

Описание

sender

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

event

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

report

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

preventDefault

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

async

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

 

viewer.html

...

viewer.onOpenReport = (args) => {

args.async = true;

args.report = anotherReport;

callback();

}

...

 

 

onOpenedReport

 

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

 

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

Описание

sender

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

event

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

report

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

preventDefault

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

async

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

 

viewer.html

...

viewer.onOpenedReport = (args) => {

if (args.report.reportAuthor != "Stimulsoft") {

args.preventDefault = true;

window.alert("report.reportAuthor == " + args.report.reportAuthor);

}

}

...