Argomento precedenteArgomento successivo


Esercitazione 5: Scrittura di un gestore eventi in JavaScript

Questa esercitazione fornisce istruzioni per la scrittura di una serie di gestori eventi. L'esercitazione presuppone che si disponga di una progettazione di prospetto di base, fondata sul database di esempio Classic Models, Inc. L'unico requisito della progettazione di prospetto iniziale è che contenga una tabella di clienti con una colonna per il nome cliente. In questa esercitazione, si contano i clienti i cui nomi contengono la stringa "Mini" e il risultato viene visualizzato in una finestra a comparsa.

In questa esercitazione, verranno svolte le seguenti attività:

Attività 1: Apertura della progettazione del prospetto

Aprire una progettazione di prospetto che utilizzi il database di esempio Classic Car e che visualizzi una tabella di nomi clienti.

  1. Se necessario, aprire Selezione scegliendo Finestra->Mostra vista->Selezione.
  2. Fare doppio clic sulla progettazione di prospetto appropriata. Il file viene visualizzato nell'editor del layout, come mostrato nella Figura 22-4.

Attività 2: Creazione e inizializzazione di un contatore nel metodo Table.onCreate( )

Per calcolare il numero di clienti i cui nomi contengono la stringa Mini, è necessario in primo luogo dichiarare un contatore globale e impostare il valore su zero. Il metodo Table.onCreate( ) è il contesto più appropriato per eseguire questa attività perché Table.onCreate( ) viene eseguito prima di richiamare qualsiasi riga. È possibile incrementare questo contatore in modo condizionale nel metodo Row.onCreate( ).

  1. In Layout, selezionare la tabella posizionando il cursore accanto all'angolo inferiore sinistro della tabella. Viene visualizzata l'icona della tabella, come mostrato nella Figura 22-5.
  2. Selezionare la scheda Script. Viene visualizzata tale scheda, come mostrato nella Figura 22-6.
  3. Immettere la seguente riga di codice nella finestra dello script per il metodo onCreate( ):
  4. countOfMinis = 0; 
    
  5. Per eseguire il prospetto e verificare che il codice non abbia creato alcun errore, selezionare Anteprima.
  6. Scorrere fino alla fine del prospetto, dove vengono visualizzati dei messaggi di errore JavaScript. Se non sono presenti errori, il prospetto viene visualizzato, come mostrato nella Figura 22-7.
  7. Se viene visualizzato un messaggio di errore, è possibile che l'istruzione sia stata immessa in modo non corretto. In tal caso, tornare alla finestra dello script, selezionare il metodo appena modificato, correggere l'errore e selezionare nuovamente Anteprima.

Attività 3: Incremento condizionale del contatore nel metodo Row.onCreate( )

Per calcolare il numero di clienti il cui nome contiene la stringa Mini, è necessario esaminare il nome di ogni cliente e aggiungere uno al contatore per ogni ricorrenza. Un contesto logico in cui eseguire questa attività è nel metodo Row.onCreate( ), eseguito dopo ogni richiamo di una riga di dati dall'origine dati.

  1. In Layout, selezionare la riga e quindi scegliere Script.
  2. Scorrere l'elenco di metodi nella parte superiore della finestra di script e selezionare onCreate, come mostrato nella Figura 22-8.
  3. Immettere la seguente riga di codice JavaScript nella finestra Script:
  4. row=this.getRowData( ); 
    
    Tenere presente che quando si immette tale riga, viene visualizzato un menu a comparsa contenente tutti i metodi e le proprietà disponibili, incluso getRowData. Questa riga di codice richiama un'istanza di IRowData, il cui metodo, getExpressionValue( ), richiama il contenuto di una colonna della riga.
  5. Immettere la seguente riga di JavaScript sotto la riga appena immessa:
  6. CustName=row.getExpressionValue( "row[CUSTOMERNAME]" ); 
    
    Questa riga di codice restituisce il contenuto della colonna della tabella proveniente dalla colonna CUSTOMERNAME nel dataset.
  7. Immettere la seguente riga di codice per incrementare in modo condizionale il contatore creato in Creazione e inizializzazione di un contatore nel metodo Table.onCreate( ).
  8. if( CustName.indexOf( "Mini" ) != -1 ) countOfMinis += 1; 
    
    È possibile utilizzare la tavolozza JavaScript per inserire uno dei seguenti elementi nella riga precedente:
    • indexOf( )
    • Selezionare Oggetti ( JavaScript ) nativi->Funzioni Stringa->indexOf( )
    • !=
    • Selezionare Operatori->Confronto->!=
    • +=
    • Selezionare Operatori->Assegnazione->+=
  9. Per eseguire il prospetto e verificare che il codice non abbia creato alcun errore, selezionare nuovamente Anteprima.

Attività 4: Visualizzazione del risultato, utilizzando il
metodo ReportDesign.afterFactory( )

Per visualizzare il numero totale di clienti il cui nome contiene la stringa Mini, è necessario inserire un codice in un metodo che viene eseguito dopo l'elaborazione di tutte le righe nella tabella. Un contesto logico per tale codice si trova nel metodo ReportDesign.afterFactory( ).

  1. In Struttura, selezionare la progettazione di prospetto come mostrato nella Figura 22-9.
  2. Selezionare il metodo afterFactory( ) dall'elenco a discesa della finestra dello script.
  3. Immettere il seguente codice nel metodo afterFactory( ):
  4. importPackage( Packages.javax.swing ); 
    frame = new JFrame( "Count of Minis = " + countOfMinis ); 
    frame.setBounds( 310, 220, 300, 20 ); 
    frame.show( ); 
    
  5. Selezionare Anteprima per visualizzare i risultati. Se non sono presenti errori nel codice, viene visualizzato un prospetto simile a quello nella Figura 22-10.

Se non viene visualizzata la finestra Totale di Mini, ricercarla dietro la finestra Eclipse. Se la finestra Totale di Mini non venisse visualizzata, la causa più probabile è un errore di script causato da un errore in una delle voci del codice.

Se si sospetta la presenza di un errore di script, scorrere fino alla fine del prospetto, in cui vengono visualizzati tutti i messaggi di errore. Nella maggior parte delle situazioni, viene visualizzato un breve messaggio di errore accanto a un simbolo più ( + ). Il simbolo più indica che è presente un messaggio di errore più dettagliato visibile solo dopo l'espansione del messaggio di errore breve. Per espandere il messaggio di errore breve, selezionare il simbolo più. Scorrere in basso per visualizzare il messaggio di errore più dettagliato.


(c) Copyright Actuate Corporation 2006

Argomento precedenteArgomento successivo