par , 14/06/2016 à 14h11 (1305 Affichages)
Bonjour à tous,
Pour illustrer ce sujet, nous allons nous baser sur un rapport de facture qui est composé
- d'un entête affiché sur toutes les pages qui affiche les informations sur la facture (Date de facture, Nr de facture, info client)
- Du détail des items composant la facture (produit, quantité, prix unitaire)
- D'un pied de page qui affcihe
- En dernière page les total du Prix HT , de la TVA en montant (TVA ici unique de 20%), Prix TTC, Acompte, Net à Payer
- Pour toutes les pages antérieures juste le cumul du Prix HT, Tva en montant pour les items affichés depuis la 1ère page jusqu'à la page courante mais inférieure à la dernière page
Mon objectif n'étant pas d'expliquer la modélisation de la base de données, on prend pour acquis que la requête sur laquelle se base le rapport renvoie autant de lignes qu'il y a d'item dans la facture et pour chaque ligne
- idFacture
- DateFacture
- InfoClient
- Libellé Produit
- quantité commandé
- prix unitaire
- acompte
Soit pour les enregistrement suivant
1;01/01/201X; Mon client qui paye, rue de la fortune, 1000 HaieUneNuits;produit1,5,1,12
1;01/01/201X; Mon client qui paye, rue de la fortune, 1000 HaieUneNuits;produit2,7,10,12
Dans mon rapport, j'affiche l'entête de page et laisse l'entête de rapport désactivé
Dans l'entête je place les champs qui vont afficher les infos
- idFacture
- DateFacture
- InfoClient
Dans le détail
- Libellé Produit
- quantité commandée
- prix unitaire
- prix HT = quantité x prix Unitaire
- Tva montant = (quantité x prix Unitaire) x 0.2
Dans le pied de page et c'est ma le petit plus
- S'il existe une seule page ou en dernière page s'il en existe plusieurs
- Total Prix HT
- Total TVA en montant
- Acompte
- Prix net à Payer
- Dans le cas de plusieurs pages, dans toutes les pages sauf la dernière
- Total Prix HT cumulé i.e. égale à la somme du prix HT des produits constitutifs de toutes les pages jusqu'au dernier de la page courante
- Total TVA montant en cumulé (cf. ci-dessus)
Pré-requis obligatoire -Ajoutez le champ Page x sur Y et placez le dans l'entête de page
Pour ce faire, ajoutez dans le détail 2 champs avec propriété Cumul = continu
- txtCumulHT avec Source = prixHT
- txtCumulTVA avec source = Tva montant
Dans le pied de page
txtTotalHT = txtCumulHT
txtTotalTVA = txtCumulTVA
txtAcompte = Acompte
txtNetPayer = txtTotalHT + txtTotalTVA - txtAcompte
Dans l'évenement print de ZonePiedPage
1 2 3 4 5 6 7 8 9 10
| private sub ZonePiedPage_print() ajouter
if Me.page<Me.pages then
Me.txtAcompte.visible = false
Me.txtNetPayer.visible = false
else
Me.txtAcompte.visible = true
Me.txtNetPayer.visible = true
end if |
Pour télécharger une base de données Access avec un exemple, vous pouvez aller sur mon poste How To Display Intermediate Cumulative Sum By Page Footer And Total Sum On Report Footer ici
Et voilà