4D View v16

PV ADD DYNAMIC FIELDS

Accueil

 
4D View v16
PV ADD DYNAMIC FIELDS

PV ADD DYNAMIC FIELDS 


 

PV ADD DYNAMIC FIELDS ( zone ; primaire ; tabTables ; tabChamps ; tabMéthodes ) 
Paramètre Type   Description
zone  Entier long in Zone 4D View
primaire  Entier in Numéro de table primaire
tabTables  Tableau entier in Tableau des numéros de tables
tabChamps  Tableau entier in Tableau des numéros de champs
tabMéthodes  Tableau chaîne in Tableau des noms de méthodes de rétro-appel

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

 ARRAY INTEGER($TabTables;4) `N°s des tables
 ARRAY INTEGER($TabChamps;4) `N°s des champs
 ARRAY TEXT($TabMéthodes;4) `Noms des méthodes de rétro-appel
 
  `Colonne 1 : nom du contact
 $TabTables{1}:=Table(->[Contacts])
 $TabChamps{1}:=Field(->[Contacts]NomDuContact)
 $TabMéthodes{1}:=""
 
  `Colonne 2 : prénom du contact
 $TabTables{2}:=Table(->[Contacts])
 $TabChamps{2}:=Field(->[Contacts]PrénomDuContact)
 $TabMéthodes{2}:=""
 
  `Colonne 3 : titre du contact (table liée)
 $TabTables{3}:=Table(->[Titres])
 $TabChamps{3}:=Field(->[Titres]Libellé)
 $TabMéthodes{3}:=""
 
  `Colonne 4 : numéro d'ordre / total (colonne calculée)
 $TabTables{4}:=0
 $TabChamps{4}:=Is text   `Résultat
 $TabMéthodes{4}:="MéthodeAppel"
 
 RELATE MANY([Clients]Code)   `Récupère les contacts
 
 PV ADD DYNAMIC FIELDS(Zone;Table(->[Contacts]);$TabTables;$TabChamps;$TabMéthodes)

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

 C_LONGINT($1`Zone 4D View
 C_LONGINT($2`Numéro de colonne
 C_LONGINT($3`Type du tableau
 C_POINTER($4`Pointeur sur ce tableau
 C_LONGINT($5`Première ligne de la zone dynamique
 C_LONGINT($6`Nombre de lignes pouvant être affichées dans la zone
 
 GOTO SELECTED RECORD([Contacts];$5)
 For($i;1;$6)
    $4->{$i}:=Substring([Contacts]PrénomDuContact;1;1)+Substring([Contacts]NomDuContact;1;1)
    NEXT RECORD([Contacts])
 End for



Voir aussi  

PV ADD DYNAMIC ARRAYS
PV CLEAR DYNAMIC COLUMNS
PV FIELD TO CELLS
PV SET CELL FIELD

 
PROPRIÉTÉS 

Produit : 4D View
Thème : PV Valeur de cellule
Numéro : 15900

 
HISTORIQUE 

Créé : 4D View 6.8

 
UTILISATION DE L'ARTICLE

4D View - Langage ( 4D View v16)