Olá pessoal, gostaria de falar hoje um pouco sobre o componente da Microsoft integrado no Visual Studio.NET chamado ReportViewer. Resolvi colocar este poste pois acabei pegando um código de uma pessoa que começou a desenvolver um sistema e saiu da empresa onde trabalho.
O mesmo utilizou o componente ReportViewer que funciona perfeitamente na máquina que está instalado o Visual Studio .NET 2008 completo.

Referência:
Visual Studio .NET 2008
Linguagem C#.NET
ReportViewer

Não vou mostrar todos os detalhes de como criar o relatório, porém vou dar uma dica importante para funcionar no servidor. (Code 1)

ReportDataSource RDS = new ReportDataSource
("dsRelatorios_spu_RemessaDigitalizada_Lista", DS.Tables[0]);
rpvRemessaDig.Visible = true;
rpvRemessaDig.LocalReport.DataSources.Clear();
rpvRemessaDig.Reset();
rpvRemessaDig.LocalReport.ReportPath = "ReportRemessaDig.rdlc";
rpvRemessaDig.LocalReport.DataSources.Add(RDS);
rpvRemessaDig.LocalReport.Refresh();
  Code 1

   O Code 1 mostra como preencher o componente depois de clicar no botão é chamando o arquivo .rdlc (arquivo criado para a geração do relatório). O relatório foi preenchido com DTO usando Stored Procedure. O Code 2 mostra a página em HTML.

<rsweb:ReportViewer ID="rpvRemessaDig"
runat="server"
Width="940px"
Font-Names="Verdana"
Font-Size="8pt"
Height="400px"
>

        <LocalReport ReportEmbeddedResource="ReportRemessaDig.rdlc"
ReportPath="ReportRemessaDig.rdlc"
>

            <DataSources>

                < rsweb:ReportDataSource DataSourceId="ObjectDataSource1" Name="dsRelatorios_spu_RemessaDigitalizada_Lista"
/>

            </DataSources>

        </LocalReport>

   </rsweb:ReportViewer>

    <asp:ObjectDataSource ID="ObjectDataSource1"
runat="server"
                         OldValuesParameterFormatString="original_{0}"
SelectMethod="GetData"                      TypeName="dsRelatoriosTableAdapters.spu_RemessaDigitalizada_ListaTableAdapter">

        <SelectParameters>

            <asp:Parameter Name="pc_Agencia"
Type="String"
/>

            <asp:Parameter Name="pc_DataCaptura"
Type="String"
/>

        </SelectParameters>

    </asp:ObjectDataSource>

                                                                                                                                                            Code 2

   Na parte de são os parâmetros que precisam ser passados para buscar no banco de dados. Além de todo esse código para preencher os dados, é necessário testar e instalar no servidor um componente da Microsoft. Caso contrário o relatório dará problema quando o sistema for acessado.



Passei um problema com isso este mês e por isso resolvi escrever este artigo. O erro mostrado no momento de acesso foi:

Exception message: Não foi possível carregar arquivo ou assembly 'Microsoft.ReportViewer.WebForms, Version=9.0.0.0,
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a' ou uma de suas
dependências. The system cannot find the file specified.
    Error 1

     A versão do Visual Studio .Net é a 2008, e por isso tive que instalar um componente no servidor 2008. [Microsoft Report Viewer Redistributable 2008]. No caso de uma versão anterior ou posterior, procure instalar no servidor a mesma versão. Lembre-se disso ao usar o reportviewer, é necessário instalar este componente da Microsoft no servidor. Caso não for instalado, o seu aplicativo seque abre a primeira página devido a referência criada no arquivo de configuração .config. Fico por aqui e qualquer dúvida, pode entrar em contato.