Øveprogram 5: Skriv en aktivitetsbehandler i JavaScript
Dette øveprogram indeholder en vejledning i, hvordan du kan skrive et sæt aktivitetsbehandlere. Øveprogrammet forudsætter, at du har et grundlæggende rapportdesign baseret på eksempeldatabasen Classic Models, Inc. Det eneste krav til startrapportdesignet er, at det indeholder en kundetabel med en kolonne til kundenavnet. I dette øveprogram skal du tælle de kunder, hvis navn indeholder strengen "Mini", og vise resultatet i et pop op-vindue.
I øveprogrammet indgår følgende opgaver:
Opgave 1: Åbn rapportdesignet
Åbn et rapportdesign, der bruger eksempeldatabasen Classic Car og viser en tabel med kundenavne.
- Åbn Navigator ved at vælge Vindue->Vis oversigt->Navigator, hvis navigatoren ikke er åben.
- Dobbeltklik på det relevante rapportdesign. Filen åbnes i layouteditoren som vist i Figur 22-4.
Opgave 2: Opret og initialisér en tæller i metoden Table.onCreate( )
Når du vil tælle antallet af kunder, hvis navn indeholder strengen Mini, skal du erklære en global tæller og angive dens værdi til nul. Det gøres bedst i metoden Table.onCreate( ), da Table.onCreate( ) udføres, før der hentes nogen rækker. Derefter skal tælleren forøges betinget i metoden Row.onCreate( ).
- Vælg tabellen i Layout ved at placere markøren i nærheden af tabellens nederste venstre hjørne. Tabelikonen vises som illustreret i Figur 22-5.
- Vælg skillebladet Script. Skillebladet Script vises som illustreret i Figur 22-6.
- Skriv følgende linje kode i vinduet Script for metoden onCreate( ):
- Vælg Vis resultat for at udføre rapporten og kontrollere, at koden ikke medfører fejl.
- Blad ned til bunden af rapporten, hvor JavaScript-fejlmeddelelse vises. Hvis der ikke er nogen fejl, vises rapporten som illustreret i Figur 22-7.
Hvis der vises en fejlmeddelelse, kan du have skrevet en sætning forkert. I det tilfælde skal du vende tilbage til vinduet Script, vælge den netop ændrede metode, rette fejlen og vælge Vis resultat igen.
Opgave 3: Forøg tælleren betinget i metoden Row.onCreate( )
For at tælle antallet af kunder med et navn, der indeholder strengen Mini, skal du undersøge hvert kundenavn og tilføje én til tælleren for hver forekomst. Et logisk sted at placere koden er i metoden Row.onCreate( ), som udføres, hver gang der hentes en række data fra datakilden.
- Vælg rækken i Layout, og vælg derefter Script.
- Åbn listen med metoder øverst i scriptvinduet, og vælg onCreate som vist i Figur 22-8.
- Skriv følgende linje JavaScript-kode i vinduet Script:
Bemærk, at når du skriver punktummet efter this, vises et pop op-vindue med alle de tilgængelige metoder og egenskaber, herunder getRowData. Kodelinjen henter en forekomst af IRowData, som har metoden getExpressionValue( ), der henter indholdet af en kolonne i rækken.
- Skriv følgende linje JavaScript neden under den linje, du lige har skrevet:
Kodelinjen returnerer indholdet af den tabelkolonne, som kommer fra kolonnen CUSTOMERNAME i datasættet.
Du kan bruge JavaScript-paletten til at indsætte hvert af følgende elementer på den foregående linje:
- indexOf( )
Vælg Indbyggede JavaScript-funktioner->String Functions->indexOf( )
- !=
Vælg Operatorer->Sammenligning->!=
- +=
Vælg Operatorer->Tildeling->+=
- Vælg Vis resultat for at udføre rapporten igen og kontrollere, at den indtastede kode ikke har medført fejl.
Opgave 4: Vis resultatet vha.
metoden ReportDesign.afterFactory( )
For at få vist antallet af kunder med strengen Mini i navnet skal du indsætte kode i en metode, der udføres, når alle rækkerne i tabellen er behandlet. Et logisk sted til koden er i metoden ReportDesign.afterFactory( ).
- Vælg rapportdesignet i Struktur som vist i Figur 22-9.
- Vælg metoden afterFactory( ) på listen i vinduet Script.
- Skriv følgende kode i metoden afterFactory( ):
- Vælg Vis resultat for at se resultatet. Hvis der ikke er nogen fejl i koden, vises en rapport, der ligner den i Figur 22-10.
Hvis du ikke kan se vinduet Count of Minis, kan det være skjult bag Eclipse-vinduet. Hvis vinduet Count of Minis ikke vises, skyldes det sandsynligvis en scriptingfejl pga. en fejl i en af dine kodeindtastninger.
Hvis du vil undersøge, om der er opstået en scriptingfejl, skal du blade ned i bunden af rapporten, hvor alle scriptingfejlmeddelelser vises. I de fleste tilfælde findes en kort fejlmeddelelsestekst ved siden af plustegnet ( + ). Plustegnet angiver, at der findes en mere detaljeret fejlmeddelelse, som du kan få vist ved at udvide den korte fejlmeddelelse. Vælg plustegnet for at udvide den korte fejlmeddelelse. Blad ned for at læse den detaljerede fejlmeddelelse.
