Access - imprime datos en blanco

 
Vista:
sin imagen de perfil

imprime datos en blanco

Publicado por Miguel Angel (1 intervención) el 02/09/2014 05:35:58
Hola, tengo un problema. Al crear un informe, pongo dos subformularios dentro para imprimir dos recibos de pagos tipo factura, logre conseguir por este medio código en VB para fijar el número de registros de cada recibo, con la intención de imprimir en formatos impresos. En la vista preliminar aparece muy bien lo que quiero imprimir pero al salir por la impresora los registros de mi recibo aparecen en blanco como si no hubiera datos, y también quise exportar a formato PDF y también salen los registros en blanco, este es el código que puse en la sección detalle en el evento imprimir. Llevo varios días y no paso de aquí, les agradecería su apoyo.

Private Sub Detalle_Print(Cancel As Integer, PrintCount As Integer)
Dim lngRegistros As Long, lngTotalLineas As Long
lngRegistros = Nz(Me.CuentaID, 0)
lngTotalLineas = 7
'Stop
Call ControlLíneas(Me, lngRegistros, lngTotalLineas)
End Sub


Public Sub ControlLíneas(rptInforme As Report, registros As Long, TotalLineas As Long)
On Error GoTo detalle_err
'Stop
Dim ctrl As Control
Dim iUltimafila As Integer
Static iFilas As Integer
iUltimafila = fColumna(registros, TotalLineas)
If rptInforme.Page = rptInforme.Pages Then ' Entonces estamos en la última página
iFilas = iFilas + 1
If (iFilas >= iUltimafila) And (iFilas < TotalLineas) Then
If iFilas > iUltimafila Then
For Each ctrl In rptInforme.Section(acDetail).Controls
If ctrl.ControlType = acTextBox Or ctrl.ControlType = acComboBox Or ctrl.ControlType = acListBox Then
'Or ctrl.ControlType = acCheckBox
ctrl.ForeColor = ctrl.BackColor


End If
Next
End If

rptInforme.MoveLayout = True
rptInforme.NextRecord = False
rptInforme.PrintSection = True

End If




Else


iFilas = 0
' Nos aseguramos de que el texto de los controles sea visible. Esta parte
' sería más eficiente en el evento Page, pero aquí está mejor encapsulada
For Each ctrl In rptInforme.Section(acDetail).Controls
If ctrl.ControlType = acTextBox Or ctrl.ControlType = acComboBox Or ctrl.ControlType = acListBox Then
'Or ctrl.ControlType = acCheckBox
ctrl.ForeColor = 0
End If
Next
'Stop
End If

saldedetalle:
Exit Sub
detalle_err:

If Err = -2147352567 Then
Resume Next
Else
Resume saldedetalle
End If

End Sub

Public Function fColumna(item As Long, Columnas As Long)
fColumna = 1 + ((item + Columnas - 1) Mod (Columnas))
End Function
.
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

imprime datos en blanco

Publicado por shizaraht (1 intervención) el 13/02/2015 17:01:00
en el evento al cargar y al abrir agrega:

Me.Campo1.ForeColor = vbBlack
Me.Campo2.ForeColor = vbBlack
Me.Campo3.ForeColor = vbBlack
.
.
.
.
.
Me.CampoN.ForeColor = vbBlack

es decir, una para cada campo del informe...
a mi me funciono
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar