Imprimir grid

Hola soy yo de vuelta, quisiera saber como es la porción de código que usas para imprimir un datagrid, gracias

1 respuesta

Respuesta
1
Primero el botón de imprimir.
Que llama a el procedimiento de impresión.
Printer.PaperSize = 5 'oficio
Printer.Orientation = 1
Printer.ScaleMode = 7
Printer.FontSize = 10
MsgBox "Prepare para Imprimir Hoja: Oficio", vbInformation, "Deudores"
If Sel_Imp = 1 Then
Call Imp_Grilla_Ape
Else
If Sel_Imp = 2 Then
Call Imp_Grilla_adt
Else
MsgBox "Posicionese En La Solapa Que Desea Imprimir", vbInformation, "Imprimir Deudores"
End If
End If
========================
procedimiento de impresion
que llama a un encabezado.
Public Sub Imp_Grilla_adt()
With MSadt 'nombre de la grilla MSHFLEXGRID
Y = 2.7
Call Encabezado_16
For A = 1 To .Rows - 1
Printer.CurrentY = Y
Printer.CurrentX = 0.7
Printer.Print .TextMatrix(A, 0)
Printer.FontSize = 8
Printer.CurrentY = Y
Printer.CurrentX = 2.5
Printer.Print .TextMatrix(A, 1) & " " & .TextMatrix(A, 2)
Printer.FontSize = 10
Printer.CurrentY = Y
Printer.CurrentX = 9.1
Printer.Print .TextMatrix(A, 3)
Printer.CurrentY = Y
Printer.CurrentX = 12 - Printer.TextWidth(.TextMatrix(A, 4)) 'ESTA MANERA LO ALINEO A LA IZQUIERDA
Printer.Print .TextMatrix(A, 4)
If .TextMatrix(A, 5) <> "" Then
If IsNumeric(.TextMatrix(A, 5)) Then
Printer.CurrentY = Y
Printer.CurrentX = 14.5 - Printer.TextWidth(.TextMatrix(A, 5))
Printer.Print .TextMatrix(A, 5)
Else
Printer.CurrentY = Y
Printer.CurrentX = 13
Printer.Print .TextMatrix(A, 5)
End If
End If
Y = Y + 0.5
'ACA PREGUNTO SI ES FINAL DE HOJA
If Y > 34 Then
Printer.Line (0.2, 2.5)-(2.2, Y), 1, B
Printer.Line (2.2, 2.5)-(8.8, Y), 1, B
printer. Line (8.8, 2.5)-(10.1, y), 1, b
tiro las lineas finales
pido nueva página
y llamo al encabezado
Printer.NewPage
Call Encabezado_16
Y = 2.7
End If
Next A 'OTRA LINEA
Printer.EndDoc
'MANDO A IMPRIMIR TODO
End With ' CIERRO EL WITH DE LA GRILLA
'===========================
'ENCABEZADO
'SIEMPRE ES EL MISMO
'ESTA MANERA PUEDEN SER ENCABEZADOS O CUADROS TOTALES PEDIDOS A LA BASE DE DATOS
Public Sub Encabezado_16()
Printer.CurrentY = 0
Printer.CurrentX = 0.5
Printer.Print Nombre_Col
Printer.CurrentY = 0
Printer.CurrentX = 16
Printer.Print "Pagina Nº: " & Printer.Page
'Printer.FontSize = 14
Printer.CurrentY = 0.5
Printer.CurrentX = 6
Printer.Print "SALDOS DEUDORES AL: " & Maskfechaimp.Text
'Printer.FontSize = 10
Printer.CurrentY = 1.8
Printer.CurrentX = 10.3
Printer.Print "FACTURADO"
Printer.CurrentY = 1.8
Printer.CurrentX = 13
Printer.Print "COBRADO"
Printer.CurrentY = 1.8
Printer.CurrentX = 15.8
Printer.Print "DEUDOR"
'LINEAS DEL ENCABEZADO
Printer.Line (0.2, 1.2)-(2.2, 2.5), 1, B
Printer.Line (2.2, 1.2)-(8.8, 2.5), 1, B
Printer.Line (8.8, 1.2)-(10.1, 2.5), 1, B
Printer.Line (10.1, 1.2)-(12.6, 2.5), 1, B
Printer.Line (12.6, 1.2)-(15.2, 2.5), 1, B
Printer.Line (15.2, 1.2)-(18, 2.5), 1, B
End Sub
Esto es mucho laburo pero nunca falla y tienes control absoluto creo que agregando más variables se puede tener un control muy bueno para realizar menos modificaciones
Esto es cuestión de agarrar la regla y empezar a diagramar tu impresión y después prueba y error.
Saludos si no entendés algo te dejo mi mail y msn y charlamos por ahí.
[email protected]
(A otras personas que vean este mail, sino mandan pregunta por todo expertos no lo respondo).
Perdona que te hice hacerme la pregunta.
Bueno te aclaro que yo uso mshflexgrid.
Necesito que me respondas así a la noche hora argentina te mando todo porque lo tengo que armar y es bastante código

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas