4D v16.3

Exemple d’état imprimé

Accueil

 
4D v16.3
Exemple d’état imprimé

Exemple d’état imprimé  


 

 

Cette section décrit la création d’un exemple d’état et permet de comprendre la relation entre l’état final et le formulaire tel qu’il est défini dans l’éditeur de formulaires. Cet exemple décrit aussi les méthodes qui permettent de contrôler l’impression.

L’illustration suivante représente l’état tel qu’il est imprimé :

Dans cet exemple, l’en-tête de la page contient le titre de l’état, ainsi que la date et l’heure d’impression. Les zones de ruptures d’en-têtes de niveau 1 contiennent le nom des sociétés, les zones de ruptures d’en-têtes de niveau 2 contiennent celui des produits. Les zones de corps contiennent les données directement extraites des enregistrements. Les zones de ruptures de niveau 2 contiennent les sous-totaux des produits vendus à chaque société. Les zones de ruptures de niveau 1 contiennent les sous-totaux pour chacune des sociétés et la zone de rupture de niveau 0 contient le total des ventes.

L’état est trié sur un niveau de plus qu’il n’y a de niveaux de rupture. Dans ce cas, il est trié sur les champs Société, Produit et Date.

L’illustration suivante représente le formulaire utilisé pour l’état tel qu’il apparaît dans l’éditeur de formulaires :

Chaque taquet de contrôle du formulaire indique la limite inférieure de la zone qu’il détermine. La zone d’en-tête contient les éléments qui seront imprimés en haut de chaque page de l’état, la zone de corps contient les éléments qui seront imprimés pour chaque enregistrement, etc. 

Le tableau suivant récapitule la signification de chaque taquet de contrôle.

TaquetSignificationEffet
EZone d’en-têteImprimée une fois en haut de chaque page
E1Zone d’en-tête de niveau 1Imprimée une fois avant chaque rupture de niveau 1
E2Zone d’en-tête de niveau 2Imprimée une fois avant chaque rupture de niveau 2
CZone de corpsImprimée pour chaque enregistrement
R2Zone de rupture de niveau 2Imprimée une fois à chaque rupture de niveau 2 (à chaque fois que la valeur change dans le deuxième champ trié)
R1Zone de rupture de niveau 1Imprimée une fois à chaque rupture de niveau 1 (à chaque fois que la valeur change dans le premier champ trié)
R0Zone de rupture de niveau 0Imprimée une seule fois à la fin de l’état
PZone de pied du formulaireImprimée à chaque fin de page de l’état

Les objets non-saisissables qui sont placés dans les zones d’en-tête, de rupture et de pied de page sont contrôlés par des méthodes objet.

Note : Le code suivant est utilisé dans des méthodes objet. L’utiliser dans une méthode projet n’aurait pas le même effet.

La date et l’heure sont extraites du système par une variable, appelée vDateTime, à laquelle la méthode suivante est associée :

 vDateTime:=String(Date du jour)+" à "+Chaine(Heure courante)

Le sous-total des ventes pour la zone de rupture de niveau 2 est calculé et placé dans un objet nommé VentProd associé à la méthode suivante :

 VenteProd:=Subtotal([Produits]Prix)

Le sous-total des ventes pour la zone de rupture de niveau 1 est calculé et placé dans un objet nommé VenteClient associé à la méthode suivante :

 VenteClient:=Subtotal([Produits]Prix)

Le total des ventes pour la zone de rupture de niveau 0 est calculé et placé dans un objet nommé VTotal associé à la méthode suivante :

 VTotal:=Subtotal([Produits]Prix)

Il est à noter que si les méthodes objets sont identiques, les résultats des calculs seront différents car les objets sont placés dans différents niveaux de rupture. Pour plus d’informations sur les niveaux de rupture, reportez-vous au paragraphe “Utiliser des ruptures” dans la section Formulaires d'états imprimés.

Le numéro de page est calculé dans la variable VPageNum à l’aide de l’instruction suivante :

 VPageNum:="Page "+String(Page impression)

 
PROPRIÉTÉS 

Produit : 4D
Thème : Formulaires de sortie et états

 
HISTORIQUE 

 
UTILISATION DE L'ARTICLE

4D - Mode Développement ( 4D v16)
4D - Mode Développement ( 4D v16.1)
4D - Mode Développement ( 4D v16.3)