Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Problemas con impresion ListView

Estas en el tema de Problemas con impresion ListView en el foro de Visual Basic clásico en Foros del Web. Hola gente!! como siempre recurro a uds cuando se me queman los papeles. Tengo esta rutina para imprimir un listado de un libro diario. Cuando ...
  #1 (permalink)  
Antiguo 22/09/2008, 21:05
 
Fecha de Ingreso: abril-2008
Mensajes: 425
Antigüedad: 16 años
Puntos: 2
Problemas con impresion ListView

Hola gente!! como siempre recurro a uds cuando se me queman los papeles. Tengo esta rutina para imprimir un listado de un libro diario. Cuando lo imprimo los caracteres fijos salen perfectos, pero todo lo que son datos se me superponen.
Lo que me gustaria hacer es imprimir apaisado, pero a pesar que le puse el printer.orientation = 2 no pasa nada. A ver a quien se le ocurre algo porfi!!!

Sub diario()
On Error Resume Next
printer.orientation = 2
Printer.ScaleMode = 7
Printer.DrawStyle = 0
Printer.TrackDefault = True
Printer.Font.Name = "lucida console"
Printer.Font.Size = 14
Printer.FontBold = True
Printer.CurrentX = 1
Printer.CurrentY = 1
Printer.Print "LIBRO DIARIO"
Printer.Print " "
Printer.Font.Size = 8
Printer.FontBold = False
Printer.CurrentX = 1
Printer.Print frmdiario.lblnomempresa.Caption
Printer.CurrentX = 1
Printer.Print frmdiario.lbldir.Caption; Tab(20); frmdiario.lblcp.Caption; Tab(30); frmdiario.lblloc.Caption
Printer.CurrentX = 1
Printer.Line (1, 3)-(50, 3)
Printer.Print " "
Printer.CurrentX = 1
Printer.Print "DIARIO GENERAL"; Tab(30); "FECHA CIERRE EJERCICIO"; Tab(70); frmdiario.lblfechacierre.Caption
Printer.CurrentX = 1
Printer.Line (1, 4)-(50, 4)
Printer.CurrentX = 1
Printer.Line (1, 4.1)-(50, 4.1)
Printer.CurrentX = 1
Printer.Print " "
Printer.CurrentX = 1
Printer.Print "CANTIDAD DE REGISTROS"; Tab(30); frmdiario.lblcantreg.Caption
Printer.CurrentX = 10
Printer.CurrentY = 4.4
Printer.Print "TRANSPORTE"
Printer.CurrentX = Printer.ScaleWidth - (Printer.TextWidth(frmdiario.lbltted.Caption) + 4.6)
Printer.CurrentY = 4.4
Printer.Print frmdiario.lbltted.Caption
Printer.CurrentX = Printer.ScaleWidth - (Printer.TextWidth(frmdiario.lbltteh.Caption) + 1.1)
Printer.CurrentY = 4.4
Printer.Print frmdiario.lbltteh.Caption
Printer.CurrentX = 1
Printer.Line (1, 5)-(50, 5)
Printer.CurrentX = 1
Printer.Print " "
Printer.CurrentX = 1.9
Printer.CurrentY = 5.2
Printer.Print "AS"
Printer.CurrentX = 2.7
Printer.CurrentY = 5.2
Printer.Print "CTA"
Printer.CurrentX = 3.6
Printer.CurrentY = 5.2
Printer.Print "NOMBRE"
Printer.CurrentX = 7.5
Printer.CurrentY = 5.2
Printer.Print "SU"
Printer.CurrentX = 8
Printer.CurrentY = 5.2
Printer.Print "SE"
Printer.CurrentX = 8.5
Printer.CurrentY = 5.2
Printer.Print "F.OPE."
Printer.CurrentX = 10.5
Printer.CurrentY = 5.2
Printer.Print "LEYENDA"
Printer.CurrentX = 14.5
Printer.CurrentY = 5.2
Printer.Print "DEBE"
Printer.CurrentX = 18
Printer.CurrentY = 5.2
Printer.Print "HABER"
Printer.CurrentX = 1
Printer.Print " "
Printer.Line (1, 5.5)-(50, 5.5)
cant = frmdiario.lv.ListItems.Count
y = 60
Printer.ScaleMode = vbMillimeters
na = frmdiario.lv.ListItems.item(1).SubItems(1)
For i = 1 To cant
If i = 1 Then
Printer.CurrentX = 10
Printer.CurrentY = y
Printer.Print "------------------------------ ASIENTO " & frmdiario.lv.ListItems.item(i).SubItems(1) & " FECHA OPERACION " & frmdiario.lv.ListItems.item(i).SubItems(6) & " --------------------------------"
y = y + 3
End If
Printer.CurrentX = 10
Printer.CurrentY = y
Printer.Print frmdiario.lv.ListItems(i).Text
Printer.CurrentX = 19
Printer.CurrentY = y
Printer.Print frmdiario.lv.ListItems.item(i).SubItems(1)
Printer.CurrentX = 27
Printer.CurrentY = y
Printer.Print frmdiario.lv.ListItems.item(i).SubItems(2)
Printer.CurrentX = 36
Printer.CurrentY = y
Printer.Print frmdiario.lv.ListItems.item(i).SubItems(3)
Printer.CurrentX = 75
Printer.CurrentY = y
Printer.Print frmdiario.lv.ListItems.item(i).SubItems(4)
Printer.CurrentX = 80
Printer.CurrentY = y
Printer.Print frmdiario.lv.ListItems.item(i).SubItems(5)
Printer.CurrentX = 84
Printer.CurrentY = y
Printer.Print frmdiario.lv.ListItems.item(i).SubItems(6)
Printer.CurrentX = 105
Printer.CurrentY = y
Printer.Print frmdiario.lv.ListItems.item(i).SubItems(7)
Printer.CurrentX = Printer.ScaleWidth - (Printer.TextWidth(frmdiario.lv.ListItems.item(i). SubItems(8)) + 46)
Printer.CurrentY = y
Printer.Print frmdiario.lv.ListItems.item(i).SubItems(8)
Printer.CurrentX = Printer.ScaleWidth - (Printer.TextWidth(frmdiario.lv.ListItems.item(i). SubItems(9)) + 11)
Printer.CurrentY = y
Printer.Print frmdiario.lv.ListItems.item(i).SubItems(9)
y = y + 3
ns = frmdiario.lv.ListItems.item(i + 1).SubItems(1)
If na <> ns Then
Printer.CurrentX = 10
Printer.CurrentY = y
Printer.Print "------------------------------ ASIENTO " & frmdiario.lv.ListItems.item(i + 1).SubItems(1) & " FECHA OPERACION " & frmdiario.lv.ListItems.item(i).SubItems(6) & " --------------------------------"
y = y + 3
na = frmdiario.lv.ListItems.item(i + 1).SubItems(1)
Else
na = frmdiario.lv.ListItems.item(i + 1).SubItems(1)
End If
Next i
Printer.ScaleMode = 7
Printer.DrawStyle = 2
y = y / 10
Printer.Line (1, y + 0.2)-(50, y + 0.2)
Printer.CurrentX = 1
Printer.Print " "
Printer.CurrentX = 1
Printer.Print "CANTIDAD DE REGISTROS"; Tab(30); frmdiario.lblcantreg1.Caption
Printer.CurrentX = 10
Printer.CurrentY = y + 0.5
Printer.Print "TRANSPORTE"
Printer.CurrentX = Printer.ScaleWidth - (Printer.TextWidth(frmdiario.lbltted1.Caption) + 4.6)
Printer.CurrentY = y + 0.5
Printer.Print frmdiario.lbltted1.Caption
Printer.CurrentX = Printer.ScaleWidth - (Printer.TextWidth(frmdiario.lbltteh1.Caption) + 1.1)
Printer.CurrentY = y + 0.5
Printer.Print frmdiario.lbltteh1.Caption
Printer.CurrentX = 1
Printer.Line (1, y + 1)-(50, y + 1)
Printer.CurrentX = 1
Printer.Line (1, y + 1.2)-(50, y + 1.2)
Printer.EndDoc
End Sub
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:00.