Mer om tabeller

Tabeller med Objekter/Sammensatte datatyper


En tabell med bare en datatype kan deklareres feks. slik:

navn: Array = new Array();
navn=["Ole", "Kari", "Jens"];
eller direkte:
navn = ["Ole", "Kari", "Jens"];

Dette kan visualiseres slik:

"Ole" "Kari" "Jens"

I mange situasjoner ønsker vi å lagre flere ting i samme "boks" (celle) i tabellen, eksempelvis en bestillingsliste for en kunde på nettside som selger klær. (Se eksamensoppgave 2008), her illustrert med varnavn, varenummer og pris og antall bestilt:

"Jakke"
1013
2600
1
"Bukse"
1110
1500
2
"Slips"
1903
2600
1

Dette sparer oss for å lage fire forskjellige tabeller, en for varenavn, en for varenummer, en for pris og en for antall..

Eksempel på kode som henter varenavn fra et tekstfelt varnavnTf, varenummer fra et tekstfelt varenummerTf, pris fra et testfelt prisTf og antall fra en spinner (Numericstepper) antallSp i brukergrensesnittet.

//Oppsetting av tabell i starten av et program:
var bestillinger: Array = new Array();		// Lager en tom tabell
//Lytter hengt på en "Legg til"-knapp i brukergrensesnittet
function leggTilArtikkel() {
var artikkel: Object = new Object();	// Lager et tomt objekt (sammensatt datatype)
artikkel.varenavn=varenavnTf.text;	// Legger inn en celle med varnavn, hentet fra brukergrensesnitt
artikkel.varenummer=varenummerTf.text;	// Tilsvarende for varenummer
artikkel.pris=int(prisTf.text);		// Tilsvarende for pris
artikkel.antall=int(antallSp.value);	// Tilsvarende for antall
bestillinger.push(artikkel);		// Legger hele objektet inn på første ledige plass i tabellen
}//leggTilArtikkel()

 

Eksempel på kode som lister ut alt innholdet i tabellen, altså det kunden har bestillt:

for( i: int = 0; i< bestillinger.length; i++) {
trace( bestillinger[i].varenavn );
trace( bestillinger[i].varenummer );
trace( bestillinger[i].pris );
trace( bestillinger[i].antall );
}//for