none
SubReporte con parametros de Reporte desde StoreProcedure RRS feed

  • Pregunta

  • Bueno Hola a la comunidad, quisiera que me ayuden cone sta gran duda, ya que no encuentro mucha info en español,sobre todo, en cuanto a los subreportes.

    Bueno mi problema es que yo en un reporte de caja muestro las ventas y otros ingresos del dia, deacuerdo a un rango de fechas,pero tambien es necesario saber las ventas de los vendedores para poder saber los montos y quienes mas venden, entonces como no son tablas vinculadas, lo eh tratado de hacer en un subreporte, ahora este sub reporte mostrara solo los datos de esa fecha solo del dia en donde se esta mostrando. y aparte un subreporte en pie de informe con los datos deacuerdo a un rango de fechas que manejo desde el form.

    el Reporte principal lo lleno desde un StoreProcedure. que tiene los parametros de fecha inicial y final, rangos, y para llenar el subreporte tambien ago lo mismo.

    Ahora hice el Subreporte aparte y luego solo lo agrege como subreporte... el problema es que al vincularla mediante el campo fecha no funciona el reporte principal funciona pero el subreporte no.

    Quisiera saber si es la forma correcta de hacerlo. 

    este es mi codigo con el cual lleno mi reporte principal

    Sub verRepor()
            Dim Config As New CapaNeg.clsConf
            Dim estanul, txtrotulo, txthoraini, txthorafin, txtrespCC As String
            Dim UTILI As New CapaNeg.clsReportes
            Dim oInforme As New CrystalDecisions.CrystalReports.Engine.ReportDocument
            oInforme = New CrystalDecisions.CrystalReports.Engine.ReportDocument()
            oInforme.Load(Windows.Forms.Application.StartupPath & "\rptReporUtil.rpt")
            oInforme.SetDataSource(UTILI.verUtili(BDNAME))
            Dim PAR1 As New ParameterValues(), PAR2 As New ParameterValues()
            Dim PROTULO As New ParameterDiscreteValue(), PROTULOCA As New ParameterDiscreteValue()
            If Not IsDBNull(Config.VerConf(BDNAME).Tables(0).Rows(19).Item(2)) Then txthoraini = CDate(Config.VerConf(BDNAME).Tables(0).Rows(19).Item(2)).ToShortTimeString Else txthoraini = ""
            estanul = Config.VerConf(BDNAME).Tables(0).Rows(18).Item(0)
            If Not IsDBNull(Config.VerConf(BDNAME).Tables(0).Rows(18).Item(2)) Then txthorafin = CDate(Config.VerConf(BDNAME).Tables(0).Rows(18).Item(2)).ToShortTimeString Else txthorafin = ""
            If Not IsDBNull(Config.VerConf(BDNAME).Tables(0).Rows(18).Item(3)) Then txtrespCC = Config.VerConf(BDNAME).Tables(0).Rows(18).Item(3) Else txtrespCC = ""
            If estanul = 0 Then
                txtrotulo = "El Sistema se Inicio a las " & txthoraini
            Else
                txtrotulo = "El Sistema se Inicio a las " & txthoraini & " y Finalizo a las " & txthorafin & " por " & txtrespCC
            End If
            PROTULO.Value = ROTULO
            PROTULOCA.Value = txtrotulo
            PAR1.Add(PROTULO)
            PAR2.Add(PROTULOCA)
            oInforme.DataDefinition.ParameterFields("ROTULO").ApplyCurrentValues(PAR1)
            oInforme.DataDefinition.ParameterFields("ROTULOCAJA").ApplyCurrentValues(PAR2)
            Me.crvGanan.ReportSource = oInforme
            oInforme = Nothing
            oReporVentGafi = Nothing
            crvGanan.Zoom(1)
        End Sub
    

    No tengo muy claro el codigo para llenar el subreporte, ya que no traje todo el codigo para postearlo.

    Porfavor Orientenme en codigo y si algo estoy haciendo mal en la vinculacion.

    De ante mano Gracias


    Leer un msj que te da un ERROR te da la posibilidad de entender que esta pasando.! www.Mikito.net

    viernes, 6 de julio de 2012 1:29

Respuestas

  • Buena y saludos,  ok te entiendo lo que necesitas,   si tu reporte principal se llena de forma correcta como le mandas los parametros,  entiendo que sin el sub-reporte te funciona y lo haces con un procedure,   al agregar el procedure el creo en el explorador de objeto del crystal los dos parametros que mencionas Finicial y Ffinal de tipo parametro y le pone por delante un @ si usas sql server,  que es un parametro.   al agregar el sub-reporte el mismo necesitas tambien dos parametros como mencional, el amismo tienes que relacionarlos de tu reporte principal a tu sub-reporte, OJO y algo importante, los parametros no pueden tener el mismo nombre, no se porque pero cuando s ele pone el mismo nombre que el sub, funciona el sub y no el principal, asi que lo que hice fue es crear 2 campos de formulas en donde le puse Finicialsub y FfinalSub

    y su codigo interno es solo hacer esto,  cdate({@FechaIni})  claro  puedes hacer muchas otras cosas mas... y agregas el sub-reportes y relaciones los parametros del sub con los de la formula y debe de funcionarte sin problemas.   saludos y cualquier duda estamos a la orden.


    Desarrollo de Sistemas


    lunes, 9 de julio de 2012 0:51

Todas las respuestas

  • Buena y saludos,  ok te entiendo lo que necesitas,   si tu reporte principal se llena de forma correcta como le mandas los parametros,  entiendo que sin el sub-reporte te funciona y lo haces con un procedure,   al agregar el procedure el creo en el explorador de objeto del crystal los dos parametros que mencionas Finicial y Ffinal de tipo parametro y le pone por delante un @ si usas sql server,  que es un parametro.   al agregar el sub-reporte el mismo necesitas tambien dos parametros como mencional, el amismo tienes que relacionarlos de tu reporte principal a tu sub-reporte, OJO y algo importante, los parametros no pueden tener el mismo nombre, no se porque pero cuando s ele pone el mismo nombre que el sub, funciona el sub y no el principal, asi que lo que hice fue es crear 2 campos de formulas en donde le puse Finicialsub y FfinalSub

    y su codigo interno es solo hacer esto,  cdate({@FechaIni})  claro  puedes hacer muchas otras cosas mas... y agregas el sub-reportes y relaciones los parametros del sub con los de la formula y debe de funcionarte sin problemas.   saludos y cualquier duda estamos a la orden.


    Desarrollo de Sistemas


    lunes, 9 de julio de 2012 0:51
  • Hola Ruben, estaba probando parte de tu solucion y eh estado buscando en internet, y bueno lo que pude lograr es q se muestren los datos del informe principal y  del subreporte, ahora no puedo filtrarlos, quisiera saber como lo ago, ya que vincule el campo que deseo filtrar en mi subreporte, osea el campo fecha. sera el campo que utilizara el subreporte para mostrar los registros solo de esa fecha especifica, ahora ahi esta mi problema por que no se como hacer eso, por que seguin se no tienen ninguna relacion las tablas de donde jalo los datos, ahora, ambos, tanto el reporte principal como el sub reporte los lleno atravez de StoreProcedure, te digo esto por que creo que no me deje entender bien, el informe principal lo lleno desde un storeprocedure, el subreporte mostrara las ventas de cada usuario pero solo las del dia, segun fecha del detalle actualmente mostrado, ya que muestro un informe de caja de cada dia, deacuerdo a un rango de fechas.

    Ahora no se como pasarle la fecha (campo del informe principal) al subreporte para que muestre solo esos registros que concuerden con la fecha.

    Espero me puedas ayudar, quizas tengan algun manual un poco mas entendible de los que encuentro en la red, o algun ejemplo que pueda usar.

    de Antemano Gracias


    Leer un msj que te da un ERROR te da la posibilidad de entender que esta pasando.! www.Mikito.net

    martes, 10 de julio de 2012 1:24