Re: Imprimir Grillas con Printer Bien, creo que es necesario colocar el codigo donde ejecuto esta sentencia de imprimir para tener un panorama mas amplico y asi me puedan ayudar.
aqui lo tienen:
************************************************** *******************
Private Sub CmdImprimirPeriodos_Click()
Dim Fila As Integer, ContarFila As Integer
'Papel Tamaño Carta = 21.59 x 27.94 Centimetros = 2550 x 3300 pixels
'Imprimimos la hoja en forma Horizontal
Printer.Orientation = vbPRORPortrait '2 Orientación Horizontal vbPRORLandscape '1 Horientación Vertical "vbPRORPortrait"
Printer.ScaleMode = vbCentimeters 'Ponemos la Escala en Centimetros
'Margenes
HorizontalMargen = (21.59 - Printer.ScaleWidth) / 2
VerticalMargen = (27.94 - Printer.ScaleHeight) / 2
HorizontalMargen = 0.1 + HorizontalMargen
VerticalMargen = 0.1 + VerticalMargen
'Imprimimos la Grilla
'---------------------------------------------------------------------------------------
'imprimimos los datos de la grilla
EncabezadoGrilla 'imprimimos el encabezado
'Cargamos nuevas fuentes y tamaños para la grilla
Printer.Font = "Verdana"
Printer.FontSize = 8
Printer.ForeColor = vbBlue
Printer.FontBold = False
VerticalMargen = VerticalMargen + 4
ContarFila = 1
For Fila = 1 To (Me.GrillaPeriodos.Rows - 1)
'Columna 0 Meses
Printer.CurrentX = HorizontalMargen + ((3.5 - Printer.TextWidth(Me.GrillaPeriodos.TextMatrix(Fil a, 0))) / 2)
Printer.CurrentY = VerticalMargen
Printer.Print Me.GrillaPeriodos.TextMatrix(Fila, 0)
'Columna 1 Numero de Periodo
Printer.CurrentX = 3.5 + HorizontalMargen + ((2 - Printer.TextWidth(Me.GrillaPeriodos.TextMatrix(Fil a, 1))) / 2)
Printer.CurrentY = VerticalMargen
Printer.Print Me.GrillaPeriodos.TextMatrix(Fila, 1)
'Columna 2 Dias a Pagar
Printer.CurrentX = 5.5 + HorizontalMargen + ((2 - Printer.TextWidth(Me.GrillaPeriodos.TextMatrix(Fil a, 2))) / 2)
Printer.CurrentY = VerticalMargen
Printer.Print Me.GrillaPeriodos.TextMatrix(Fila, 2)
'Columna 3 Fecha en que inicia el Periodo
Printer.CurrentX = 7.5 + HorizontalMargen + ((3.5 - Printer.TextWidth(Me.GrillaPeriodos.TextMatrix(Fil a, 3))) / 2)
Printer.CurrentY = VerticalMargen
Printer.Print Me.GrillaPeriodos.TextMatrix(Fila, 3)
'Columna 4 Fecha en que Termina el Periodo
Printer.CurrentX = 11 + HorizontalMargen + ((3.5 - Printer.TextWidth(Me.GrillaPeriodos.TextMatrix(Fil a, 4))) / 2)
Printer.CurrentY = VerticalMargen
Printer.Print Me.GrillaPeriodos.TextMatrix(Fila, 4)
'Columna 5 Partes de un Mes
Printer.CurrentX = 14.5 + HorizontalMargen + ((2 - Printer.TextWidth(Me.GrillaPeriodos.TextMatrix(Fil a, 5))) / 2)
Printer.CurrentY = VerticalMargen
Printer.Print Me.GrillaPeriodos.TextMatrix(Fila, 5)
'Columna 6 Status Activo o Inactivo
Printer.CurrentX = 16.5 + HorizontalMargen + ((3 - Printer.TextWidth(Me.GrillaPeriodos.TextMatrix(Fil a, 6))) / 2)
Printer.CurrentY = VerticalMargen
Printer.Print Me.GrillaPeriodos.TextMatrix(Fila, 6)
'Incrementamos al CurrentY 0.6 para poder desplegar la lista hacia abajo
VerticalMargen = VerticalMargen + 0.6
ContarFila = ContarFila + 1
'Aqui es donde ya estoy atorado.
If ContarFila > 37 Then
Printer.NewPage 'Llamamos otra pagina
EncabezadoGrilla 'imprimimos nuevamente el encabezado
ContarFila = 0
End If
Next Fila
MsgBox "Las Tablas que se Generaron se Estan Imprimiendo en la Impresora:" & vbCrLf & " " & Printer.DeviceName, vbInformation, "Imprimiendo Tablas" 'Printer.Port & "Imprimiendo"
'Final de la impresión
Printer.EndDoc
End Sub
************************************************** *******************
Creo que con esto nos podemos orientar mejor. un Saludo a todos.
__________________
El exito no es un milagro, es una Recopensa
|