Il existe différentes manières de déclarer des variables de tableau. La première manière consiste à utiliser des parenthèses vides et déclarer explicitement le type du tableau :
'Déclarer x comme variable globale 'de type tableau numérique Global x () As Number 'Initialiser x x = Array (10, 20, 30) 'Déclarer y comme variable partagée 'de type tableau de plages de chaînes Shared y () As String Range 'Initialiser y y = Array ("A" To "C", "H" To "J")
La seconde manière consiste à déclarer la variable sans spécifier qu'il s'agit d'un tableau et sans donner son type, et attendre la première assignation de la variable pour spécifier complètement son type :
'Déclarer y comme variable locale 'mais sans spécifier son type Dim y 'y est maintenant de type tableau de chaînes y = Array ("Lun", "Mar", "Mer", "Jeu", "Ven", _ "Sam", "Dim")
La troisième manière consiste à déclarer la variable en tant que tableau sans complètement spécifier son type jusqu'à la première assignation. En prenant compte de la déclaration de y ci-dessus :
'Déclarer z comme variable locale et tableau Local z() 'z devient Array ("Mar", "Mer") et est un tableau de chaînes z = y(2 to 3)
La quatrième manière consiste à spécifier complètement la taille du tableau durant la déclaration. Si vous utilisez cette technique, le tableau est automatiquement créé et les valeurs par défaut sont utilisées pour le remplir. Par exemple, pour un tableau de nombres, chaque élément est initialisé à 0 et pour un tableau de chaînes, chaque élément est initialisé comme chaîne vide "". Puisque ce type de déclaration crée le tableau, vous devez spécifier son type avec la clause As pour que Crystal Reports puisse déterminer la taille d'espace de stockage à réserver pour le tableau.
Dim a(2) As String 'Affecter une valeur au premier élément du tableau a a(1) = "bon" a(2) = "jour" 'L'opérateur & peut être utilisé pour concaténer les chaînes 'la formule renvoie la chaîne "bonjour" formula = a(1) & a(2)
Vous pouvez affecter des valeurs aux éléments d'un tableau et également les utiliser pour d'autres calculs.
Global x() As String x = Array ("bonjour", "au revoir", "encore") 'x est maintenant Array ("bonjour", "une fois", "encore") x (2) = "une fois" 'L'instruction ci-dessous provoquerait une erreur si elle 'n'était pas mise en commentaire car la dimension du tableau est 3 'x (4) = "zap" 'La formule renvoie la chaîne "BONJOUR" formula = UCase (x (1))
Les mots clés Redim et Redim Preserve peuvent être utilisés pour redimensionner un tableau si vous voulez lui ajouter des données supplémentaires. Redim efface d'abord le contenu précédent du tableau avant de le redimensionner tandis que Redim Preserve conserve ce contenu.
Dim x () As Number Redim x (2) 'x est maintenant Array (0, 0) x (2) = 20 'x est maintenant Array (0, 20) Redim x (3) 'x est maintenant Array (0, 0, 0) x (3) = 30 'x est maintenant Array (0, 0, 30) Redim Preserve x (4) 'x est maintenant Array (0, 0, 30, 0) formula = "terminé"
Les tableaux sont couramment utilisés avec des boucles For/Next. L'exemple suivant crée puis utilise le tableau Array (10, 20, 30, ..., 100)
à l'aide d'une boucle For/Next.
Dim b (10) As Number Dim i For i = 1 To 10 b(i) = 10 * i Next i formula = b(2) 'La formule renvoie le nombre 20
Plusieurs variables peuvent être créées dans une instruction unique, en séparant leur déclaration par des virgules.