Bonjour,
J'ai développé une application en VB.net (2005) dans laquelle les utilisateurs peuvent visualiser et imprimer un état dynamique.
Tout marche bien, maintenant je veux faire un traitement spécifique lorsque les utilisateurs visualisent les documents et valident l'impression (Mais Rien faire lorsque les utilisateurs cliquent sur annuler).
J'ai essayé d'implémenter la solution en utilisant le code ci-dessous. Cependant avec ce code le PrintDialog s'affiche deux fois et le traitement spécifique ne s’exécute que lorsque l'impression est validée dans le deuxième PrintDialog.
Ma question est comment désactiver le lancement du PrintDialog par défaut (Le premier) ou comment intercepter la valeur de son DialogResult afin de ne pas instancier le deuxième PrintDialog (My_PrintDialog)
A- Code exécuté lors du rechargement du ReportViewer
B. Code Exécuter lorsque l'utilisateur clique sur le bouton Imprimer du ReportViewer
Code : 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
27
28
29
30
31
32
33
34
35
36 Private Sub My_CrystalReportViewer_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles My_CrystalReportViewer.Load Try For Each Current_Ctrl As Control In My_CrystalReportViewer.Controls If TypeOf Current_Ctrl Is Windows.Forms.ToolStrip Then For Each Item As Object In CType(Current_Ctrl, ToolStrip).Items If Item.AccessibleName = "Print Report" Then Dim My_Print_Button As ToolStripButton = CType(Item, ToolStripButton) AddHandler My_Print_Button.Click, AddressOf Upgrade_Print_Button_Click Exit For End If Next End If Next Catch ex As Exception MsgBox(ex.Message) End Try End Sub
Code : 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 Private Sub Upgrade_Print_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Dim My_PrintDialog As New PrintDialog If My_PrintDialog.ShowDialog = Windows.Forms.DialogResult.OK Then Me.My_CrystalReportViewer.ReportSource.PrintOptions.PrinterName = My_PrintDialog.PrinterSettings.PrinterName Me.My_CrystalReportViewer.ReportSource.PrintToPrinter(My_PrintDialog.PrinterSettings.Copies, My_PrintDialog.PrinterSettings.Collate, My_PrintDialog.PrinterSettings.FromPage, My_PrintDialog.PrinterSettings.ToPage) '' Faire le traitement spécifique Else '' Rien Faire End If End Sub
Partager