Heute enden wir die Artikelserie über die Ereignisse im Berichtsgenerator für JavaScript-Anwendungen. Wir haben schon über die Berichts- und Viewerereignisse geschrieben, und in diesem Artikel lernen wir mehr über die Designerereignisse.
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:
onCreateReport 
 
Dieses Ereignis ermöglicht den neuen Bericht vor der Zuweisung dem Designer zu modifizieren, und wird direkt vor der Zuweisung neuer Vorlage dem Designer aufgerufen. Die Liste der Argumente des Ereignis-Behandlers:
onOpenReport 
 
Dieses Ereignis ermöglicht seine eigene Drucken-Weise des Öffnens der Vorlagen zu realisieren, und wird vor dem Dialogfenster der Datei-Auswahl vom Öffnen des Berichtes aufgerufen. Die Liste der Argumente des Ereignis-Behandlers:
onOpenedReport 
 
Dieses Ereignis ermöglicht den geöffneten Bericht vor der Zuweisung dem Designer zu modifizieren, und wird nach dem Öffnen vom Bericht und vor der Zuweisung dem Designer aufgerufen. Die Liste der Argumente des Ereignis-Behandlers:
onSaveReport 
 
Dieses Ereignis ermöglicht den Bericht vor dem Speichern zu modifizieren oder seine eigene Speichern-Weise zu realisieren.
Das Ereignis wird nach dem Drucken auf die Schaltfläche Speichern und vor dem Speichern aufgerufen. Die Liste der Argumente des Ereignis-Behandlers:
onSaveAsReport 
 
Dieses Ereignis ermöglicht den Bericht vor dem Speichern zu modifizieren oder seine eigene Speichern-Weise zu realisieren.
Das Ereignis wird nach dem Drücken auf die Schaltfläche Speichern als und vor dem Speichern aufgerufen. Die Liste der Argumente des Ereignis-Behandlers:
onPreviewReport 
 
Dieses Ereignis ermöglicht den Bericht vor dem Anzeigen zu modifizieren, und wird vor dem Anzeigen der Vorlage in Vorschau aufgerufen. Die Liste der Argumente des Ereignis-Behandlers:
onExit 
 
Dieses Ereignis ermöglicht das Schließen vom Designer zu realisieren, und wird nach dem Drücken auf die Schaltfläche Abmelden im File Menu aufgerufen.
Um die Schaltfläche zu aktivieren, muss man den folgenden Parameter zu stellen:
Die Designerereignisse
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: "Designer",
    report: StiReport,
    preventDefault: boolean,
    async: boolean,
    
    variables: []
}designer.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: "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
}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);
    }
}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: "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/
}Dieses Ereignis ermöglicht den neuen Bericht vor der Zuweisung dem Designer zu modifizieren, und wird direkt vor der Zuweisung neuer Vorlage dem Designer aufgerufen. Die Liste der Argumente des Ereignis-Behandlers:
{
    sender: "Designer",
    event: "CreateReport",
    report: StiReport,
    preventDefault: boolean,
    async: boolean,
    isWizardUsed: boolean
}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();
}Dieses Ereignis ermöglicht seine eigene Drucken-Weise des Öffnens der Vorlagen zu realisieren, und wird vor dem Dialogfenster der Datei-Auswahl vom Öffnen des Berichtes aufgerufen. Die Liste der Argumente des Ereignis-Behandlers:
{
    sender: "Designer",
    event: "OpenReport",
    report: StiReport,
    preventDefault: boolean,
    async: boolean
}designer.onOpenReport = (args, callback) => {
    args.preventDefault = true;
    args.async = true;
    args.report = anotherReport;
    callback();
}Dieses Ereignis ermöglicht den geöffneten Bericht vor der Zuweisung dem Designer zu modifizieren, und wird nach dem Öffnen vom Bericht und vor der Zuweisung dem Designer aufgerufen. Die Liste der Argumente des Ereignis-Behandlers:
{
    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();
}Dieses Ereignis ermöglicht den Bericht vor dem Speichern zu modifizieren oder seine eigene Speichern-Weise zu realisieren.
Das Ereignis wird nach dem Drucken auf die Schaltfläche Speichern und vor dem Speichern aufgerufen. Die Liste der Argumente des Ereignis-Behandlers:
{
    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;
}Dieses Ereignis ermöglicht den Bericht vor dem Speichern zu modifizieren oder seine eigene Speichern-Weise zu realisieren.
Das Ereignis wird nach dem Drücken auf die Schaltfläche Speichern als und vor dem Speichern aufgerufen. Die Liste der Argumente des Ereignis-Behandlers:
{
    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;
}Dieses Ereignis ermöglicht den Bericht vor dem Anzeigen zu modifizieren, und wird vor dem Anzeigen der Vorlage in Vorschau aufgerufen. Die Liste der Argumente des Ereignis-Behandlers:
{
    sender: "Designer",
    event: "PreviewReport",
    report: StiReport
    preventDefault: boolean,
    async: boolean,
    viewer: StiViewer
}designer.onPreviewReport = (args) => {
    var report = args.report;
    report.reportName = "Changed Report Name";
}Dieses Ereignis ermöglicht das Schließen vom Designer zu realisieren, und wird nach dem Drücken auf die Schaltfläche Abmelden im File Menu aufgerufen.
Um die Schaltfläche zu aktivieren, muss man den folgenden Parameter zu stellen:
designerOptions.toolbar.showFileMenuExit = truevar 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);
}Wenn Sie Fragen haben, kontaktieren Sie uns.
 
   
  