Poprzedni tematNastępny temat


Kurs 5: Pisanie procedury obsługi zdarzeń w języku JavaScript

Ten kurs zawiera instrukcje tworzenia zbioru procedur obsługi zdarzeń. Zakłada się w nim, że użytkownik ma podstawowy projekt raportu oparty na przykładowej bazie danych Classic Models Inc. Jedynym wymaganiem dotyczącym początkowego projektu raportu jest, aby zawierał on tabelę klientów z kolumną na nazwę klienta. W tym kursie zostaną policzeni klienci, których nazwy zawierają łańcuch "Mini", a wyniki zostaną przedstawione w wywołanym oknie.

W ramach tego kursu wykonane zostaną następujące czynności:

Zadanie 1: Otwarcie projektu raportu

Otwórz projekt raportu, który używa przykładowej bazy danych Classic Car i wyświetla tabelę z nazwami klientów.

  1. Jeśli to konieczne, otwórz Nawigatora, wybierając z menu opcje Okna -> Pokaż widok -> Nawigator.
  2. Kliknij dwukrotnie odpowiedni projekt raportu. Plik zostanie otwarty w edytorze układu, jak przedstawiono na Rysunku 22-4.

Zadanie 2: Utworzenie i inicjacja licznika w metodzie Table.onCreate( )

Aby policzyć klientów, których nazwy zawierają łańcuch Mini, należy najpierw zadeklarować licznik globalny i nadać mu wartość zerową. Metoda Table.onCreate( ) jest najodpowiedniejsza do tego zadania, ponieważ jest wykonywana przed pobraniem jakichkolwiek wierszy. Licznik będzie zwiększany warunkowo w metodzie Row.onCreate( ).

  1. W sekcji Układ wybierz tabelę, umieszczając kursor przy lewym dolnym rogu tabeli. Pojawi się ikona tabeli, jak przedstawiono na Rysunku 22-5.
  2. Wybierz kartę Skrypt. Wyświetlona zostanie karta Skrypt, jak przedstawiono na Rysunku 22-6.
  3. Wpisz następujący wiersz kodu w oknie skryptu dla metody onCreate( ):
  4. countOfMinis = 0; 
    
  5. Aby uruchomić raport i sprawdzić, czy kod nie wywołał błędów, wybierz opcję Podgląd.
  6. Przewiń do dolnej części raportu, gdzie pojawiają się komunikaty o błędach JavaScript. Jeśli nie ma błędów, pojawi się raport, jak przedstawiono na Rysunku 22-7.
  7. Jeśli zobaczysz komunikat o błędach, być może wpisałeś instrukcję nieprawidłowo. W takim przypadku wróć do okna skryptu, wybierz zmodyfikowaną metodę, napraw błąd i ponownie wybierz opcję Podgląd.

Zadanie 3: Warunkowe zwiększenie licznika w metodzie Row.onCreate( )

Aby policzyć klientów z łańcuchem Mini w nazwie, należy zbadać nazwę każdego klienta i zwiększyć licznik o 1 w przypadku, jeśli łańcuch ten występuje w nazwie. Logicznym miejscem do realizacji tego zadania jest metoda Row.onCreate( ), która jest wykonywana przy każdym pobraniu wiersza danych ze źródła danych.

  1. W sekcji Układ wybierz Wiersz, a następnie opcję Skrypt.
  2. Rozwiń listę metod umieszczoną w górnej części okna skryptu, a następnie wybierz onCreate, jak przedstawiono na Rysunku 22-8.
  3. Wpisz następujący wiersz kodu JavaScript w oknie Skrypt:
  4. row=this.getRowData( ); 
    
    Warto zauważyć, że po wpisaniu kropki wyświetlane jest okno wywoływane zawierające wszystkie dostępne metody i właściwości, w tym getRowData. Ten wiersz kodu pobiera instancję interfejsu IRowData, który ma metodę getExpressionValue( ), w celu uzyskania treści kolumny z wiersza.
  5. Wpisz następujący wiersz kodu JavaScript pod wpisanym wcześniej wierszem:
  6. CustName=row.getExpressionValue( "row[CUSTOMERNAME]" ); 
    
    Ten wiersz kodu zwraca treść kolumny tabeli, która pochodzi z kolumny CUSTOMERNAME w zestawie danych.
  7. Wpisz następujący wiersz kodu, aby warunkowo zwiększać licznik utworzony w sekcji Utworzenie i inicjacja licznika w metodzie Table.onCreate( ).
  8. if( CustName.indexOf( "Mini" ) != -1 ) countOfMinis += 1; 
    
    Możesz użyć palety JavaScript, aby wstawić każdy z poniższych elementów do tego wiersza:
    • indexOf( )
    • Wybierz opcje Obiekty rodzime (JavaScript) -> Funkcje klasy String -> indexOf( )
    • !=
    • Wybierz opcje Operatory -> Porównanie -> !=
    • +=
    • Wybierz opcje Operatory -> Przypisanie -> +=
  9. Wybierz opcję Podgląd, aby uruchomić ponownie raport i sprawdzić, czy wprowadzony kod nie wywołuje błędów.

Zadanie 4: Wyświetlanie wyników przy użyciu metody
ReportDesign.afterFactory( )

Aby wyświetlić liczbę klientów, w których nazwach występuje łańcuch Mini, należy wstawić kod do metody, która jest wywoływana po przetworzeniu wszystkich wierszy w tabeli. Jednym z logicznych miejsc dla tego kodu jest metoda ReportDesign.afterFactory( ).

  1. W sekcji Schemat wybierz projekt raportu, jak przedstawiono na Rysunku 22-9.
  2. Wybierz z rozwijanej listy okna skryptów metodę afterFactory( ).
  3. Wpisz następujący kod dla metody afterFactory( ):
  4. importPackage( Packages.javax.swing ); 
    frame = new JFrame( "Count of Minis = " + countOfMinis ); 
    frame.setBounds( 310, 220, 300, 20 ); 
    frame.show( ); 
    
  5. Wybierz opcję Podgląd, aby zobaczyć wyniki. Jeśli w kodzie nie było błędów, wyświetlony zostanie raport podobny do przedstawionego na Rysunku 22-10.

Jeśli nie będzie widoczne okno Count of Minis, poszukaj go pod oknem Eclipse. Jeśli okno Count of Minis nie zostanie wyświetlone, najprawdopodobniej wystąpił błąd skryptu spowodowany błędnym wpisem w kodzie.

Jeśli podejrzewasz, że wystąpił błąd skryptu, przewiń do dolnej części raportu, gdzie wyświetlane są wszystkie informacje o błędach skryptu. W większości przypadków obok znaku plusa ( + ) pojawi się skrócony komunikat o błędzie. Znak plusa oznacza, że bardziej szczegółowy komunikat o błędzie jest dostępny po rozwinięciu komunikatu skróconego. Aby rozwinąć komunikat skrócony, kliknij znak plusa. Przewiń w dół, aby zobaczyć szczegółowy komunikat o błędzie.


(c) Copyright Actuate Corporation 2006

Poprzedni tematNastępny temat