Vorheriges ThemaNächstes Thema


Lernprogramm 5: Ereignishandler in JavaScript schreiben

Dieses Lernprogramm enthält Anweisungen für das Schreiben einer Reihe von Ereignishandlern. Es geht davon aus, dass Sie einen Basisberichtsentwurf auf Grundlage der Musterdatenbank "Classic Models, Inc." erstellt haben. Die einzige Anforderung an den Ausgangsberichtsentwurf ist das Vorhandensein einer Kundentabelle mit einer Spalte für den Kundennamen. In diesem Lernprogramm zählen Sie die Kunden, deren Namen die Zeichenfolge "Mini" enthalten, und zeigen das Ergebnis in einem Dialogfenster an.

In diesem Lernprogramm führen Sie die folgenden Tasks aus:

Task 1: Berichtsentwurf öffnen

Öffnen Sie einen Berichtsentwurf, der die Musterdatenbank "Klassiker" verwendet und eine Tabelle mit Kundennamen anzeigt.

  1. Öffnen Sie bei Bedarf den Navigator durch Auswahl der Optionen "Fenster > Sicht anzeigen > Navigator".
  2. Doppelklicken Sie auf den entsprechenden Berichtsentwurf. Die Datei wird nun im Layouteditor geöffnet (siehe Abbildung 22-4).

Task 2: Zähler in der Methode "Table.onCreate( )" erstellen und initialisieren

Um die Anzahl der Kunden zu ermitteln, deren Namen mit der Zeichenfolge "Mini" beginnen, müssen Sie zuerst einen globalen Zähler definieren und seinen Wert auf Null setzen. Die Methode "Table.onCreate( )" ist hierzu am besten geeignet, da die Methode "Table.onCreate( )" ausgeführt wird, bevor Zeilen abgerufen werden. Für diesen Zähler definieren Sie in der Methode "Row.onCreate( )" eine bedingte Erhöhung.

  1. Wählen Sie in der Anzeige "Layout" die Tabelle aus, indem Sie den Cursor in die Nähe der linken unteren Ecke der Tabelle setzen. Daraufhin wird das in Abbildung 22-5 gezeigte Tabellensymbol eingeblendet.
  2. Wählen Sie die Registerkarte "Script" aus. Die in Abbildung 22-6 dargestellte Registerkarte "Script" wird aufgerufen.
  3. Geben Sie die folgende Codezeile im Scriptfenster für die Methode "onCreate( )" ein:
  4. countOfMinis = 0; 
    
  5. Wählen Sie die Option "Vorschau" aus, um den Bericht auszuführen und um sicherzustellen, dass der Code keine Fehler verursacht.
  6. Blättern Sie bis zum Ende des Berichts vor, wo die JavaScript-Fehlernachrichten angezeigt werden. Falls keine Fehler vorhanden sind, wird der Bericht wie inAbbildung 22-7 dargestellt angezeigt.
  7. Falls Sie eine Fehlernachricht sehen, haben Sie möglicherweise eine Anweisung falsch eingegeben. Gehen Sie in diesem Fall zum Scriptfenster zurück, wählen Sie die soeben geänderte Methode aus, korrigieren Sie den Fehler, und wählen Sie erneut die Option "Vorschau" aus.

Task 3: Zähler in der Methode "Row.onCreate( )" bedingt erhöhen

Um die Anzahl der Kunden mit der Zeichenfolge "Mini" im Namen zu zählen, müssen Sie die einzelnen Kundennamen untersuchen und für jedes Vorkommen den Wert 1 zum Zähler addieren. Eine logische Stelle für diese Task ist die Methode "Row.onCreate( )", die bei jedem Abruf einer Datenzeile aus der Datenquelle ausgeführt wird.

  1. Wählen Sie in der Anzeige "Layout" die Option "Zeile" aus, und wählen Sie dann die Option "Script" aus.
  2. Blättern Sie in der Liste der Methoden oben im Scriptfenster vor, und wählen Sie die Methode "onCreate" aus (siehe Abbildung 22-8).
  3. Geben Sie die folgende JavaScript-Codezeile im Scriptfenster ein:
  4. row=this.getRowData( ); 
    
    Sie können feststellen, dass bei der Eingabe eines Punktes nach dieser Zeile ein Dialogfenster aufgerufen wird, das alle verfügbaren Methoden und Eigenschaften einschließlich der Angabe "getRowData" enthält. Diese Codezeile ruft ein Exemplar von "IRowData" ab, das eine Methode "getExpressionValue( )" enthält, um den Inhalt aus der Spalte der Zeile abzurufen.
  5. Geben Sie die folgende JavaScript-Zeile direkt unter der soeben eingegebenen Zeile ein:
  6. CustName=row.getExpressionValue( "row[CUSTOMERNAME]" ); 
    
    Diese Codezeile gibt den Inhalt der Tabellenspalte zurück, der aus der Spalte CUSTOMERNAME im Datensatz stammt.
  7. Geben Sie die folgende Codezeile ein, um den Zähler, den Sie in der Task Zähler in der Methode "Table.onCreate( )" erstellen und initialisieren erstellt haben, bedingt zu erhöhen.
  8. if( CustName.indexOf( "Mini" ) != -1 ) countOfMinis += 1; 
    
    Sie können die JavaScript-Palette verwenden, um alle folgenden Elemente in der vorherigen Zeile einzufügen:
    • indexOf( )
    • Wählen Sie Folgendes aus: Native (JavaScript-) Objekte > Zeichenfolgefunktionen >indexOf( )
    • !=
    • Wählen Sie Folgendes aus: Operatoren > Vergleich >!=
    • +=
    • Wählen Sie Folgendes aus: Operatoren > Zuordnung >+=
  9. Wählen Sie die Option "Vorschau" aus, um den Bericht erneut auszuführen und um sicherzustellen, dass der eingegebene Code keine Fehler verursacht.

Task 4: Ergebnis mit der Methode
"ReportDesign.afterFactory( )" anzeigen

Um die Anzahl der Kunden mit der Zeichenfolge "Mini" im Namen anzuzeigen, fügen Sie Code in einer Methode ein, die nach der Verarbeitung aller Zeilen in der Tabelle ausgeführt wird. Eine logische Stelle für diesen Code ist die Methode "ReportDesign.afterFactory( )".

  1. Wählen Sie in der Sicht "Gliederung" den Berichtsentwurf aus (siehe Abbildung 22-9).
  2. Wählen Sie die Methode "afterFactory( )" in der Dropdown-Liste des Scriptfensters aus.
  3. Geben Sie den folgenden Code in der Methode "afterFactory( )" ein:
  4. importPackage( Packages.javax.swing ); 
    frame = new JFrame( "Count of Minis = " + countOfMinis ); 
    frame.setBounds( 310, 220, 300, 20 ); 
    frame.show( ); 
    
  5. Wählen Sie die Option "Vorschau" aus, um die Ergebnisse anzuzeigen. Falls der Code keine Fehler enthält, sollte der Bericht in etwa wie in Abbildung 22-10 gezeigt aussehen.

Wird das Fenster "Count of Minis" nicht angezeigt, sehen Sie nach, ob es durch das Eclipse-Fenster verdeckt wird. Falls das Fenster "Count of Minis" nicht angezeigt wird, liegt dies höchstwahrscheinlich an einem Scripterstellungsfehler, der durch einen Fehler in einer Ihrer Codeeingaben verursacht wird.

Wenn Sie den Verdacht haben, dass ein Scripterstellungsfehler aufgetreten ist, blättern Sie bis zum Ende des Berichts vor, wo alle Fehlernachrichten angezeigt werden. Meistens befindet sich dort eine kurze Fehlernachricht neben einem Pluszeichen (+). Das Pluszeichen macht kenntlich, dass es eine ausführlichere Fehlernachricht gibt, die erst dann sichtbar ist, wenn Sie die kurze Fehlernachricht erweitern. Wählen Sie das Pluszeichen aus, um die kurze Fehlernachricht zu erweitern. Blättern Sie vor, bis die ausführlichere Fehlernachricht angezeigt wird.


(c) Copyright Actuate Corporation 2006

Vorheriges ThemaNächstes Thema