Skip to main content
Skip table of contents

Définir dynamiquement les colonnes ( la structure )du tableur par requête (liste WfTabStr )


Il est possible de surcharger ou de définir dynamiquement les colonnes du tableur via la requête REB de chargement du tableur !

La liste WfTabStr est alimentée avec les colonnes définies sur l’entête du tableur: un enregistrement correspond à une colonne du tableur.

Dans la requête, il est possible de:

  • modifier les caractéristiques des colonnes qui y sont déjà déclarées (POUR CHAQUE Liste WfTabStr, RECH PREMIER Liste WFTabStr),

  • créer des nouvelles colonnes (CREATION Liste WFTabSTr)

Comment modifier la structure du tableur ( les colonnes ) ?

Ici, on souhaite par exemple afficher la colonne “Emplacement” dynamiquement, selon le cas:

image-20240724-091336.png

image-20240724-091604.png

Le pilotage dynamique de la structure du tableur ne peut être réalisé que dans la requête REB de chargement du tableur, avant affichage de celui ci. Il n’est pas possible de modifier cette structure, durant phase d’interaction avec l’utilisateur , via la requête RCT locale.

On peut modifier la structure du tableur ( les colonnes), dans la REB d’affichage du tableur avec la liste WfTabStr.

Où trouver la REB de définition du tableur ?

La REB de définition du tableur est entrée ici, dans la définition du tableur:

image-20240723-151437.png

On va aller y modifier la liste WfTabStr, qui permet de modifier tout ce qui touche à la gestion des colonnes:

image-20240723-155703.png

Comment faire ?

  • On a créé une liste des colonnes qui est appelée dans la définition de notre tableur:

image-20240724-102701.png
  • On vient ensuite créer la nouvelle colonne ( qui s’affiche selon les conditions qu’on choisit), en faisant une CREATION dans le liste WFTabStr. On remplit donc:

    • NomCol: la référence de la colonne

    • LibCol: son libellé

    • ForCol: son format

    • NumCol: l’ordre d’affichage de la colonne

    • AffCol: si la colonne est affichée

    • SaiCol: si la colonne est saisissable

    • CreCol: si la colonne est saisissable en création

    • CtrCol: si on a un contrôle sur la colonne

    • AidCol: si on a une aide sur la colonne

D’autres caractéristiques sont disponibles !

Par défaut, les champs logiques sont à non 😉

  • On oublie pas ensuite de rajouter la nouvelle colonne dans la liste qu’on appelle dans la définition du tableur !

Comment définir un nombre de colonne variable ?

Il est possible faire varier le nombre de colonnes à ajouter dans notre tableur, sans avoir prédéfini chaque colonne. Par exemple, on souhaite avoir des colonnes correspondant à des dates, et le nombre de dates change à chaque fois…

coldyn1.png

1ere étape: On crée nos colonnes dans la liste WFTabSTr

Pour cela, on créé autant d’enregistrements dans la table WFTabStr qu’il y a des colonnes à créer.

Le champ NomCol doit contenir:

Racine du nom de la colonne ( ci-contre, on l’a appelée “ValCol”) + “-” + indice numérique de la colonne.

2ème étape: alimenter les valeurs des colonnes

Dans la liste personnelle qui alimente le tableur, on déclare un champs de type tableau. Sa référence doit être égale à la racine de la colonne ( ci-contre, “ValCol”) .

Comment déclarer un champs de type tableau ?
image (55).png

Quand on crée le champs, il faut remplir la dimension comme ci-dessous pour avoir un champs de type tableau. Cette dimension doit correspondre au nombre maximum de colonne qu’on peut avoir.

Le champs tableau est ensuite utilisé comme un champs classique, avec le mot-clé PRENDRE. On doit simplement alimenter l’indice du tableau, en dur ou à l’aide d’une variable.

Quels sont les champs de la liste WfTabStr ?

La liste WfTabStr se compose des champs suivants:

Champ

Type

Description

NomCol

Caractère

Référence de la colonne; elle doit être égale à la référence d’un champ de la liste personnelle 

LibCol

Caractère

Libellé de la colonne (titre)

ForCol

Caractère

Format de la zone de saisie de la colonne

  • L+/- pour logique ;

  • D/JJ/MM/AAAA pour date ;

  • C/XX pour caractère (XX représente la longueur de la chaîne) ;

  • R/XX,XX- pour réel (XX,XX- représente la longueur et la capacité à gérer le signe du réel) ;

  • E/XX pour entier (XX représente la longueur de la chaîne).

CreVal

Caractère

Valeur d’initialisation de la zone en création

CouCol

Caractère

Couleur du fond de la colonne. Les choix possibles sont : Rouge, Vert, Bleu, Mauve, Jaune, Rose ou Orange

Indice couleur défini dans DIAPASON (voir « A Propos de DIAPASON », Onglet « Couleurs »)

RAcCol

Caractère

Liste des références des actions à ajouter sur cette colonne (voir chapitre correspondant).

LAcCol

Caractère

Liste des libellés des actions à ajouter sur cette colonne

NumCol

Numérique

Numéro de colonne dans le tableur, si initialisé à 0 pour toutes les colonnes, elles seront prises par ordre alphabétique

LarCol

Numérique

Largeur de la colonne (indépendant du format de la colonne)

AffCol

Logique

Colonne affichée ?

SaiCol

Logique

Colonne saisie ?

CtrCol

Logique

Colonne contrôlée ?

AidCol

Logique

Aide disponible sur la colonne ?

CreCol

Logique

Sur une ligne créée, possibilité ou non de saisir la zone

CumCol

Logique

Cumul colonne ?

ValCum

Logique

Cumul sur valeurs ?

Pour des valeurs numériques, si initialisé à « + » alors le cumul est réalisé sur les valeurs, sinon « - » le nombre de lignes est cumulé.

Pour des valeurs en mode caractère ou date, le cumul est donné en nombre de lignes.

Il n’est pas nécessaire de renseigner la variable ValCum dans le cas d’une colonne cumulée non numérique.

InvCol

Logique

Colonne en inverse

FigCol

Logique

Indique si la colonne est figée ou pas. Une colonne figée est cadrée à gauche du tableur et ne défile pas horizontalement.

Ce statut est pris en compte seulement pour les colonnes qui sont le plus à gauche du tableur. Il ne peut pas y avoir de colonne figée après une colonne non figée.

Si le format de certaines variables n’est pas initialisé, les variables logiques le seront par défaut à « +/- », les variables de type caractère à « C/10 », de type réel à « R/8.3 », les entiers à « E/8 » et de type date à « D/JJ/MM/AAAA ».


JavaScript errors detected

Please note, these errors can depend on your browser setup.

If this problem persists, please contact our support.