none
Como passar os dados de duas tabelas relacionadas para um Relatorio do CrystalReporter RRS feed

  • Pergunta

  • Ola minha gente.

    Fiz um relatório em minha aplicação usando o CrystalReporte, só que o tenho um problema que é o seguinte: Quando faço click no botão para chamar o relatório ele  funciona muito bém. Só que não apresenta os dados das tabelas que uso para os campos do mesmo relatório, simplesmente apresenta-me um relatório configurando como eu fiz mas não mostra os dados das tabelas.

    Já tentei com DataSet Tipado e não da resultado.

    Alguem pode ajudar a sair deste empasse?

    Alguem pode indicar exemplo de relatorio com duas tabels relacionadas?

    Gracias a todos. 

     

    NekFred,Lda

    domingo, 4 de novembro de 2012 18:08

Respostas

  • Problema resolvido. Aqui vai o código utilizado:
    public partial class RepFactVisualizador : Form
        {
            public RepFactVisualizador()
            {
                InitializeComponent();
                CenterToScreen();
            }
            //Metodo Para Popular o DataSet
            private void populaReporter()
            {
                string SqlFactura = @"SELECT * FROM Factura"; //numFactura, formaPago, porConta, dataFactura, paciente, morada, telefonePaciente, empresa, medico, telefoneMedico, total
                                     //FROM Factura";
                string SqlDetalhes = @"SELECT * FROM DetalhesFactura"; //item, descriServiço, preço, quantidade, valor FROM DetalhesFactura";
    
                SofClinicDataSet dsFD = new SofClinicDataSet();
                try
                {
                    //Criamos os dados para o Adaptar
                    SqlConnection con = Conexao.coneta();
                    SqlDataAdapter SqlDaFactura = new SqlDataAdapter(SqlFactura, con);
                    SqlDataAdapter SqlDaDetalhes = new SqlDataAdapter(SqlDetalhes, con);
    
                    //Populamos as tabelas do DataSet
                    SqlDaFactura.Fill(dsFD, "Factura");
                    SqlDaDetalhes.Fill(dsFD, "DetalhesFactura");
    
                    //Populamos o Informe
                    ReportDocument cryRpt = new ReportDocument();
                    cryRpt.Load("C:\\Users\\Nekrumah\\Desktop\\Documents\\Visual Studio 2010\\Projects\\SantaMarta\\SoftClinic\\SoftClinic\\RepFactura.rpt");
                    cryRpt.SetDataSource(dsFD);
                    crystalReportViewer1.ReportSource = cryRpt;
                    crystalReportViewer1.Refresh();
    
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.Message);
                }
            }
            //
            private void butVerRelatorio_Click(object sender, EventArgs e)
            {
                populaReporter();                          
                  
            }        
    Obs: Devem observar que eu, faço um duplo Select para as tabelas relacionadas e utilizo dois Adapter para preencher as tabelas.

    NekFred,Lda

    • Marcado como Resposta Jesus Spray sexta-feira, 7 de dezembro de 2012 08:40
    sexta-feira, 7 de dezembro de 2012 08:40

Todas as Respostas

  • Problema resolvido. Aqui vai o código utilizado:
    public partial class RepFactVisualizador : Form
        {
            public RepFactVisualizador()
            {
                InitializeComponent();
                CenterToScreen();
            }
            //Metodo Para Popular o DataSet
            private void populaReporter()
            {
                string SqlFactura = @"SELECT * FROM Factura"; //numFactura, formaPago, porConta, dataFactura, paciente, morada, telefonePaciente, empresa, medico, telefoneMedico, total
                                     //FROM Factura";
                string SqlDetalhes = @"SELECT * FROM DetalhesFactura"; //item, descriServiço, preço, quantidade, valor FROM DetalhesFactura";
    
                SofClinicDataSet dsFD = new SofClinicDataSet();
                try
                {
                    //Criamos os dados para o Adaptar
                    SqlConnection con = Conexao.coneta();
                    SqlDataAdapter SqlDaFactura = new SqlDataAdapter(SqlFactura, con);
                    SqlDataAdapter SqlDaDetalhes = new SqlDataAdapter(SqlDetalhes, con);
    
                    //Populamos as tabelas do DataSet
                    SqlDaFactura.Fill(dsFD, "Factura");
                    SqlDaDetalhes.Fill(dsFD, "DetalhesFactura");
    
                    //Populamos o Informe
                    ReportDocument cryRpt = new ReportDocument();
                    cryRpt.Load("C:\\Users\\Nekrumah\\Desktop\\Documents\\Visual Studio 2010\\Projects\\SantaMarta\\SoftClinic\\SoftClinic\\RepFactura.rpt");
                    cryRpt.SetDataSource(dsFD);
                    crystalReportViewer1.ReportSource = cryRpt;
                    crystalReportViewer1.Refresh();
    
                }
                catch (Exception e)
                {
                    MessageBox.Show(e.Message);
                }
            }
            //
            private void butVerRelatorio_Click(object sender, EventArgs e)
            {
                populaReporter();                          
                  
            }        
    Obs: Devem observar que eu, faço um duplo Select para as tabelas relacionadas e utilizo dois Adapter para preencher as tabelas.

    NekFred,Lda

    • Marcado como Resposta Jesus Spray sexta-feira, 7 de dezembro de 2012 08:40
    sexta-feira, 7 de dezembro de 2012 08:40
  • Olá

    Teria como postarum exemplo com o Report Viewer

    sexta-feira, 21 de dezembro de 2012 12:30