locked
Crystal Report Vs2005 RRS feed

  • Pergunta

  • Estou precisando de uma ajudar urgente, não sei mais o que fazer e o meu tempo está acabando.

    Eu tenho alguns relatórios em crystalreport. Eu carrego ele passando alguns parametros que peguei via session de um dataset que transformei em xml.

    Quando eu tenho texto corrido, não problema algum, mas agora eu estou mexendo com tabela, e esse esquema de session, não está dando certo, pois não mostra na tela como uma tabela.

    Então eu preciso de um jeito de mostrar como tabela no meu relatório.

    Eu vou colocar o meu código:

    --> Pagina.aspx.vb

    Private Sub CarregarGrid()

    Try

    'Aqui está o carregando o meu dataset (ds), não coloquei o código p/ não ficar muito grande

    Session("Legislacao") = ds.GetXml

    'Essa parte era um teste, estava tentando pegar cada columa para passar para o relatório, mas essa maneira tb nao deu certo

    Dim total As Integer = ds.Tables(0).Rows.Count - 1

    Dim vAto(total) As String

    Dim i As Integer

    For i = 0 To ds.Tables(0).Rows.Count - 1

    vAto(i) = ds.Tables(0).Rows(i).ItemArray(0).ToString

    Next

     

    --> RelatorioPagina.aspx.vb

    Dim myReportDocument As CrystalDecisions.CrystalReports.Engine.ReportDocument

    myReportDocument = New CrystalDecisions.CrystalReports.Engine.ReportDocument

    Dim pvCollection As New CrystalDecisions.Shared.ParameterValues

    Dim pEmpresa As New CrystalDecisions.Shared.ParameterDiscreteValue

    Dim pUsuario As New CrystalDecisions.Shared.ParameterDiscreteValue

    Dim pAto As New CrystalDecisions.Shared.ParameterDiscreteValue

    pAto.Value = Func.LimpaTag(Session("Legislacao"))

    myReportDocument.Load(Server.MapPath("relatorios/relTeste.rpt"))

    'Início Cabeçalho (O meu relatório está todo em parametro. CantoDireito, CantoEsquerdo, Central e Titulo, são informações que serão passados da empresa, que estão em um arquivo FuncRel.vb)

    pvCollection.Add(FuncRel.CantoDireitoRel())

    myReportDocument.DataDefinition.ParameterFields("pCantoDireito").ApplyCurrentValues(pvCollection)

    pvCollection.Clear()

    pvCollection.Add(FuncRel.CantoEsquerdoRel())

    myReportDocument.DataDefinition.ParameterFields("pCantoEsquerdo").ApplyCurrentValues(pvCollection)

    pvCollection.Clear()

    pvCollection.Add(FuncRel.TextoCentralRel())

    myReportDocument.DataDefinition.ParameterFields("pCentral").ApplyCurrentValues(pvCollection)

    pvCollection.Clear()

    pvCollection.Add(FuncRel.TituloRel("Legislação"))

    myReportDocument.DataDefinition.ParameterFields("pTitulo").ApplyCurrentValues(pvCollection)

    'Fim Cabeçalho

    pvCollection.Clear()

    pvCollection.Add(pAto) 'Aqui é que passo o que recebi da outra tela para o relatório

    myReportDocument.DataDefinition.ParameterFields("pAto").ApplyCurrentValues(pvCollection)

    'Passa usuário e empresa como parâmetros para o Crystal

    Dim UsuarioLogin As autenticacao

    Application.Lock()

    Dim HtUsuariosLogados As Hashtable = Application("UsuariosLogados")

    Dim s As String

    For Each s In HtUsuariosLogados.Keys

    UsuarioLogin = HtUsuariosLogados(s)

    If UsuarioLogin.getSessionId = Session.SessionID Then

    pUsuario.Value = UsuarioLogin.getNome

    pEmpresa.Value = UsuarioLogin.getRazao

    End If

    Next

    Application.UnLock()

    pvCollection.Clear()

    pvCollection.Add(ds.Tables(0).Rows(0).ItemArray(0).ToString)

    myReportDocument.DataDefinition.ParameterFields("pUsuario").ApplyCurrentValues(pvCollection)

    pvCollection.Clear()

    pvCollection.Add(pEmpresa)

    myReportDocument.DataDefinition.ParameterFields("pEmpresa").ApplyCurrentValues(pvCollection)

    'Exporta para PDF

    myReportDocument.ExportToHttpResponse(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, Response, False, "Legislacao")

    'Remove Sessão

    Session.Remove("Legislacao")

     

     

    Alguém sabe como resolver isso????

    quinta-feira, 1 de novembro de 2007 18:04

Todas as Respostas

  • Cara Sula Fenix,

    Veja que o fórum da comunidade acadêmica não é muito indicado para retirar dúvidas técnicas, mas sim sobre questões da vida acadêmica, programas acadêmicos Microsoft, palestras e etc. Não que seja um crime postar dúvidas técnicas aqui, mas é que existem outros fóruns, como o da MSDN Brasil, com o propósito exclusivo de resolver problemas técnicos. Repare que no fórum da MSDN Brasil por exemplo, além de um número muito maior de participantes, temos a participação dos próprios MVPs de vários produtos e isso com certeza aumenta a possibilidade da sua pergunta ser respondida eficientemente.

     

    Segue o link do fórum da MSDN Brasil: http://forums.microsoft.com/msdn-br/default.aspx?siteid=21

    terça-feira, 6 de novembro de 2007 11:13