прошлой статье мы рассказывали о событиях отчета, а в этой поговорим о событиях вьювера.
onPrepareVariables
Событие вызывается в начале построения отчета перед заполнением переменных в отчете. Событие возникает сразу после обработки события onPrepareVariables у экземпляра StiReport. Ниже представлен список аргументов обработчика событий:
onBeginProcessData
Событие вызывается перед запросом данных, необходимых для построения отчета. Событие возникает сразу после обработки события onBeginProcessData у экземпляра StiReport. Ниже представлен список аргументов обработчика событий:
onEndProcessData
Событие вызывается после получения данных, необходимых для построения отчета. Событие возникает сразу после обработки события onEndProcessData у экземпляра StiReport. Ниже представлен список аргументов обработчика событий:
onPrintReport
Предоставляет возможность модифицировать отчет перед печатью или самостоятельно реализовать печать.
Событие вызывается перед печатью отчета. Ниже представлен список аргументов обработчика событий:
onBeginExportReport
Предоставляет возможность корректировать настройки экспорта или модифицировать отчет перед экспортом.
Событие вызывается перед экспортом отчета, но после установки настроек экспорта, заданных в диалоговом окне. Ниже представлен список аргументов обработчика событий:
onEndExportReport
Предоставляет возможность самостоятельно реализовать сохранение файла.
Событие вызывается после экспорта отчета, но перед сохранением файла. Ниже представлен список аргументов обработчика событий:
onInteraction
Событие вызывается перед выполнением интерактивности. Ниже представлен список аргументов обработчика событий:
onEmailReport
Предоставляет возможность реализовать отправку экспортированного отчета по Email.
Событие вызывается перед отправкой отчета по Email. Ниже представлен список аргументов обработчика событий:
onDesignReport
Предоставляет возможность показать дизайнер и передать шаблона отчета.
Событие вызывается при нажатии кнопки Design. Ниже представлен список аргументов обработчика событий:
onShowReport
Предоставляет возможность модифицировать отчет перед его отображением во вьювере.
Событие вызывается после построения отчета перед его отображением во вьювере. Ниже представлен список аргументов обработчика событий:
onOpenReport
Предоставляет возможность реализовать собственный способ открытия шаблонов.
Событие вызывается до диалогового окна выбора файла открытия отчета и перед передачей его во вьювере. Ниже представлен список аргументов обработчика событий:
onOpenedReport
Предоставляет возможность модифицировать отчет перед его передачей во вьювере.
Событие вызывается после открытия отчета и перед передачей его во вьювере. Ниже представлен список аргументов обработчика событий:
В События вьювера
Событие вызывается в начале построения отчета перед заполнением переменных в отчете. Событие возникает сразу после обработки события onPrepareVariables у экземпляра StiReport. Ниже представлен список аргументов обработчика событий:
{
event: "PrepareVariables",
sender: "Viewer",
report: StiReport,
preventDefault: boolean,
async: boolean,
variables: []
}
Пример замены значения переменной:
viewer.onPrepareVariables = (args, callback) => {
args.variables[0].value = "Replace value";
}
Событие вызывается перед запросом данных, необходимых для построения отчета. Событие возникает сразу после обработки события onBeginProcessData у экземпляра StiReport. Ниже представлен список аргументов обработчика событий:
{
sender: "Viewer",
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):
viewer.onBeginProcessData = (args) => {
if (args.database == "MySQL")
args.connectionString = "new connection string";
}
А также пример собственной реализации получения данных:
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 у экземпляра StiReport. Ниже представлен список аргументов обработчика событий:
{
sender: "Viewer",
event: "EndProcessData",
report: StiReport,
command: string,
dataSource: string,
connection: string,
database: string,
result: DataSet|any
}
Пример корректировки данных от адаптера:
viewer.onEndProcessData = (args) => {
if (args.command == "ExecuteQuery" && args.dataSource == "Categories")
args.result.rows.push(rowData) ;
// https://github.com/stimulsoft/DataAdapters.JS/
}
Предоставляет возможность модифицировать отчет перед печатью или самостоятельно реализовать печать.
Событие вызывается перед печатью отчета. Ниже представлен список аргументов обработчика событий:
{
sender: "Viewer",
event: "PrintReport",
report: StiReport,
preventDefault: boolean,
async: boolean
printAction: string,
}
Пример удаления картинки перед печатью:
viewer.onPrintReport = (args) => {
var page = args.report.renderedPages.getByIndex(0);
var image = page.components.getByName("Image1");
if (image)
page.components.remove(image);
}
Предоставляет возможность корректировать настройки экспорта или модифицировать отчет перед экспортом.
Событие вызывается перед экспортом отчета, но после установки настроек экспорта, заданных в диалоговом окне. Ниже представлен список аргументов обработчика событий:
{
sender: "Viewer",
event: "BeginExportReport",
report: StiReport
preventDefault: boolean,
async: boolean,
action: StiExportAction,
settings: IStiDashboardExportSettings | StiExportSettings,
format: StiExportFormat,
formatName: string,
fileName: string,
openAfterExport: boolean,
}
Пример корректировки параметров экспорта:
viewer.onBeginExportReport = (args) => {
if (args.format == Stimulsoft.Report.StiExportFormat.Pdf)
args.settings.imageQuality = 0.5;
}
Предоставляет возможность самостоятельно реализовать сохранение файла.
Событие вызывается после экспорта отчета, но перед сохранением файла. Ниже представлен список аргументов обработчика событий:
{
sender: "Viewer",
event: "BeginExportReport",
report: StiReport,
preventDefault: boolean,
async: boolean,
action: StiExportAction,
format: StiExportFormat,
formatName: string,
fileName: string,
openAfterExport: boolean,
data: string | number[]
}
Пример изменения имени экспортированного файла:
viewer.onEndExportReport = (args) => {
args.fileName = "SampleFileName.txt";
}
Событие вызывается перед выполнением интерактивности. Ниже представлен список аргументов обработчика событий:
{
sender: "Viewer",
event: "Interaction",
report: StiReport,
preventDefault: boolean,
async: boolean,
action: string,
variables,
sortingParameters,
collapsingParameters,
drillDownParameters,
filteringParameters
}
Пример замены значения переменной:
viewer.onInteraction = (args) => {
if (args.action == "Variables")
args.variables["Variable1"] = "New Value";
}
Предоставляет возможность реализовать отправку экспортированного отчета по Email.
Событие вызывается перед отправкой отчета по Email. Ниже представлен список аргументов обработчика событий:
{
sender: "Viewer",
event: "EmailReport",
report: StiReport,
settings: {
email: string;
subject: string;
message: string;
},
format: StiExportFormat,
formatName: string,
fileName: string,
data: number[] | string
}
Для включения кнопки нужно установить следующий параметр:
viewerOptions.toolbar.showSendEmailButton = true;
Пример отправки Email:
viewer.onEmailReport = (args) => {
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);
}
Предоставляет возможность показать дизайнер и передать шаблона отчета.
Событие вызывается при нажатии кнопки Design. Ниже представлен список аргументов обработчика событий:
{
sender: "Viewer",
event: "DesignReport",
report: StiReport
}
Для включения кнопки нужно установить следующий параметр:
viewerOptions.toolbar.showDesignButton = true;
Пример удаления вьювера, создания дизайнера и передачи отчета дизайнеру:
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;
}
Предоставляет возможность модифицировать отчет перед его отображением во вьювере.
Событие вызывается после построения отчета перед его отображением во вьювере. Ниже представлен список аргументов обработчика событий:
{
sender: "Viewer",
event: "ShowReport",
report: StiReport,
preventDefault: boolean,
async: boolean
}
Предоставляет возможность реализовать собственный способ открытия шаблонов.
Событие вызывается до диалогового окна выбора файла открытия отчета и перед передачей его во вьювере. Ниже представлен список аргументов обработчика событий:
{
sender: "Viewer",
event: "OpenReport",
report: StiReport,
preventDefault: boolean,
async: boolean
}
Для включения кнопки нужно установить следующий параметр:
viewerOptions.toolbar.showOpenButton = true;
Пример прерывания вызова диалогового окна и передачи своего шаблона:
viewer.onOpenedReport = (args) => {
args.preventDefault = true;
args.async = true;
args.report = anotherReport;
callback();
}
Предоставляет возможность модифицировать отчет перед его передачей во вьювере.
Событие вызывается после открытия отчета и перед передачей его во вьювере. Ниже представлен список аргументов обработчика событий:
{
sender: "Viewer",
event: "OpenedReport",
report: StiReport,
preventDefault: boolean,
async: boolean
}
Для включения кнопки нужно установить следующий параметр:
viewerOptions.toolbar.showOpenButton = true;
Пример прерывания открытия отчета, если свойство reportAuthor не равно "Stimulsoft":
viewer.onOpenedReport = (args) => {
if (args.report.reportAuthor != "Stimulsoft") {
args.preventDefault = true;
window.alert("report.reportAuthor == " + args.report.reportAuthor);
}
}
Если у вас остались вопросы по событиям вьювера, свяжитесь с нами. В следующей статье мы расскажем про события дизайнера отчетов.