4D View v16

PV REPORT MANY

Accueil

 
4D View v16
PV REPORT MANY

PV REPORT MANY 


 

PV REPORT MANY ( zone ; colonne ; ligne ; primaire ; tableRupture ; champRupture ; tabOpérations ; tabTables ; tabChamps ; insérer ; corps ; titre ) 
Paramètre Type   Description
zone  Entier long in Zone 4D View
colonne  Entier long in Numéro de colonne
ligne  Entier long in Numéro de ligne
primaire  Entier in Numéro de table primaire
tableRupture  Entier in Numéro de table sur laquelle porte la rupture
champRupture  Tableau in Numéro de champ sur lequel porte la rupture
tabOpérations  Tableau entier in Opérations à effectuer
tabTables  Tableau entier in Numéros de tables des champs à afficher
tabChamps  Tableau entier in Numéros des champs à afficher
insérer  Entier in 0 = Remplacer, 1 = Insérer lignes
corps  Entier in Mode d'affichage du corps
titre  Chaîne in Mode d'affichage du titre des ruptures

La commande PV ETAT MULTIPLE crée un état dans la zone 4D View en utilisant les valeurs issues des champs 4D définis par tabTables et tabChamps à partir de la sélection courante de la table primaire. Il est possible d'appliquer à chacun de ces champs une opération, définie par tabOpérations : sous-total, nombre, maximum, etc. Pour définir le paramètre tabOpérations, utilisez les constantes du thème PV États calculs :

Constante Type Valeur
pv report function average Entier long 1
pv report function count Entier long 4
pv report function max Entier long 3
pv report function min Entier long 2
pv report function none Entier long -1
pv report function sum Entier long 0

Le résultat généré est affiché dans la zone à partir de la cellule désignée par colonne et ligne.

Les paramètres tableRupture et champRupture désignent le champ sur lequel la séquence de rupture sera effectuée. Les ruptures permettent de séparer les enregistrements en groupes homogènes et d’effectuer des calculs intermédiaires pour chaque groupe.
Une rupture est un changement de valeur dans une table de tri. Il est impératif d’associer ce niveau de rupture à un critère de tri. Le tri de la sélection d’enregistrements de tableRupture sur champRupture est donc nécessaire avant d’utiliser la commande PV ETAT MULTIPLE. Il peut y avoir des critères de tri supplémentaires, qui ne seront pas pris en compte dans la rupture. Pour plus d’informations sur la construction d’états avec ruptures, reportez-vous au manuel Mode Développement de 4D.

Le paramètre insérer détermine si les données placées dans la zone 4D View par cette commande doivent remplacer les cellules éventuellement présentes ou être insérées dans de nouvelles lignes. Si vous passez 0, les données sont effacées et remplacées. Si vous passez 1, des lignes supplémentaires sont insérées.

Le paramètre corps vous permet de définir le mode d'affichage des zones de corps et de rupture de l'état :

  • Si vous passez 0, seules les lignes de ruptures sont générées (les lignes de corps ne sont pas insérées).
  • Si vous passez 1, les lignes de corps sont insérées et les valeurs de ruptures sont répétées à chaque ligne.
  • Si vous passez 2, les lignes de corps sont insérées et les valeurs de ruptures ne sont affichées qu'une seule fois.

Le paramètre titre permet de définir le libellé des lignes de résultat (par exemple "Total", "Moyenne", etc.). A l'instar de l'éditeur d'états semi-automatiques de 4D, vous pouvez utiliser le caractère dièse (#) afin d'afficher la valeur de rupture courante. Par exemple, si le champ “Pays” est votre champ de rupture, vous pouvez saisir "Moyenne # :" dans le paramètre titre afin d'obtenir les libellés “Moyenne France : ”, “Moyenne USA : ”, etc. Passez une chaîne vide si vous souhaitez pas insérer de titre.

Note : Si le paramètre corps vaut 0 et que le titre est une chaîne vide, la première colonne de l'état est omise (elle serait alors vide).

Exemple  

Affichons, dans une zone 4D View incluse dans le formulaire de saisie des clients, un état des contacts liés à ce client, avec une rupture indiquant le nombre de contacts pour chaque titre : secrétaire, développeur, service documentation, etc. Un lien automatique existe entre la table des contacts et celle des titres.

 C_LONGINT($Colonne`Numéro de colonne
 C_LONGINT($Ligne`Numéro de ligne
 C_LONGINT($Primaire`Numéro de table primaire
 C_LONGINT($TableRupture`Numéro de table sur laquelle porte la rupture
 C_LONGINT($ChampRupture`Numéro de champ sur lequel porte la rupture
 ARRAY INTEGER($TabOpérations;3) `Opérations à effectuer
 ARRAY INTEGER($TabTables;3) `Numéros de tables des champs à afficher
 ARRAY INTEGER($TabChamps;3) `Numéros des champs à afficher
 C_LONGINT($Insérer`0=Remplacer;1=Insérer lignes
 C_LONGINT($Corps`Option d'affichage du corps
 C_TEXT($Titre`Titre de la ligne de résultat
 
  `Initialisations
 $Colonne:=4 `Affichage à partir de la colonne D
 $Ligne:=3 `Affichage à partir de la 3ème ligne (Titre + ligne blanche)
 $Primaire:=Table(->[Contacts])   `C'est un "état" de la table des contacts
 $TableRupture:=Table(->[Titres])
 $ChampRupture:=Field(->[Titres]Libellé)   `La rupture portera sur le titre des contacts
 
  `Affichons dans la colonne 1 le nombre pour chaque type
 $TabOpérations{1}:=pv report function count
 $TabTables{1}:=Table(->[Titres])
 $TabChamps{1}:=Field(->[Titres]Libellé)   `Libellé du titre colonne 1
 
 $TabOpérations{2}:=pv report function none  `Aucun calcul dans la colonne 2
 $TabTables{2}:=Table(->[Contacts])
 $TabChamps{2}:=Field(->[Contacts]NomDuContact)   `Nom du contact colonne 2
 
 $TabOpérations{3}:=pv report function none  `Aucun calcul dans la colonne 3
 $TabTables{3}:=Table(->[Contacts])
 $TabChamps{3}:=Field(->[Contacts]PrénomDuContact)   `Prénom du contact colonne 3
 
 $Insérer:=1 `Insertion demandée
 $Corps:=2 `Affichage lignes de corps, les valeurs de rupture ne sont affichées qu'une fois
 $Titre:="Nombre de contacts pour #" `Le # sera remplacé par la valeur de rupture courante
 
 RELATE MANY([Clients]Code)   `Récupère les contacts du client
  `Tri nécessaire à la rupture + affichage par ordre alphabétique
 ORDER BY([Contacts];[Titres]Libellé;[Contacts]NomDuContact;[Contacts]PrénomDuContact)
 
 PV REPORT MANY(Zone;$Colonne;$Ligne;$Primaire;$TableRupture;$ChampRupture;
 $TabOpérations;$TabTables;$TabChamps;$Insérer;$Corps;$Titre)

La sélection dépendra des liens entre tables au niveau de la structure de la base, des numéros de champs et de tables passés en paramètres à la commande.



Voir aussi  

PV ARRAY TO CELLS
PV REPORT ONE

 
PROPRIÉTÉS 

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

 
HISTORIQUE 

Créé : 4D View 6.8

 
UTILISATION DE L'ARTICLE

4D View - Langage ( 4D View v16)