Pour partager cette vidéo sur les réseaux sociaux ou sur un site, voici son url :
Sujets que vous pourriez aussi aimer :Calculs dans les états Access
Dans cet
exercice Access, nous poursuivons la construction d'un
état majeur, pour les besoins de l'application finale à aboutir. Dans l'exercice précédent, sur la base d'une
requête multitable, nous avons bâti un
état capable de synthétiser toutes les
commandes des clients. Le détail des achats y est énuméré. Et grâce à un
champ calculé, l'information du total hors taxes est formulée sur chaque ligne. Mais une
facture client, doit aussi livrer le
montant total TTC. Cette information n'est pas prévue en amont. Elle doit donc être calculée dynamiquement, au sein même de l'
état et ce, pour chaque commande.
Source et présentation de la problématique
Pour poursuivre ces précieux travaux, nous devons tout d'abord réceptionner l'application au dernier indice.
- Télécharger le fichier clients-et-commandes-operations-etats.rar en cliquant sur ce lien,
- Puis, le décompresser dans le dossier de votre choix,
- Double cliquer sur la base de données résultante pour l'ouvrir dans Access,
- Dans la boîte de dialogue qui se charge, taper le mot de passe d'accès : abc,
- Cliquer ensuite sur le bouton Activer le contenu du bandeau de sécurité,
- Du fait de la régénération, valider de nouveau le même mot de passe,
Le
formulaire de navigation regroupant tous les outils de gestion de l'application, s'ouvre en même temps que la
base de données. Le volet de navigation, sur la gauche de l'écran, résume tous les objets que nous avons conçus jusqu'alors. Et ils sont nombreux.
- En bas de ce dernier, dans la catégorie Etats, double cliquer sur l'état E_Clients_Commandes,
Nous l'affichons ainsi en mode état. Mais ce n'est pas de cette façon que nous souhaitons l'exploiter pour éditer les
factures clients.
- Dans le ruban Accueil, cliquer sur la flèche du bouton Affichage,
- Dans la liste, choisir Aperçu avant impression,
Contrairement au rendu précédent, les informations attachées à un client y apparaissent explicitement détachées des autres. Mais pour l'instant, toutes les commandes associées à un même client sont rappelées sur une même page.
Lorsque nous produirons la facture à validation de commande, il n'est pas question de restituer tout l'historique du client. Il s'agit de l'une des évolutions que nous allons apporter à l'application dans cet exercice. Mais il est aussi question, pour chaque commande, de livrer le
montant total TTC. Pour l'instant, seuls les totaux hors taxes sont énumérés.
Opérations numériques et états
Dans un
état Access, une information peut se déduire d'une autre par calcul, au même titre que dans une
requête ou sur un
formulaire. Il suffit d'élaborer la syntaxe de la formule à l'intérieur même des contrôles. Nous connaissons le
montant total hors taxes de la commande ainsi que le
taux de TVA. De fait, le
montant TTC coule de source. Ce qui change dans un
état en revanche, c'est l'emplacement du contrôle de réception. Les
sections ont toutes une fonctionnalité bien précise. Par exemple, la
section Détail est prévue pour répéter les informations de
champs, autant de fois que des
enregistrements sont comptés. C'est d'ailleurs elle qui offre l'énumération du
détail de la facture. Ainsi, une donnée de synthèse comme un
TTC doit être placée dans un pied de groupe.
Dans les exercices précédents, nous avons bien constaté la présence des en-têtes de groupe, mais pas celle des pieds de groupe. Rappelez-vous, ces sections existent grâce à la création des
niveaux de regroupement au moment de la
construction de l'état.
- Tout à fait à droite du ruban, cliquer sur le bouton Fermer l'aperçu avant impression,
- Puis, dans le ruban Accueil, cliquer sur la flèche du bouton Affichage,
- Dans la liste, choisir Mode création,
Dans la vue en conception, sous la
section Détail, nous constatons la présence du
Pied de page. Mais, comme son nom l'indique, cette section est prévue pour répéter des informations sur chacune des pages de l'édition. Or les totaux par commande et client doivent leur être attachés.
Au-dessus de la
section Détail, les en-têtes de groupe pour le client et la commande sont bien présents. C'est grâce à eux que nous pouvons afficher leurs pieds de groupe respectifs. Et celui qui nous intéresse est le pied de groupe de la commande (Com_num). En effet, il ne s'agit pas de calculer le total des achats par client, mais le
total des achats pour chaque commande du client.
- Cliquer droit sur la barre de l'en-tête de groupe Com_num,
- Dans le menu contextuel, choisir Trier et Grouper,
Comme vous pouvez le voir, cette action fait apparaître un volet d'options, en bas de l'état. Malgré le soin que nous avons pris à sélectionner l'en-tête de groupe Com_num, cette
fonction Trier et grouper concerne par défaut les paramétrages de toutes les sections potentielles. Or nous devons définir un réglage pour la section des commandes.
- Dans ce volet, cliquer sur la flèche associée au champ Client_id,
- Dans la liste, désigner le champ Com_num,
- Cliquer sur la flèche à droite de la mention Plus pour déployer l'affichage,
- Juste en-dessous, cliquer sur la flèche associée à la mention : Sans section de pied de page,
- Dans la liste, choisir Avec une section de pied de page,
Aussitôt, vous voyez apparaître la section du
Pied de groupe Com_num, fort logiquement juste en-dessous de la section Détail. C'est donc dans cette zone que nous devons réaliser l'opération de synthèse destinée à livrer le
montant TTC pour chaque commande.
Pour un montage clair, nous proposons d'y ajouter trois zones. La première doit rappeler le montant THT de la commande. La deuxième doit indiquer le taux de TVA en vigueur. La troisième enfin, doit se servir des deux précédentes pour livrer le résultat TTC.
Remarque : Dans la philosophie d'une application professionnelle totale, ce taux de TVA ne devrait pas être considéré comme une constante. Il est amené à évoluer selon les décisions politiques. Idéalement, cette donnée devrait être archivée en table. Et le contrôle de l'état comme tous ceux qui en auraient besoin, se nourrirait dynamiquement de cette information, dès lors facile à mettre à jour et à déployer.
- Cliquer sur la croix en haut à droite de ce volet horizontal pour le fermer,
- Augmenter la hauteur du Pied de groupe en cliquant et glissant le Pied de page plus bas,
- Grâce au ruban Création, ajouter une première zone de texte,
- Juste en-dessous, ajouter une étiquette et saisir : TVA,
- Dupliquer cette étiquette sur la même ligne et remplacer le texte par : 20%,
- Puis ajouter une seconde zone de texte sur une troisième ligne,
- Avec la feuille de propriétés, renommer les zones de texte : Tot_HT et Tot_TTC,
- Adapter les intitulés des étiquettes associées : Montant THT et Montant TTC,
- Grâce au bouton Aligner du ruban Organiser, aligner ces contrôles sur la même verticale droite que le contrôle tot_art de la section Detail,
De plus, il apparaît opportun de formater les deux zones de texte en gras. Idéalement, le TTC doit être affiché dans une couleur plus vive avec une taille de police plus importante.
- Pour ces contrôles, régler l'alignement à droite grâce au ruban Format,
- Sélectionner ensemble les contrôles Tot_HT et Tot_TTC grâce à la touche Ctrl du clavier,
- Dans la feuille de propriétés, régler leur attribut Format sur Monétaire,
- Juste en-dessous, régler les décimales sur 2 unités,
Une fois encore, la vocation de cet exercice n'est pas de détailler les manipulations d'organisation et de mise en page de l'état. Nous avons longuement insisté sur ces notions au travers des exercices sur les formulaires. Les techniques sont effectivement identiques. Libre à vous donc d'aboutir le rendu le plus satisfaisant et précis.
Il semble néanmoins judicieux d'appliquer une couleur de fond à ce pied de groupe, identique à celle de l'en-tête de groupe.
- Cliquer dans la section du pied de groupe pour le sélectionner explicitement,
- Activer l'onglet Format de sa feuille de propriétés,
- Puis, régler son attribut Couleur de fond sur un gris identique,
- De fait, attribuer une couleur de fond transparente aux deux zones de texte,
- Sélectionner la première des deux, soit Tot_HT,
- Activer l'onglet Données de sa feuille de propriétés,
- Dans son attribut Source contrôle, taper la syntaxe suivante : =[Com_montant],
Nous réalisons ainsi l'égalité avec la valeur portée par le
contrôle Com_montant, issu de la table Commandes. Nous le savons, le total HT est déjà connu en effet.
- Sélectionner la deuxième zone de texte, soit Tot_TTC,
- Dans son attribut Source contrôle, taper la syntaxe suivante : =[Tot_HT]*(1,2),
Nous multiplions ainsi le précédent résultat, soit le montant hors taxe de la commande, par 1,2. Il en résulte l'application des 20% du taux de tva. Nous le disions, ici il est considéré comme une constante. Inutile donc de faire référence à un contrôle.
- Enregistrer les modifications (CTRL + S),
- Cliquer sur la flèche du bouton Affichage dans le ruban Création,
- Dans la liste, choisir Aperçu avant impression,
- Puis, cliquer sur la flèche orientée à droite dans la barre de navigation, en bas de l'aperçu,
Nous faisons ainsi défiler les clients. Comme vous pouvez le voir, pour chaque commande, la synthèse est désormais parfaitement livrée. Chaque client est bien placé sur une page différente, grâce au saut de section que nous avions réglé.
De plus, comme par magie, désormais pour un client ayant passé plusieurs commandes, chacune d'entre elles apparaît sur une page indépendante. Faute de place en hauteur en effet, elle est rejetée plus loin. Ce réglage n'est pas paramétré et nous allons donc le figer pour les besoins de l'édition unique de la facture. En cas de petites commandes en effet, plusieurs pourraient se greffer sur la même page.
- Tout à fait à droite du ruban, cliquer sur le bouton Fermer l'aperçu avant impression,
- Sélectionner la section supérieure, En-tête de groupe Num_cli,
- Activer l'onglet Format de sa feuille de propriétés,
- Régler son attribut Saut de page sur Non,
- Régler son attribut Répéter section sur Oui,
- Sélectionner la section du Pied de groupe Com_num,
- Régler son attribut Saut de page sur Après section,
Désormais donc, après chaque commande, la suite est rejetée sur la page suivante. Et si d'aventure il s'agit du même client, grâce à l'
attribut Répéter section, ses informations sont bien rappelées en en-tête de la nouvelle commande.
Dans le prochain exercice, nous verrons donc comment
éditer depuis le
formulaire, la
facture du client venant de passer
commande.