vorigen Artikel haben wir über die Berichtsereignisse geschrieben, und heute geht die Rede um Viewerereignisse.
onPrepareVariables
Das Ereignis wird am Anfang des Renderns des Berichtes vor dem Ausfüllen der Variablen im Bericht aufgerufen. Das Ereignis entsteht sofort nach der Verarbeitung des Ereignisses onPrepareVariable bei der Instanz StiReport. Die Liste der Argumente des Ereignis-Behandlers:
onBeginProcessData
Das Ereignis wird vor der Anfrage der Daten, die für Erstellen vom Bericht erforderlich sind, aufgerufen, und entsteht sofort nach der Verarbeitung des Ereignisses onBeginProcessData bei der Instanz StiReport. Die Liste der Argumente des Ereignis-Behandlers:
onEndProcessData
Dieses Ereignis wird nach dem Erhalten der Daten, die für Erstellen vom Bericht erforderlich sind, aufgerufen. Das Ereignis entsteht sofort nach der Verarbeitung des Ereignisses onEndProcessData bei der Instanz StiReport. Die Liste der Argumente des Ereignis-Behandlers:
onPrintReport
Dieses Ereignis ermöglicht entweder den Bericht vor dem Drucken anzupassen oder selbstständig das Drucken zu realisieren.
Das Ereignis wird vor dem Drucken vom Bericht aufgerufen. Die Liste der Argumente des Ereignis-Behandlers:
onBeginExportReport
Das Ereignis ermöglicht die Einstellungen des Exports zu ändern oder den Bericht vor dem Export zu modifizieren.
Dieses Ereignis wird vor dem Export vom Bericht, aber nach dem Festlegen von Export-Einstellungen, die im Dialogfenster gestellt sind, aufgerufen. Die Liste der Argumente des Ereignis-Behandlers:
onEndExportReport
Das Ereignis ermöglicht selbstständig das Speichern der Datei zu realisieren.
Dieses Ereignis wird nach dem Export, aber, vor dem Speichern vom Bericht aufgerufen. Die Liste der Argumente des Ereignis-Behandlers:
onInteraction
Das Ereignis wird vor dem Ausführen von der Interaktivität aufgerufen. Die Liste der Argumente des Ereignis-Behandlers:
onEmailReport
Das Ereignis ermöglicht das Senden vom exportierten Bericht per E-Mail zu realisieren.
Das Ereignis wird vor dem Senden vom Bericht per E-Mail aufgerufen. Die Liste der Argumente des Ereignis-Behandlers:
onDesignReport
Das Ereignis ermöglicht den Designer anzuzeigen und die Berichtsvorlage zu übertragen.
Dieses Ereignis entsteht beim Klicken auf die Schaltfläche Design. Die Liste der Argumente des Ereignis-Behandlers:
onShowReport
Das Ereignis ermöglicht den Bericht vor dem Anzeigen im Viewer zu modifizieren.
Dieses Ereignis wird vor dem Erstellen nach dem Anzeigen des Berichtes im Viewer aufgerufen. Die Liste der Argumente des Ereignis-Behandlers:
onOpenReport
Das Ereignis ermöglicht eigene Weise des Öffnens der Vorlagen zu realisieren.
Dieses Ereignis wird vor dem Dialogfenster der Datei-Auswahl vom Öffnen des Berichtes und nach der Übertragung des Berichtes im Viewer. Die Liste der Argumente des Ereignis-Behandlers:
onOpenedReport
Das Ereignis ermöglicht den Bericht vor der Übertragung im Viewer zu modifizieren.
Dieses Ereignis wird nach dem Öffnen und vor der Übertragung des Berichtes im Viewer aufgerufen. Die Liste der Argumente des Ereignis-Behandlers:
Im Die Viewerereignisse
Das Ereignis wird am Anfang des Renderns des Berichtes vor dem Ausfüllen der Variablen im Bericht aufgerufen. Das Ereignis entsteht sofort nach der Verarbeitung des Ereignisses onPrepareVariable bei der Instanz StiReport. Die Liste der Argumente des Ereignis-Behandlers:
{
event: "PrepareVariables",
sender: "Viewer",
report: StiReport,
preventDefault: boolean,
async: boolean,
variables: []
}
Ein Beispiel des Ersetzens vom Wert in der Berichtsvariablen:
viewer.onPrepareVariables = (args, callback) => {
args.variables[0].value = "Replace value";
}
Das Ereignis wird vor der Anfrage der Daten, die für Erstellen vom Bericht erforderlich sind, aufgerufen, und entsteht sofort nach der Verarbeitung des Ereignisses onBeginProcessData bei der Instanz StiReport. Die Liste der Argumente des Ereignis-Behandlers:
{
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
}
Unten ist ein Beispiel des Ersetzens von der Verbindungszeichenfolge dargestellt:
viewer.onBeginProcessData = (args) => {
if (args.database == "MySQL")
args.connectionString = "new connection string";
}
Und auch ein Beispiel von eigener Umsetzung des Erhaltens von Daten:
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);
}
}
Dieses Ereignis wird nach dem Erhalten der Daten, die für Erstellen vom Bericht erforderlich sind, aufgerufen. Das Ereignis entsteht sofort nach der Verarbeitung des Ereignisses onEndProcessData bei der Instanz StiReport. Die Liste der Argumente des Ereignis-Behandlers:
{
sender: "Viewer",
event: "EndProcessData",
report: StiReport,
command: string,
dataSource: string,
connection: string,
database: string,
result: DataSet|any
}
Ein Beispiel des Korrigierens der Daten vom Adapter:
viewer.onEndProcessData = (args) => {
if (args.command == "ExecuteQuery" && args.dataSource == "Categories")
args.result.rows.push(rowData) ;
// https://github.com/stimulsoft/DataAdapters.JS/
}
Dieses Ereignis ermöglicht entweder den Bericht vor dem Drucken anzupassen oder selbstständig das Drucken zu realisieren.
Das Ereignis wird vor dem Drucken vom Bericht aufgerufen. Die Liste der Argumente des Ereignis-Behandlers:
{
sender: "Viewer",
event: "PrintReport",
report: StiReport,
preventDefault: boolean,
async: boolean
printAction: string,
}
Ein Beispiel vom Löschen des Bildes vor dem Drucken
viewer.onPrintReport = (args) => {
var page = args.report.renderedPages.getByIndex(0);
var image = page.components.getByName("Image1");
if (image)
page.components.remove(image);
}
Das Ereignis ermöglicht die Einstellungen des Exports zu ändern oder den Bericht vor dem Export zu modifizieren.
Dieses Ereignis wird vor dem Export vom Bericht, aber nach dem Festlegen von Export-Einstellungen, die im Dialogfenster gestellt sind, aufgerufen. Die Liste der Argumente des Ereignis-Behandlers:
{
sender: "Viewer",
event: "BeginExportReport",
report: StiReport
preventDefault: boolean,
async: boolean,
action: StiExportAction,
settings: IStiDashboardExportSettings | StiExportSettings,
format: StiExportFormat,
formatName: string,
fileName: string,
openAfterExport: boolean,
}
Ein Beispiel des Korrigierens der Export-Parameter:
viewer.onBeginExportReport = (args) => {
if (args.format == Stimulsoft.Report.StiExportFormat.Pdf)
args.settings.imageQuality = 0.5;
}
Das Ereignis ermöglicht selbstständig das Speichern der Datei zu realisieren.
Dieses Ereignis wird nach dem Export, aber, vor dem Speichern vom Bericht aufgerufen. Die Liste der Argumente des Ereignis-Behandlers:
{
sender: "Viewer",
event: "BeginExportReport",
report: StiReport,
preventDefault: boolean,
async: boolean,
action: StiExportAction,
format: StiExportFormat,
formatName: string,
fileName: string,
openAfterExport: boolean,
data: string | number[]
}
Ein Beispiel von Veränderung des Namens der exportierten Datei:
viewer.onEndExportReport = (args) => {
args.fileName = "SampleFileName.txt";
}
Das Ereignis wird vor dem Ausführen von der Interaktivität aufgerufen. Die Liste der Argumente des Ereignis-Behandlers:
{
sender: "Viewer",
event: "Interaction",
report: StiReport,
preventDefault: boolean,
async: boolean,
action: string,
variables,
sortingParameters,
collapsingParameters,
drillDownParameters,
filteringParameters
}
Ein Beispiel vom Ersetzen des Wertes der Variable:
viewer.onInteraction = (args) => {
if (args.action == "Variables")
args.variables["Variable1"] = "New Value";
}
Das Ereignis ermöglicht das Senden vom exportierten Bericht per E-Mail zu realisieren.
Das Ereignis wird vor dem Senden vom Bericht per E-Mail aufgerufen. Die Liste der Argumente des Ereignis-Behandlers:
{
sender: "Viewer",
event: "EmailReport",
report: StiReport,
settings: {
email: string;
subject: string;
message: string;
},
format: StiExportFormat,
formatName: string,
fileName: string,
data: number[] | string
}
Um die Schaltfläche zu aktivieren, muss man den folgenden Parameter zu stellen:
viewerOptions.toolbar.showSendEmailButton = true;
Ein Beispiel vom E-Mail-Senden:
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);
}
Das Ereignis ermöglicht den Designer anzuzeigen und die Berichtsvorlage zu übertragen.
Dieses Ereignis entsteht beim Klicken auf die Schaltfläche Design. Die Liste der Argumente des Ereignis-Behandlers:
{
sender: "Viewer",
event: "DesignReport",
report: StiReport
}
Um die Schaltfläche zu aktivieren, muss man den folgenden Parameter zu stellen:
viewerOptions.toolbar.showDesignButton = true;
Ein Beispiel vom Löschen des Viewers, Erstellen des Designers und Übertragung des Berichtes zum Designer:
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;
}
Das Ereignis ermöglicht den Bericht vor dem Anzeigen im Viewer zu modifizieren.
Dieses Ereignis wird vor dem Erstellen nach dem Anzeigen des Berichtes im Viewer aufgerufen. Die Liste der Argumente des Ereignis-Behandlers:
{
sender: "Viewer",
event: "ShowReport",
report: StiReport,
preventDefault: boolean,
async: boolean
}
Das Ereignis ermöglicht eigene Weise des Öffnens der Vorlagen zu realisieren.
Dieses Ereignis wird vor dem Dialogfenster der Datei-Auswahl vom Öffnen des Berichtes und nach der Übertragung des Berichtes im Viewer. Die Liste der Argumente des Ereignis-Behandlers:
{
sender: "Viewer",
event: "OpenReport",
report: StiReport,
preventDefault: boolean,
async: boolean
}
Um die Schaltfläche zu aktivieren, muss man den folgenden Parameter zu stellen:
viewerOptions.toolbar.showOpenButton = true;
Ein Beispiel vom Unterbrechen des Aufrufens des Dialogfensters und der Übertragung von eigener Vorlage:
viewer.onOpenedReport = (args) => {
args.preventDefault = true;
args.async = true;
args.report = anotherReport;
callback();
}
Das Ereignis ermöglicht den Bericht vor der Übertragung im Viewer zu modifizieren.
Dieses Ereignis wird nach dem Öffnen und vor der Übertragung des Berichtes im Viewer aufgerufen. Die Liste der Argumente des Ereignis-Behandlers:
{
sender: "Viewer",
event: "OpenedReport",
report: StiReport,
preventDefault: boolean,
async: boolean
}
Um die Schaltfläche zu aktivieren, muss man den folgenden Parameter zu stellen:
viewerOptions.toolbar.showOpenButton = true;
Ein Beispiel vom Unterbrechen des Öffnens des Berichtes, wenn die Eigenschaft reportAuthor nicht „Stimulsoft“ gleich:
viewer.onOpenedReport = (args) => {
if (args.report.reportAuthor != "Stimulsoft") {
args.preventDefault = true;
window.alert("report.reportAuthor == " + args.report.reportAuthor);
}
}
Wenn Sie noch Fragen über Viewerereignisse haben, kontaktieren Sie uns. Im nächsten Artikel erzählen wir über die Ereignisse des Berichtsdesigners.