Visual Basic - como imprimir listview con impresora de tickets

Life is soft - evento anual de software empresarial
 
Vista:

como imprimir listview con impresora de tickets

Publicado por Kore (1 intervención) el 02/03/2009 07:08:19
Hola...
Tengo un programa de Punto de Venta que ya termine pero solo me falta imprimir
la venta en un ticket pero seleccionando la columna deseada a imprimir
espero alguien me pueda ayudar con mi problema
muchas gracias......
este es el codigo que utiliso para imprimir en un ticket, pero me imprime todas las
columnas y yo quiero seleccionar las columnas a imprimir.

'A esta función se le envía el control LV a imprimir
Public Sub Imprimir_ListView(ListView As ListView)
Dim intRespuesta As String

Dim i As Integer, AnchoCol As Single, Espacio As Integer, X As Integer

AnchoCol = 0
'Recorremos desde la primer columna hasta la última para almacenar el ancho total
For i = 1 To ListView.ColumnHeaders.Count
AnchoCol = AnchoCol + ListView.ColumnHeaders(i).Width
Next

Espacio = 0

'Encabezado de ejemplo
Printer.Print " Venta de Productos"
Printer.Print " Punto De Venta "
Printer.Print "-------------------------------------"
Printer.Print "Descripcion Cantidad Total"
Printer.Print "-------------------------------------"
'Imprime una línea
Printer.Line (Printer.CurrentX, Printer.CurrentY)-(Printer.ScaleWidth, Printer.CurrentY)

With ListView

'Imprime una línea
Printer.Line (Printer.CurrentX, Printer.CurrentY)-(Printer.ScaleWidth, Printer.CurrentY)

'Imprime Línea en blanco
Printer.Print

'Este bucle recorre los items y subitems del ListView y los imprime
For i = 1 To .ListItems.Count
Espacio = 0

Set item = .ListItems(i)
Printer.Print item.Text;
'Recorremos las columnas
For X = 1 To .ColumnHeaders.Count - 7 + 4

Espacio = Espacio + CInt(.ColumnHeaders(X).Width * Printer.ScaleWidth / AnchoCol)
Printer.CurrentX = Espacio
Printer.Print item.SubItems(X);
Next

'Otro espacio en blanco
Printer.Print
Next

End With

Printer.Print
'Imprime la línea de final de impresión
Printer.Line (Printer.CurrentX, Printer.CurrentY)-(Printer.ScaleWidth, Printer.CurrentY)
Printer.Print
'Texto del pie
Printer.Print "--------------------------------------"
Printer.Print " Gracias por su visita "

'Comenzamos la impresión
Gracias.................
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:como imprimir listview con impresora de tickets

Publicado por P3L30N2009 (699 intervenciones) el 02/03/2009 13:02:32
Bueno, con ese código no debería imprimir todas las columnas sino el número de columnas menos las tres últimas:

For X = 1 To .ColumnHeaders.Count - 7 + 4

No entiendo lo de - 7 + 4
¿Qué número de columnas quieres imprimir?

Y para el cálculo de la variable "AnchoCol" deberías tener en cuenta sólo las columnas que quieres imprimir, y no todas.
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