none
metodo para mostrar report viewer C# RRS feed

  • Pergunta

  • Galera, eu meio que traduzi o metodo mostrado pelo Laercio Freitas no seu webcast 1 para o C# (estava em VB), o problema que eu nao compreendi exatamente o que eh feito.

    Mas em princípio funcionou, o relatorio eh gerado e mostrado tudo certo.

    O problema eh que agora eu nao consigo mais fazer funcionar quando uso + de 1 tabela.

    O método está dessa maneira:

    SqlConnection sq = new SqlConnection();
          sq.ConnectionString = @"Data Source=10.1.1.56\SQLEXPRESS;User ID=sa;Password=123456;Initial Catalog=BD_SCA;";
          sq.Open();
    
          SqlCommand com = new SqlCommand();
          com.Connection = sq;
          com.CommandText = "SELECT   [LOG].HORARIO, [LOG].ID_DESTINO, [LOG].TABELA, [LOG].ACAO,"+
          " [LOG].DESCRICAO, OPERADOR.NOME FROM     [LOG] INNER JOIN OPERADOR ON [LOG].ID_OPERADOR"+
          "= OPERADOR.ID_OPERADOR";
          SqlDataAdapter dt = new SqlDataAdapter(com);
          DataSet1 ds1 = new DataSet1(); //dataset com o tableadapter que eu criei la especificando os campos e tal qe me gerou a query colada a cima
          dt.Fill(ds1, "DataTable2"); //nome do datatable gerado pelo table adapter
    
          this.reportViewer1.RefreshReport(); 

    Sei la nao funciona mais, se tiver algum metodo pronto em c# agradeço, ou se puderem me corrigir no que estou errando..

    Att, Jefferson

    segunda-feira, 10 de janeiro de 2011 18:53

Respostas

Todas as Respostas

  • Jefferson,

    Dê maiores detalhes... Não funciona mais? Apresenta algum erro ou o relatório é mostrado em branco? A única coisa que você alterou foi o CommandText?


    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima
    segunda-feira, 10 de janeiro de 2011 20:03
    Moderador
  • Então André, o meu relatório funcionou com esse método:

     

     SqlConnection sq = new SqlConnection();
          sq.ConnectionString = @"Data Source=10.1.1.56\SQLEXPRESS;User ID=sa;Password=123456;Initial Catalog=BD_SCA;";
          sq.Open();
    
          SqlCommand com = new SqlCommand();
          com.Connection = sq;
          com.CommandText = "SELECT   [LOG].HORARIO, [LOG].ID_DESTINO, [LOG].TABELA, [LOG].ACAO,"+
          " [LOG].DESCRICAO, OPERADOR.NOME AS OPERADOR FROM [LOG] INNER JOIN"+
               " OPERADOR ON [LOG].ID_OPERADOR = OPERADOR.ID_OPERADOR";
    
          SqlDataAdapter dt = new SqlDataAdapter(com);
          
          dt.Fill(DataSet1, "DataTable1");
    
          this.reportViewer1.RefreshReport();
    

    Este método está correto? Quero dizer, estou fazendo tudo que é preciso fazer para exibir o reportviewer? Pois aqui esta funcionando agora so preciso de uma confirmação.

    Att, Jefferson

    terça-feira, 11 de janeiro de 2011 10:44
  • Jefferson,

    Sim... Aparentemente está tudo OK... Provavelmente no load do seu form você está setando o DataSource do seu relatório como sendo esse seu DataSet1... E nesse outro local você está re-populando o DataSet1 com novos dados e dando um refresh no relatório... Tudo faz sentido... :)


    André Alves de Lima
    Microsoft MVP - Client App Dev
    Visite o meu site: http://www.andrealveslima.com.br
    Me siga no Twitter: @andrealveslima
    • Marcado como Resposta JeffersonDF terça-feira, 11 de janeiro de 2011 13:40
    terça-feira, 11 de janeiro de 2011 13:37
    Moderador