
28/04/2008, 11:43
|
| | Fecha de Ingreso: abril-2008
Mensajes: 425
Antigüedad: 17 años 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 |