Visual Basic - Imprimir ListView

Life is soft - evento anual de software empresarial
 
Vista:

Imprimir ListView

Publicado por Joe Peña (5 intervenciones) el 05/04/2002 13:31:11
Lo que hago para mandar a imprimir es lo siguiente:

Private Sub CmdImprimir_Click()
Dim IntControl As Integer
IntControl = 1

If MsgBox("Se imprimirán los registros, oprima SI para imprimir, NO para cancelar", vbYesNo + vbInFormation, "Imprimir") = vbYes Then

For i = 1 To LvwPrint.ListItems.Count - 1
Printer.Font.Name = "Verdana"
Printer.Font.Size = "8"
Printer.ScaleMode = 1 'Pulgada
Printer.CurrentY = 5
Printer.CurrentX = 10

Printer.Print , LvwPrint.ListItems(i)
For j = 1 To 3 '3 es el Numero de Columnas
Printer.Print , LvwPrint.ListItems(i).SubItems(j)
Next j
IntControl = IntControl + 1
If IntControl = 80 Then
Printer.NewPage
IntControl = 0
End If

Next i
Printer.EndDoc
End If
End Sub

Pero todo me sale en una misma línea, que es lo que me falta?

...::Joe::...
ICQ -> 118375919
Yahoo y Msn -> rsoft4d
-------------------------------------------------------
--El que se aferra a lo conocido, nunca conocerá lo desconocido--
--Es intentando lo imposible como se realiza lo posible--
--Es de pesimo gusto contentarse con algo mediocre cuando lo excelente esta a nuestro alcance--
--Quien nunca ha cometido un error nunca ha probado algo nuevo--
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Imprimir ListView

Publicado por JOSE CARLOS (243 intervenciones) el 05/04/2002 20:02:00
Yo quitaría las lineas

Printer.CurrentY = 5
Printer.CurrentX = 10

y colocaria donde pones

Printer.Print , LvwPrint.ListItems(i)

pondría

Printer.Print tab(10); LvwPrint.ListItems(i)

y el for j=1 to 3.3 lo quitaría y colocaría TAB

prueba y ya me dirás.

saludos
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Imprimir ListView

Publicado por Joe Peña (5 intervenciones) el 08/04/2002 08:40:43
No me funcionó: y donde viste el 3.3 era un 3 + '3 de un comentario. :-)

Aún no me funciona, sigue imprimiendome en la misma línea :-(
Mi código es:

Private Sub CmdImprimir_Click()
Dim IntControl As Integer
IntControl = 1

If MsgBox("Se imprimirán los registros, oprima SI para imprimir, NO para cancelar", vbYesNo + vbInformation, "Imprimir") = vbYes Then

For i = 1 To LvwPrint.ListItems.Count - 1
Printer.ScaleMode = vbCentimeters
Printer.Font.Name = "Verdana"
Printer.Font.Size = "8"
Printer.ScaleMode = vbPoints 'Pulgada

Printer.Print Tab(10), LvwPrint.ListItems(i)
Printer.CurrentY = 4
Printer.CurrentX = 4
For j = 1 To 3 '3 es el Numero de Columnas
Printer.Print , LvwPrint.ListItems(i).SubItems(j)
Printer.CurrentY = 4
Printer.CurrentX = 4
Next j
IntControl = IntControl + 1
If IntControl = 80 Then
Printer.NewPage
IntControl = 0
End If

Next i
Printer.EndDoc
End If

End Sub

Que me falta? como solucionaré esto, ya se me agotaron las ideas... :-(
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Imprimir ListView

Publicado por Yera (26 intervenciones) el 08/04/2002 11:39:59
Hola!
Creo que esto podría funcionar:
1.- Después de "for i..." estás repitiendo la función "Printer.ScaleMode...". Deja solo una (vbCentimeters, por ejemplo).
2.- Esas instrucciones (font.size; font.name y scalemode) deberían ir antes de "for i..." para que no las repita con cada elemento de la lista.
3.- Antes de "for i..." escribe "k=4" y donde pusiste "printer.currenty=4" reemplaza el 4 por la k.
4.- Finalmente, antes de "next i" escribe "k=k+0.3, lo que te da un espacio de tres milímetros entre línea y línea.
No tengo el VB en esta máquina así que no lo probé, pero espero que te funcione. Cualquier cosa, escríbeme.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar