cs_bfb
Messages postés22Date d'inscriptionsamedi 26 juillet 2003StatutMembreDernière intervention22 mai 2021
-
15 août 2020 à 15:07
cs_bfb
Messages postés22Date d'inscriptionsamedi 26 juillet 2003StatutMembreDernière intervention22 mai 2021
-
22 mai 2021 à 09:18
je souhaiterai le "bout de code" qui me permette de vider réellement l'impression en cour (pour l'instant il ne fait que la suspendre si je clique sur annuler). Je suis en train de me noyer sous les lignes de codes que je ne parviens pas à exploiter ni même comprendre.
Voici le code qui pose problème (pas de gestion du bouton annuler).
Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
If PageNumber > 0 Then
'MsgBox(PageNumber)
e.Graphics.DrawString("ART: " & ReferenceArt, New Font("Impact", 16, FontStyle.Bold), Brushes.Black, 30, 20) '1er nb marge gauche 2e marge haute
e.Graphics.DrawString("Désignation", New Font("Arial", 8, FontStyle.Regular), Brushes.Black, 42, 80) ' Désignation:
e.Graphics.DrawString(DesignationArt, New Font("Arial", 12, FontStyle.Bold), Brushes.Black, 40, 100) '
e.Graphics.DrawString("QTE :" & QuantiteArt, New Font("Arial", 16, FontStyle.Bold), Brushes.Black, 30, 138) '
e.Graphics.DrawString(PackArt, New Font("Arial", 12, FontStyle.Bold), Brushes.Black, 30, 165) ' & PageNumber() 'ici on indique le nombre d'impression restante
PageNumber -= 1 'on retire une impression
e.HasMorePages = (PageNumber > 0)
End If
End Sub
Private Sub Imprime_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Imprime.Click
PrintDocument1.Print()
End Sub
cs_Le Pivert
Messages postés7893Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention19 mai 2023136 Modifié le 15 août 2020 à 15:29
vu que tu n'as pas trouvé de réponse te satisfaisant, pourquoi ne pas faire manuellement un clic dans la barre de tâche sur l'icône de ton imprimante pour supprimer le document en cours?
mais je trouve cela bien compliqué alors que tu as une solution toute simple. A toi de voir!
cs_bfb
Messages postés22Date d'inscriptionsamedi 26 juillet 2003StatutMembreDernière intervention22 mai 2021 Modifié le 15 août 2020 à 15:32
j'ai vu cet article mais je n'ai pas trouvé la façon de l'utiliser. Voici le peut que j'ai trouvé mais ça ne fonctionne pas
Je ne suis pas l'utilisateur final et toutes les fonctions sont verrouillées par mot de passe administrateur. le but du programme entier etant l'impression d'étiquette par un utilisateur ne connaissant pas ou peut l'informatique.
If e.Cancel = True Then
MsgBox("")
e.HasMorePages = 0
MsgBox(e.HasMorePages & vbNewLine & PageNumber)
PageNumber = 0
MsgBox(PageNumber)
e.HasMorePages = False
Refresh()
Exit Sub
End If
Si vous avez la solution je serai ravi. Merci
Whismeril
Messages postés18395Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention27 mai 2023623
>
cs_bfb
Messages postés22Date d'inscriptionsamedi 26 juillet 2003StatutMembreDernière intervention22 mai 2021 15 août 2020 à 16:02
Et nous ce qui nous ferait plaisir, serait que tu respectes les règles du forums et ne pas ouvrir de sujet en double....
Cette discussion va être supprimée par un modérateur.
Donc retourne sur le sujet initial pour décrire où tu en es par rapport à celui ci.
Et je te l'ai déjà dit, ce n'est pas un message de windows, mais du composant que tu utilises
cs_bfb
Messages postés22Date d'inscriptionsamedi 26 juillet 2003StatutMembreDernière intervention22 mai 2021
>
Whismeril
Messages postés18395Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention27 mai 2023 15 août 2020 à 16:16
oups je suis désolé comment transférer ma question sur le même sujet? et si quelqu un à "LA" solution s'il vous plait
Whismeril
Messages postés18395Date d'inscriptionmardi 11 mars 2003StatutContributeurDernière intervention27 mai 2023623
>
cs_bfb
Messages postés22Date d'inscriptionsamedi 26 juillet 2003StatutMembreDernière intervention22 mai 2021 15 août 2020 à 16:51
pas de transfert possible
cs_Le Pivert
Messages postés7893Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention19 mai 2023136 15 août 2020 à 19:29
Dans le lien de la source il y a ce code en VB6, vois si tu peux l'adapter!
Private Declare Function AbortDoc Lib "gdi32" (ByVal hdc As Long) As Long
Sub Command1_Click()
Dim R As Long
R = AbortDoc(Printer.hdc)
End Sub
'Lancez le programme par F5.
'Vous pouvez alors annuler l'impression par la touche Enter, la touche
'Echappement ou par un click sur le bouton de commande.
cs_bfb
Messages postés22Date d'inscriptionsamedi 26 juillet 2003StatutMembreDernière intervention22 mai 2021 16 août 2020 à 09:08
Voici ce que j'ai trouvé ça supprime l'impression mais elle reste encore en mémoire et reprend dès que l'on clique de nouveau sur imprimer
Private Sub PrintDocument1_PrintPage(ByVal sender As System.Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) Handles PrintDocument1.PrintPage
'c'est ici que tout ce joue
If e.Cancel = True Then
e.HasMorePages = 0
PageNumber = 0
e.HasMorePages = False
Refresh()
Exit Sub
End If
If PageNumber > 0 Then
e.Graphics.DrawString("ART: " & ReferenceArt, New Font("Impact", 16, FontStyle.Bold), Brushes.Black, 30, 20) '1er nb marge gauche 2e marge haute
e.Graphics.DrawString("Désignation", New Font("Arial", 8, FontStyle.Regular), Brushes.Black, 42, 80) ' Désignation:
e.Graphics.DrawString(DesignationArt, New Font("Arial", 12, FontStyle.Bold), Brushes.Black, 40, 100) '
e.Graphics.DrawString("QTE :" & QuantiteArt, New Font("Arial", 16, FontStyle.Bold), Brushes.Black, 30, 138) '
e.Graphics.DrawString(PackArt, New Font("Arial", 12, FontStyle.Bold), Brushes.Black, 30, 165) ' & PageNumber() 'ici on indique le nombre d'impression restante
PageNumber -= 1 'on retire une impression
e.HasMorePages = (PageNumber > 0)
End If
end sub
--
bfb <img src="/imgs2
cs_Le Pivert
Messages postés7893Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention19 mai 2023136 Modifié le 16 août 2020 à 09:33
'c'est ici que tout ce joue
If e.Cancel = True Then
e.HasMorePages = 0
PageNumber = 0
e.HasMorePages = False
Refresh()
Exit Sub 'tu quittes donc la 2ème partie n'est pas prise en compte
End If
Mais je ne comprends toujours pas pourquoi tu t'embêtes alors qu'il est si facile de le faire manuellement!!!!!!!!!!!!!
Tu n'as pas besoin d'être féru en informatique!
cs_bfb
Messages postés22Date d'inscriptionsamedi 26 juillet 2003StatutMembreDernière intervention22 mai 2021
>
cs_Le Pivert
Messages postés7893Date d'inscriptionjeudi 13 septembre 2007StatutContributeurDernière intervention19 mai 2023 22 mai 2021 à 09:18
merci pour tes explications effectivement ca fonctionne.
Modifié le 15 août 2020 à 15:32
Je ne suis pas l'utilisateur final et toutes les fonctions sont verrouillées par mot de passe administrateur. le but du programme entier etant l'impression d'étiquette par un utilisateur ne connaissant pas ou peut l'informatique.
Si vous avez la solution je serai ravi. Merci
15 août 2020 à 16:02
Cette discussion va être supprimée par un modérateur.
Donc retourne sur le sujet initial pour décrire où tu en es par rapport à celui ci.
Et je te l'ai déjà dit, ce n'est pas un message de windows, mais du composant que tu utilises
15 août 2020 à 16:16
15 août 2020 à 16:51
15 août 2020 à 19:29
@+ le Pivert