Előző témakörKövetkező témakör


5. ismertető: Eseménykezelő írása JavaScript nyelven

Ez az ismertető útmutatást nyújt eseménykezelők egy halmazának írásához. Az ismertető feltételezi, hogy már rendelkezik egy alapvető jelentéssel a Klasszikus modellek mintaadatbázis alapján. A kiinduló jelentéstervvel szembeni egyetlen követelmény, hogy tartalmazza a vásárlók tábláját vásárlók neve oszloppal. Ebben az ismertetőben megszámolja azokat a vásárlókat, akiknek a neve tartalmazza a "Mini" karaktersorozatot, és megjeleníti az eredményt egy előugró ablakban.

Ebben az ismertetőben az alábbi feladatokat hajtja végre:

1. feladat: Jelentésterv megnyitása

Nyisson meg egy olyan jelentéstervet, ami a Klasszikus autó mintaadatbázist használja, és vásárlók neveinek tábláját jeleníti meg.

  1. Ha szükséges, akkor nyissa meg a Navigátor nézetet az Ablak->Nézet megjelenítése>Navigátor menüpontra kattintva.
  2. Kattintson duplán a megfelelő jelentéstervre. A fájl megnyílik az elrendezés-szerkesztőben, mint azt a 22-4. ábra mutatja.

2. feladat: Számláló létrehozása és inicializálása a Table.onCreate( ) metódusban

Az olyan vásárlók megszámolása érdekében, akiknek a neve tartalmazza a Mini karaktersorozatot, először deklarálnia kell egy globális számlálót, és nullára kell állítania az értékét. A Table.onCreate( ) metódus a legmegfelelőbb hely ennek a feladatnak az elvégzésére, mivel a Table.onCreate( ) a sorok lekérése előtt fut. Majd feltételesen növeli ezt a számlálót a Row.onCreate( ) metódusban.

  1. Az Elrendezés nézetben válassza ki a táblát. Ehhez vigye a kurzort a tábla bal alsó sarkába. Megjelenik a tábla ikon, mint azt a 22-5. ábra mutatja.
  2. Válassza a Parancsfájl lapot. Megjelenik a Parancsfájl lap, mint azt a 22-6. ábra mutatja.
  3. Írja be az alábbi kódsort az onCreate( ) metódushoz tartozó parancsfájl ablakba:
  4. countOfMinis = 0; 
    
  5. A jelentés futtatásához és annak ellenőrzéséhez, hogy a kód nem hozott létre hibákat, kattintson az Előkép gombra.
  6. Görgessen a jelentés aljára, ahol megjelennek a JavaScript hibaüzenetek. Ha nincsenek hibák, akkor a jelentés jelenik meg, mint azt a 22-7. ábra mutatja.
  7. Ha hibaüzenetet lát, akkor elképzelhető, hogy helytelenül írt egy utasítást. Ha így van, akkor menjen vissza a parancsfájl ablakba, válassza ki az imént módosított metódust, javítsa ki a hibát, majd kattintson ismét az Előkép gombra.

3. feladat: A számláló feltételes növelése a Row.onCreate( ) metódusban

Az olyan vásárlók összeszámolásához, akiknek a nevében szerepel a Mini karaktersorozat, meg kell vizsgálni az egyes vásárlók nevét és minden előfordulásnál eggyel növelni a számláló értékét. A feladat végrehajtásához logikus hely a Row.onCreate( ) metódus, ami minden adatokat tartalmazó sor adatforrásból lekérésekor végrehajtásra kerül.

  1. Az Elrendezés lapon válassza a Sor, majd a Parancsfájl lehetőséget.
  2. Gördítse le a metódusok listáját a parancsfájl ablak tetején, és válassza az onCreate metódust, mint azt a 22-8. ábra mutatja.
  3. Írja be az alábbi JavaScript kódot a Parancsfájl ablakba:
  4. row=this.getRowData( ); 
    
    Fontos, hogy amikor ez után beírja a pontot, akkor megjelenik egy előugró ablak az összes rendelkezésre álló metódussal és tulajdonsággal, beleértve a getRowData elemet is. A kódsor megszerez egy IRowData példányt, ami rendelkezik egy getExpressionValue( ) metódussal a sor egy oszlopában található tartalom megszerzéséhez.
  5. Írja be az alábbi JavaScript kódot az imént beírt sor alá:
  6. CustName=row.getExpressionValue( "row[VÁSÁRLÓNEVE]" ); 
    
    Ez a kódsor annak a táblaoszlopnak a tartalmát adja vissza, amelyik az adatsor VÁSÁRLÓNEVE oszlopából származik.
  7. Írja be az alábbi kódot a Számláló létrehozása és inicializálása a Table.onCreate( ) metódusban részben létrehozott számláló feltételes növeléséhez.
  8. if( CustName.indexOf( "Mini" ) != -1 ) countOfMinis += 1; 
    
    A JavaScript paletta segítségével is beszúrhatja az alábbielemeket az előző sorban:
    • indexOf( )
    • Válassza a Beépített ( JavaScript ) objektumok->Karaktersorozat függvények->indexOf( ) lehetőséget
    • !=
    • Válassza az Operátorok->Összehasonlítás->!= lehetőséget
    • +=
    • Válassza az Operátorok->Értékadó utasítás->+= lehetőséget
  9. A jelentés futtatásához és annak ellenőrzéséhez, hogy a kód nem hozott létre hibákat, kattintson az Előkép gombra.

4. feladat: Eredmény megjelenítése a
ReportDesign.afterFactory( ) metódus használatával

Az olyan vásárlók számának megjelenítéséhez, akiknek a nevében szerepel a Mini karaktersorozat, be kell illeszteni egy kódot egy olyan metódusba, ami a tábla összes sorának feldolgozása után fut. Egy logikus hely ennek a kódnak a ReportDesign.afterFactory( ) metódus.

  1. A Vázlat nézetben jelölje ki a jelentéstervet, mint azt a 22-9. ábra mutatja.
  2. Válassza az afterFactory( ) metódust a parancsfájl ablak legördülő listájából.
  3. Írja be az alábbi kódot az afterFactory( ) metódusba:
  4. importPackage( Packages.javax.swing ); 
    frame = new JFrame( "Minik száma = " + countOfMinis ); 
    frame.setBounds( 310, 220, 300, 20 ); 
    frame.show( ); 
    
  5. Az eredmények megtekintéséhez kattintson az Előkép gombra. Ha nincsenek hibák a kódban, akkor a 22-10. ábrán láthatóhoz hasonló jelentést lát.

Ha nem látja a Minik száma ablakot, akkor keresse meg az Eclipse ablak mögött. Ha a Minik száma ablak nem jelenik meg, akkor a legvalószínűbb ok a kódbevitelek egyikében található hiba által okozott parancsfájlkészítési hiba.

Ha azt gyanítja, hogy parancsfájlkészítési hiba történt, akkor görgessen a jelentés aljára, ahol az összes parancsfájlkészítési hibaüzenet megjelenik. A legtöbb helyzetben egy rövid hibaüzenet van egy pluszjel ( + ) mellett. A pluszjel azt jelzi, hogy van egy részletesebb hibaüzenet is, ami csak a rövid hibaüzenet kibontása után látható. A rövid hibaüzenet kibontásához kattintson a pluszjelre. Görgessen lefelé a részletesebb hibaüzenet megtekintéséhez.


(c) Copyright Actuate Corporation 2006

Előző témakörKövetkező témakör