| 4D View v15PV ADD DYNAMIC FIELDS | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 
 | 
    4D View v15
 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 v15)
	
	
	
	
	
	
	
 Ajouter un commentaire
Ajouter un commentaire