Ver Mensaje Individual
  #5 (permalink)  
Antiguo 15-05-2008, 18:25:16
El_Principiante El_Principiante is offline
Gran Participación en el Foro
 
Registrado: sep 2006
Posts: 156
El_Principiante Valoración +2
Predeterminado 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
Responder Con Cita