Boolean: 2 bájtos, csak False vagy True értéket vehet fel. Ezek rendre a 0 és a -1 értéket tartalmazó nevesített konstansok.
Byte: 1 bájtos előjel nélküli egész szám. Értékkészlete 0-tól 255-ig terjed.
Integer: 2 bájtos előjes egész szám. Értékkészlete -32768-tól 32767-ig terjed.
Long: 4 bájtos előjes egész szám.
Single: Egyszeres pontosságú előjeles lebegőpontos szám 4 bájton ábrázolva.
Double: Kétszeres pontosságú előjeles lebegőpontos szám 8 bájton ábrázolva.
Currency: Rögzített tizedespontú szám, melyet leggyakrabban a pénzügyi számításokban használnak. Tizenöt számjegyű lehet az egészrész, a törtrész 4 számjegyű. 8 bájton tárolódik.
String: Unicode kódolású karakterek sorozata. Minden egyes karakter ábrázolásához 2 bájt szükséges. Alapértelmezésként változó hosszúságú, de deklarálhatunk fix hosszúságú stringet is. Ezt a következő képpen tesszük meg:
Dim fix_string As String*25
Array: A tömb azonos típusú elemek halmaza, ahol minden egyes elem egész számok egy sorozatán (indexek) keresztül érhető el. A LotusScriptben a tömbök maximálisan 8 dimenziósak lehetnek, és az elemek -32,768-től 32,767-ig indexelhetőek.
A LotusScriptben lehetőségünk van egy vagy több dimenziós, fix vagy változó méretű tömb használatára. Először kezdjük a legegyszerűbb esettel, nézzük meg, hogyan deklarálhatunk fix méretű tömböket:
Dim tomb(n) As Integer ' egy n+1 elemű egy dimenziós tömb deklarálása, indexek: 0..n Dim tomb(n To m) As Integer ' egy m-n+1 elemű egy dimenziós tömb deklarálása, indexek: n..m
Mivel már ismerjük az indexek megadási módját ezért a több dimenziós tömb létrehozása már igen egyszerű. Csupán az egyes indexek megadását vesszővel kell elválasztani egymástól, az alábbi módon:
Dim tomb(n, m) As Integer ' egy (n+1) * (m+1) elemű két dimenziós tömb deklarálása, indexek: 0..n, 0..m Dim tomb(n To m, f To g) As Integer ' egy (m-n+1) * (g-f+1) elemű két dimenziós tömb deklarálása, indexek: n..m, f..g Dim tomb(n, f To g) As Integer ' egy (n+1) * (g-f+1) elemű két dimenziós tömb deklarálása, indexek: 0..m, f..g
A fix méretű tömbök után nézzük meg azokat a tömböket, melyeknek futási időben változtatható a méretük.Deklarálásuk hasonló a fix méretű tömbökéhez, de a dimenziós listát üresen kell hagyni (pl. Dim tomb() ).A későbbiekben a Redim utasítással adhatjuk meg a dimenziókat illetve az elemek számát. A Redim utasítással változtathatjuk a meglévő dimenziók határait, de adatvesztés nélkül csak a felsőt. Alapértelmezésben a dimenziók számának változtatása adatvesztéssel jár, de a Preserve kulcsszó használatával elérhetjük, hogy megmaradjanak az adataink. Ekkor azonban csak az utolsó dimenzió felső határa módosítható, a többinél hibát kapunk.
A tömbök indexhatárának lekérdezésére a nyelv az Ubound és LBound függvényeket bocsátja a programozók rendelkezésére. Ezek használatával a tömb adott indexének alsó és felső határa kérdezhető le.
Az Erase utasítással lehetőségünkben áll a dinamikus tömb által lefoglalt tárterületet felszabadítani. Amennyiben egy nem dinamikus tömbre alkalmazzuk az utasítást, abban az esetben a tömb elemi kinullázódnak, vagyis nulla, üres string, EMPTY vagy NOTHING értéket vesznek fel, az elem típusától függően.
List: A lista azonos típusú elemek egy dimenziós gyűjteménye, ahol minden egyes elem az egyedi nevén keresztül érhető el. A lista mérete dinamikusan változik a futási idő alatt. Automatikusan növekszik mérete ha új elem kerül bele, és automatikusan csökken mérete ha egy elemet törlünk belőlle.
Nézzünk egy példát a listák használatára:
' String típusú elemeket tartalmazó lista deklarálása Dim myList List As String ' Elemek elhelyezése a listában myList("A1234") = "Andrea" myList("A2345") = "Vera" myList("A3456") = "Isabel" ' "Vera" kiírása a kimenetre Print myList("A2345")
Az elemeket azonosító egyedi karaktersorozat kis és nagybetű érzékenysége tetszés szerint állítható a modul részben az Option Compare { Case | NoCase | Binary } utasítással. Amennyiben Case vagy Binary értéket használunk, akkor például a myList("elsoElem") és a myList("ElsoElem") két különböző elemet azonosít, míg a NoCase használatával ezek ugyanazt az elemet hivatkozzák.
Az elemek törlése az Erase utasítással történik. Amennyiben Erase listaNev(listaElemNev) formában használjuk, akkor a listaElemNev nevű elemet törli a listából. Az Erase listaNev hatására a lista összes eleme törlődik. Természetesen mindkét esetben a törölt elemek által foglalt tárterület felszabadul.
Variant: A Variant egy speciális adattípus. Az ilyen típusú változók a következő típusú értékek mindegyikét fel tudják venni értékül: skalár (Boolean, Byte, Integer, Long, Single, Double, Currency, String), dátum/idő, tömb vagy lista, objektum referencia, NULL érték, EMPTY érték.
A Variant típusú változók, deklaráláskor egy speciális EMPTY értéket vesznek fel. Ez az érték jelzi, hogy a változó értéke nem definiált, nincs megadva. Azt, hogy vajon EMPTY értéke van-e a változónak az IsEmpty függvénnyel tudjuk megállapítani.
Ennek a típusnak köszönhetően ha egy tömböt vagy listát Variant típusú elemekkel deklarálunk, akkor a tömb vagy lista elemei, gyakorlatilag eltérő típusúak is lehetnek.
Felhasználó által definiált adattípus: Azonos vagy különböző típusú elemek halmaza. Hasonló a Pascal beli record-hoz vagy a C beli struct-hoz. Maximális mérete 64 Kbájt lehet.
Felhasználó által definiált osztály: Mivel a LotusScript egy alapvetően objektumorientált nyelv, természetesen lehetőségünk van saját osztályok létrehozására.
Objektum referencia: Egy referencia OLE objektumra, beépített vagy saját osztály egy példányára, vagy egy Java objektumra.