IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

SAS AF et formulaires Discussion :

Ecran de saisie dans SAS


Sujet :

SAS AF et formulaires

  1. #1
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 154
    Points : 61
    Points
    61
    Par défaut Ecran de saisie dans SAS
    Bonjour,

    comment faire dans le code suivant pour que le curseur se place automatiquement sur le premier emplacement de la var1.

    Si je le lance telquel il faut que je clique au hasard avec la souris dans le champ de saisie. Et si je me place mal je ne peux pas saisir toues les caratéres ( 6 )

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    DATA MyDS;
    /* declaration de la fenêtre SAS Windows*/
    	IF _n_ = 1 then do ;
    		Window MaFenetre color = black
    		#3 'Saisir le mois à traiter :' c = cyan +2 var1 $6. c = orange 
    		#5 'Confirmation de la valeur O/N : ' c = white +2 var2 $1. c = orange ;
    	end ;
     
    /* Ecriture dans la fenêtre */
    	var2='N' ;
    	put "valeur initialisée : " var1 var2 ;
    	do while ( upcase(var2) ne 'O' ) ;
    		var1='';
    		var2='';
    		display MaFenetre;
    	end ;
    	put "valeur saisie : " var1 ;
    	stop ;
    run;
    C'est un bout de code que j'ai trouvé sur le forum et que j'ai essayé d'adapter à mes besoins.

    A+

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 249
    Points : 290
    Points
    290
    Par défaut
    Bonjour,

    Pour "naviguer" dans la fenêtre de saisie, il faut supprimer les caractères présents (blancs par défaut) :
    • à droite par la touche "Suppr."
    • à gauche par la touche "<-- " (BackSpace)

    C'était le bon temps la saisie comme çà !

    Bon courage !

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 154
    Points : 61
    Points
    61
    Par défaut
    C'est effectivement une solution manuelle.

    Mais est ce qu'il y a une solution par code pour positionner le curseur ?

    Tu parles de l'ancien temps, cela sous entend que l'on peut faire autrement pour demander une saisie utilisateur ?

    En fait c'est pour éviter à un utilisateur "basique" d'aller dans le code et de modifier la variable.

    Je suis désolé mes questions sont un peu bêtes mais je débute en SAS et je ne connais pas encore toutes les astuces.

    Merci

  4. #4
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 249
    Points : 290
    Points
    290
    Par défaut
    Bonjour,

    En SAS, c'est bien la fonction window qui permet de faire de la saisie écran (il est vrai qu'on ne la voit plus guère : les interfaces sont aujourd'hui développées dans d'autres langages plus adaptés...)
    A l'affichage, le curseur se positionne au début de la première zone de saisie et je ne connais pas d'instruction particulière permettant de gérer la position du dit curseur...
    Ta solution, pour empêcher l'utilisateur d'aller dans le code, est certainement la plus simple (donc la meilleure ! ).


    Ci-joint un exemple de code avec les commentaires si cela peut t'être utile...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    /************************************************/
    /*												*/
    /* Exemple de saisie mois et année sur 2 lignes */
    /*												*/
    /************************************************/
    %window w_saisie	/* w_saisie = nom de la fenêtre */
    	color=cyan  	/* couleur de fond de la fenêtre w_saisie */
    	columns=40  	/* hauteur de la fenêtre w_saisie */
    	rows=10     	/* largeur de la fenêtre w_saisie */
    	icolumn=30      /* abcisse du coin supérieur gauche de la fenêtre w_saisie (1 par défaut) */
    	irow=15         /* ordonnée du coin supérieur gauche de la fenêtre w_saisie (1 par défaut) */
     
    /*  ligne question  																						*/
    /*  |  colonne question 																				*/
    /*  |  |  libellé question 																					*/
    /*  |  |  |			  colonne début zone de saisie 												*/
    /*  |  |  |			  |	  macro variable recevant la valeur saisie								*/
    /*  |  |  | 		          |	  |    longueur de la zone de saisie 								*/
    /*  |  |  |			  |	  |    | réponse obligatoire avant la sortie de la fenêtre (Entrée)	*/
    /*  |  |  |			  |	  |    | |                                                      	*/
        #2 @5 "Mois de traitement  :" @30 mv_month 2 required=yes
        #3 @5 "Année de traitement :" @28 mv_year  4 required=yes
     
    ;   /* fin de la macro instruction %window */
     
    %display w_saisie;	/* affichage de la fenêtre w_saisie */
    Bon courage !

  5. #5
    Membre du Club
    Inscrit en
    Novembre 2007
    Messages
    154
    Détails du profil
    Informations forums :
    Inscription : Novembre 2007
    Messages : 154
    Points : 61
    Points
    61
    Par défaut
    Explication claire, c'est quand même plus facile quand il y a les commentaires.

    Pour afficher la zone de saisie j'ai initialisé les variables var1 et var2 avec '_' ce n'est pas terrible mais cela donne la position de début de la saisie.

    Est ce que tu sais comment faire pour faire apparaitre une 3eme ligne qui ne serait pas une question mais juste du texte ?

    Si je rajoute
    #1 'SAISIE DU MOIS DE TRAITEMENT' required=no
    C'est bon ça m'affiche le texte sans me poser de question. Par contre si je veux mettre le libellé dans une variable

    #1 lib required=no

    Aprés j'arrête sur les fenêtres

  6. #6
    Membre actif
    Profil pro
    Inscrit en
    Décembre 2008
    Messages
    249
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2008
    Messages : 249
    Points : 290
    Points
    290
    Par défaut
    Bonjour,

    Je n'ai pas bien compris ta demande, mais je suppose que ce exemple complet y répond !
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    %let mv_libelle= "Rien que du texte après !" ;
    %window w_saisie color=cyan COLUMNS=40 rows=12 icolumn=30 irow=15
        #2 @5 "Mois de traitement  :" @30 mv_month 2 required=yes
        #3 @5 "Année de traitement :" @28 mv_year  4 required=yes
        #4 @5 &mv_libelle 
        #5 @5 "Du texte svp        :" @28 mv_texte 10 required=no ;
     ;
    %display w_saisie;
    Bon courage !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/12/2004, 21h20
  2. problème avec masque de saisie dans table
    Par porki dans le forum Access
    Réponses: 6
    Dernier message: 13/10/2004, 08h58
  3. limiter la saisie dans un edit à des réels!!!
    Par shout dans le forum Windows
    Réponses: 10
    Dernier message: 21/06/2004, 16h20
  4. saisie dans une fenetre de service
    Par gord's dans le forum Composants VCL
    Réponses: 4
    Dernier message: 05/11/2003, 16h25

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo