Hej! Det börjar bli lite pinsamt, Tredje gången jag skriver här och lösningen ligger framför näsan. Hittade en lösning som funkar, skriver in den här så andra kanske har nytta av den.Printer.print problem
Jag håller på med ett program som skriver ut blommetikrtter. Fyller upp en listview med de sorters etiketter som skall skrivas ut, där står vad som skall skrivas namn, pris, firma och antalet som skall skrivas. Jag får inte ihop loopen när den skrivit en sort och skall övergå till nästa sort i listan att skriva ut. När jag skriver ut enstaka så använder jag denna kod från en annan printknapp.
<code>Private Sub cmdprint_Click() 'Skriv ut enstaka sort
cd.ShowPrinter
On Error Resume Next
For i = 1 To Text2.Text 'text2.text är antalet
Printer.ScaleMode = vbCentimeters
Printer.FontName = "Arial"
Printer.FontBold = False
If Y > 1 Then
Printer.CurrentY = Y + 1
End If
Printer.FontSize = Text5.Text
Y = 0
Printer.CurrentX = Text8.Text
Printer.Orientation = vbPRORPortrait
Printer.Print Text1.Text
If Y > 1 Then
Printer.CurrentY = Y + 1
End If
Printer.FontName = "Arial"
Printer.FontBold = False
Printer.FontSize = Text6.Text
Y = 0.6
Printer.CurrentX = Text8.Text
Printer.Orientation = vbPRORPortrait
Printer.Print Text3.Text
If Y > 1 Then
Printer.CurrentY = Y + 1
End If
Printer.FontName = "Arial" '"Courier new"
Printer.FontBold = False
Printer.FontSize = Text7.Text
Y = 1
Printer.CurrentX = Text8.Text
Printer.Orientation = vbPRORPortrait
Printer.Print Text4.Text
Printer.Print ""
Next i
Printer.EndDoc
End Sub </code>
När jag skall hämta alla poster från listview så är namnen på dom
<code>Itmx.Text = strNamn
Itmx.SubItems(1) = strPris
Itmx.SubItems(2) = strFirma
Itmx.SubItems(3) = strAntal</code> så text2.text som används ovan får man byta ut till strantal.
Men hur skall loopen se ut för att få med alla objekten från listview i samma printer.print som är ovan
Hoppas ni förstår var jag menar
Tack på förhand //JockeSv: Printer.print problem
<code>Dim i As Integer
Dim J As Integer
cd.ShowPrinter
For J = 1 To ListView2.ListItems.Count
For i = 1 To ListView2.ListItems(J).ListSubItems(3).Text '<Antal etiketter av varje som skall skrivas ut
Printer.ScaleMode = vbCentimeters
Printer.FontName = "Arial"
Printer.FontBold = False
If Y > 1 Then
Printer.CurrentY = Y + 1
End If
Printer.FontSize = Text5.Text
Y = 0
Printer.CurrentX = Text8.Text
Printer.Print ListView2.ListItems(J).Text
If Y > 1 Then
Printer.CurrentY = Y + 1
End If
Printer.FontName = "Arial"
Printer.FontBold = False
Printer.FontSize = Text6.Text
Y = 0.6
Printer.CurrentX = Text8.Text
Printer.Print ListView2.ListItems(J).ListSubItems(1).Text
If Y > 1 Then
Printer.CurrentY = Y + 1
End If
Printer.FontName = "Arial" '"Courier new"
Printer.FontBold = False
Printer.FontSize = Text7.Text
Y = 1
Printer.CurrentX = Text8.Text
Printer.Print ListView2.ListItems(J).ListSubItems(2).Text
Printer.Print ""
Next i
Next J
Printer.EndDoc</code>