Bonjour.
J'ai un probleme en VB.NET... quand je lance un aperçu avant impression de plus d'une page, et que, à partir de la boite de dialogue d'aperçu, je lance l'impression, je me retrouve avec une page blanche unique...
je vous donne mon bout de code:
Code :
|
si quelqu'un avait une idée, ça serait cool, merci!
Non, personne?
c'est marrant de voir à quel point on peut être aidé... merci beaucoup les gars!
J'taurais bien aidé mais je connais pas le visual basic.
Si ta page n'affiche rien c'est dans ta partie 'mise en page' tu ne fais qu'incrémenter 'nb', tu n'affiche rien sur ta page.
SI elle est unique, c'est parce que lorque tu met ton 'e.HasMorePages' à 'True', tu le fais, c'est bien, mais tu ne reviens pas sur ta 'Mise en page' pour continuer à afficher sur cette 2nde feuille.
Mon prog reprend le même principe que le tiens, sauf que moi j'enchaine une série de chaines afin de créer une série d'étiquettes d'adresse, Voici comment j'ai procédé :
Private Sub Etiquette(ByVal x As Integer, ByVal y As Integer, ByVal numCont As Integer, ByVal ea As System.Drawing.Printing.PrintPageEventArgs)
Dim F As Font = New Font("Verdana", 8, FontStyle.Regular, GraphicsUnit.Point, 0)
Dim Gr As Graphics = ea.Graphics
Dim ptH As Point
Dim ptV As Point
ptH.X = x
ptV.Y = y
Dim Lge As String
Lge = CStr(lesContacts.Contact(numCont).Nom) & " " & CStr(lesContacts.Contact(numCont).Prenom)
If Lge <> "" Then
Gr.DrawString(Lge, F, Brushes.Black, x, y)
y += 15
End If
En revanche je n'arrive pas à afficher de dexième page, pas même à l'aperçu avant impression...
Private Sub ImprReservation_PrintPage(ByVal sender As Object, ByVal e As System.Drawing.Printing.PrintPageEventArgs) _
Handles Me.PrintPage
Dim x As Integer = 4
Dim y As Integer = 30
Dim n As Integer = 0
For i As Integer = 1 To 47
If n <> 0 Then
'S'il y a + de 24 étiquettes, on créé une nouvelle page
e.HasMorePages = IIf((n Mod 24 = 0), True, False)
If n Mod 24 = 0 Then
n = 0
x = 4
End If
'Si le nombre d'étiquettes est un multiple de 3, c'est qu'il y a 3 étiquettes sur la ligne
'on revient donc en bordure de page en décalant vers le bas
If n Mod 3 = 0 Then
y += 145
x = 4
End If
End If
'Appel de la procèdure qui créera une étiquette
Etiquette(x, y, i, e)
'On décale la marge de début d'écriture pour passer à l'étiquette suivante
x += 280
n += 1
Next
End Sub
Qu'en penses-tu ?
Ton post date un peu, je suis pas sûre que tu le relise ^^ mais je tente...
Bye
Il y a 2282 utilisateurs connus et inconnus. Pour voir la liste des connectés connus, cliquez ici.
