Föregående avsnittNästa avsnitt


Självstudiekurs 5: Skriva en händelsehanterare i JavaScript

I den här självstudiekursen ingår instruktioner för hur du skriver en uppsättning händelsehanterare. Det förutsätts att du har en grundrapportdesign baserad på exempeldatabasen Classic Models, Inc. Det enda kravet på startrapportdesignen är att den innehåller en tabell över kunder med en kolumn för kundnamn. I den här självstudiekursen räknar du de kunder vars namn innehåller strängen "Mini" och visar resultatet i ett fönster.

I den här självstudiekursen utför du följande uppgifter:

Uppgift 1: Öppna rapportdesignen

Öppna en rapportdesign där exempeldatabasen Classic Car används och en tabell med kundnamn visas.

  1. Om det behövs öppnar du navigeringsvyn genom att välja Fönster > Visa vy > Navigeringsvy.
  2. Dubbelklicka på den aktuella rapportdesignen. Filen öppnas i layoutredigeraren, som i figur 22-4.

Uppgift 2: Skapa och initiera en räknare i metoden Table.onCreate( )

För att du ska kunna räkna det antal kunder vars namn innehåller strängen Mini måste du först deklarera en global räknare och ange värdet noll för den. Metoden Table.onCreate( ) är den lämpligaste metoden för att utföra den här uppgiften eftersom Table.onCreate( ) körs innan några rader hämtas. Du anger villkorlig, stegvis ökning för räknaren i metoden Row.onCreate( ).

  1. I Layout väljer du tabellen genom att placera markören nere till vänster i tabellen. Tabellikonen visas, som i figur 22-5.
  2. Välj fliken Skript. Skriptfliken visas, som i figur 22-6.
  3. Ange följande kodrad i skriptfönstret för metoden onCreate( ):
  4. countOfMinis = 0; 
    
  5. Om du vill köra rapporten och kontrollera att koden inte skapade några fel väljer du Förhandsgranska.
  6. Bläddra till slutet av rapporten, där JavaScript-felmeddelanden visas. Om det inte finns några fel visas rapporten, som i figur 22-7.
  7. Om ett felmeddelande visas innebär du att du har angett en sats på fel sätt. Om så är fallet går du tillbaka till skriptfönstret, väljer den metod du just ändrat, korrigerar felet och väljer Förhandsgranska igen.

Uppgift 3: Ange villkorlig, stegvis ökning för räknaren i metoden Row.onCreate( )

När du räknar antalet kunder där strängen Mini ingår i namnet måste du kontrollera varje kunds namn och öka räknarvärdet med ett för varje förekomst. Det är logiskt att utföra den här uppgiften med metoden Row.onCreate( ) som körs varje gång en rad med data hämtas från datakällan.

  1. I Layout väljer du raden och väljer sedan Skript.
  2. Visa listan med metoder längst upp i skriptfönstret och välj onCreate, som i figur 22-8.
  3. Ange följande JavaScript-kodrad i skriptfönstret:
  4. row=this.getRowData( ); 
    
    Observera att när du anger punkten efter den här raden visas en listruta med alla tillgängliga metoder och egenskaper, inklusive getRowData. Med den här kodraden hämtas en förekomst av IRowData, som har en metod, getExpressionValue( ), som används till att hämta innehållet i en kolumn i raden.
  5. Ange följande JavaScript-rad under den rad du just angav:
  6. CustName=row.getExpressionValue( "row[CUSTOMERNAME]" ); 
    
    Den här kodraden returnerar innehållet i tabellkolumnen som hämtas från kolumnen CUSTOMERNAME i datauppsättningen.
  7. Ange följande kodrad för att ange villkorlig, stegvis ökning för den räknare du skapade i Skapa och initiera en räknare i metoden Table.onCreate( ).
  8. if( CustName.indexOf( "Mini" ) != -1 ) countOfMinis += 1; 
    
    Du kan använda JavaScript-paletten till att infoga vart och ett av följande element på den föregående raden:
    • indexOf( )
    • Välj Inbyggd ( JavaScript ) Objekt > Strängfunktioner > indexOf( )
    • !=
    • Välj Operatorer > Jämförelse >!=
    • +=
    • Välj Operatorer > Tilldelning >+=
  9. Om du vill köra rapporten igen och kontrollera att koden inte skapade några fel väljer du Förhandsgranska.

Uppgift 4: Visa resultatet, med hjälp av metoden
ReportDesign.afterFactory( )

Om du vill visa antalet kunder vars namn innehåller strängen Mini infogar du kod i en metod som körs efter bearbetningen av alla rader i tabellen. En logisk plats för den koden är metoden ReportDesign.afterFactory( ).

  1. I översiktsvyn väljer du rapportdesignen, som i figur 22-9.
  2. Välj metoden afterFactory( ) i listrutan i skripfönstret.
  3. Ange följande kod i metoden afterFactory( ):
  4. importPackage( Packages.javax.swing ); 
    frame = new JFrame( "Count of Minis = " + countOfMinis ); 
    frame.setBounds( 310, 220, 300, 20 ); 
    frame.show( ); 
    
  5. Välj Förhandsgranska så visas resultatet. Om det inte finns några fel i koden visas en rapport liknande den i figur 22-10.

Om du inte kan se fönstret för antal Mini-strängar kan det ligga bakom Eclipse-fönstret. Om fönstret för antal Mini-strängar inte visas beror det troligen på att ett skriptfel som orsakats av ett fel i den kod du angett.

Om du misstänker att ett skriptfel har inträffat bläddrar du till slutet av rapporten där alla skriptfelsmeddelanden visas. I de flesta situationer visas ett kort felmeddelande bredvid ett plustecken (+). Plustecknet anger att det finns ett felmeddelande med mer detaljerad information som du kan visa genom att expandera det korta felmeddelandet. Expandera det korta felmeddelandet genom att klicka på plustecknet. Visa det mer detaljerade felmeddelandet genom att bläddra nedåt.


(c) Copyright Actuate Corporation 2006

Föregående avsnittNästa avsnitt