4D View v16PV ADD DYNAMIC FIELDS |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D View v16
PV ADD DYNAMIC FIELDS
|
PV ADD DYNAMIC FIELDS ( zone ; primaire ; tabTables ; tabChamps ; tabMéthodes ) | ||||||||
Paramètre | Type | Description | ||||||
zone | Entier long |
![]() |
Zone 4D View | |||||
primaire | Entier |
![]() |
Numéro de table primaire | |||||
tabTables | Tableau entier |
![]() |
Tableau des numéros de tables | |||||
tabChamps | Tableau entier |
![]() |
Tableau des numéros de champs | |||||
tabMéthodes | Tableau chaîne |
![]() |
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
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
PV ADD DYNAMIC ARRAYS
PV CLEAR DYNAMIC COLUMNS
PV FIELD TO CELLS
PV SET CELL FIELD
Produit : 4D View
Thème : PV Valeur de cellule
Numéro :
15900
Créé : 4D View 6.8
4D View - Langage ( 4D View v16)