Информация

 

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

 

 

 

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

 

onPrepareVariables

 

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

 

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

Описание

sender

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

event

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

report

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

preventDefault

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

async

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

 

designer.html

...

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

 

designer.html

...

//Replace connection string

designer.onBeginProcessData = (args) => {

if (args.database == "MySQL")

args.connectionString = "new connection string";

}

...

 

//Add a some data

designer.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 формате. Он имеет две коллекции - колонки и строки с их значениями.

 

designer.html

...

designer.onEndProcessData = (args) => {

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

args.result.rows.push(rowData) ;

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

}

...

 

 

onCreateReport

 

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

 

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

Описание

sender

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

event

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

report

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

preventDefault

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

async

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

isWizardUsed

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

 

designer.html

...

designer.onCreateReport = function (args) {

var report = args.report;

 

var database = new Stimulsoft.Report.Dictionary.StiJsonDatabase("DemoData", "http://localhost/Demo.json");

report.dictionary.databases.add(database);

report.dictionary.synchronize();

}

...

 

 

onOpenReport

 

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

 

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

Описание

sender

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

event

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

report

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

preventDefault

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

async

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

 

designer.html

...

//Call custom callback() function for loading template to designer

designer.onOpenReport = (args, callback) => {

args.async = true;

args.report = anotherReport;

callback();

}

...

 

 

onOpenedReport

 

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

 

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

Описание

sender

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

event

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

report

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

preventDefault

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

async

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

 

designer.html

...

//Add image to report resource when it has been opening

designer.onOpenedReport = (args, callback) => {

args.async = true;

var xhr = new XMLHttpRequest();

xhr.open('GET', "Url to image");

xhr.onload = function () {

var imageData = xhr.response;

     

var resource = new Stimulsoft.Report.Dictionary.StiResource("ImageName");

resource.content = imageData;

args.report.dictionary.resources.add(resource);

callback();

};

xhr.send();

}

...

 

 

onSaveReport

 

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

 

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

Описание

sender

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

event

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

report

Объект отчета для сохранения.

preventDefault

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

async

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

fileName

Имя сохраняемого файла.

autoSave

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

 

designer.html

...

//Remove report resources before saving

designer.onSaveReport = (args, callback) => {

var report = args.report.clone();

report.dictionary.resources.clear();

args.report = report;

}

...

 

 

onSaveAsReport

 

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

 

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

Описание

sender

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

event

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

report

Объект отчета для сохранения.

preventDefault

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

async

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

fileName

Имя сохраняемого файла.

autoSave

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

 

designer.html

...

//Stop and redefinition the save method

designer.onSaveAsReport = (args, callback) => {

args.preventDefault = true;

var jsonString = args.report.saveToJsonString();

// save report

}

...

 

 

onPreviewReport

 

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

 

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

Описание

sender

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

event

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

report

Объект отчета для просмотра.

preventDefault

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

async

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

viewer

Объект StiViewer.

 

designer.html

...

designer.onPreviewReport = function (args) {

var dataSet = new Stimulsoft.System.Data.DataSet("SimpleDataSet");

dataSet.readJsonFile("Data/Demo.json");

 

args.report.regData(dataSet.dataSetName, "", dataSet);

}

...

 

 

onExit

 

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

 

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

Описание

sender

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

event

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

 

designer.html

...

designer.onExit = function (args) {

console.log(args.event);

}

...