PV AJOUTER CHAMPS DYNAMIQUES

4D - Documentation   Français   English   German   4D View, Commandes par thèmes   4D View, Liste des commandes   4D View, Constantes par thèmes   Retour   Précédent   Suivant

version 6.8


PV AJOUTER CHAMPS DYNAMIQUES (zone; primaire; tabTables; tabChamps; tabMéthodes)

ParamètreTypeDescription
zoneEntier longZone 4D View
primaireEntierNuméro de table primaire
tabTablesTableauTableau des numéros de tables
tabChampsTableauTableau des numéros de champs
tabMéthodesTableauTableau des noms de méthodes de rétro-appel

Description

La commande PV AJOUTER CHAMPS DYNAMIQUES ajoute dans zone un bloc de lignes correspondant aux valeurs des champs définis par tabTables et tabChamps pour la sélection courante de la table définie par primaire, à partir de la cellule A1. Si des colonnes dynamiques ont déjà été définies dans zone, le nouveau bloc est ajouté à partir de la ligne 1 de la première colonne disponible.

Les valeurs des champs peuvent être modifiées directement depuis 4D View via les cellules correspondantes.

Le résultat est toujours présenté verticalement (il y a autant de colonnes que d'éléments de tableaux tabTables, tabChamps et tabMéthodes).

Note : Si une zone de tableaux dynamiques existait déjà via l'utilisation de la commande PV AJOUTER TAB DYNAMIQUES, elle est supprimée et remplacée par la zone de champs dynamiques.

Pour n'importe quelle colonne, l'opération peut concerner une table liée à la table primaire par un lien. Ce dernier doit être de type automatique et aller de la table primaire vers la table du champ à afficher. Dans la structure traditionnelle des factures et des lignes de factures, il permet par exemple de récupérer et de modifier le contenu d'un champ de la table des lignes, mais également celle des factures par rapport à une sélection de la table des lignes de factures (table primaire).

Chaque méthode de rétro-appel reçoit les 6 paramètres suivants :

$1 : Zone

$2 : Numéro de colonne

$3 : Type du tableau (interne à 4D View)

$4 : Pointeur sur ce tableau

$5 : Numéro de la première ligne à (re)dessiner

$6 : Nombre de lignes à (re)dessiner dans la zone

Note : En vue de la compilation de la base, il est impératif de déclarer ces paramètres, même s'ils ne sont pas utilisés.

$5 et $6 : Lorsque l'utilisateur fait défiler les lignes (enregistrements) dans la zone, seules les nouvelles lignes à afficher sont redessinées. Les paramètres $5 et $6 permettent de connaître les lignes concernées.

Il vous appartient de remplir le tableau de méthodes de rétro-appel. 4D View utilisera ensuite ce tableau pour remplir la colonne calculée. Il n'y a pas de valeur de retour ($0).

La commande PV AJOUTER CHAMPS DYNAMIQUES maintient un lien dynamique avec les champs passés en paramètres. Ceci a pour conséquence de répercuter les modifications de valeurs effectuées dans la zone 4D View au sein du ou des champ(s), et réciproquement.

Notes :

Les valeurs des champs, les méthodes et la zone de 4D View utilisées doivent être définies dans le même process.

Il n'y a pas de mise à jour automatique des données liées entre les enregistrements affichés dans des formulaires de 4D et les fenêtres externes 4D View. Pour répercuter dans une fenêtre externe 4D View des modifications effectuées dans un enregistrement de 4D, il est nécessaire de redessiner la fenêtre (commande PV REDESSINER). En revanche, les modifications issues de l'exécution de commandes 4D sont automatiquement reportées dans les zones 4D View.

Exemple

Cet exemple illustre le cas d'une table incluse saisissable dans un formulaire de saisie (avec 4D View, cette opération devient d'une facilité déconcertante). Nous allons présenter en modification les champs de la table des contacts liés au client courant, avec leurs fonctions (table liée) et les initiales de chaque contact (colonne calculée).

   TABLEAU ENTIER($TabTables;4)  `N°s des tables
   TABLEAU ENTIER($TabChamps;4)  `N°s des champs
   TABLEAU ALPHA(30;$TabMéthodes;4)  `Noms des méthodes de rétro-appel

       `Colonne 1 : nom du contact
   $TabTables{1}:=Table(->[Contacts])
   $TabChamps{1}:=Champ(->[Contacts]NomDuContact)
   $TabMéthodes{1}:=""

      `Colonne 2 : prénom du contact
   $TabTables{2}:=Table(->[Contacts])
   $TabChamps{2}:=Champ(->[Contacts]PrénomDuContact)
   $TabMéthodes{2}:=""

      `Colonne 3 : titre du contact (table liée)
   $TabTables{3}:=Table(->[Titres])
   $TabChamps{3}:=Champ(->[Titres]Libellé)
   $TabMéthodes{3}:=""

      `Colonne 4 : numéro d'ordre / total (colonne calculée)
   $TabTables{4}:=0
   $TabChamps{4}:=Est un texte   `Résultat
   $TabMéthodes{4}:="MéthodeAppel"

   LIEN RETOUR([Clients]Code)  `Récupère les contacts

   PV AJOUTER CHAMPS DYNAMIQUES (Zone;Table(->[Contacts]);$TabTables;$TabChamps;$TabMéthodes)

Le code de la méthode projet MéthodeAppel est le suivant :

   C_ENTIER LONG($1)  `Zone 4D View
   C_ENTIER LONG($2)  `Numéro de colonne
   C_ENTIER LONG($3)  `Type du tableau
   C_POINTEUR($4)  `Pointeur sur ce tableau
   C_ENTIER LONG($5)  `Première ligne de la zone dynamique
   C_ENTIER LONG($6)  `Nombre de lignes pouvant être affichées dans la zone

   ALLER DANS SELECTION([Contacts];$5)
   Boucle($i;1;$6)
      $4->{$i}:=Sous chaine([Contacts]PrénomDuContact;1;1) + Sous chaine([Contacts]NomDuContact;1;1)
      ENREGISTREMENT SUIVANT([Contacts])
   Fin de boucle

Référence

PV AJOUTER TAB DYNAMIQUES, PV CHAMP VERS CELLULES, PV EFFACER COL DYNAMIQUES, PV FIXER CHAMP CELLULE.


4D - Documentation   Français   English   German   4D View, Commandes par thèmes   4D View, Liste des commandes   4D View, Constantes par thèmes   Retour   Précédent   Suivant