|
|
|
|
|
- Présentation
- Création d'un superchamp sous l'éditeur
- Méthode 1
- Méthode 2
- Ajouter un champ dans un superchamp
- Superchamps et ascenseurs
- Programmation d'un superchamp
- Déclaration des variables globales au superchamp
- Déclaration des fonctions et procédures liées au superchamp
- Accès au superchamp et aux champs du superchamp
- Valeur d'un superchamp
- Fonctions et propriétés spécifiques aux superchamps
- Fonctions spécifiques aux superchamps
- Propriétés spécifiques aux superchamps
Conception d'un superchamp
Un superchamp est un type de champ avancé. Un superchamp regroupe un ensemble de champs dans un but précis. Le fonctionnement de ces champs sont indépendants des traitements réalisés dans la fenêtre ou dans la page les accueillant. Pour manipuler un superchamp, il est possible de distinguer deux types d'utilisateurs : - Le créateur du superchamp : personne qui conçoit le superchamp et la fonctionnalité que ce superchamp doit apporter.
- L' utilisateur du superchamp : personne qui va intégrer le superchamp dans sa fenêtre (ou sa page) et qui va le manipuler par programmation. Pour plus de détails, consultez : Intégrez un superchamp dans une fenêtre ou une page.
Création d'un superchamp sous l'éditeur Deux méthodes sont disponibles pour créer un superchamp : - Création d'un superchamp vide, puis création des champs composant le superchamp.
- Création d'un superchamp à partir de champs existants.
Remarque : Il n'est pas possible d'ajouter des superchamps personnels aux superchamps proposés par défaut par WINDEV, WEBDEV et WINDEV Mobile. Méthode 1 - Sous l'éditeur de fenêtres ou de pages, sous le volet "Création", dans le groupe "Conteneurs", cliquez sur "Superchamp".
- Cliquez dans la fenêtre (ou la page) à la position où le champ doit être créé. Le contour du superchamp apparaît.
- Affichez la description du champ (option "Description" du menu contextuel).
- Ajoutez les différents champs composant le superchamp (bouton "Ajouter').
Attention : Les champs associés au superchamp doivent appartenir à la zone du superchamp définie sous l'éditeur. Dans le cas contraire, le champ sera grisé sous l'éditeur et non-affiché en exécution. Méthode 2 - Sous l'éditeur de fenêtres ou de pages, créez les différents champs composant le superchamp.
- Sélectionnez les champs (touche Ctrl + clic de souris ou utilisation du lasso).
- Sous le volet "Modification", dans le groupe "Transformations", déroulez "Refactoring et permutations" et sélectionnez "Créer un superchamp avec la sélection".
Remarque : Les champs qui sont associés au superchamp sont ancrés par rapport au superchamp (et non par rapport à la fenêtre ou la page). Ajouter un champ dans un superchamp Pour ajouter un champ dans un superchamp : - Créez si nécessaire le champ à ajouter au superchamp.
- Positionnez le champ dans la zone du superchamp. La zone du superchamp est alors encadrée d'un trait vert.
Le champ est automatiquement ajouté au superchamp.
Superchamps et ascenseurs Un superchamp est constitué d'une zone affichée (poignées noires) et d'une zone affichable (poignées rouges). Pour modifier une des deux zones, déplacez les poignées en maintenant la touche Maj enfoncée. Si la zone affichée est plus petite que la zone affichable, des ascenseurs sont automatiquement affichés. Il est ainsi possible de créer des superchamps avec des ascenseurs permettant de faire défiler le contenu du superchamp. Programmation d'un superchamp Déclaration des variables globales au superchamp Le superchamp possède un code de déclaration des globales (voir Evénements associés au superchamp). Ce code permet de déclarer toutes les variables globales au superchamp. Ces variables peuvent être de n'importe quel type. Elles pourront être utilisées dans n'importe quel événement associé au superchamp ou à un des champs composant le superchamp. Déclaration des fonctions et procédures liées au superchamp Pour créer une procédure locale au superchamp : - Affichez la description du superchamp.
- Cliquez sur le bouton "Ajouter" placé sous le champ "Procédures locales". Une nouvelle procédure est créée.
- Cliquez sur le bouton "Code" pour éditer le code de la procédure.
Astuce : Pour créer des procédures locales liées au superchamp, il est possible de réaliser les manipulations suivantes : - Sélectionnez votre fenêtre (ou page) puis le superchamp dans le volet "Explorateur de projet".
- Cliquez sur la flèche noire à côté du nom du superchamp dans l'explorateur de projet. Les procédures locales apparaissent.
- Sélectionnez "Procédures locales". Les procédures locales affichées sont celles du superchamp. Vous pouvez ajouter, renommer ou supprimer des procédures locales au superchamp.
Accès au superchamp et aux champs du superchamp Lors de la programmation du superchamp, il est nécessaire d'accéder : - Au superchamp :
Le traitement devant être indépendant du nom du superchamp, pour connaître le nom du superchamp, il est conseillé d'utiliser soit le mot-clé MonParent, soit les fonctions du type ChampContextuel, ChampEnCours, ... - Aux champs du superchamp :
Il suffit d'utiliser directement la variable du champ dans le code. Depuis l'extérieur du superchamp (code d'un menu contextuel d'un champ du superchamp par exemple), il est nécessaire d'utiliser la notation suivante :
<Nom du superchamp>.<Nom du champ> Remarque : La fonction EnumèreChamp permet d'énumérer les champs appartenant à un superchamp. ExempleL'exemple suivant correspond au code d'une option d'un menu contextuel. Ce menu est associé à un champ d'un superchamp, et permet de modifier les champs "DateDébut" et "DateFin" du superchamp. Dans ce code, le nom du superchamp en cours est obtenu avec la fonction ChampContextuel. Les différents champs du superchamp sont manipulés grâce aux opérateurs d'indirection. // Récupère le superchamp courant sSuperChamp est une chaîne sSuperChamp = ExtraitChaîne(ChampContextuel(), 1, ".") dDate est une Date   // Date du jour par défaut // Passe au jour précédent dDate..Jour-- // Affiche la date du jour précédent {sSuperChamp+".DateDébut"}..Valeur = dDate {sSuperChamp+".DateFin"}..Valeur = dDate Valeur d'un superchamp Un superchamp est composé de plusieurs champs et peut renvoyer une valeur. Cette valeur peut correspondre à la valeur d'un champ du superchamp ou à toute autre information. Par défaut, cette valeur est une chaîne vide. Vous pouvez la modifier par la propriété Valeur ou par affectation directe. Exemple : Un superchamp permet de sélectionner un fichier. Il est composé d'un champ de saisie et d'un bouton ouvrant le sélecteur de fichier. La valeur du superchamp doit correspondre au nom du fichier sélectionné. Pour cela, il est nécessaire d'affecter la valeur du superchamp : - dans le code de modification du champ de saisie,
- dans le code de clic du bouton de sélection.
Dans ce code, le mot-clé MonParent permet de désigner le superchamp dans le code d'un des champs le composant.
// Code de modification du champ de saisie MonParent = MoiMême // Code du bouton de sélection NomFichier = fSélecteur(fExtraitChemin(NomFichier, fRépertoire), ... fExtraitChemin(NomFichier, fFichier + fExtension), ... "Sélectionner un fichier", ... "Tous les fichiers (*.*)" + TAB + "*.*", "") MonParent = NomFichier Fonctions et propriétés spécifiques aux superchamps Fonctions spécifiques aux superchamps Les fonctions suivantes sont spécifiques à la gestion des caractéristiques d'un superchamp par programmation. | | EnumèreChamp | Renvoie le nom du Nème champ du superchamp considéré. | FenTailleUtile | Indique la taille utile des superchamps avec ascenseurs. | RAZ | Ré-initialise les champs présents dans un superchamp. |
Propriétés spécifiques aux superchamps Les propriétés suivantes sont spécifiques à la gestion des caractéristiques d'un superchamp par programmation. | | Hauteur | Permet de connaître et de modifier la hauteur du superchamp. | Largeur | Permet de connaître et de modifier la largeur du superchamp. | Nom | Permet de connaître le nom du superchamp. | Valeur | Permet de connaître et de modifier la valeur du superchamp. |
Pour connaître la liste complète des propriétés du WLangage pouvant être utilisées avec un superchamp, consultez Propriétés associées à un superchamp.
Documentation également disponible pour…
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|