PV ETAT MULTIPLE

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 ETAT MULTIPLE (zone; colonne; ligne; primaire; tableRupture; champRupture; tabOpérations; tabTables; tabChamps; insérer; corps; titre)

ParamètreTypeDescription
zoneEntier longZone 4D View
colonneEntier longNuméro de colonne
ligneEntier longNuméro de ligne
primaireEntierNuméro de table primaire
tableRuptureEntierNuméro de table sur laquelle porte la rupture
champRuptureEntierNuméro de champ sur lequel porte la rupture
tabOpérationsTableau EntierOpérations à effectuer
tabTablesTableau EntierNuméros de tables des champs à afficher
tabChampsTableau EntierNuméros des champs à afficher
insérerEntier0 = Remplacer, 1 = Insérer lignes
corpsEntier longMode d'affichage du corps
titreEntier longMode d'affichage du titre des ruptures

Description

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.

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_ENTIER LONG($Colonne)  `Numéro de colonne
   C_ENTIER LONG($Ligne)  `Numéro de ligne
   C_ENTIER($Primaire)  `Numéro de table primaire
   C_ENTIER($TableRupture)  `Numéro de table sur laquelle porte la rupture
   C_ENTIER($ChampRupture)  `Numéro de champ sur lequel porte la rupture
   TABLEAU ENTIER($TabOpérations;3)  `Opérations à effectuer
   TABLEAU ENTIER($TabTables;3)  `Numéros de tables des champs à afficher
   TABLEAU ENTIER($TabChamps;3)  `Numéros des champs à afficher
   C_ENTIER($Insérer)  `0=Remplacer;1=Insérer lignes
   C_ENTIER($Corps)  `Option d'affichage du corps
   C_ALPHA(30;$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:=Champ(->[Titres]Libellé)  `La rupture portera sur le titre des contacts

      `Affichons dans la colonne 1 le nombre pour chaque type
   $TabOpérations{1}:=pv état calcul nombre  
   $TabTables{1}:=Table(->[Titres])
   $TabChamps{1}:=Champ(->[Titres]Libellé)  `Libellé du titre colonne 1

   $TabOpérations{2}:=pv état calcul aucun  `Aucun calcul dans la colonne 2
   $TabTables{2}:=Table(->[Contacts])
   $TabChamps{2}:=Champ(->[Contacts]NomDuContact)  `Nom du contact colonne 2

   $TabOpérations{3}:=pv état calcul aucun  `Aucun calcul dans la colonne 3
   $TabTables{3}:=Table(->[Contacts])
   $TabChamps{3}:=Champ(->[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

   LIEN RETOUR([Clients]Code)  `Récupère les contacts du client
      `Tri nécessaire à la rupture + affichage par ordre alphabétique
   TRIER([Contacts];[Titres]Libellé;[Contacts]NomDuContact;[Contacts]PrénomDuContact)

   PV ETAT MULTIPLE (Zone;$Colonne;$Ligne;$Primaire;$TableRupture;$ChampRupture;$TabOpérations;$TabTables;$TabChamps;$Insérer;$Corps;$Titre)

Référence

PV ETAT SIMPLE, PV TABLEAU VERS CELLULES.

Constantes

Thème PV États calculs.

Sélections et enregistrements courants

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.


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