private void contruyeImpresion()
 {
     DataSet2 ds = new DataSet2();
     for (int i = 0; i < dataGridView1.RowCount; i++)
     {
         ds.Tables[0].Rows.Add
             (new object[]
             {
                             dataGridView1[0,i].Value.ToString(),
                             dataGridView1[1,i].Value.ToString(),
                             dataGridView1[2,i].Value.ToString(),
                             dataGridView1[6,i].Value.ToString()
             });
     }
     frm_reporteCaja frm = new frm_reporteCaja();
     CrystalReport3 cr = new CrystalReport3();
     cr.SetDataSource(ds);
     TextObject textn = (TextObject)cr.ReportDefinition.Sections["Section1"].ReportObjects["nombre"];
     textn.Text = label8.Text;
     TextObject textd = (TextObject)cr.ReportDefinition.Sections["Section1"].ReportObjects["fecha"];
     textd.Text = label3.Text;
     TextObject textc = (TextObject)cr.ReportDefinition.Sections["Section1"].ReportObjects["monto"];
     textc.Text = label1.Text;
     TextObject textv = (TextObject)cr.ReportDefinition.Sections["Section1"].ReportObjects["obser"];
     if (label17.Text != "")
     {
         textv.Text = label17.Text;
     } else
     {
         textv.Text = "NO SE HA CERRADO LA CAJA";
     }
     // totales del reporte //
     TextObject texe = (TextObject)cr.ReportDefinition.Sections["Section4"].ReportObjects["efectivo"];
     texe.Text = label6.Text;
     TextObject texc = (TextObject)cr.ReportDefinition.Sections["Section4"].ReportObjects["credito"];
     texc.Text = label10.Text;
     TextObject textt = (TextObject)cr.ReportDefinition.Sections["Section5"].ReportObjects["caja"];
     textt.Text = label7.Text;
     frm.crystalReportViewer1.ReportSource = cr;
     frm.ShowDialog();
 }