none
Reporting Service Local (Rdlc), usar dataset, dúvida urgente p.f. RRS feed

  • Pergunta

  • Viva, tenho um Reporting Service SQL Server 2005 que foi gerado no lado do servidor, no entanto, este foi criado para referência de auto aprendizagem, agora tenho que colocar esse report num ficheiro acolpado à aplicação em VB.Net.

    No meu report que está no servidor recebo um parâmetro que é "mapeado" para dois dataset que serve como query parameter para ir buscar dados à BD SQL Server.

    Já fiz uma leitura na Web e percebi que os reporting services locais aceitam parametros para o report mas não têm capacidade de os mapear para query parameters.

    Desta forma processei o seguinte código de forma a enviar um DataSet para o Report Local:

    'Conexão à BD para o DataSet
            Dim sqlConnection As SqlConnection = New SqlConnection()
            sqlConnection.ConnectionString = ConfigurationManager.ConnectionStrings("ligacaoBD").ConnectionString
            Dim ds As New System.Data.DataSet()

            'Preencher o dataSet com o procedimento
            Dim sqlParam As New SqlParameter("@intNumero", 37)
            ds = SqlHelper.ExecuteDataset(sqlConnection, CommandType.StoredProcedure, "stp_S_CarregarDadosPorLinha", sqlParam)

            'Criar data source para report

            Dim reportDS As ReportDataSource = New ReportDataSource("DataSet1_stp_S_CarregarDadosPorLinha", ds.Tables(0))

            'Associar o datasource ao reportviewer
            ReportViewer1.LocalReport.DataSources.Clear()
            ReportViewer1.LocalReport.DataSources.Add(reportDS)
            Dim fill As String = "fill"

            ReportViewer1.DataBind()

    Desta forma, eu consigo ir buscar o resultado do procedimento à BD, enviando o parâmetro da aplicação para o DataSet e só depois o DataSet para o reportviewer.

    Agora surge a dúvida - como é que, no report local, associo um determinado campo desse DataSet que envio (por exemplo, strNome), a uma textbox? Poderia colocar no report algo do genero Fields!strNome.Value, no entanto, como ele detecta que não existe nenhum DataSet criado estáticamente no local, dá um erro ao fazer build.

    Alguém esteve nesta situação?Não teremos possibilidade de colocar o report num servidor de reporting services, agradecia a vossa ajuda encontro-me um pouco enrascado!

    Um abraço, muito obrigado pela vossa atenção!
    quinta-feira, 22 de fevereiro de 2007 23:40