Ver Mensaje Individual
  #1 (permalink)  
Antiguo 28/04/2008, 11:43
analoyra
 
Fecha de Ingreso: abril-2008
Mensajes: 425
Antigüedad: 16 años, 1 mes
Puntos: 2
cuadro dialogo impresora

Hola, tengo esta rutina para imprimir un listado, funciona, pero tengo 2 problemas, uno es que no me muestra la primera palabara del encabezado de la lista, y otra y mas complicada es que necesito el cuadro de dialogo para imprimir de un impresora que yo seleccione
a ver quien me puede ayudar.... gracias de antemano

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

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 Lv1.ColumnHeaders.Count
AnchoCol = AnchoCol + Lv1.ColumnHeaders(i).Width
Next

Espacio = 0

'Encabezado de ejemplo
Printer.Print "Listado de Tipos de Comprobantes "

Printer.Print

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

With ListView

'Acá se imprimen los encabezados del ListView
For i = 1 To .ColumnHeaders.Count
Espacio = Espacio + CInt(.ColumnHeaders(i).Width * Printer.ScaleWidth / AnchoCol)
Printer.Print Lv1.ColumnHeaders(i).Text;
Printer.CurrentX = Espacio
Next

Printer.Print

'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 - 1
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 " Fin de Listado "

'Comenzamos la impresión
Printer.EndDoc
MsgBox ("Impresion en Progreso, Por Favor Aguarde")
End Sub

End Sub