Sous total

4D - Documentation   Français   English   German   4e Dimension, Commandes par thèmes   4e Dimension, Liste alphabétique des commandes   4e Dimension, Constantes par thèmes   Retour   Précédent   Suivant

version 5


Sous total (valeurs{; sautPage}) Numérique

ParamètreTypeDescription
valeursChampChamp ou variable numérique dont vous voulez
calculer le sous-total
sautPageNumériqueNiveau de rupture auquel effectuer un saut de page
RésultatNumériqueSous-total de valeurs

Description

Sous total retourne le sous-total de valeurs pour le niveau de rupture courant ou précédent. Sous total ne fonctionne que dans le cadre d'une sélection triée imprimée par l'intermédiaire de la commande IMPRIMER SELECTION ou de la commande de menu Imprimer du mode Utilisation. Le paramètre valeurs doit être de type numérique, entier ou entier long. Vous devez assigner le résultat de la fonction Sous total à une variable placée dans la zone de rupture du formulaire.

Attention : En vue d'une utilisation en mode compilé, vous devez utiliser les commandes NIVEAUX DE RUPTURES et CUMULER SUR avant d'imprimer un état sur lequel vous voulez traiter les niveaux de rupture et calculer des sous-totaux. Reportez-vous au paragraphe situé à la fin de cette section.

Sous total doit être appelée dans la méthode d'un formulaire ou d'un objet du formulaire. Avant de lancer une impression, 4e Dimension parcourt les méthodes formulaire et les méthodes objet et, si la fonction Sous total est présente, le traitement des ruptures est déclenché (en mode interprété uniquement).

Le second paramètre (optionnel) de la fonction Sous total est utilisé pour provoquer des sauts de page lors de l'impression. Si sautPage vaut 0, Sous total ne génère aucun saut de page. Si sautPage vaut 1, Sous total génère un saut de page pour chaque niveau de rupture 1. Si sautPage vaut 2, Sous total génère un saut de page pour chaque niveau de rupture 1 et 2, etc.

Si vous souhaitez avoir des sauts de page sur N niveaux de tri, vous devez trier la sélection courante sur N+1 niveaux. Cela vous permet d'effectuer un tri sur un dernier champ, de manière à ce qu'il ne crée pas de rupture indésirable. Si vous souhaitez que le dernier champ trié provoque une rupture, triez-le deux fois.

Conseil : Si vous faites appel à la fonction Sous total dans le formulaire sortie affiché à l'écran, 4e Dimension va afficher un message d'erreur. La fermeture du dialogue d'erreur va provoquer un rafraîchissement de l'écran, donc de nouveau l'exécution de la méthode qui fait appel à Sous total, donc de nouveau un message d'erreur, etc. Pour sortir de ce cercle vicieux, appuyez sur les touche Alt + Maj (Windows) ou Option+Maj (Macintosh) et cliquez sur le bouton Arrêter dans la fenêtre d'erreur : cela met provisoirement fin aux rafraîchissements d'écran. Choisissez un autre formulaire de sortie pour éviter que le problème ne se répète. Passez en mode Structure pour isoler l'appel à la fonction Sous total par un test (Evenement formulaire = Sur impression sous total) si vous avez l'intention d'utiliser le même formulaire de sortie pour l'écran et l'imprimante.

Exemple

L'exemple suivant est la méthode objet d'une variable intitulée vSalaire, placée dans une zone de rupture d'un formulaire (R0, la zone située au-dessus du marqueur R0). La variable prend la valeur du sous-total du champ Salaire pour ce niveau de rupture :

   Au cas ou
   : (Evenement formulaire = Sur impression sous total)
      vSalaire := Sous total ([Employés]Salaire)
   Fin de cas

Reportez-vous au chapitre "Les formulaires de sortie et les états" du manuel Mode Structure pour plus d'informations sur la construction de formulaires avec des niveaux de ruptures.

Traitement de niveaux de rupture dans les formulaires d'état

Le traitement des niveaux de rupture peut être provoqué de deux manières differentes :

soit en appelant la fonction Sous total,

soit en appelant les commandes CUMULER SUR et NIVEAUX DE RUPTURES.

Ces deux techniques permettent d'obtenir le même résultat mais ont chacune leurs avantages.

Appel de la fonction Sous total (seulement en mode interpreté )

Pour provoquer le traitement des niveaux de rupture avec la fonction Sous total, celle-ci doit apparaître dans la méthode formulaire ou dans la méthode d'un objet du formulaire. Avant d'imprimer l'état, 4e Dimension cherche cette fonction dans toutes les méthodes du formulaire.

S'il la trouve, 4e Dimension déclenche le traitement des niveaux de rupture. La fonction n'a pas besoin d'être formellement appelée. Elle peut très bien se trouver dans la méthode d'un objet situé en-dessous la zone de pied de page (et n'est donc jamais imprimé ni exécuté).

Lorsque vous utilisez la fonction Sous total pour activer les ruptures, il est nécessaire de trier sur un niveau de plus que le nombre de niveaux de rupture que vous désirez traiter : si vous voulez traiter deux niveaux de ruptures, il est nécessaire de trier sur trois niveaux.

Appel des commandes CUMULER SUR et NIVEAUX DE RUPTURE

Vous pouvez utiliser les commandes CUMULER SUR et NIVEAUX DE RUPTURES pour provoquer le traitement des niveaux de ruptures. Il faut pour cela que ces deux commandes soient appelées avant l'impression du formulaire. L'appel à la fonction Sous total est encore nécessaire pour afficher les calculs de niveaux intermédiaires. L'utilisation de cette technique permet d'éviter de trier sur un niveau de plus. Il est toutefois obligatoire de trier sur au moins le nombre de niveaux de ruptures désiré.

Comparaisons des deux techniques

Le principal avantage la technique utilisant Sous total est d'être plus pratique, particulièrement en mode Utilisation : il n'est pas nécessaire d'exécuter une méthode avant d'imprimer un état.

Les étapes à suivre pour imprimer un état sont les suivantes :

1. Sélectionner les enregistrements à imprimer.

2. Trier les enregistrements, sur un niveau de plus que le nombre de niveaux de rupture.

3. Imprimer avec la commande Imprimer du menu Fichier.

4e Dimension inspecte toutes les méthodes du formulaire, rencontre la fonction Sous total, déclenche le traitement des niveaux de rupture et imprime l'état. Cette technique comporte cependant deux inconvénients :

la fonction Sous total n'a pas l'effet voulu en mode compilé,

il est nécessaire de trier sur un niveau de plus, ce qui prend du temps dans le cas de sélections importantes.

Il est recommandé d'utiliser les commandes CUMULER SUR et NIVEAUX DE RUPTURES lorsque l'on a l'intention d'utiliser une méthode pour imprimer un état. Les étapes à suivre sont les suivantes :

1. Sélectionner les enregistrements à imprimer,

2. Trier les enregistrements sur autant de niveaux que de niveaux de ruptures,

3. Appeler les commandes CUMULER SUR et NIVEAUX DE RUPTURES,

4. Imprimer l'état avec la commande IMPRIMER SELECTION.

Vous devez appeler les commandes CUMULER SUR et NIVEAUX DE RUPTURES pour déclencher le traitement des niveaux de rupture en mode compilé. Toutefois, seule la commande Sous total permet d'afficher des calculs de sous-totaux dans des formulaires.

Référence

CUMULER SUR, IMPRIMER SELECTION, Niveau, NIVEAUX DE RUPTURES.


4D - Documentation   Français   English   German   4e Dimension, Commandes par thèmes   4e Dimension, Liste alphabétique des commandes   4e Dimension, Constantes par thèmes   Retour   Précédent   Suivant