Bestil fra katalog
Denne vejledning tager udgangspunkt i at du har designet en skærm med et varekatalog til en restaurant. Når kunden tilføjer en vare til sin indkøbskurv opdateres de to labels i toppen (antal og samlet pris). Når kunden klikker på kurven, skiftes til en skærm som viser den samlede ordre.
1. Begynd med at definere variablene antalVarer og samletPris, hvis værdier skal skrives i de to labels hver gang der sker en forøgelse af bestillingen.
2. Opret en onEvent for den første vare i kataloget, Pepperoni pizzaen, som skal kunne bestilles ved at klikke på + .
3. Opdater variablen antalVarer ved at lægge én til den.
3a. Opdater variablen samletPris ved at lægge 75 kr. til den.
4. Træk to setText kommandoer ind som skal få vist de opdaterede værdier for antal bestilte varer og for den samlede pris i brugergrænsefladen.
5. Tjek at det virker ved at vælge en masse pepperoni pizzaer og lægge mærke til at de to labels bliver opdateret korrekt.
​
6. Erklær en variabel, kald den kurv og angiv startværdien til [ ] , altså to kantparenteser. Det betyder at variablen er en tom liste, som man nu kan føje elementer til, som er af samme datatype. I dette tilfælde bliver der tale om de pizzanavne kunden bestiller.
7. Opret en ny skærm, screenBestilling, og indsæt en label, Din bestilling, og et text_area til at vise bestillingen.
Træk kommandoen appendItem over i Linje 9 og angiv listenavnet til kurv og angiv data der skal tilføjes listen til "Pepperoni".
8. Som forberedelse til at kunne lægge andre varer i kurven, skal du oprette en funktion og kalde den bestilVare.
9. Marker blokkene og træk dem op i funktionen bestilVare.
10. Resultatet skal se sådan ud.
11. Træk et funktionskald til bestilVare over i hændselsesproceduren til buttonPepperoni.
12. Klik to gange på den lille pil yderst til højre på funktionskaldet (Trin 1) for at skabe to pladsholdere til parameterværdier, der skal sendes sammen med funktionskaldet.
13. Indtast "Pepperoni" (Trin 1) og 75 (Trin 2) som de parameterværdier der svarer til den aktuelle pizza.
14. Klik to gange på den lille pil yderst til højre på funktionen bestilVare (Trin 1) og indtast vareNavn (Trin 2) og varePris (Trin 3) som de parametre (lokale variable) du skal bruge i funktionen .
15. Erstat "Pepperoni" med vareNavn (Trin 1) og indtast varePris i stedet for 75.00 (Trin 2). På denne måde udfører funktionen den samme sekvens, men med forskellige data (varenavn og pris) som input.
16. Nu kommer det "sjove", når du kan gentage processen for en pizza mere (Margaritha) blot ved at kode Linje 14 til 16 med parameterværdier, som svarer til den pågældende pizza. Du kan bygge videre på idéen med så mange pizzaer du har lyst til ved at lave en hændelsesprocedure til dem hver med et funktionskald der har de rigtige parameterværdier.
Vis bestillingen på en ny skærm
​
Indtil nu har du lagt varer i kurven og opdateret kurveikonet med antal varer og deres samlede pris. Når kunden er færdig med at shoppe, klikkes der på kurveikonet i forventning om at komme til en ordreside.
​
17. Lav en onEvent til buttonKurv og erklær en variabel textBestilling til opbygning af den tekst der skal vises i text_areaBestilling..
​
18. Træk en FOR-løkke over, som skal bruges til at gennemløbe listen kurv, som indeholder de pizzaer kunden har bestilt
​
19. Variablen i er en tællevariabel der begynder ved listens element nummer 0 og stopper ved det sidste element på listen, hvis nummer er 'listens længde minus 1', netop fordi man begynder med 0. Det kan klares ved at angive, at løkken skal standse inden i bliver lig med listens længde. For at gøre det skal du trække kommandoen str.length over i stedet for 4-tallet.
20. Indtast listenavnet kurv i stedet for str.
21. Træk en tildelingsblok ind i Linje 20 og indtast, som vist herunder, for at tilføje teksten for den pizza løkken er kommet til, det vil sige kurv[i], til den tekst der er der i forvejen fra de foregående pizzaer.
22. Tilføj Linje 21 som indsætter et linjeskift efter hver ny pizza i bestillingen..
23. Tilføj Linje 23 som tilføjer en ekstra linje med den samlede pris efter listen med bestilte pizzaer.
23. Tilføj Linje 24 som skriver bestillingen i det text_area du har gjort klar. Tilføj også en setScreen til bestillingsskærmen i Linje 25.
23. Tilføj en Tilbage-knap til den skærm kunden kom fra.
Tjek at det virker.