version 6.0
Chaque commande de déclaration de tableau permet de créer ou de redimensionner des tableaux à une ou à deux dimensions. Exemple :
TABLEAU TEXTE (atTopics;100;50) ` Créer un tableau texte composé de 100 lignes de 50 colonnes
Les tableaux à deux dimensions sont essentiellement des objets de langage ; vous ne pouvez ni les afficher ni les imprimer.
Dans l'exemple prédédent :
atTopics est un tableau à deux dimensions.
atTopics{8} {5} est le 5e élément (5e colonne...) de la 8e ligne.
atTopics{20} est la 20e ligne et est elle-même un tableau à une dimension.
Taille tableau(atTopics) retourne 100, qui est le nombre de lignes
Taille tableau(atTopics{17}) retourne 50, qui est le nombre de colonnes de la 17e ligne
Dans l'exemple suivant, un pointeur vers chaque champ de chaque table de la base est stocké dans un tableau à deux dimensions :
` Créer autant de lignes vides qu'il y a de tables TABLEAU POINTEUR (<>apChamps;Nombre de tables;0) ` Pour chaque table Boucle ($vlTable;1;Taille tableau(<>apChamps)) ` Redimensionner la ligne avec autant de colonnes qu'il y a de champs dans la table INSERER LIGNES (<>apChamps{$vlTable} ;1;Nombre de champs($vlTable)) ` Donner la valeur des éléments Boucle ($vlChamp;1;Taille tableau(<>apChamps{$vlTable} )) <>apChamps{$vlTable} {$vlChamp} :=Champ($vlTable;$vlChamp) Fin de boucle Fin de boucle
Dans la mesure où le tableau à deux dimensions a été initialisé, vous pouvez obtenir ainsi les pointeurs vers les champs d'une table de votre choix :
` Obtenir les pointeurs vers les champs pour la table affichée à l'écran: COPIER TABLEAU (<>apChamps{Table(Table du formulaire courant)};$apMesChampsdeTravail) ` Initialiser les champs booléens et date Boucle ($vlElem;1;Taille tableau($apMesChampsdeTravail)) Au cas ou : (Type($apMesChampsdeTravail{$vlElem} ->)=Is Date) $apMesChampsdeTravail{$vlElem} ->:=Date du jour : (Type($apMesChampsdeTravail{$vlElem} ->)=Is Boolean) $apMesChampsdeTravail{$vlElem} ->:=Vrai Fin de cas Fin de boucle
Note : Comme le montre cet exemple, les lignes des tableaux à deux dimensions peuvent être ou non de la même taille, indifféremment.
Référence