Linstruction [S]zonsui = "[M:SQH1]YCHAMP" ne fonctionne pas.

SOLVED

Bonjour, 

Je suis en EM V11 P7.

Dans la fonction des Devis GESSQH, lorsqu'on clique sur le bouton Commande sur la droite pour transformer le devis en commande, j'ai ajouté dans AVANTBOUT un test qui bloque la création de la commande si le champ [M:SQH1]YCHAMP n'est pas renseigné. 

Je souhaiterais qu'après l'affichage du message d'erreur, mon curseur soit positionné dans le champ en question : [M:SQH1]YCHAMP. 

J'ai donc mis un bout de code du type: 


If [M:SQH1]YCHAMP = ""

GERR=1 : OK=0 : GMESSAGE = 'Veuillez renseigner le champ YCHAMP de l'onglet 1'

[S]zonsui = "[M:SQH1]YCHAMP"

Endif


Cette manière de procéder ne fonctionne pas. J'arrive bien à bloquer la création de la commande, mais le curseur se positionne dans [M/SQH0]SQHNUM. J'ai aussi essayé [S]zonsui = "YCHAMP". Rien n'y fait. 

  1.  Est-ce que [S]zonsui ne fonctionne que depuis les actions sur champ? Et donc pas dans une étiquette appelée depuis clic sur un bouton de la colonne de droite?  
  2. Il paraît que cette instruction va devenir obsolète. L'est-elle déjà? Par quoi peut-on la remplacer? 

Merci Slight smile

Parents
  • +1
    verified answer

    Effectivement, [S]zonsui ne peut être affectée que depuis l'intérieur d'un écran. 

    Dans ce cas précis il faut écrire le bout de code suivant dans l'action AVANT_CHOI et alimenter la variable SUIZON : 



    $AVANT_CHOI

    If dim(BOUT)>0 & BOUT="2" 


    If dim(SUIZON)>0


    If  [[M:SQH1]YCHAMP = "" : SUIZON = "[M:SQH1]YCHAMP " : Return : Endif


    Endif


    Endif

    Return

Reply
  • +1
    verified answer

    Effectivement, [S]zonsui ne peut être affectée que depuis l'intérieur d'un écran. 

    Dans ce cas précis il faut écrire le bout de code suivant dans l'action AVANT_CHOI et alimenter la variable SUIZON : 



    $AVANT_CHOI

    If dim(BOUT)>0 & BOUT="2" 


    If dim(SUIZON)>0


    If  [[M:SQH1]YCHAMP = "" : SUIZON = "[M:SQH1]YCHAMP " : Return : Endif


    Endif


    Endif

    Return

Children