Bonjour,
Je suis parvenue à agencer tous les éléments graphiques et textuels d'une page d'étiquettes à imprimer, en faisant une classe héritée de PrintDocument qui imprime 5 grandes étiquettes identiques à partir de l'enregistrement de la table de ma base de données Access.
Dans l'immédiat, je fais correspondre le numéro de la rangée avec le numéro de la page à imprimer de cette façon:
...et à la fin j'ai ceci pour déterminer s'il reste encore des pages à imprimer:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2Me.rowNumber = Me.currentPage - 1
Pour obtenir une pleine page je mets 5 étiquettes différentes, donc 5 rangées devront être lues (par exemple de 0 à 4 sur la page 1, de 5 à 9 sur la page 2, etc.). S'il y en a moins que 5, je devrai probablement faire un Exit For dans la boucle FOR.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9 If (Me.currentPage < Me.totalPages) Then e.HasMorePages = True Me.currentPage = Me.currentPage + 1 ' On incrémente le compteur Else e.HasMorePages = False Me.currentPage = 1 End If
Mais je me demande comment je devrais gérer la boucle For pour qu'elle place 5 enregistrements de ma table dans une page avant d'incrémenter le Me.currentPage.
De plus, d'après la magnifique documentation sur le sujet dans le cours VB.NET, je sais qu'une division entière renvoit un Integer, mais je voudrais savoir si le résultat d'une division entière est toujours arrondi à l'entier suivant ou s'il suit la règle que j'ai apprise à l'école sur l'arrondissement à l'unité près (arrondir 1.4 ou moins à 1.0 et arrondir 1.5 ou plus à 2)... Ce sera pour calculer le total des pages (il faut une page supplémentaire pour la ou les étiquettes restantes).
Merci à l'avance. Et pardon si je ne suis pas assez précise, c'est un souci que j'ai depuis plusieurs jours déjà.
Partager