PC SOFT

DOCUMENTATION EN LIGNE
DE WINDEV, WEBDEV ET WINDEV MOBILE


  • 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 clicage
  • Ascenseur ou barre de défilement
  • Liste déroulante ou liste déroulée
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadApple WatchUniversal Windows 10 AppWindows Mobile
Autres
Procédures stockées
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")

Champ de saisie

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

Champ libellé

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

Bouton texte

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

Bouton graphique

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 clicage

<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é.
Pour les listes, voir également la fonction Liste,Recupere.
Pour les tables, se référer à la fonction Table,Recupere.
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
Version minimum requise
  • Version 14
Commentaires
Cliquez sur [Ajouter] pour publier un commentaire