Foros del Web » Programación para mayores de 30 ;) » Programación General » Visual Basic clásico »

Crystal Reporte no muestra el último registro

Estas en el tema de Crystal Reporte no muestra el último registro en el foro de Visual Basic clásico en Foros del Web. Hola. En un listado hice un recorrido de una tabla y según ciertas condiciones, en otra tabla auxiliar voy insertando los registros que deseo se ...
  #1 (permalink)  
Antiguo 09/05/2009, 03:35
 
Fecha de Ingreso: abril-2005
Mensajes: 483
Antigüedad: 19 años
Puntos: 3
Crystal Reporte no muestra el último registro

Hola. En un listado hice un recorrido de una tabla y según ciertas condiciones, en otra tabla auxiliar voy insertando los registros que deseo se vean en el reporte.

Cuando el reporte es visualizado no me muestra el último registro de la tabla auxiliar, por lo tanto cómo solución lo que hice fué al final del recorrido le agrego a la tabla auxiliar un registro con datos vacíos (sólo para generar un nuevo registro). Con esto logro que se vean todos los datos y el registro vacío por ser el último no aparece.

¿Qué debo hacer para que el reporte me muestre todos los registros de la tabla auxiliar sin insertar el registro vacío al final?

Desde yá muchas gracias por las respuestas.
Saludos
  #2 (permalink)  
Antiguo 09/05/2009, 07:40
Avatar de STK_Pablo  
Fecha de Ingreso: junio-2008
Ubicación: Las Rosas - Santa Fe - Argentina
Mensajes: 69
Antigüedad: 15 años, 10 meses
Puntos: 1
Sonrisa Respuesta: Crystal Reporte no muestra el último registro

Hola, mirá si ponés el código de tu procedimeinto para pasar a la tabla auxiliar tal vez sea más fácil ayudarte.... Miraste desde access por ejemplo y el ultimo registro existe en la tabla y crystal report no lo muestra o directamente no existe en la tabla??? Esto es para saber por donde buscar el error

Espero tu respuesta
  #3 (permalink)  
Antiguo 11/05/2009, 06:49
 
Fecha de Ingreso: abril-2005
Mensajes: 483
Antigüedad: 19 años
Puntos: 3
Respuesta: Crystal Reporte no muestra el último registro

Hola, gracias por responder.

El registro último registro si existe en la tabla y el Crystal no lo muestra.

Este es el código que recorre la tabla cuentacorriente y graba en la tabla auxiliar saldos.

Código:
 Dim rs As New ADODB.Recordset, idcuenta As Long
 Dim saldoinicial As Double, debitos As Double, Creditos As Double
 Dim cadena As String, cuentas As Variant, I As Integer
 
 cadena = Empty
 If Len(TxCuentas) > 0 Then
    cuentas = Split(TxCuentas, ",")
    For I = 0 To UBound(cuentas)
        If I = 0 Then
            cadena = cadena & " idcuenta = " & cuentas(I)
        Else
            cadena = cadena & " OR idcuenta = " & cuentas(I)
        End If
    Next
 Else
    cadena = "True"
 End If
 
 rs.Open "SELECT * FROM cuentacorriente WHERE " & cadena & " AND fecha <= #" & Format(DTHasta, "mm/dd/yyyy") & "# ORDER BY idcuenta, fecha, tipodoc, contrapartida", conn, adOpenDynamic, adLockOptimistic
 If rs.EOF Then
  MsgBox "No existen movimientos con los datos solicitados", vbExclamation, "Atención"
 Else
 
  conninf.Execute ("DELETE * FROM saldos")
 
  Do While Not rs.EOF
   idcuenta = rs!idcuenta
   saldoinicial = 0: debitos = 0: Creditos = 0
   Do While idcuenta = rs!idcuenta
    If rs!tipodoc = 0 Then
     saldoinicial = rs!Importe
     debitos = 0: Creditos = 0
    ElseIf rs!tipodoc = 1 Or rs!tipodoc = 3 Then
     If rs!fecha < DTDesde Then
      saldoinicial = saldoinicial + rs!Importe
     Else
      debitos = debitos + rs!Importe
     End If
    ElseIf rs!tipodoc = 2 Or rs!tipodoc = 4 Then
     If rs!fecha < DTDesde Then
      saldoinicial = saldoinicial - rs!Importe
     Else
      Creditos = Creditos + rs!Importe
     End If
    End If
    rs.MoveNext
    If rs.EOF Then
     Exit Do
    End If
   Loop
   conninf.Execute ("INSERT INTO saldos (idcuenta,saldoinicial,debitos,creditos,saldofinal) values('" & idcuenta & "','" & saldoinicial & "','" & debitos & "','" & Creditos & "','" & saldoinicial + debitos - Creditos & "')")
  Loop
  TitReporte = "Lisado de Saldos"
  FoReporte.PasarParametros DTDesde, DTHasta, ""
  ArcReporte = "saldos.rpt"
  FoReporte.Show
 End If
 rs.Close
Este es el código del formulario FoReporte:

Código:
Option Explicit

Private crApp As New CRAXDRT.Application
Private crReport As New CRAXDRT.Report
Private Parametro1 As Date
Private Parametro2 As Date
Private Parametro3 As String

Private Sub Form_Load()
Dim crParamDefs As CRAXDRT.ParameterFieldDefinitions

    Dim crParamDef As CRAXDRT.ParameterFieldDefinition

    FoReporte.Caption = TitReporte
    Screen.MousePointer = vbHourglass
    Set crReport = crApp.OpenReport(App.Path & "\" & ArcReporte, 1)
    
    ' Parametros del reporte
    Set crParamDefs = crReport.ParameterFields
    For Each crParamDef In crParamDefs
        Select Case crParamDef.ParameterFieldName
            Case "parametro1"
                crParamDef.AddDefaultValue (Parametro1)
            Case "parametro2"
                crParamDef.AddDefaultValue (Parametro2)
            Case "parametro3"
                crParamDef.AddDefaultValue (Parametro3)
        End Select
    Next
    
    CRViewer.ReportSource = crReport
    CRViewer.DisplayGroupTree = False
    crReport.DiscardSavedData
    CRViewer.ViewReport
    Screen.MousePointer = vbDefault
    Set crParamDefs = Nothing

    Set crParamDef = Nothing
    
End Sub

Private Sub Form_Resize()
    CRViewer.Top = 0
    CRViewer.Left = 0
    CRViewer.Height = ScaleHeight
    CRViewer.Width = ScaleWidth
End Sub

Private Sub Form_Unload(Cancel As Integer)
    Set crReport = Nothing
    Set crApp = Nothing
End Sub

Public Sub PasarParametros(sParam1 As Date, lParam2 As Date, lParam3 As String)
    Parametro1 = sParam1
    Parametro2 = lParam2
    Parametro3 = lParam3
End Sub
Gracias y saludos
  #4 (permalink)  
Antiguo 11/05/2009, 07:01
 
Fecha de Ingreso: abril-2005
Mensajes: 483
Antigüedad: 19 años
Puntos: 3
Respuesta: Crystal Reporte no muestra el último registro

Un detalle que faltó comentar. Si al listar lo hago "paso a paso por instrucciones" o sea con la tecla F8, muestra el último registro. Es como que al ir más lento le da tiempo al Crystal para levantar el último registro (no sé, se me ocurre pensar que puede tener que ver esto).
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 11:16.