Skip to main content
Skip table of contents

PSD: règle de contrôle local


La requête de contrôle indique la suite à donner à la validation d’un champ (contrôle de la saisie effectuée) et permet de gérer si besoin la liste d’aide

La ou les requête(s) de contrôle local (requête de type PSD) se branche(nt) sur:

  • chacune des questions sur lesquelles on va vouloir agir (aide, contrôle de la saisie, affichage/masquage, …) pour le questionnaire

  • l’ergonomie pour la FMO

Quel contexte peut-on récupérer dans cette requête ?

Dans ces requêtes, 3 variables, qu’on récupère en général en début de requête, permettent d’identifier ce que l’on fait et sur quelle variable:

  • SCR.CdeSCCEvt : évènement demandé par l’utilisateur (aide, entrée, retour arrière…)

  • SCR.CdeSCCVar : référence de la question sur laquelle faire le contrôle

  • SCR.CdeSCCVal : valeur saisie par l’utilisateur qui permettra de contrôler

La variable SCR.CdeSCCEvt nous donne des informations sur le déroulement du questionnaire

  • « INI » : entrée sur le questionnaire

  • « AVT » : exécution avant question

  • « ASA » : à l’entrée sur la zone

  • « AID » : demande d’aide (F2 ou ?)

  • « CTL » : contrôle local (Entrée, Tab, clic)

  • « RET » : retour (Maj+Tab)

  • « CTG » : contrôle global (F1, Validation)

  • « ERR » : si erreur dans la zone

Les incontournables: aide et contrôle sont utilisées dans la majorité des PSD ! Les autres contextes permettent de gérer des comportements plus subtils.

Que peut-on faire avec cette requête ?

Voici quelques fiches un peu plus détaillées sur ce qui est faisable avec cette requête de contrôle local:

Créer une liste d’aide

Dans les grandes lignes…

L’extrait suivant vient de la fiche Brancher une liste d'aide sur une PSD, à consulter pour plus d’informations ! On peut aussi voir Mettre une liste d'aide choix multiple sur une PSD.

Brancher une liste d'aide sur une PSD

En résumé:

Il y a d’autres variables SDH qui peuvent être utiles lors de la création de la liste d’aide:

  • LisInfIco: on peut ajouter des icônes dans la liste d’aide

  • LisInfIma: on peut ajouter des images dans la liste d’aide

  • LisInfMDi1… et autres champs mots-directeurs: je peux utiliser ces mot-directeurs pour faire des tris dans ma liste d’aide.

On peut aussi appeler une liste de valeurs dans la requête avec le mot-clé INIT-LISTE-AIDE et la référence de la liste manuelle ou ISIA désirée.

Toutes les possibilités de la liste d’aide

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 ces 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

Donc par exemple ici:

image-20240321-104256.png
  • SCR.CdeSCCSelD = 3

  • SCR.CdeSCCSelF = 7

Et ici:

image-20240321-104314.png
  • SCR.CdeSCCSelD = 5

  • SCR.CdeSCCSelF = 5

  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 :

  • image-20240321-104330.png

Variables SCR de pilotage de l’aide

Variable

Contenu

Initialisée

Initialisation en AID

VBP.Ques_AideSmart

Utilisation SmartAide ?

Indique que le champs (en mode 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.

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.CdeSCCSelP et SCR.CdeSCCSelR :

image-20240321-104845.png

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.

image-20240321-104854.png

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.

 

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.

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.

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

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.

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.

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 :

  • image-20240318-132022.png

Ajouter un contrôle sur un champs de PSD

L’extrait suivant vient de la fiche Ajouter un contrôle sur un champs de PSD, à consulter pour plus d’informations !

En résumé

Initialiser un champ de PSD dynamiquement

L’extrait suivant vient de la fiche Initialiser un champs de PSD dynamiquement , à consulter pour plus d’informations !

Initialiser un champ de PSD dynamiquement

En résumé

Initialiser dynamiquement les libellés des questions à l'aide des VBQ

L’extrait suivant vient de la fiche Initialiser dynamiquement les libellés des questions à l'aide des VBQ, à consulter pour plus d’informations !

Initialiser dynamiquement les libellés des questions à l'aide des VBQ

Une fois les VBQ rattachées sur nos différentes questions, il suffit de les initialiser au bon moment dans notre requête de contrôle locale:

image-20240329-084543.png

Et voilà le résultat 🙂 :

image-20240326-163952.png

Et aussi…

  • VBP.Ques_IE= adresse à afficher dans l’Internet Explorer

Seules les initialisations de la VBP.Ques_IE faites dans une requête associée à une question et dans un des modes suivants (SCR.CdeSCCEvt) sera prise en compte : ASA, AID, CTL, CTG. Autre contrainte : dans le chemin du fichier à afficher, ll faut précéder les « / » ou les « \ » du caractère tilde (~) pour ne pas que PROGRESS les interprète. Par exemple le fichier C:\Windows\Temp\fichier.txt devra être passé à DIAPASON sous la forme C:~\Windows~\Temp~\fichier.txt.

  • VBP.Ques_AideAuto= indique que l’aide se déclenche dès l’entrée sur la question

  • VBP.Ques_AideValide= la validation de l’aide passe à la question suivante, car je veuxque mon utilisateur ne passe pas à la question suivante dans l’ordre mais à une question que j’ai définie.

  • VBP.Ques_Suivante= précise la question suivante où se positionnera le curseur.

  • VBP.Ques_AideSmart= activation de la SmartAide (aide intuitive)

Seules les initialisations des VBP.Ques_AideAuto, VBP.Ques_AideValide et VBP.Ques_AideSmart faites dans une requête associée à une question et dans le mode ASA seront prises en compte.

  • LC-WARNING= affiche un avertissement

  • LC-ERREUR= affiche un message, refuse le passage à la question suivante


JavaScript errors detected

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

If this problem persists, please contact our support.