DIAPASON 05

Constituer une 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.

La SmartAide permet aussi de faire une liste d’aide avec sélection multiple. Voir ici Créer une liste d'aide à choix multiple dans un tableur

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 position 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 :

att_3_for_222494735.png
  • SCR.CdeSCCSelD = 3

  • SCR.CdeSCCSelF = 7

att_4_for_222494735.png
  • 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 :

    att_5_for_222494735.png


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 :

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

att_7_for_222494735.png


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