- Récupération de variable
- Champ de saisie
- Champ libellé
- Interrupteur ou case à cocher
- Sélecteur ou case d'options
- Bouton texte
- Bouton graphique
- Image graphique et zone de cliquage
- Ascenseur ou barre de défilement
- Liste déroulante ou liste déroulée
Ecran,Recupere (Langage externe) En anglais : Screen,Get Récupère la valeur dans un champ ou récupère la valeur dans une variable. Par défaut, les espaces situés en fin de WdChaine sont supprimés. Syntaxe
Ecran,Recupere([<Nom de la fenêtre>, ] <Nom> [, <Indice 1> [, <Indice 2>]])
<Nom de la fenêtre> : Chaîne de caractères (optionnelle) Permet d'afficher le contenu d'un champ ou d'une variable dans la fenêtre <Nom de la fenêtre> qui n'est pas la fenêtre en cours (exemple pour le champ NOM de la fenêtre CL_FIC, il faut donner CL_FIC.NOM). <Nom> : Chaîne de caractères Nom du champ ou nom de la variable. <Indice 1> : Chaîne de caractères (optionnelle) Indice dans le cas d'un champ indicé ou d'une variable indicée. <Indice 2> : Chaîne de caractères (optionnelle) lndice dans le cas d'une variable indicée à deux dimensions. Remarques Récupération de variable Selon le type de la variable à récupérer, la variable WINDEV contenant la valeur de la variable est différente : - Si la variable est un entier, WdEntier (pour entier simple) ou WdLong (pour entier long) contient la valeur entière de la variable.
- Si la variable est un réel, WdReel (pour réel simple) ou WdReelD (pour réel double) contient la valeur réelle de la variable.
- Si la variable est une chaîne ou un monétaire, WdChaine contient la valeur de la variable.
Dans le cas d'une variable texte de plus de 200 caractères, le contenu du champ peut être consulté de deux façons : - WdChaine contient les 200 premiers caractères.
- le pointeur WDpTexteLong pointe vers la zone mémoire de travail de récupération du texte; WdEntier indique la longueur de la chaîne (en C et en Pascal uniquement).
Dans le cas d'un texte long, il suffit de tester si la valeur du pointeur est différente de "Null"; dans ce cas le pointeur contient la chaîne à récupérer. En VB, la récupération de textes longs n'est pas possible directement. Dans les autres langages (Cobol, Fortran), WDpTexteLong sera une variable texte pouvant contenir 4000 caractères. Attention : vous ne devez pas faire d'opérations (réallocation, ...) sur ce pointeur. Important : En C, pour utiliser WDpTexteLong, il faut compiler le programme avec l'option "caractères non signés". Exemple en C : // Récupère le contenu de la variable Prix APPELWD("Ecran,Recupere,PRIX"); Montant=WDReel*Quantite; // Récupère le contenu de la variable indicée LIBPROD[1] APPELWD("Ecran,Recupere,LIBPROD,1"); strcpy(Libelle,WDChaine); // Récupère le contenu de la variable Nom APPELWD("Ecran,Recupere,NOM"); strcpy(Nom,WDChaine); Exemple en Pascal : * Récupère le contenu de la variable Prix*) APPELWD('Ecran,Recupere,PRIX'); Montant=WDReel*Quantite; (*Récupère le contenu de la variable indicée LIBPROD[1]*) APPELWD('Ecran,Recupere,LIBPROD,1'); Libelle:=WDChaine; (* Récupère le contenu de la variable Nom*) APPELWD('Ecran,Recupere,NOM'); Nom:=WDChaine; Exemple en VB : ' Récupère le contenu de la variable Prix call APPELWD("Ecran,Recupere,PRIX") Montant=WDReel*Quantite ' Récupère le contenu de la variable indicée LIBPROD[1] call APPELWD("Ecran,Recupere,LIBPROD,1") Libelle=WDChaine ' Récupère le contenu de la variable Nom call APPELWD("Ecran,Recupere,NOM") Selon le type du champ à récupérer, la variable WINDEV contenant la valeur du champ est différente : - Si le champ est un entier, WdEntier (pour entier simple) ou WdLong (pour entier long) contient la valeur entière du champ.
- Si le champ est un réel, WdReel (pour réel simple) ou WdReelD (pour réel double) contient la valeur réelle du champ (l'une ou l'autre des variables selon le masque de saisie défini).
- Si le champ est une chaîne texte/date/heure, WdChaine contient la valeur texte du champ.
Dans le cas d'un champ texte, le contenu du champ peut être consulté de deux façons : - par WdChaine si le champ contient 200 premiers caractères maximum
- à l'aide du pointeur WDpTexteLong qui pointe vers la zone mémoire de travail de récupération du texte et WdEntier qui indique la longueur de la chaîne (en C et en Pascal uniquement). Si la valeur du pointeur est différente de "Null", le pointeur contient la chaîne à récupérer.
En VB, la récupération de textes longs n'est pas possible directement. Dans les autres langages (Cobol, Fortran), WDpTexteLong sera une variable texte pouvant contenir 4000 caractères. Attention : vous ne devez pas faire d'opérations (réallocation, ...) sur ce pointeur. En C, pour utiliser WDpTexteLong, il faut compiler le programme avec l'option "caractères non signés".
Exemple en C : APPELWD("Ecran,Recupere,PRIX"); // Récupère le prix Montant=WDReel*Quantite; APPELWD("Ecran,Recupere,LIBPROD,1"); // Récupère le champ indicé 1 strcpy(Libelle,WDChaine); APPELWD("Ecran,Recupere,NOM"); // Récupère le nom strcpy(Nom,WDChaine); Méthode pour récupérer un texte long :
// pszNomChamp: Nom du champ à récupérer // pszValeur: Chaine de caractères contenant le résultat // nLng Longueur maxi de la chaîne résultat sans // compter le zéro binaire //en Sortie : pszValeur Contient le résultat
void RecupereLong(char far *pszNomChamp,char far *pszValeur,int nLng) { char far *pszSource; APPELWD("ECRAN,RECUPERE,%Fs",pszNomChamp); if (WDpTexteLong!=NULL) pszSource=WDpTexteLong; else pszSource=WDChaine; // pszSource peut éventuellement dépasser nLng _fstrncpy(pszValeur,pszSource,nLng); // strncpy ne met pas le zéro binaire si // la chaîne source fait exactement nLng caractères pszValeur[nLng]=0; } Exemple en Pascal : APPELWD('Ecran,Recupere,PRIX'); (*Récupère le prix*) Montant:=WdReel*Quantite; APPELWD('Ecran,Recupere,LIBPROD,1'); (*Récupère le Libellé indicé 1*) Libelle:=WdChaine; APPELWD('Ecran,Recupere,NOM'); (*Récupère le NOM*) Nom:=WdChaine; APPELWD('Ecran,Recupere,TEXTELONG); (*Récupère le champ TEXTELONG*) move(txtlg,wdptextelong,WdEntier); Exemple en VB : call APPELWD("Ecran,Recupere,PRIX") 'Récupère le prix Montant=WdReel*Quantite; call APPELWD("Ecran,Recupere,LIBPROD,1") 'Récupère le champ Libellé Libelle=WdChaine call APPELWD("Ecran,Recupere,NOM") 'Récupère le Nom Nom=WdChaine
WdChaine contient le libellé affiché. Exemple en C :
APPELWD("Ecran,Recupere,LIB"); strcpy(Libelle,WDChaine); Exemple en Pascal : APPELWD('Ecran,Recupere,LIB'); Libelle:=WdChaine; Exemple en VB : call APPELWD("Ecran,Recupere,LIB") Libelle=WdChaine Interrupteur ou case à cocher Si l'interrupteur de l'indice donné est coché, alors WdChaine contient "O" et WdEntier est égal à 1. Si l'interrupteur de l'indice donné n'est pas coché, alors WdChaine contient "N" et WdEntier est égal à 0. Exemple en C : APPELWD("Ecran,Recupere,INTERR"); if (WDEntier==1) ... Exemple en Pascal : APPELWD('Ecran,Recupere,INTERR'); if (WDEntier=1) ... Exemple en VB : call APPELWD("Ecran,Recupere,INTERR") if WDEntier=1 ... Sélecteur ou case d'options WdEntier contient le rang de l'option en cours Exemple en C : APPELWD("Ecran,Recupere,SELECT"); if (WDEntier==2) ... Exemple en Pascal : APPELWD('Ecran,Recupere,SELECT'); if (WDEntier=2) ... Exemple en VB : call APPELWD("Ecran,Recupere,SELECT") if (WDEntier=2) ... WdChaine contient le libellé du bouton. Exemple en C : APPELWD("Ecran,Recupere,Image1"); strcpy(Libelle,WDChaine); Exemple en Pascal : APPELWD('Ecran,Recupere,Image2'); Libelle:=WdChaine; Exemple en VB : call APPELWD("Ecran,Recupere,Image3") Libelle=WdChaine WdChaine contient le nom du fichier image affiché dans le bouton. Exemple en C : APPELWD("Ecran,Recupere,Image1"); strcpy(FicImage,WDChaine); Exemple en Pascal : APPELWD('Ecran,Recupere,Image2'); FicImage:=WdChaine; Exemple en VB : call APPELWD("Ecran,Recupere,Image3") FicImage=WdChaine Image graphique et zone de cliquage <Valeur> peut être le nom du fichier image à afficher : Exemple en C : APPELWD("Ecran,Recupere,Image1"); strcpy(FicImage,WDChaine); Exemple en Pascal : APPELWD('Ecran,Recupere,Image2'); FicImage:=WdChaine; Exemple en VB : call APPELWD("Ecran,Recupere,Image3") FicImage=WdChaine Ascenseur ou barre de défilement WdEntier contient la position de l'ascenseur : Exemple en C : APPELWD("Ecran,Recupere,ASCENS"); Exemple en Pascal : APPELWD('Ecran,Recupere,ASCENS'); Exemple en VB : call APPELWD("Ecran,Recupere,ASCENS") Liste déroulante ou liste déroulée Si l'indice est précisé, la valeur texte de l'élément est retournée dans WdChaine. Si l'indice n'est pas précisé, WdEntier contient l'indice de l'élément sélectionné (non significatif pour les combos avec saisie) et WdChaine la valeur de l'élément sélectionné. Pour les listes multisélections, seul le premier élément sélectionné sera récupéré. Exemple en C : APPELWD("Ecran,Recupere,LISTE1,2"); strcpy(elem,WDChaine) Exemple en Pascal : APPELWD('Ecran,Recupere,LISTE1,2'); Elem:=WdChaine; Exemple en VB : call APPELWD("Ecran,Recupere,LISTE1,2") Elem=WdChaine
|
|
|