Skip to main content
Skip table of contents

Tableurs dynamiques- Requête RCT


Cette requête permet d’effectuer un contrôle local, un contrôle de sortie, un contrôle global ou bien une action de démarrage en fonction de l’action menée (Démarrage, Création de ligne, Modification de ligne, Suppression de ligne ou Aide) :

  • Action de Démarrage, s’exécute au démarrage du tableur après la REB/RTD, pilote le positionnement sur la cellule de départ, le mode d’affichage et permet de déclencher automatiquement une action.

  • Contrôle Local, il s’exécute à la cellule ou à la ligne et permet aussi de gérer la fonction d’aide par rapport aux colonnes, d’autoriser ou non la suppression, la modification (message par « LC-ERREUR »), d’initialiser une cellule à partir de la saisie d’une autre sur la même ligne, de lancer un autre Tableur Dynamique, une PSD, une actions sur entité (GFD) ou un message de confirmation.

  • Contrôle de Sortie, il s’exécute à la sortie du tableur : Validation directe (F1 ou Validation), Sortie, puis validation (F4 ou croix, puis Validation), Sortie, puis abandon (si « MAJ Abandon » est coché). Il permet d’empêcher la validation ou l’abandon et de rester sur le tableur. Si une instruction « LC-ERREUR » intervient lors de l’exécution de la requête, la sortie du tableur est annulée.

Remarque : ce contrôle n’est pas exécuté lors de l’utilisation d’un tableur Excel.

  • Contrôle Global, il travaille sur l’ensemble des données du tableau (WfTabVal) afin de réaliser les mises à jour de Table de Valeurs et / ou les contrôles nécessaires après récupération des informations du tableur. Il est possible de paramétrer la gestion de l’intégrité de la mise à jour des tableurs dynamiques, c’est-à-dire de choisir le comportement de DIAPASON en cas d’erreur d’enregistrement : Toutes les opérations effectuées sur la base de données (enregistrement proprement dit, alimentation Tables de Valeurs, utilisation ENR-ACT-ENT, etc.) peuvent être annulées si l’une d’entre elles est annulée (par LC-ERREUR par exemple) ; ou bien seules les mises à jour choisies seront annulées.

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

La requête RCT est lancée à chaque modification alors qu’en création ou suppression elle ne sera exécutée que sur instructions par le macro-langage.

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

Les différentes fonctions disponibles au sein de la requête RCT sont décrites ci-après :

  • 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.

  • 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é (Fonction DIALOG : TAB-ACTION). La particularité du TAB-ACTION est de travailler avec le numéro de ligne et non pas une référence.

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.

Remarque : 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.

Remarques :

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.

La mise à jour de tables de valeurs dans la requête RCT (Req. Contrôle Global et Maj) doit être réalisée avec les mots clés CREER TV, MAJ TV, INIT TV , …

Lors de la validation d’un Tableur Dynamique, il est possible d’en éditer le contenu. Pour cela vous devez utiliser la fonction « EXE-DOC » avec le document « ISTableur » dans la requête RCT de validation :

Liste d’aide

Le mode « AID » correspond à la constitution d’une liste d’éléments se rapportant à une colonne lorsque l’utilisateur utilise la fonction « Aide (F2) ».

Cette liste se construit dans la requête RCT à partir d’une liste standard DIAPASON alimentée avec des variables SDH.

Liste d’aide simple

1ère étape : CRE-SELINF suivi de plusieurs initialisations de variables comme :

INIT SDH LisInfinf qui se rapporte à la référence de la première colonne de la liste constituant l’aide (obligatoire).

INIT SDH LisInfRef qui correspond à la référence de la liste d’aide (obligatoire)

INIT SDH LisInfDes qui peut contenir d’autres informations relatives à l’entité (facultative).

2ème étape : INIT-LISTE-AIDE « Référence de l’aide » indique la référence de la liste d’aide.

PURGE-SELINF avec la référence de la liste. Cette instruction supprime la liste et permet d’éviter de se retrouver avec une liste d’aide contenant plusieurs fois les mêmes informations si la fonction d’aide est appelée plusieurs fois. Cette instruction doit être positionnée avant la création de la liste.

VLO.RefListAid = SCR.RCT_RefCol

PURGE-SELINF VLO.RefListAid

POUR CHAQUE ARTICLE :

CRE-SELINF :

INIT SDH.LisInfRef = VLO.RefListAid

INIT SDH.LisInfInf = SAS.GenRefArt

INIT SDH.LisInfDes = SAS.GenDesArt

FIN_BLOC

FIN_BLOC

INIT-LISTE-AIDE VLO.RefListAid

Liste d’aide simple avec colonnes supplémentaires

Pour avoir un affichage différent dans une liste d’aide, il faut indiquer en plus les valeurs à afficher dans SDH.LisInfCom, puis utiliser les instructions présentées dans les points suivants :

VLO.RefListAid = SCR.RCT_RefCol

PURGE-SELINF VLO.RefListAid

POUR CHAQUE ARTICLE :

CRE-SELINF :

INIT SDH.LisInfRef = VLO.RefListAid

INIT SDH.LisInfInf = SAS.GenRefArt

INIT SDH.LisInfDes = SAS.GenDesArt

INIT SDH.LisInfCom = SAS.GenMDiArt + CLO.“#“ + SAS.GenDeCArt

FIN_BLOC

FIN_BLOC

INIT-LISTE-AIDE VLO.RefListAid

La variable SDH.LisInfCom doit contenir la liste des valeurs souhaitées à l’affichage en dehors de SDH.LisInfInf et SDH.LisInfDes, séparées par un séparateur paramétrable (par défaut, il s’agit du caractère #).

Les différentes possibilités d’alimentation de la liste d’aide sont décrites ci-dessous et pilotées par des « CRE-SELINF » avec :

SDH.LisInfRef = VLO.RefListAid + CLO."*STRUCTURE"

SDH.LisInfInf = un code indiquant l’action souhaitée (voir tableau à la fin de ce chapitre)

SDH.LisInfDes = une suite d’informations séparée par défaut par des « # »

L’exemple de base est une liste de nombres, avec pour chacun une colonne qui indique si le nombre est premier. Les valeurs de la liste d’aide de base sont décrites dans le tableau ci-dessous.

LisInfInf

LisInfDes

LisInfCom

01

Un

1#+

02

Deux

2#+

03

Trois

3#+

04

Quatre

4#-

05

Cinq

5#+

06

Six

6#-

07

Sept

7#+

08

Huit

8#-

09

Neuf

9#-

10

Dix

10#-

Ajouter ou enlever des colonnes dans une liste d’aide simple

Les colonnes par défaut sont « Référence », « Désignation » et éventuellement « Commentaire », « Valide », « Icône » ou « Image ». Le paramétrage permet d’ajouter ou d’enlever des colonnes. Pour cela, il faut renseigner dans la requête des lignes tels que sur l’exemple ci-dessous :

CRE-SELINF :

INIT SDH.LisInfRef = VLO.RefListAid + CLO."*STRUCTURE"

INIT SDH.LisInfInf = CLO."COLAFFICHE"

INIT SDH.LisInfDes = CLO."1#R#2"

FIN_BLOC

Dans cet exemple, la liste d’aide sera composée d’une colonne nommée « COL-1 », puis de la colonne « Référence » et enfin une autre colonne « COL-2 ». Les noms de colonne doivent correspondre à l’indice de la valeur dans la SDH.LisInfCom (dans la liste d’aide d’origine), à part les cas suivants :

  • « R » qui symbolise la colonne « Référence »

  • « D » la colonne « Désignation »

  • « V » la colonne « Valide ». L’affichage de la colonne « Valide » va afficher les lignes supprimées (Valide = 1) en rouge barré.

Le contenu des colonnes est piloté dans la liste d’aide d’origine par SDH.LisInfCom qui doit contenir les valeurs des colonnes séparées par le séparateur choisi (« # » par défaut).

Pilotage des titres de colonnes d’une liste d’aide simple

Les titres de colonne par défaut sont « Référence », « Désignation » et éventuellement « Commentaire », « Valide », « Icône » ou « Image ». Le paramétrage permet de modifier ces titres. Vous devez renseigner dans la requête des lignes tels que sur l’exemple ci-dessous :

CRE-SELINF :

INIT SDH.LisInfRef = VLO.RefListAid + CLO."*STRUCTURE"

INIT SDH.LisInfInf = CLO."TITRES"

INIT SDH.LisInfDes = CLO."Nombre#Premier"

FIN_BLOC

Dans cet exemple, les titres de colonnes seront « Nombre » pour la première et « Premier » pour la seconde.

ATTENTION : Les titres ne doivent pas contenir de caractères interdits (accentués…) sous peine de problèmes d’affichage (titre vide…)

Pilotage des types de colonnes dans une liste d’aide simple

Les colonnes sont par défaut de type « Caractère ». Le paramétrage permet de choisir un type différent : ceci est utile pour appliquer des tris ou des filtres à ces colonnes. Vous devez renseigner dans la requête des lignes telles que sur l’exemple ci-dessous :

CRE-SELINF :

INIT SDH.LisInfRef = VLO.RefListAid + CLO."*STRUCTURE"

INIT SDH.LisInfInf = CLO."TYPES"

INIT SDH.LisInfDes = CLO."E#L"

FIN_BLOC

Dans cet exemple, la première colonne sera de type numérique et la seconde de type logique. Les types possibles sont les types DIAPASON : A, E, R, D, L ou I.

Pilotage des formats de colonnes dans une liste d’aide simple

Les formats de colonne par défaut sont « C/25 » pour la colonne « Référence », « C/50 » pour la colonne « Désignation » et éventuellement « C/100 » pour la colonne « Commentaire ». Le paramétrage permet de modifier ces formats. Vous devez renseigner dans la requête des lignes tels que sur l’exemple ci-dessous :

CRE-SELINF :

INIT SDH.LisInfRef = VLO.RefListAid + CLO."*STRUCTURE"

INIT SDH.LisInfInf = CLO."FORMATS"

INIT SDH.LisInfDes = CLO."E/2#"

FIN_BLOC

Dans ce exemple, les formats seront de 2 entiers pour la première colonne (doit être de type « entier ») et de 25 caractères pour la seconde.

Pilotage des largeurs de colonne dans une liste d’aide simple

La largeur d’une colonne est par défaut celle qui correspond au format. Le paramétrage permet de modifier cette largeur. Vous devez renseigner dans la requête des lignes tels que sur l’exemple ci-dessous :

CRE-SELINF :

INIT SDH.LisInfRef = VLO.RefListAid + CLO."*STRUCTURE"

INIT SDH.LisInfInf = CLO."LARGEURS"

INIT SDH.LisInfDes = CLO." #15"

FIN_BLOC

Dans ce exemple, la largeur sera en fonction du format pour la première colonne et de 15 caractères pour la seconde.

Remarque : pour piloter la largeur par défaut des colonnes de type « image », voir le chapitre « Affichage d’images ».

Pilotage des hauteurs de ligne dans une liste d’aide simple

La hauteur d’une ligne est par défaut celle d’un caractère. Si le texte affiché dans une cellule contient des « retours chariot », la hauteur est multipliée en fonction de leur nombre. Le paramétrage permet de choisir la hauteur indépendamment du texte affiché dans la ligne. Vous devez renseigner dans la requête des lignes tels que sur l’exemple ci-dessous :

CRE-SELINF :

INIT SDH.LisInfRef = VLO.RefListAid + CLO."*STRUCTURE"

INIT SDH.LisInfInf = CLO."HAUTEUR_TYPES"

INIT SDH.LisInfDes = CLO." HFC "

FIN_BLOC

CRE-SELINF :

INIT SDH.LisInfRef = VLO.RefListAid + CLO."*STRUCTURE"

INIT SDH.LisInfInf = CLO."HAUTEURS"

INIT SDH.LisInfDes = CLO." 4"

FIN_BLOC

Dans ce exemple, la hauteur sera de 4 caractères. « HFC » signifie « hauteur fixe en caractères ».

CRE-SELINF :

INIT SDH.LisInfRef = VLO.RefListAid + CLO."*STRUCTURE"

INIT SDH.LisInfInf = CLO."HAUTEUR_TYPES"

INIT SDH.LisInfDes = CLO." HFP "

FIN_BLOC

CRE-SELINF :

INIT SDH.LisInfRef = VLO.RefListAid + CLO."*STRUCTURE"

INIT SDH.LisInfInf = CLO."HAUTEURS"

INIT SDH.LisInfDes = CLO." 160"

FIN_BLOC

Dans ce exemple, la hauteur sera de 160 pixels. « HFP » signifie « hauteur fixe en pixels ».

Remarques :

La hauteur donnée peut être une liste de hauteurs. La hauteur la plus grande sera considérée.

Pour piloter la hauteur par défaut des lignes contenant une ou des images, voir le chapitre « Affichage d’images ».

Ajouter des colonnes « filtrables » dans une liste d’aide simple

Les colonnes ajoutées ne sont ni filtrables ni triables par défaut. Le paramétrage permet de rajouter jusqu’à 5 colonnes de type caractère pouvant bénéficier des filtres et tris. Pour cela, renseigner dans la requête des lignes les numéros des colonnes à filtrer tels que sur l’exemple ci-dessous :

CRE-SELINF :

INIT SDH.LisInfRef = VLO.RefListAid + CLO."*STRUCTURE"

INIT SDH.LisInfInf = CLO."FILTRES"

INIT SDH.LisInfDes = CLO."2#3"

FIN_BLOC

Dans cet exemple, les colonnes numéro 2 et 3 disposeront des fonctions de filtre et tri disponibles sur les listes.

Remarque :

Cette fonctionnalité concerne uniquement les colonnes ajoutées, la fonctionnalité standard est déjà effective dans les colonnes standards. En conséquence, la numérotation pour cette fonction commence à la première colonne ajoutée, qui aura le numéro « 1 ».

Affichage des images dans une liste d’aide simple

Il y a plusieurs moyens d’afficher des images dans une liste d’aide :

  • Afficher une image : alimenter la variable SDH.LisInfIma.

  • Afficher une icône : alimenter la variable SDH.LisInfIco. Pris en compte uniquement si la variable SDH.LisInfIma est vide.

  • Afficher plusieurs images : définir une colonne supplémentaire de type « I ».

Les icônes sont définies parmi les icônes DIAPASON, dans les dossiers « Icônes utilisées pour DIAPASON », « Icônes Défaut DIAPASON » et « Icônes Client DIAPASON » (ce dernier étant géré par l’utilisateur). A une référence icône est associé un chemin d’icône. Ce chemin peut être absolu et faire référence à une dossier accessible depuis l’interface utilisateur de DIAPASON. Si le chemin est relatif, il l’est à partir de la variable d’environnement DIAPICOLI ou DIAPICO. La taille des icônes est figée : même si la cellule contenant l’icône est agrandie en largeur ou en hauteur, l’icône conserve sa taille d’origine.

Les images sont elles définies dans le dossier « Images Client DIAPASON ». Le commentaire de ce paramètre doit être structuré avec les données suivantes :

  • ADR= adresse de l’image (supporte les variables d’environnement entourées de %).

  • LAR= largeur de la colonne en pixels (facultatif). Cette information est utilisée par défaut pour piloter la largeur de la colonne contenant l’image si celle-ci n’est pas précisée.

Les dimensions de l’image viennent se tailler en fonction de celles de la cellule jusqu’à la taille d’origine de l’image. Sa proportion hauteur/largeur est toutefois conservée.

La hauteur par défaut des lignes contenant un image est définie dans le paramètre général « LIS-HAUIMA ». Cette valeur doit être comprise entre 21 (hauteur normale d’une ligne) et 210 (10 lignes).

Changer le séparateur des valeurs dans une liste d’aide simple

Le séparateur par défaut des valeurs est « # ». Ceci implique que les colonnes affichées ne doivent pas contenir ce caractère. Le paramétrage permet de le modifier. Il faut renseigner dans la requête des lignes tels que sur l’exemple ci-dessous :

CRE-SELINF :

INIT SDH.LisInfRef = VLO.RefListAid + CLO."*STRUCTURE"

INIT SDH.LisInfInf = CLO."SEPARATEUR"

INIT SDH.LisInfDes = CLO."%"

FIN_BLOC

Dans cet exemple, le séparateur des valeurs des colonnes sera « % ». Attention, le séparateur est aussi modifié pour les listes de formats, de types, etc.

Rappel des cas possibles pour une liste d’aide simple

Action

LisInfInf

LisInfDes

Modification du séparateur « défaut » pour le « LisInfCom »

SEPARATEUR

Valeur du séparateur. Par défaut, la valeur est « # ».

Affichage de colonnes différentes

COLAFFICHE

Liste chaînée des références de colonnes, séparées par le séparateur défini. Cas spéciaux : « R », « D » ou « V ».

Modification des titres des colonnes

TITRES

Liste chaînée des titres de colonnes, séparés par le séparateur défini.

Modification des types des colonnes

TYPES

Liste chaînée des types de colonnes, séparés par le séparateur défini.

Modification des formats des colonnes

FORMATS

Liste chaînée des formats de colonnes, séparés par le séparateur défini.

Modification des largeurs des colonnes

LARGEURS

Liste chaînée des largeurs de colonnes, séparées par le séparateur défini.

Modification des hauteurs des lignes

HAUTEURS_TYPES

HAUTEURS

Utilisation de colonnes pouvant être filtrées

FILTRES

Liste chaînée des références des colonnes (de type caractère, 5 au maximum) devant être filtrées, séparées par le séparateur défini.

Exemples

PURGE-SELINF VLO.VarZoneEnCours

SI SCR.RCT_TypeAction = CLO."AID"

POUR CHAQUE/SOC DTD DDArtic AVEC DTD DDArtic.GenRefTypeArt = CLO."R" ET DTD DDArtic.GenDesVente VRAI ET DTD DDArtic.Valide = CLO.0 :

VLO.GenRefTypArt = DTD DDArtic.GenRefTypeArt

VLO.GenRefArt = DTD DDArtic.GenRefArt

VLO.Designation2 = REC-VAR-SPE( TYPE-VARIABLE= VAS , TYPE= CARACTERE , NOM-VARIABLE= GenDesArt1 , CLE-1= VLO.GenRefTypArt , CLE-2= VLO.GenRefArt , CLE-3= CLO."" , S:VALEUR= VLO.DesArt2 )

CRE-SELINF :

INIT SDH.LisInfRef = VLO.VarZoneEnCours

INIT SDH.LisInfInf = DTD DDArtic.GenRefArt

SI VLO.DesArt2 = CLO.""

INIT SDH.LisInfDes = DTD DDArtic.GenDesArt

FIN_BLOC

SINON

INIT SDH.LisInfDes = DTD DDArtic.GenDesArt + CLO."/" + VLO.DesArt2

FIN_BLOC

INIT SDH.LisInfCom = DTD DDArtic.DVeFam + CLO."#" + DTD DDArtic.DVeSsF

VLO.OrdreTri = DTD DDArtic.DVeFam + DTD DDArtic.DVeSsF

INIT SDH.LisInfMDi1 = VLO.OrdreTri

FIN_BLOC

FIN_BLOC

CRE-SELINF :

INIT SDH.LisInfRef = VLO.VarZoneEnCours + CLO."*STRUCTURE"

INIT SDH.LisInfInf = CLO."COLAFFICHE"

INIT SDH.LisInfDes = CLO."R#D#1#2"

FIN_BLOC

CRE-SELINF :

INIT SDH.LisInfRef = VLO.VarZoneEnCours + CLO."*STRUCTURE"

INIT SDH.LisInfInf = CLO."TITRES"

INIT SDH.LisInfDes = CLO."Ref. Art." + CLO."#" + CLO."Des. Art." + CLO."#" + CLO."Nature" + CLO."#" + CLO."Gamme"

FIN_BLOC

CRE-SELINF :

INIT SDH.LisInfRef = VLO.VarZoneEnCours + CLO."*STRUCTURE"

INIT SDH.LisInfInf = CLO."FILTRES"

INIT SDH.LisInfDes = CLO."1#2"

FIN_BLOC

INIT-LISTE-AIDE VLO.VarZoneEnCours

FIN_BLOC

Remarque sur les listes d’aide

Les listes d’aide, comme toutes les listes de DIAPASON, bénéficient d’un enregistrement des paramètres de colonnes (couleur, position, etc.). En cas de modification de la liste d’aide par une des fonctions ci-dessus, si le résultat n’est pas visible à l’écran, il faut venir choisir le rechargement des colonnes par l’option sur la copie d’écran ci-dessous :

Constitution de liste d’aide à partir d’une liste de valeurs

Une liste d’aide peut être constituée à partir du contenu d’une liste de valeurs (DIALOG / Environnement / Liste de Valeurs).

Il suffit d’utiliser le mot-clé INIT-LISTE-AIDE avec la référence de la liste manuelle ou ISIA désirée.

Constitution de liste d’aide intuitive (SmartAide)

Le but est d’avoir une liste d’aide dont le contenu s’adapte au texte saisi et au contenu sélectionné dans celui-ci, de plus la validation de l’aide peut venir remplacer une partie du texte.

Requête de construction de l’aide

Sur les requêtes de construction de l’aide deux nouvelles SCR permettent de connaitre précisément la précision du curseur ou de la sélection :

  • SCR.CdeSCCSelD indique la position du début de la sélection dans la zone

  • SCR.CdeSCCSelF indique la position de fin de la sélection dans la zone

Sur les exemples ci-dessous :

  • SCR.CdeSCCSelD = 3

  • SCR.CdeSCCSelF = 7

  • SCR.CdeSCCSelD = 5

  • SCR.CdeSCCSelF = 5

Remarque

  1. La position du curseur commence à 1 (en début de zone).

  2. Si CdeSCCSelD = CdeSCCSelF, on a un curseur, si CdeSCCSelD ≠ CdeSCCSelF on a une sélection.

  3. Si dans un tableur dynamique la cellule n’est pas en mode « édition », les variables SCR CdeSCCSelD et CdeSCCSelF sont à 0 :

Variables SCR de pilotage de l’aide

Variable

Contenu

Initialisée

Initialisation en CTL/AID

VBP.Ques_AideSmart

Utilisation SmartAide ?

Indique que la colonne de TDY (en mode CTL/AID) utilise la SmartAide.

SCR.CdeSCCSelD

Position curseur/sélection début

OUI

Position début de l’insertion de la valeur sélectionnée.

SCR.CdeSCCSelF

Position curseur/sélection fin

OUI

Position fin de l’insertion de la valeur sélectionnée.

SCR.CdeSCCSelM

Mode de mise à jour aide

Vide (pas de SmartAide)

« D » (mode défaut où la valeur sélectionnée est insérée entre les positions SCR.CdeSCCSelD et SCR.CdeSCCSelF)

« R » (passage dans requête d’aide en mode CTL/AID-MAJ).

SCR.CdeSCCSelP

Préfixe de mise à jour aide

Est ajouté avant la valeur sélectionnée dans la liste d’aide.

SCR.CdeSCCSelS

Suffixe de mise à jour aide

Est ajouté après la valeur sélectionnée dans la liste d’aide.

SCR.CdeSCCSelR

Séparateur aide multiple (un seul caractère)

Si non, vide, indique que l’aide sera à sélection multiple et que la liste des valeurs sélectionnées sera séparée de ce caractère.

image-20240207-092803.png

SCR.CdeSCCSelO

Positionnement dans liste d’aide

En sélection simple, choix du positionnement dans la liste d’aide (valeur de départ).

Exemple d’utilisation de SCR.CdeSCCSelM :

Soit la formule « VPR.Hauteur = VPR.Largeur * 2.5 ». Le curseur est positionné en position 5 (après le « H » de « Hauteur »). On fait « F2 » :

On remplit une liste d’aide avec les variables VPR.

On initialise en mode CTL/AID SCR.CdeSCCSelD à la valeur « 1 » et SCR.CdeSCCSelF à la valeur « 11 » ce qui signifie que l’on veut remplacer « VPR.Hauteur » (entre caractère 1 et 11).

On initialise en mode CTL/AID SCR.CdeSCCSelM (« D », « R » ou autre valeur).

On choisit la valeur VPR.HautHorsTout, et selon la valeur de SCR.CdeSCCSelM :

Toute valeur sauf « D » et « R » : on obtient « VPR.HautHorsTout ».

Si SCR.CdeSCCSelM = « D » : DIAPASON remplace tout seul « VPR.Hauteur » par « VPR.HautHorsTout » : on obtient « VPR.HautHorsTout = VPR.Largeur * 2.5 ».

Si SCR.CdeSCCSelM = « R » : pour gérer les cas complexes on repasse dans la requête en mode CTL/AID-MAJ qui doit se charger d’alimenter SCR.RCT_ValCol avec la chaîne finale.

Exemple d’utilisation de SCR.CdeSCCSelP et SCR.CdeSCCSelR :

En partant de la valeur ci-dessus, on fait « F2 » :

On initialise en mode CTL/AID SCR.CdeSCCSelM avec la valeur « D ».

On initialise en mode CTL/AID SCR.CdeSCCSelP avec la valeur « [ ».

On initialise en mode CTL/AID SCR.CdeSCCSelR avec la valeur « ] ».

On choisit la valeur « TEST » :

Le résultat est le suivant : la sélection initiale a été remplacée par le préfixe (SCR.CdeSCCSelP), suivi de la valeur, puis du suffixe (SCR.CdeSCCSelS). Le curseur se positionne par défaut à la fin de la chaîne remplacée.

Remarque : pour insérer un espace à la fin de la chaîne il faut utiliser une variable ou constante globale donc le contenu est la fonction DIALOG : CHR(28).

Requête de mise à jour à la validation de l’aide

Suite à la validation de l’aide sur une zone, si la variable SCR.CdeSCCSelM est égale à « R » la requête est exécutée de nouveau afin de modifier la valeur retournée et de définir la position de la sélection/curseur.

Contexte en entrée :

Variable

Valeur

SCR.RCT_TypeAction

AID-MAJ

SCR.CdeSCCSelD

Position curseur/sélection début

SCR.CdeSCCSelF

Position curseur/sélection fin

SCR.RCT_ValCol

Valeur de la zone au lancement de l’aide

TAB-ACTION[COL-COU, LIG-COU]

Valeur retournée dans la liste d’aide

En sortie de requête les variables suivantes seront interprétées :

Variable

Action

SCR.CdeSCCVal

Mise à jour de la valeur dans la zone

SCR.CdeSCCSelD

Mise à jour de la position début du curseur/sélection

SCR.CdeSCCSelF

Mise à jour de la position fin du curseur/sélection

Liste d’aide « Article »

Une liste d’aide peut s’appuyer sur une liste d’articles standard (Articles / Paramétrage Gestion des Articles / Liste d’articles standards).

1ère méthode :

Définir au préalable une liste d’articles standards via le bureau applicatif des « Articles ».

Définir la requête RCT avec les mots clé :

INIT-SELART-STATIQUE avec la référence de la liste d’articles ;

PURGE-SELART avec la référence de la liste. Cette instruction supprime la liste et permet d’éviter de se retrouver avec une liste d’aide contenant plusieurs fois les mêmes informations si la fonction d’aide est appelée plusieurs fois ;

La fonction INIT-SELINF-ART (LISTE-INFO = Référence de la liste d’aide, LISTE-ART = Référence de la liste d’articles) ;

INIT-LISTE-AIDE = Référence liste d’aide.

2ème méthode :

Définir une « condition sur entité » via le bureau applicatif « Consultations ».

Définir la requête RCT avec les mots clé :

INIT-SELART-DYNAMIQUE avec la référence de la « Condition sur Entité » ;

PURGE-SELART avec la référence de la liste. Cette instruction supprime la liste et permet d’éviter d’avoir une liste d’aide contenant plusieurs fois les mêmes informations si la fonction d’aide est appelée plusieurs fois ;

La fonction INIT-SELINF-ART (LISTE-INFO = Référence de la liste d’aide, LISTE-ART = Référence de la « Condition sur Entité ») ;

INIT-LISTE-AIDE = Référence liste d’aide.

Traitement d’actions spécifiques dans un Tableur Dynamique

Actions sur le contenu du tableur

Via la définition de WfTabGen et WfTabStr, il est possible de rajouter des actions au menu standard d’un tableur. Le traitement de ces actions est libre et doit se faire dans la requête RCT de contrôle local.

Les champs RAcCol et LacCol sont à renseigner et doivent contenir une liste chaînée d'informations dont le séparateur est OBLIGATOIREMENT la virgule.

Possibilité d'utiliser le caractère & afin de souligner l'une des lettres du libellé de l'action. Si ce dernier n'est pas précisé, la première lettre du libellé sera soulignée.

Les actions décrites ci-dessous proviennent de l’exemple (voir Liste WfTabGen dans la requête REB/RTD et Liste WfTabStr dans la requête REB/RTD).

Les actions de vidage, disponibles sur toutes les colonnes (car définition dans WfTabGen) vont vider respectivement la cellule courante, la ligne courante et la colonne courante :

Lancement d’un autre Tableur Dynamique ou d’une PSD, etc.

Il est possible lors d’actions spécifiques définies sur un Tableur Dynamique de lancer un autre Tableur Dynamique, une PSD, … (voir tableau ci-dessous). Le lancement s’effectue dans la requête RCT de contrôle local par l’initialisation des variables VBP suivantes :

Variable

Valeurs possibles

Commentaire

IAP_TypeFils

TDY ou PSD ou ENT ou MCO ou AME ou LPA ou COU ou PER ou ARB ou CSY ou DOC ou AGE ou ADG

TDY : tableur dynamique

PSD : procédure de saisie dynamique

ENT : entité GFD (fiche GFD)

MCO : message de confirmation

AME : action métier

LPA : liste paramétrée

COU : couplage

PER : diagramme PERT

ARB : arbre paramétré

CSY : commande système

DOC : document

AGE : agenda

ADG : arbre de définition GED

IAP_RefFils

Référence existante de Tableur Dynamique ou de PSD, … à afficher

La valeur « *REA » permet de lancer un réaffichage du contenu du tableur.

La catégorie de PSD concernée est « IAP ».

L’entité GFD ne doit pas être de type « lignes ».

IAP_ModeAcc

S, V ou C

Mode d’accès

S = simple (seulement variables IAP*)

V = variables (idem S, avec variables VBP, SCR et VCR)

C = complet (idem V, avec WfTabValPere)

IAP_ModeRet

S, V ou C

Mode de retour

S = simple (seulement variables IAP*)

V = variables (idem S, avec variables VBP, SCR et VCR)

C = complet (idem V, avec WfTabValFils ou variables VSD)

IAP_SaiCri

VRAI ou FAUX

Ne concerne que les TDY. Si VRAI, la saisie des critères sera effectuée.

Lorsqu’on souhaite lancer un TDY via le moteur RCT et que ce TDY a au lancement une PSD critère, pour que celle-ci se lance il faut initialiser la VBP.IAP_SaiCri à OUI.

IAP_ValActFils

Libre

Valeur retournée dans la RCT au retour du tableur ou de la PSD lancé. Par défaut, est égal à « RETOUR- » + la référence de l’objet lancé.

IAP_EntCl1

Clé 1 de l’entité à traiter

Champ correspondant : voir l’application « Intégrité Générale Entités ».

IAP_EntCl2

Clé 2 de l’entité à traiter

Champ correspondant : voir l’application « Intégrité Générale Entités ».

IAP_EntCl3

Clé 3 de l’entité à traiter

Champ correspondant : voir l’application « Intégrité Générale Entités ».

IAP_EntAct

Action sur entité

Voir liste (1) ci-dessous.

IAP_EntPre

Présentation à utiliser

(1) liste des codes supportés dans la variable VBP.IAP_EntAct :

Code

Action

Commentaire

CRE

Création

Ne nécessite pas l’initialisation de VBP.IAP_EntCl*

MOD

Modification

DUP

Duplication

AMG=xxx

Modification Globale

Déclenche l’action de modification globale xxx.

DET

Détail

DET_ENT

Gestion Lignes

DET_ENT_VIS

Consultation Lignes

L’élément lancé adopte le même comportement que pour un lancement normal. Il est toutefois possible de paramétrer celui-ci en tenant compte des variables SCR suivantes :

IAP_TypePere (TDY)

IAP_TypeFils (TDY ou PSD)

IAP_ModeAcc (S, V ou C)

IAP_ModeRet (S, V ou C)

IAP_RefPere (référence TDY appelant)

IAP_RefFils (référence TDY ou PSD ou GFD appelé)

IAP_ColPere (indice dans WfTabVal avant appel)

IAP_ColFils (indice dans WfTabVal avant validation si TDY)

IAP_LigPere (dernier numéro de ligne avant appel)

IAP_LigFils (dernier numéro de ligne avant validation)

IAP_VarPere (dernière référence colonne avant appel)

IAP_VarFils (dernière référence colonne ou variable VSD avant appel)

IAP_ValPere (dernière valeur avant appel)

IAP_ValFils (dernière valeur avant validation)

IAP_ValActFils (action choisie pour le retour)

IAP_ParActFils (ABA-CRI, ABA ou VAL)

IAP_SaiCri (saisie des critères ?)

Réaffichage du contenu du tableur dynamique

Il est possible de réafficher le contenu du tableur dynamique avec ré-exécution de la REB de chargement.

INIT VBP.IAP_TypeFils = CLO."TDY"

INIT VBP.IAP_RefFils = CLO."*REA"

Exemples de requêtes de Tableur Dynamique

Dans les exemples qui suivent, le Tableur Dynamique principal, indique par l’intermédiaire de la requête REB ou par la définition de son entête (onglet pré-défini), qu’une action est définie.

PRENDRE WFTabGen RAcCol = CLO."RefAction" /* Référence de l’action à rappeler par la suite */

PRENDRE WFTabGen LAcCol = CLO."libelle action" /* libellé affiché à l’utilisateur */

A noter : Un raccourci touche peut-être paramétré, il suffit pour cela de renseigner le champ LAcCol de la façon suivante :

PRENDRE WFTabGen LAcCol = CLO."libelle action(F11)" /* libellé affiché à l’utilisateur */

La touche F11 lance l’action. Il est possible de la même façon d’indiquer MAJ-F11 ou encore CTRL-F11.

Lancement d’édition, de mise à jour à partir d’une action d’un Tableur Dynamique

Dans la RCT, voici comment gérer une action spécifique.

SI SCR.RCT_TypeAcces = CLO."ACT" /* l’utilisateur à utilisé l’action spécifique du tableur */

SI SCR.RCT_TypeAction = CLO."RefAction" /* référence action indiquée dans la REB */

/* dans ce cas on veut lancer le document ‘NomDocument’ */

VLO.ExecFonction = EXE-DOC( DOCUMENT= REB."NomDocument" , MODE= B ,

IMPRIMANTE= CLO."Fichier" , FICHIER= CLO."NomFichier" , DOC-CAR= CLO."" ,

DOC-MAJ= CLO."" , DOC-CLE= CLO."" )

/* on peut aussi utiliser la fonction TAB-ACTION décrite dans cette documentation. */

FIN_BLOC

FIN_BLOC

Lancement d’un Tableur Dynamique à partir d’une action d’un Tableur Dynamique

Dans la RCT, voici comment gérer l’appel au nouveau Tableur Dynamique.

SI SCR.RCT_TypeAcces = CLO."ACT" /* l’utilisateur a utilisé l’action spécifique du tableur */

SI SCR.RCT_TypeAction = CLO."RefAction" /* référence action indiquée dans la REB */

INIT VBP.IAP_ModeAcc = CLO."V" /* voir les différents niveaux de partage désiré */

INIT VBP.IAP_ModeRet = CLO."C" /* voir les différents niveaux de partage désiré */

INIT VBP.IAP_TypeFils = CLO."TDY" /* indique qu’il s’agit d’un tableur dynamique */

INIT VBP.IAP_RefFils = CLO."Ref.TableurDyn." /* référence du tableur dynamique */

FIN_BLOC

FIN_BLOC

SI SCR.RCT_TypeAcces = CLO."IAP" /* lorsque l’on revient sur le tableur principal, la RCT est exécutée , la variable critère RCT_TypeAcces a pour valeur IAP */

SI SCR.RCT_TypeAction = CLO."RETOUR-Ref.TableurDyn" /* on revient de ce tableur */

/* ci-dessous, on récupère le montant saisi (contenu dans la 4eme colonne) du tableur fils afin de

mettre à jour la colonne MontantTot de la ligne en cours du tableur père. */

VLO. MontantTot = CLO.0

POUR CHAQUE LST WFTabValFils :

VLO.MontantTot = VLO.MontantTot + DECIMAL( VALEUR= WFTabValFils.ContLig [4] )

FIN_BLOC

VLO.Exec = TAB-ACTION( TAB-ACT= MAJ-VAL , LIGNE= LIG-COU ,

COLONNE=CLO."MontantTot" , TYPE= NUMERIQUE , VALEUR= VLO.MontantTot )

FIN_BLOC

FIN_BLOC

NOTE : Dans le tableur père, la liste WfTabValFils contient les saisies effectuées sur le tableur fils ; dans le tableur fils, la liste WfTabValPere contient les données du père. Pour pouvoir avoir cette visibilité, les variables VBP.IAP_ModeRetour et VBP.IAP_ModeAcc respectivement doivent avoir la valeur « C » qui signifie « complet ».

Lancement d’une PSD à partir d’une action d’un Tableur Dynamique

Dans la RCT, voici comment gérer l’appel à la PSD. A noter que cette PSD est dans la catégorie : IAP : « Lancement d’Application ».

SI SCR.RCT_TypeAcces = CLO."ACT" /*l’utilisateur a utilisé l’action spécifique du tableur */

SI SCR.RCT_TypeAction = CLO."RefAction" /* référence action indiquée dans la REB */

INIT VBP.IAP_ModeAcc = CLO."V" /* voir les différents niveaux de partage désiré */

INIT VBP.IAP_ModeRet = CLO."V" /* voir les différents niveaux de partage désiré */

INIT VBP.IAP_TypeFils = CLO."PSD" /* indique qu’il s’agit d’une PSD */

INIT VBP.IAP_RefFils = CLO."RefPSD" /* référence de la PSD */

INIT VBP.IAP_ValActFils = CLO."VAL-RefPSD" /* action à recevoir au retour de la PSD */

INIT VBP.Liste = CLO.’’.

FIN_BLOC

FIN_BLOC

SI SCR.RCT_TypeAcces = CLO."IAP" /* lorsque l’on revient sur le tableur principal, la RCT est exécutée , la variable critère RCT_TypeAcces a pour valeur IAP */

SI SCR.RCT_TypeAction = CLO."VAL-RefPSD" /* on revient de la PSD RefPSD */

SI SCR.IAP_ParActFils = CLO."VAL"

/* On veut boucler dans la PSD lors de la validation. */

INIT VBP.IAP_ModeAcc = CLO."V" /* voir les différents niveaux de partage possibles */

INIT VBP.IAP_ModeRet = CLO."V" /* voir les différents niveaux de partage possibles */

INIT VBP.IAP_TypeFils = CLO."PSD" /* indique qu’il s’agit d’une PSD */

INIT VBP.IAP_RefFils = CLO."RefPSD" /* référence de la PSD */

INIT VBP.Liste = VBP.Liste + CLO."," + VCR.Composant /* on concatène cf. NOTE ci-dessous */

FIN_BLOC

SINON

SI SCR.IAP_ParActFils = CLO."ABA"

/* on met à jour la cellule */

VLO.Liste = VBP.VarListe

VLO.Exec = TAB-ACTION( TAB-ACT= MAJ-VAL , LIGNE= LIG-COU ,

COLONNE= COL-COU , TYPE= CARACTERE , VALEUR= VLO.Liste )

FIN_BLOC

FIN_BLOC

FIN_BLOC

FIN_BLOC

NOTE : Pour récupérer la valeur saisie dans la PSD, il faut sur la définition de la procédure, définir la correspondance entre la variable saisie et une variable critère (SCR ou VCR) ; dans notre cas la VCR.Composant est utilisée ; ne pas oublier lors de la saisie de la correspondance de préciser que l’on veut récupérer la valeur en sortie.

Pour concaténer, il faut obligatoirement passer par une VBP ou une VCR/SCR.

Lancement d’une action sur entité à partir d’une action d’un Tableur Dynamique

Rappel : les champs correspondant aux valeurs des IAP_EntCl* sont visibles dans l’application « Intégrité Générale Entités ».

SI SCR.RCT_TypeAcces = CLO."ACT" /*l’utilisateur a utilisé l’action spécifique du tableur */

SI SCR.RCT_TypeAction = CLO."RefAction" /* référence action indiquée dans la REB */

INIT VBP.IAP_ModeAcc = CLO."V" /* voir les différents niveaux de partage désiré */

INIT VBP.IAP_ModeRet = CLO."V" /* voir les différents niveaux de partage désiré */

INIT VBP.IAP_TypeFils = CLO."ENT" /* indique qu’il s’agit d’une GFD */

INIT VBP.IAP_RefFils = CLO."GAD" /* référence entité : ici les articles */

INIT VBP.IAP_EntCl1 = CLO."R" /* clé 1 : pour les articles c’est le type */

INIT VBP.IAP_EntCl2 = CLO."RefArt" /* clé 2 : pour les articles c’est la référence */

INIT VBP.IAP_EntAct = CLO."MOD" /* modification */

INIT VBP.IAP_EntPre = CLO."ISIA" /* présentation à utiliser */

INIT VBP.IAP_ValActFils = CLO."VAL-GFD" /* action à recevoir au retour de la PSD */

FIN_BLOC

FIN_BLOC

SI SCR.RCT_TypeAcces = CLO."IAP" /* lorsque l’on revient sur le tableur principal, la RCT est exécutée , la variable critère RCT_TypeAcces a pour valeur IAP */

SI SCR.RCT_TypeAction = CLO."VAL-GFD" /* on revient de la GFD */

SI SCR.IAP_ParActFils = CLO."VAL"

/* on met à jour la cellule */

VLO.Liste = VBP.VarListe

VLO.Exec = TAB-ACTION( TAB-ACT= MAJ-VAL , LIGNE= LIG-COU ,

COLONNE= COL-COU , TYPE= CARACTERE , VALEUR= VLO.Liste )

FIN_BLOC

SINON

SI SCR.IAP_ParActFils = CLO."ABA"

LC-WARNING = CLO."Vous avez abandonné la mise à jour"

FIN_BLOC

FIN_BLOC

FIN_BLOC

FIN_BLOC

Message de confirmation pour une action d’un Tableur Dynamique

SI SCR.RCT_TypeAcces = CLO."ACT" /*l’utilisateur a utilisé l’action spécifique du tableur */

SI SCR.RCT_TypeAction = CLO."RefAction" /* référence action indiquée dans la REB */

INIT VBP.IAP_TypeFils = CLO."MCO" /* indique qu’il s’agit d’une confirmation */

INIT VBP.IAP_RefFils = CLO."Voulez-vous lancer l’action ?" /* message à afficher */

INIT VBP.IAP_ValActFils = CLO."VAL-MES" /* action à recevoir au retour du message */

FIN_BLOC

FIN_BLOC

SI SCR.RCT_TypeAcces = CLO."IAP" /* lorsque l’on revient sur le tableur principal, la RCT est exécutée , la variable critère RCT_TypeAcces a pour valeur IAP */

SI SCR.RCT_TypeAction = CLO."VAL-MES" /* on a validé ou abandonné le message */

SI SCR.IAP_ParActFils = CLO."VAL"

FIN_BLOC

/* On veut boucler lancer une PSD lors de la validation. */

INIT VBP.IAP_ModeAcc = CLO."V"

INIT VBP.IAP_ModeRet = CLO."V"

INIT VBP.IAP_TypeFils = CLO."PSD"

INIT VBP.IAP_RefFils = CLO."RefPSD"

SINON

FIN_BLOC

FIN_BLOC

FIN_BLOC

Edition du contenu d’un Tableur Dynamique lors de sa validation

Lors de la validation d’un Tableur Dynamique, il est possible d’en éditer le contenu. Pour cela vous devez utiliser le mot clé « EXE-DOC » avec le document « ISTableur » dans la requête RCT de validation :

Remarque : cette ligne ne va fonctionner que dans les requêtes de type « RCT », et seulement en mode interactif.

Exemples de requêtes RCT de Tableur Dynamique

Requête RCT de contrôle Local de Tableur Dynamique

Requête RCT de contrôle de Sortie de Tableur Dynamique

Requête RCT de contrôle Global de Tableur Dynamique

Fonction DIALOG : TAB-ACTION

Ce mot clé permet dans une requête de type RCT de gérer les principales actions de gestion d’un Tableur Dynamique.

Syntaxe de la fonction TAB-ACTION

[VLO. Resultat ] = TAB-ACTION

TAB-ACT = [Action]

LIGNE = [CLO.« Ligne » ] [ VLO.Ligne ] [LIG-COU]

COLONNE = [CLO.« Colonne » ] [ VLO.Colonne ] [COL-COU]

TYPE = [Type]

CLE = [CLO.« Valeur » ] [VLO.Valeur ]

NB-LIGNE = [CLO.« Valeur » ] [VLO.Valeur ]

VALEUR = [CLO.« Valeur » ] [VLO.Valeur ]

ATTRIBUTS = [CLO.« Valeur » ] [VLO.Valeur ]

Paramètres de la fonction TAB-ACTION

Paramètre TAB-ACT : action à effectuer :

REC-VAL : recherche d'une valeur de cellule

MAJ-VAL : mise à jour d'une valeur de cellule

POS-LIG : position cellule pour saisie après contrôle

MAJ-CLE : mise à jour clé d'une ligne

REC-ATT : recherche attributs d’une ligne

MAJ-ATT : mise à jour attributs d’une ligne

SUP-LIG : suppression de lignes

AJU-LIG : ajout de lignes (au-dessus)

AJD-LIG : ajout de lignes (en dessous)

MAJ-ATC : mise à jour attribut d’une cellule

REC-ATC : recherche attribut d’une cellule

Paramètre LIGNE : Numéro de la Ligne correspondante (type entier).

Paramètre COLONNE : Colonne correspondante (idem REC-ZONE et INIT-ZONE).

Paramètre CLE : Clé correspondante (pour MAJ-CLE)

Paramètre NB-LIGNE : Nombre de lignes (pour SUP-LIG, AJU-LIG, AJD-LIG)

Paramètre TYPE : CARACTERE, NUMERIQUE, DATE ou LOGIQUE

Paramètre VALEUR : Valeur correspondante

Paramètre ATTRIBUTS : Valeur des attributs et des couleurs à appliquer à la ligne et/ou à la cellule.

Détail des actions de la fonction TAB-ACTION

REC-VAL

VLO. Resultat = TAB-ACTION ( TAB-ACT=REC-VAL, LIGNE=LIG-COU, COLONNE=COL-COU, TYPE=CARACTERE, VALEUR=VLO.Valeur )

L’action REC-VAL recherche la valeur d’une cellule (équivalent à REC-ZONE). VLO.Valeur contiendra la valeur trouvée. Ce doit être une variable du type précisé dans le paramètre « TYPE ». VLO.Resultat contiendra le résultat de la mise à jour :

  • <vide> = OK

  • *INC = erreur inconnue

  • *GESNUM = erreur de gestion de la numérotation (soit WfTabGen.GesNum est faux, soit une erreur interne s’est produite)

  • *COL = colonne passée en paramètre inconnue

  • *LIG = ligne passée en paramètre inconnue

Remarque : si le paramètre « TYPE » ne correspond pas au type de la cellule, DIAPASON fera une conversion pour obtenir une valeur dans le type souhaité. Dans ce cas, la valeur retournée peut être erronée.

MAJ-VAL

VLO. Resultat = TAB-ACTION ( TAB-ACT=MAJ-VAL, LIGNE=CLO.8, COLONNE=COL-COU, TYPE=CARACTERE, VALEUR=VLO.Valeur )

L’action MAJ-VAL place une valeur dans une cellule (équivalent à INIT-ZONE). VLO.Valeur contient la valeur à mettre à jour. Ce doit être une variable du type précisé dans le paramètre « TYPE ». VLO.Resultat contiendra le résultat de la mise à jour.

Remarque : si le paramètre « TYPE » ne correspond pas au type de la cellule, DIAPASON fera une conversion pour alimenter la valeur dans le type souhaité. Dans ce cas, la valeur affichée peut être erronée.

POS-LIG

VLO. Resultat = TAB-ACTION ( TAB-ACT=POS-LIG, LIGNE=VLO.LigneSuivante, COLONNE=COL-COU )

L’action POS-LIG permet de repositionner le curseur en sortie de contrôle de cellule, après une création ou une suppression de ligne. Voir ci-dessous pour des exemples.

MAJ-CLE

VLO. Resultat = TAB-ACTION ( TAB-ACT=MAJ-CLE, LIGNE= LIG-COU, COLONNE=VLO.Valeur )

L’action MAJ-CLE met à jour la clé d’une ligne (WfTabVal.CleLig). Cette clé est alimentée automatiquement pour les lignes créées dans la requête REB/RTD avec le contenu de la colonne précisée dans WfTabGen.CleCol.

REC-ATT

VLO. Resultat = TAB-ACTION ( TAB-ACT=REC-ATT, LIGNE=LIG-COU, ATTRIBUTS=VLO.Valeur )

L’action REC-ATT recherche les attributs d’une ligne. VLO.Resultat contiendra le résultat :

  • <vide> = OK

  • *INC = erreur inconnue

  • *GESNUM = erreur de gestion de la numérotation (soit WfTabGen.GesNum est faux, soit une erreur interne s’est produite)

  • *LIG = ligne passée en paramètre inconnue

MAJ-ATT

VLO. Resultat = TAB-ACTION ( TAB-ACT=MAJ-ATT, LIGNE=CLO.6, ATTRIBUTS=VLO.Valeur )

L’action MAJ-ATT met à jour un attribut pour la ligne donnée. VLO.Valeur contient soit une référence apparence, soit les attributs formatés.

Syntaxe pour couleur du fond de la ligne : LIG-BG

Si le paramètre ATTRIBUTS passé à la fonction TAB-ACTION contient « LIG-BG= » suivi d’un code couleur, la couleur est appliquée à la ligne. Le code couleur doit faire partie de la liste suivante :

  • ROUGE

  • VERT

  • BLEU

  • MAUVE

  • JAUNE

  • ROSE

  • ORANGE

  • Un numéro de couleur DIAPASON (les couleurs sont visibles dans le « A propos de DIAPASON »)

  • Vide ou *DFT : couleur de fond normale (blanc)

Syntaxe pour couleur du texte de la ligne : LIG-FG

Si le paramètre ATTRIBUTS passé à la fonction TAB-ACTION contient « LIG-FG= » suivi d’un code couleur, la couleur est appliquée à la ligne. Le code couleur doit faire partie de la liste suivante :

  • ROUGE

  • VERT

  • BLEU

  • MAUVE

  • JAUNE

  • ROSE

  • ORANGE

  • Un numéro de couleur DIAPASON (les couleurs sont visibles dans le « A propos de DIAPASON »)

  • Vide ou *DFT : couleur de texte normale (noir).

Syntaxe pour les attribut du texte de la ligne : LIG-AT

Si le paramètre ATTRIBUTS passé à la fonction TAB-ACTION contient « LIG-AT= » suivi d’un code attribut, cet attribut est appliquée à la ligne. Le code attribut doit faire partie de la liste suivante :

  • GRA : gras

  • ITA : italique

  • BAR : barré

  • SOU : souligné

  • Vide ou *DFT : texte normal.

SUP-LIG

VLO. Resultat = TAB-ACTION ( TAB-ACT=SUP-LIG, LIGNE=LIG-COU, NB-LIGNE=VLO.NbLigASup )

L’action SUP-LIG supprime n lignes à partir et en dessous de la ligne précisée dans le paramètre « LIGNE ». Chaque suppression de ligne va exécuter la requête RCT correspondante et un « LC-ERREUR » annule les suppressions suivantes.

AJU-LIG

VLO. Resultat = TAB-ACTION ( TAB-ACT=AJU-LIG, LIGNE=LIG-COU, NB-LIGNE=VLO.NbLigAInser )

L’action AJU-LIG ajoute n lignes au-dessus de la ligne précisée dans le paramètre « LIGNE ». Chaque création de ligne va exécuter la requête RCT correspondante et un « LC-ERREUR » annule les créations suivantes.

AJD-LIG

VLO. Resultat = TAB-ACTION ( TAB-ACT=AJD-LIG, LIGNE=LIG-COU, NB-LIGNE=VLO.NbLigAInser )

L’action AJD-LIG ajoute n lignes en dessous de la ligne précisée dans le paramètre « LIGNE ». Chaque création de ligne va exécuter la requête RCT correspondante et un « LC-ERREUR » annule les créations suivantes.

Exemples de la fonction TAB-ACTION

Exemple 1 : Cette requête permet de mettre à jour la ligne suivant la ligne de saisie avec la valeur courante.

SI SCR.RCT_TypeAction = CLO."MOD"

COMMENTAIRE : "Recherche valeur courante"

VLO.Resultat = TAB-ACTION( TAB-ACT= REC-VAL , LIGNE= LIG-COU , COLONNE= COL-COU , TYPE= CARACTERE , VALEUR= VLO.ValeurC )

COMMENTAIRE : "Mise à jour ligne suivante"

VLO.LigSuiv = SCR.RCT_NumLig + 1.

VLO.Resultat = TAB-ACTION( TAB-ACT= MAJ-VAL , LIGNE= VLO.LigSuiv, COLONNE= COL-COU , TYPE= CARACTERE , VALEUR= VLO.ValeurC )

FIN BLOC

Exemple 2 : Cette requête permet de mettre à jour la « clé » de la ligne courante avec le contenu d’une colonne.

SI SCR.RCT_TypeAction = CLO."MOD"

COMMENTAIRE : "Recherche valeur de la clé"

VLO.Resultat = TAB-ACTION( TAB-ACT= REC-VAL , LIGNE= LIG-COU , COLONNE= CLO."Reference" , TYPE= CARACTERE , VALEUR= VLO.ValeurC )

COMMENTAIRE : "Mise à jour clé ligne"

VLO.Resultat = TAB-ACTION( TAB-ACT= MAJ-CLE , LIGNE= LIG-COU , CLE= VLO.ValeurC )

FIN BLOC

Exemple 3 : Cette requête permet de supprimer 2 lignes au-dessus de la courante.

VLO.LigASup = SCR.RCT_NumLig – CLO.2

VLO.Resultat = TAB-ACTION( TAB-ACT= SUP-LIG , LIGNE= VLO.LigASup , NB-LIGNE= CLO.2 )

Exemple 4 : Cette instruction permet d’insérer une ligne en dessous de la courante.

VLO.Resultat = TAB-ACTION( TAB-ACT= AJD-LIG , LIGNE= LIG-COU , NB-LIGNE= CLO.1 )

Exemple 5 : Cette instruction permet de se positionner en-dessous de la cellule courante après une saisie. Ceci simule le comportement de la touche « Entrée » dans le tableur DIAPASON en mode caractère.

VLO.LigSuiv = SCR.RCT_NumLig + CLO.1

VLO.Resultat = TAB-ACTION( TAB-ACT= POS-LIG , LIGNE= VLO.LigSuiv , COLONNE= COL-COU )

Remarques sur la fonction TAB-ACTION

Important : l’utilisation de cette fonction est possible à condition de renseigner « WFTabGen.GesNum » dans la requête REB/RTD correspondante. Si ce n’est pas le cas, la fonction renverra « *GESNUM ».

L’utilisation de « LC-ERREUR » dans une RCT déclenchée par un « TAB-ACTION » annule l’action prévue et les éventuelles actions suivantes.

Les variables suivantes sont utiles avec le TAB-ACTION :

  • SCR.RCT_NumLig : numéro de la ligne courante.

  • SCR.RCT_CleLig : clé de la ligne courante


JavaScript errors detected

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

If this problem persists, please contact our support.