4D v14

Tableaux, popup, listbox

Accueil

 
4D v14
Tableaux, popup, listbox

Tableaux, popup, listbox    


 

 

En complément des manipulations expliquées dans la vidéo, il faut noter que :

Les tableaux font partie des incontournables de 4D.

Pratiques, sans limite, dynamiques, à 1 ou 2 dimensions, ils sont un espace en mémoire qui peut s’afficher sur les formulaires par l’intermédiaire d’objets (popup, combo box, listbox, zones de défilement...).

Nous avons déjà abordé le concept et la mise en œuvre de variables simples à une seule valeur. Un tableau est une variable multi-valuée dont on pourra lire ou écrire chacun des éléments.

On définit pour un tableau le nombre de lignes qu’il contient et son type. Voici à titre de comparaison les différentes étapes de la vie d’une variable et d’un tableau :

EtapeVariable simpleVariable tableau
InitialisationC_TEXTE(vTexte)TABLEAU TEXTE(TabTexte;10) `10 lignes
ValorisationvTexte:="Tascher de la Pagerie"TabTexte{1}:="De Beauharnais" `ligne 1
TabTexte{2}:="Barras" `ligne 2
TabTexte{3}:="Bonaparte" `ligne 3
...
Utilisation$NbCar:=Longueur(vTexte)$Amant:=TabTexte{1}
Effacer le contenuEFFACER VARIABLE(vTexte)TABLEAU TEXTE(TabTexte;0)
(le comportement est différent entre une application interprétée et
compilée, voir la documentation 4D)
Visualisation sur un formulaireDonner le nom de la variable à un objet de type variableDonner le nom de la variable à un objet de type zone de défilement, pop up menu...
TypesEntier, Entier long, Numérique, Alpha, Texte, Booléen, Date, Heure, Image, Blob, pointeursIdentiques aux types de variables sauf Heure et Blob

On remarque que les similitudes sont nombreuses.

Le nom du tableau est utilisé parfois avec les accolades {}, parfois seul. Il s’agit dans ce dernier cas d’une variable (entier long) créée automatiquement par 4D.

Cette variable, associée au tableau, sert d’indice (numéro de ligne) de tableau. C’est par son intermédiaire qu’on peut savoir quelle est la ligne choisie par l’utilisateur, ou forcer la sélection de telle ou telle ligne dans les objets d'interface (popup menu, ...).

C’est la raison pour laquelle vous verrez souvent écrit dans les bases exemples ou les développements des autres développeurs cette syntaxe plus concise :

 [INTERVENTIONS]Objet:=TabObjets{TabObjets}


qu’on peut décrypter comme ceci : "Objet := contenu du tableau {à la ligne choisie}"
Vous trouverez également, plus concise et beaucoup plus générique, cette syntaxe qui utilise la commande Self (pointeur vers l’objet dont la méthode est en cours d’exécution) :
 [INTERVENTIONS]Objet:=Self->{Self->}

Quelle que soit la syntaxe utilisée, le fonctionnement est identique.

Dans 4D, un onglet est un objet unique avec plusieurs titres (valeurs). C’est un des objets d'interface que l'on peut utiliser pour représenter un tableau.

En général on place les onglets en page 0 du formulaire (reportez-vous au chapitre qui aborde ce point)

Vous le constaterez, les tableaux deviennent vite très utiles voire indispensables dans 4D.

Un tableau ne contient que des éléments de même type (vous ne pouvez pas avoir un tableau avec une ligne Alpha, une autre Date et une troisième Heure). Dans ce cas, vous pouvez utiliser un tableau de pointeurs qui pointera potentiellement vers des variables de types différents.

Comme évoqué à la leçon sur les pointeurs, vous pouvez combiner les pointeurs et les tableaux pour obtenir les "tableaux de pointeurs".

Pensez également qu'une Listbox est une série de tableaux accolés (de même dimension M).

C'est un objet qui regroupe et synchronise de 1 à N tableaux.

Dans une Listbox, vous pouvez paramétrer :

  • la Listbox elle-même
  • chacun des en-têtes de colonnes
  • et chacune des colonnes

En tout, si votre Listbox comporte N colonnes, vous avez 2N+1 objets (N colonnes, N entêtes, 1 ListBox).

La Listbox permet :

  • la saisie de données
  • le tri et le déplacement des lignes et des colonnes
  • l’affichage de couleurs alternées
  • l'affichage hiérarchique
  • des cumuls dans le pied de page
  • Elle peut être synchronisée avec des tableaux comme nous le faisons ici ou avec des champs de la sélection courante (ou temporaire) d’une table
  • ...

Sachant que la Listbox synchronise ses colonnes, elle prend le plus petit nombre de lignes des tableaux qui la constituent.

Ce point est important car il vous arrivera d’avoir des tableaux remplis et une Listbox vide car un seul des tableaux est vide.

 
 

 
PROPRIÉTÉS 

Produit : 4D
Thème : Tableaux, popup, listbox
Nom intl. : Arrays, pop-ups, list boxes

 
UTILISATION DE L'ARTICLE

Autoformation ( 4D v13)
Autoformation ( 4D v14)