none
comando para o datagrid RRS feed

  • Pergunta

  • Tenho o seguinte comando para adicionar itens no datagrid e imprimir no crystal report ( exemplo achado em sites )

            private void Form1_Load(object sender, EventArgs e)
            {
                //create table with three columns
                DataTable t = new DataTable();
                t.Columns.Add("id", typeof(Int16));
                t.Columns.Add("name", typeof(string));
                t.Columns.Add("family", typeof(string));
    
                //add data to table
                t.Rows.Add(1,"hasan","amiri");
                t.Rows.Add(2, "reza", "amiri");
                t.Rows.Add(3, "amin", "neisi");
    
                //bind table to datagridview
                dataGridView1.DataSource = t;
            }
    
            private void button1_Click(object sender, EventArgs e)
            {
                DataSet ds = new DataSet();
                DataTable dt = new DataTable();
                dt.Columns.Add("id", typeof(Int16));
                dt.Columns.Add("name", typeof(string));
                dt.Columns.Add("family", typeof(string));
    
                //add datagridview data to table
                foreach (DataGridViewRow dgv in dataGridView1.Rows)
                {
                    dt.Rows.Add(dgv.Cells[0].Value, dgv.Cells[1].Value, dgv.Cells[2].Value);
                }
                ds.Tables.Add(dt);
                ds.WriteXmlSchema("sample.xml");
    
                //transefer data to crystalreportviewer
                CrystalReport1 cr = new CrystalReport1();
                cr.SetDataSource(ds);
                crystalReportViewer1.ReportSource = cr;
            }

    O que esta acontecendo e que no meu caso já tenho os itens adicionados  no datagrid por um select no banco, nisso pelo o que eu sei tenho que criar algo que percorra e me mostre os itens no relatório do Crystal report e fazer da mesma for do exemplo


    Atenciosamente,
    José Henrique Sabino


    • Editado Xarp2 segunda-feira, 4 de agosto de 2014 13:42
    segunda-feira, 4 de agosto de 2014 13:38

Respostas

Todas as Respostas

  • tentei fazer isso no meu

    DataSet ds = new DataSet(); DataTable dt = new DataTable(); dt.Columns.Add("data", typeof(Int16)); dt.Columns.Add("cliente", typeof(string)); dt.Columns.Add("vendedor", typeof(string)); dt.Columns.Add("atendimento", typeof(string)); //add datagridview data to table foreach (DataGridViewRow dgv in dgvvendas.Rows) { dt = (DataTable)dgvvendas.DataSource; } ds.Tables.Add(dt); ds.WriteXmlSchema("sample.xml"); //transefer data to crystalreportviewer CrystalReportvendas cr = new CrystalReportvendas(); cr.SetDataSource(ds); crystalReportViewervendas.ReportSource = cr;

    infelizmente não não certo


    Atenciosamente,
    José Henrique Sabino

    segunda-feira, 4 de agosto de 2014 14:03
  • tenta:

    cr.SetDataSource((DataTable)dgvvendas.DataSource);


    "A mente que se abre para uma nova idéia, jamais voltará a seu tamanho original".

    segunda-feira, 4 de agosto de 2014 14:54
  • Com esse comando

    cr.SetDataSource((DataTable)dgvvendas.DataSource);

     o relatório fica tudo em branco aparece nada sem os nomes das devidas colunas

    antes com o exemplo que postei ele aparece assim, com os nomes das colunas


    Atenciosamente,
    José Henrique Sabino


    • Editado Xarp2 segunda-feira, 4 de agosto de 2014 16:26
    segunda-feira, 4 de agosto de 2014 16:25
  • Se seu a sua fonte de dados é o bd, procure retornar os datasets individualmente para a aplicação, e para o relatório. Uma coisa é exibir na aplicação, e outra é no relatório, e você ainda vai enfraquecer o acoplamento :).

    segunda-feira, 4 de agosto de 2014 16:57
  • Você tem algum exemplo mostrando como e feito isso ?

    Atenciosamente,
    José Henrique Sabino

    segunda-feira, 4 de agosto de 2014 18:22
  • Não tenho... 
    sexta-feira, 12 de setembro de 2014 16:00
  • Esse já consegui resolver valeu

    Atenciosamente,
    José Henrique Sabino

    • Marcado como Resposta Xarp2 sexta-feira, 12 de setembro de 2014 17:09
    sexta-feira, 12 de setembro de 2014 17:09
  • José

    Veja o link abaixo, poderá te ajudar.

    http://ecode10.com/article/pesquisar.aspx?q=report


    Espero ter ajudado. Se ajudei, favor marcar no fórum falando que foi útil.

    Mauricio Junior - Comunidade www.ecode10.com

    sexta-feira, 12 de setembro de 2014 20:58