Skip to main content
Skip table of contents

Tableurs dynamiques- Requête(s) RCT de contrôle local


A quoi sert cette requête ?

Une fois que l’utilisateur a lancé le tableur, il va y effectuer différentes actions: demander de l’aide, lancer des actions sur le contenu du tableur, modifier le contenu… La requête RCT de contrôle local permet donc de :

  • Gérer la fonction d’aide par rapport aux colonnes,

  • Contraindre l'utilisateur dans ses saisies ( warning, erreur...)

  • Autoriser ou non la suppression, la modification du contenu des cellules

  • Initialiser une cellule à partir de la saisie d’une autre sur la même ligne,

  • Lancer un autre Tableur Dynamique, une PSD, une actions sur entité (GFD) ou un message de confirmation

On peut avoir une ou plusieurs requêtes RCT pour le tableur: une seule requête peut gérer tous les comportements, mais on peut également les séparer dans plusieurs requêtes.

La requête RCT est lancée à chaque modification de cellules alors qu’en création ou suppression de lignes elle ne sera exécutée qu’une fois au titre de la ligne.

Comment fonctionne cette requête ?

Voyez plutôt !

Comment écrire cette requête ?

image-20240620-094056.png

DIAPASON repère où l’utilisateur est placé dans le tableur: il récupère la référence de la colonne et la valeur de la cellule.

Par exemple, ici l’utilisateur est positionné sur la cellule encadrée :

image-20240923-094505.png

Et donc, la référence de la colonne VLO.VarZoneEnCours=”EmpRat” et la valeur de la cellule VLO.ValZoneEnCours=”1-MAG”

Ici, on vient déterminer ce qu’il se passe quand l’utilisateur effectue les actions suivantes:

  • AIDE : l’utilisateur demande de l’aide sur la cellule du tableur sur laquelle il est positionné, en appuyant sur F2.

➡️ Dans la requête, on traduit ça par SCR.RCT_TypeAction=”AID”.

On va donc créer une liste d’aide ! Voir Créer une liste d'aide dans un tableur et Créer une liste d'aide à choix multiple dans un tableur

  • MODIFICATION: l’utilisateur modifie le contenu de la cellule sur laquelle il est positionné

➡️ Dans la requête, on traduit ça par SCR.RCT_TypeAction=”MOD”

Si on souhaite, on peut contrôler ce que l’utilisateur écrit ici, on initialiser le contenu d’une autre cellule en fonction de ce qu’il écrit.. Voir Initialiser la valeur d'une cellule dans le tableur ou Repositionner le curseur dans un tableur

  • CREATION: l’utilisateur insère une ligne dans le tableur :

➡️ Dans la requête, on traduit ça par SCR.RCT_TypeAction=”CRE”

image-20240923-095518.png

Souhaite-on effectuer des actions, vérifications, initialisations sur les données de la ligne créée ?

  • SUPPRESSION: l’utilisateur supprime une ligne dans le tableur :

➡️ Dans la requête, on traduit ça par SCR.RCT_TypeAction=”MOD”

image-20240923-095935.png

image-20240624-071453.png

Dans ce bloc, on peut lancer des actions paramétrées depuis le tableur. Celles-ci seront disponibles au clic droit sur le tableur !

Les Actions permettent de lancer diverses opérations: 

  • Internes au tableur, comme par exemple un calcul sur certaines cellules, la création de lignes automatiques, la réactualisation du tableur..

  • Externes au tableur, comme par exemple le lancement d'un tableur dynamique "fils" à partir du tableur dynamique principal ("père"), et d'une Procédure de Saisie Dynamique. 

Voir Lancer une action depuis le tableur dynamique, Réactualiser le tableur

Ces outils peuvent alors communiquer en entrée et en sortie avec le contenu des lignes du tableur "père".

image-20240624-071434.png

On peut déterminer ici ce qu’il se passe en retour des actions lancées dans le tableur.

Voir Lancer une action depuis le tableur dynamique

image-20240624-071417.png

Ce mode permet d’effectuer des actions directement au lancement du tableur, avant même que l’utilisateur ait pu intervenir dans le tableur.

Par exemple Mettre à jour des attributs d'une cellule

Pour trouver le numéro d’une colonne il ne faut jamais entrer un numéro de colonne en dur, elle peut changer. On privilégiera donc:

image-20240624-131327.png

Comment récupérer/modifier la valeur d’une cellule ?

En utilisant la liste WfTabVal

DIAPASON rassemble toutes les données du tableur en cours d’utilisation dans une liste standard WFTabVal. Cette liste est également utilisée dans les autres RCT du tableur ( RCT de sortie et RCT de contrôle global).

Tableur dynamique-requête RCT de contrôle global

Si vous vous rappelez bien, dans la requête REB de définition du tableur vous aviez crée une liste personnelle pour y mettre toutes les informations à mettre dans le tableur. Une fois dans le tableur, cette liste ne sert plus, car DIAPASON utilise sa propre liste standard WfTabVal, qui reprend toutes les données du tableur ainsi d’autres données utiles pour gérer cette liste (comme l'état de la ligne, si elle a été ajoutée, supprimée, modifiée..).

La requête RCT repose sur la liste WfTabVal contenant les variables suivantes, de type Caractère :

  • NumLig: Numéro de ligne dans le tableur. Cette zone n’est initialisée que si « Numérotation » est coché sur la définition du tableur dynamique.

  • RefLig: A une ligne du tableur correspond une ligne unique dans WfTabVal.

  • ContLig [500]: Contenu des n colonnes du tableur (n £ 500 pour DIAPASON graphique, n £ 100 pour DIAPASON caractère). Ce champ permet de récupérer la valeur des cellules du tableur. L’information récupérée est toujours de type « Caractère » ; il faudra éventuellement la convertir pour l’exploiter.

La valeur d’une cellule de type « Logique » sera récupérée sous la forme du caractère « + » pour « VRAI » ou « - » pour « FAUX ».

  • ResCtrl: Résultat du contrôle global : Si vide, pas de problème ; si « E », erreur ; si « W », warning.

  • LibResCtrl: Libellé de l’erreur ou du warning

  • EtatLig: Correspond à l’état actuel de la ligne en cours. Les différents états gérés sont : CRE, MOD ou SUP.

  • SelLig: Est égal à VRAI si la ligne est sélectionnée (en bleu, précédée du caractère « >> »). Pour des raisons d’optimisation, cette zone n’est maintenue que si le flag « Sél. Dans Req. » est à VRAI dans la définition de l’entête du tableur. Permet de savoir également quand on lance une action sur le tableur quelles lignes ont été sélectionnées.

Toutes ces variables sont automatiquement initialisées et mises à jour par le tableur. La requête RCT peut mettre à jour les variables ContPreCol, ContLig[500], ResCtrl, et LibResCtrl. Cependant,  pour conserver la correspondance entre le tableur et la requête RCT, il est fortement conseillé de ne pas modifier les variables EtatLig, SelLig et RefLig.

On va pouvoir utiliser cette liste pour aller rechercher ou modifier le contenu d’une autre cellule par les fonctions:

  • Init-Zone: Initialise la cellule pour les références de la colonne et de la ligne renseignées lorsque l’utilisateur saisit, crée ou modifie.

  • Rech-Zone: Recherche le contenu d’une zone en croisant la référence de la ligne et de la colonne.

En utilisant la fonction TAB-ACTION

La fonction TAB-ACTION: Offre les mêmes possibilités que Init-Zone et Rech-Zone, en plus d’autres fonctionnalités décrites dans le paragraphe dédié. La particularité du TAB-ACTION est de travailler avec le numéro de ligne et non pas une référence.

Quel contexte disponible dans cette requête ?

La RCT possède les mêmes fonctionnalités que les requêtes REB.

Des variables SCR sont initialisées à chaque exécution de la RCT pour retranscrire la situation du tableur :

RTD_TDY

  • Référence du tableur dynamique en cours.

RCT_TypeAcces 

  • DEM pour le démarrage (utilisateur n’a pas encore la main)

  • CTL pour un contrôle local (utilisateur positionné dans le tableur)

  • CTG pour un contrôle global (avant mise à jour)

  • ACT pour une action spécifique

RCT_TypeAction

  • DEM Démarrage

  • CRE Création

  • MOD Modification

  • SUP Suppression

  • COL Collage via « Coller la sélection… »

  • AID Aide

  • ABA Abandon avec saisie dans le Tableur Dynamique

  • NMO Abandon sans saisie dans le Tableur Dynamique

  • SOR Lors du contrôle de sortie

  • <Action> Code action défini dans WfTabGen.RAcCol ou WfTabStr.RAcCol

RTD_TypeAcces

  • TDY si le tableur est démarré depuis un autre tableur

  • NAV si le tableur n’est pas démarré depuis un autre tableur (depuis la navigation)

RTD_ModeAcces

  • V pour contexte en visualisation

  • G pour contexte en gestion

RCT_ListeRefCol

  • Liste chaînée des références colonnes (WfTabStr.NomCol) dans le même ordre que celui défini dans WfTabStr.NumCol.

RCT_NumLig

  • Numéro de la ligne en cours. Nécessaire pour utiliser la fonction TAB-ACTION, cette variable n’est initialisée que si « Numérotation » est coché sur la définition du tableur dynamique.

RCT_RefLig

  • Référence de la ligne en cours.

RCT_IndCol

  • Indice de la colonne en cours dans WfTabVal.

RCT_RefCol

  • Référence de la colonne en cours, affectée si l’utilisateur est en mode « AID » ou « MOD » avec un contrôle à la zone et vide si contrôle local à la ligne.

RCT_TypeSortie: Type de sortie

  • + Validation du tableur

  • - Validation d’une saisie

RCT_ModeSortie: Mode de sortie (dans requête de sortie et contrôle global)

  • VAL Validation du tableur

  • ABA Abandon d’une saisie

Que peut-on faire dans cette requête ?

Mettre à jour des attributs d'une cellule

Créer une liste d'aide dans un tableur

Créer une liste d'aide à choix multiple dans un tableur

Initialiser la valeur d'une cellule dans le tableur

Repositionner le curseur dans un tableur

Lancer une action depuis le tableur dynamique

Ajouter un message de confirmation pour une action d’un Tableur Dynamique

Réactualiser le tableur


JavaScript errors detected

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

If this problem persists, please contact our support.