205 - Les récapitulatifs "regroupés"

Un des problèmes difficile à résoudre est celui de réaliser des récapitulatifs cohérents, justes, et surtout faciles à réaliser. Les longues heures consacrées à réaliser des états imprimés avec des récaptulatifs, des sous-récapitulatifs, des sous-sous-récapitulatifs est long et fastidieux. Quoique bien utiles, il me semble que, sauf exception, il est plus rapide d'avoir sous les yeux directement les montants présentant les totaux d'un récapitulatif, plutôt que de passer par un mailing de 3 mètres de long sur lequel finalement seul le chiffre d'en bas à droite est intéressant...

Par exemple, dans un compte de réultat comptable, on ne présente pas dans chaque ligne du compte de résultat toutes les écritures qui l'ont composée.

Pour réaliser facilement ce type de récapitulatif, il convient, AVANT TOUT, de raisonner calmement et simplement. Que ceux (et celles) qui m'aiment me suivent... dans mon raisonnement ! (qui n'est pas exclusif... je le rapelle... il y a aussi d'autres solutions qui sont certainement moins mauvaises que la mienne...)

Commençons:

On sait que pour réaliser une recherche dans un fichier, il existe plusieures méthodes que je vais rapidement résumer:

Méthode "UNE"

1 - Effectuer la recherche "manuellement", puis écrire un script "recherche" dans le quel on va utiliser la commande "exécuter la recherche [rétablir]". La recherche s'exécutera comme nous l'avons fait manuellement PARMI LE LOT DE FICHES ACTIVES au moment du lancement du script. D'où la précaution , avant "exécuter la recherche [rétablir]",d'écrire la commande "tout rechercher". Ainsi la recherche s'exécutera sur la totalité des fiches du fichiers. Ce que je dis est peut-être basique, mais que ceux et celles qui n'ont jamais fait cette étourderie...

 

Cette méthode est valable pour une recherche ponctuelle, et peut se mettre derrière un bouton... Mais si la rubrique qui sert à la recherche est, par exemple, une ville, il faudrait réaliser autant de boutons que de villes existantes dans le fichier... Monstrueux !...

Il peut être intéressant, pour les patients et ceux qui ont du temps à perdre, de réaliser ces recherches comme celle décrite ci-dessus, mais pour chaque ville existante... Très opérationnel !...

Soyons sérieux !

Méthode "DEUX"

Un peu plus évoluée, cette méthode va consister à faire une saisie des villes existantes dans le fichier par un petit menu déroulant qui va permettre de pointer précisement sur la rubrique de la ville... Ce petit menu déroulant, nommé "index", va être constitué par les différentes rubriques différentes de villes... Plusieurs villes identiques ne figureront qu'une fois dans la liste. (sauf si une des villes a été saisie dans une des fiches avec une faute d'orthographe...)

Avantage: si on rajoute une fiche avec une nouvelle ville, on verra cette nouvelle ville apparaitre dans la petite liste, et la recherche va effectivement se réaliser sur cette nouvelle ville.

Inconvénient: On ne peut le faire que manuellement et ville par ville. Mais le modèle qui s'affichera à l'issue de cette recherche devra présenter déja une rubrique de type "stat" montrant le total désiré des fiches qui concerne UNE ville choisie.

Méthode "TROIS"

Il s'agit de saisir la rubrique qui va nous servir d'index à l'aide d'un script:

Au lieu de marquer à la main "Strasbourg" dans la rubrique "ville" en mode "recherche", je vais procéder de la manière suivnate:

  • 1 - Prendre la précaution de faire afficher TOUTES les fiches avant la recherche (pour ne pas en oublier)
  • 2 - passer en mode "recherche"
  • 3 - remplir la rubrique "ville" du mot "Strasbourg"
  • 4 - exécuter la recherche
  • Traiter une éventuelle erreur (s'il n'y a pas de "Strasbourg")
  • Ce traitement va en particulier faire en sorte que, s'il n'y a pas de fiche recherchée, le script ne soit pas interrompu.

Voila ! c'est clair ?

Alors, si vous avez plusieurs villes à traiter de cette manière, il vous suffit de DUPLIQUER ce script en prenant soin

  • de changer simplement la ligne où il y a le nom de la ville à traiter. (attention à l'orthographe !)
  • de changer le nom de la variable globale de la ville

Ainsi, dans un fichier où il y aura 10 villes à traiter, il suffira d'écrire un seul script qui va "exécuter" tous les autres. C'est le script ci-dessous:

CCe qu'il faut retenir

  • 1 - Il n'est pas nécéssaire d'afficher un modèle pour en extraire un résultat
  • 2 - L'incrémentation de variables globales "totalisantes" passe
    • par une sélection de fiches,
    • par la lecture d'une variable de type "stat" pointant sur une fonction calcul sur une rubrique
    • par l'affichage des résultats dans un modèle spécifique.
  • 3 - Etre très rigoureux quant à l'ORTHOGRAPHE des noms des villes dans les scripts, sinon la recherche ne s'effectuera pas sur le nom d'une ville mal écrit.
  • Ce principe peut s'adapter sur tout autre application demandant le même type de traitement.

Remarque: Il est à noter que j'utilise cette même technique quand il s'agit d'obtenir depuis un fichier A des totaux à calculer sur des fiches liées d'un fichier B. Les scripts sont dans B, exécutés depuis A, et tranférées DANS "A" par des globales, soit présentées directement de "B" avec le lien...(::rubrique "B")

Télécharger Maquette "Les Etats Récapitulatifs"
("205_recapitulatifs.zip" - 12 Ko)