none
Filtrar columna en informe Crystal RRS feed

  • Pregunta

  • Buenas, necesito de vuestra inestimable ayuda ya que estoy muy verde con Crystal Reports y no termino de pillarle el punto. Quiero crear un informe con dos columnas para poder imprimir asientos contables, una para el debe y otra para el haber. En la base de datos cada tipo de apunte está referenciado como D y H, respectivamente.

    De momento lo más que he logrado es esto:

    En principio la columna TIPAPT no debería verse, pero la he puesto de forma temporal para que sirva de guía durante el desarrollo. Este es el código que uso para llenar el informe con datos:

     Private Sub frm_Contabilidad_NuevoAst_Impr_Load(sender As Object, e As EventArgs) Handles MyBase.Load
            Me.Cursor = Cursors.WaitCursor
            Me.Text = Me.Text & " " & frm_Contabilidad_NuevoAst.tbASTCTB.Text & " - " & _
                frm_Contabilidad_NuevoAst.gbxNuevoAsiento.Text & ", " & frm_Contabilidad_NuevoAst.lbCentro.Text
    
            Try
                con.Open()
                Dim da As New SqlDataAdapter
                Dim ds As New tavosViews
    
                With cmd
                    .Connection = con
                    .CommandText = "SELECT * FROM ctb_ast_solo WHERE CODEMP= @CODEMP AND EJERCI = @EJERCI AND CENTRO = @CENTRO AND ASTCTB = @ASTCTB ORDER BY NUMLIN"
                    .Parameters.AddWithValue("@CODEMP", frm_Contabilidad.iCodemp)
                    .Parameters.AddWithValue("@CENTRO", frm_Contabilidad.iCentro)
                    .Parameters.AddWithValue("@EJERCI", frm_Contabilidad_NuevoAst.tbEJERCI.Text)
                    .Parameters.AddWithValue("@ASTCTB", frm_Contabilidad_NuevoAst.tbASTCTB.Text)
                    .ExecuteNonQuery()
                End With
    
                With da
                    .SelectCommand = cmd
                    .Fill(ds)
                End With
    
    
                iNumTablas = ds.Tables.Count.ToString() - 1
    
                objt.SetDataSource(ds.Tables(iNumTablas))
                'objt.ParameterFields.Add("IMPDIV1", ParameterValueKind.StringParameter, DiscreteOrRangeKind.DiscreteValue, "rpt_contab_asiento")
                'objt.ParameterFields.Add("IMPDIV2", ParameterValueKind.StringParameter, DiscreteOrRangeKind.DiscreteValue = "H", "rpt_contab_asiento")
    
    
    
                crv_AstSolo.ReportSource = objt
                crv_AstSolo.Refresh()
    
            Catch ex As SqlException
                MessageBox.Show(ex.Message)
                Me.Cursor = Cursors.Default
            Finally
                cmd.Parameters.Clear()
                con.Close()
            End Try
            Me.Cursor = Cursors.Default
    
    
        End Sub

    Me conecto como veis usando un dataset. La parte comentada es la que me da error, estoy probando de introducir parámetros para que las filas D se muestren a la izquierda, y las H a la derecha, pero peta todo el rato. IMPDIV1 e IMPDIV2 son el nombre de las columnas en el objeto .rpt Los sumatorios totales funcionan correctamente pero claro, deberían ser 1671,23 en debe y haber si el código funcionase correctamente. 

    Alguna sugerencia? Si puede ser con ejemplos de código mejor. Gracias de antemano.

    lunes, 20 de abril de 2015 11:15

Todas las respuestas