отчета и вьювера, а сегодня познакомим вас с событиями дизайнера отчетов.
onPrepareVariables
Событие вызывается в начале построения отчета перед заполнением переменных в отчете. Событие возникает сразу после обработки события onPrepareVariables у экземпляра StiReport. В таблице ниже представлен список аргументов обработчика событий:
onBeginProcessData
Событие вызывается перед запросом данных, необходимых для построения отчета. Событие возникает сразу после обработки события onBeginProcessData у экземпляра StiReport. Ниже представлен список аргументов обработчика событий:
onEndProcessData
Событие вызывается после получения данных, необходимых для построения отчета. Событие возникает сразу после обработки события onEndProcessData у экземпляра StiReport. Ниже представлен список аргументов обработчика событий:
onCreateReport
Событие позволяет модифицировать новый отчет перед присвоением дизайнеру, и вызывается непосредственно перед присвоением нового шаблона дизайнеру. Ниже представлен список аргументов обработчика событий:
onOpenReport
Событие предоставляет возможность реализовать собственный способ открытия шаблонов, и вызывается до диалогового окна выбора файла открытия отчета. Ниже представлен список аргументов обработчика событий:
onOpenedReport
Событие предоставляет возможность модифицировать открытый отчет перед присвоением дизайнеру, и вызывается после открытия отчета и перед присвоение его дизайнеру. Ниже представлен список аргументов обработчика событий:
onSaveReport
Предоставляет возможность модифицировать отчет перед сохранением или реализовать собственный способ сохранения.
Событие вызывается после нажатия кнопки Save и перед сохранением. Ниже представлен список аргументов обработчика событий:
onSaveAsReport
Предоставляет возможность модифицировать отчет перед сохранением или реализовать собственный способ сохранения.
Событие вызывается после нажатия кнопки Save As и перед сохранением. Ниже представлен список аргументов обработчика событий:
onPreviewReport
Событие позволяет модифицировать отчет перед просмотром, и вызывается перед просмотром шаблона в preview. Ниже представлен список аргументов обработчика событий:
onExit
Событие предоставляет возможность реализовать закрытие дизайнера, и вызывается после нажатия кнопки Exit в File Menu.
Для включения кнопки нужно установить следующий параметр:
Мы уже писали про события События дизайнера
Событие вызывается в начале построения отчета перед заполнением переменных в отчете. Событие возникает сразу после обработки события onPrepareVariables у экземпляра StiReport. В таблице ниже представлен список аргументов обработчика событий:
{
event: "PrepareVariables",
sender: "Designer",
report: StiReport,
preventDefault: boolean,
async: boolean,
variables: []
}
Пример замены значения переменной:
designer.onPrepareVariables = (args, callback) => {
args.variables[0].value = "Replace value";
}
Событие вызывается перед запросом данных, необходимых для построения отчета. Событие возникает сразу после обработки события onBeginProcessData у экземпляра StiReport. Ниже представлен список аргументов обработчика событий:
{
sender: "Designer",
event: "BeginProcessData",
report: StiReport,
preventDefault: boolean,
async: boolean,
command: string,
database: string,
connection: string,
headers: [],
withCredentials: string,
// Json
pathData: string,
tryParseDateTime: boolean,
relationDirection: StiRelationDirection,
// Xsd
pathSchema: string,
// Xml
pathData: string,
tryParseDateTime: boolean,
relationDirection: StiRelationDirection,
// Excel
pathData: string,
firstRowIsHeader: boolean,
// OData
connectionString: string,
dataSource: string,
collectionName: string,
// Sql
connectionString: string,
dataSource: string,
queryString: string,
timeout: number,
parameters: { name: string, value: string | number }[],
escapeQueryParameters: boolean,
// Gis
pathData: string,
separator: string,
dataType: StiGisDataType,
// Csv
pathData: string,
separator: string,
codePage: number,
// DBase
pathData: string,
codePage: number
}
Ниже представлен пример замены строки соединения (connection string):
designer.onBeginProcessData = (args) => {
if (args.database == "MySQL")
args.connectionString = "new connection string";
}
А также пример собственной реализации получения данных:
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 у экземпляра StiReport. Ниже представлен список аргументов обработчика событий:
{
sender: "Designer",
event: "EndProcessData",
report: StiReport,
command: string,
dataSource: string,
connection: string,
database: string,
result: DataSet|any
}
Пример корректировки данных от адаптера:
designer.onEndProcessData = (args) => {
if (args.command == "ExecuteQuery" && args.dataSource == "Categories")
args.result.rows.push(rowData) ;
// https://github.com/stimulsoft/DataAdapters.JS/
}
Событие позволяет модифицировать новый отчет перед присвоением дизайнеру, и вызывается непосредственно перед присвоением нового шаблона дизайнеру. Ниже представлен список аргументов обработчика событий:
{
sender: "Designer",
event: "CreateReport",
report: StiReport,
preventDefault: boolean,
async: boolean,
isWizardUsed: boolean
}
Пример добавления JSON к новому шаблону:
designer.onCreateReport = (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();
}
Событие предоставляет возможность реализовать собственный способ открытия шаблонов, и вызывается до диалогового окна выбора файла открытия отчета. Ниже представлен список аргументов обработчика событий:
{
sender: "Designer",
event: "OpenReport",
report: StiReport,
preventDefault: boolean,
async: boolean
}
Пример прерывания вызова диалогового окна и передачи своего шаблона:
designer.onOpenReport = (args, callback) => {
args.preventDefault = true;
args.async = true;
args.report = anotherReport;
callback();
}
Событие предоставляет возможность модифицировать открытый отчет перед присвоением дизайнеру, и вызывается после открытия отчета и перед присвоение его дизайнеру. Ниже представлен список аргументов обработчика событий:
{
sender: "Designer",
event: "OpenedReport",
report: StiReport,
preventDefault: boolean,
async: boolean
}
Пример добавления ресурса в шаблон отчета в асинхронном режиме:
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();
}
Предоставляет возможность модифицировать отчет перед сохранением или реализовать собственный способ сохранения.
Событие вызывается после нажатия кнопки Save и перед сохранением. Ниже представлен список аргументов обработчика событий:
{
sender: "Designer",
event: "SaveReport",
report: StiReport,
preventDefault: boolean,
async: boolean,
fileName: string,
autoSave: boolean
}
Пример отключения сохранения:
designer.onSaveReport = (args, callback) => {
args.preventDefault = true;
var jsonString = args.report.saveToJsonString();
// save report
}
Пример удаления ресурсов из шаблона:
designer.onSaveReport = (args, callback) => {
var report = args.report.clone();
report.dictionary.resources.clear();
args.report = report;
}
Предоставляет возможность модифицировать отчет перед сохранением или реализовать собственный способ сохранения.
Событие вызывается после нажатия кнопки Save As и перед сохранением. Ниже представлен список аргументов обработчика событий:
{
sender: "Designer",
event: "SaveAsReport",
report: StiReport,
preventDefault: boolean,
async: boolean,
fileName: string,
autoSave: boolean
}
Пример отключения сохранения:
designer.onSaveAsReport = (args, callback) => {
args.preventDefault = true;
var jsonString = args.report.saveToJsonString();
// save report
}
Пример удаления ресурсов из шаблона:
designer.onSaveAsReport = (args, callback) => {
var report = args.report.clone();
report.dictionary.resources.clear();
args.report = report;
}
Событие позволяет модифицировать отчет перед просмотром, и вызывается перед просмотром шаблона в preview. Ниже представлен список аргументов обработчика событий:
{
sender: "Designer",
event: "PreviewReport",
report: StiReport
preventDefault: boolean,
async: boolean,
viewer: StiViewer
}
Пример смены свойства reportName у report:
designer.onPreviewReport = (args) => {
var report = args.report;
report.reportName = "Changed Report Name";
}
Событие предоставляет возможность реализовать закрытие дизайнера, и вызывается после нажатия кнопки Exit в File Menu.
Для включения кнопки нужно установить следующий параметр:
designerOptions.toolbar.showFileMenuExit = true
Пример удаления div с дизайнером со страницы:
var designerOptions = new Stimulsoft.Designer.StiDesignerOptions();
designerOptions.toolbar.showFileMenuExit = true;
var designer = new Stimulsoft.Designer.StiDesigner(designerOptions, "StiDesigner", false);
designer.renderHtml("content");
designer.onExit = () => {
var designerDiv = document.getElementById("content");
designerDiv.parentNode.removeChild(designerDiv);
}
Если у вас остались вопросы, напишите нам.