Bonjour,
Je suis en train de finaliser le développement d'une classe héritée de PrintDocument.
On l'appelle de cette façon:
Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21 Private Sub btnSign35x11_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSign35x11.Click Dim prnDialog85x11 As New PrintDialog Dim affiche As New Signs85x11 prnDialog85x11.Document = affiche prnDialog85x11.AllowSomePages = True Try If prnDialog85x11.ShowDialog() = Windows.Forms.DialogResult.OK Then affiche.Print() End If Catch ex As Exception MessageBox.Show(ex.Message) Finally If Not affiche Is Nothing Then affiche.Dispose() End If End Try End Sub
Dans le constructeur et la fonction InitialiserGraphiques():
Code VB.NET : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26 Public Sub New() MyBase.New() ' Constructeur de la classe de base (PrintDocument) Me.InitialiserGraphiques() End Sub ' Initialisation des objets graphiques et des options Private Sub InitialiserGraphiques() Me.DefaultPageSettings.Landscape = False Me.DocumentName = "Le nom du logiciel - Document" ... Try Me.totalPages = Utility_SQL.GetTotalCount("usager", "mot de passe", "le nom de la table") ' Fonction développée à part qui gère toute la connexion à la BD SQL Server 2005 If Me.totalPages = 0 Then ' C'est ici que je dois entrer du code pour annuler complètement ' l'exécution du code, si c'est possible... End If Catch ex As Exception MessageBox.Show(ex.Message) Finally ' Si nécessaire, du code à ajouter pour fermer ce qui est ouvert End Try ' Lire les données de la table ToPrint et compter le nombre de rangées End Sub
Et j'ai toujours ceci:
Dans le constructeur, je mets comme condition que Me.totalPages ne doit pas être égal à zéro --> le cas échéant, pour gagner du temps CPU je désire annuler la gestion de l'événement PrintPage envoyé par la boîte de dialogue, afin d'éviter que le code ne soit lu pour rien, et peut-être envoyer un message «Il n'y aucune fiche à imprimer» à l'usager.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 If (Me.currentPage < Me.totalPages) Then e.HasMorePages = True Me.currentPage = Me.currentPage + 1 Else e.HasMorePages = False End If
Y a-t-il possibilité de le faire? J'espère avoir été suffisamment claire. D'avance, merci beaucoup.
Partager