Principales respuestas
Seleccionar fila de datagridview en c# e imprimir a pdf

Pregunta
-
Buenos dias, estoy trabajando en una aplicacion desarrollada en c# con visual 2015. Anteriormente realizaba un reporte usando Crystal Reports, pero despues comenzo a darme muchos problemas y queria saber si es posible capturar los datos de la fila que selecciono del datagrid y pasarlo a pdf. Estuve intentado con itextsharp pero me realiza el reporte de toda la grilla, no de la fila seleccionada. Alguna idea?
Gracias!
Respuestas
-
Buenas tardes.
Estuve realizando pruebas con itexsharp para exportar solo las filas seleccionadas primero cambio la propiedad del datagridview SelectionMode y elijo: FullRowSelect luego utilizo el siguiente código obtenido de Export selected row data to pdf in C# using iTextsharp
private void button1_Click(object sender, EventArgs e) { iTextSharp.text.Font text = new iTextSharp.text.Font(iTextSharp.text.Font.NORMAL, 11); Document doc = new Document(PageSize.A2.Rotate(), 1, 1, 1, 1); PdfWriter wri = PdfWriter.GetInstance(doc, new FileStream("Test.pdf", FileMode.Create)); doc.Open(); PdfPTable pdftable = new PdfPTable(dataGridView1.ColumnCount - 0); for (int j = 0; j < dataGridView1.Columns.Count - 0; j++) { PdfPCell cell = new PdfPCell(new Phrase(dataGridView1.Columns[j].HeaderText, text)); cell.BackgroundColor = BaseColor.LIGHT_GRAY; pdftable.AddCell(cell); } pdftable.HeaderRows = 0; for (int i = 0; i < dataGridView1.SelectedRows.Count; i++) { for (int k = 0; k < dataGridView1.Columns.Count - 0; k++) { if (dataGridView1[i, k].Value != null) { pdftable.AddCell(new Phrase(dataGridView1.SelectedRows[i].Cells[k].Value.ToString(), text)); //pdftable.AddCell(new Phrase(dgvLoadAll[k, i].Value.ToString(), text)); } } } //float[] widths = new float[] { 15f, 50f, 40f, 40f, 40f, 40f, 40f, 40f, 40f, 40f, 40f, 40f, 40f, 40f, 40f, 40f, 40f }; // pdftable.SetWidths(widths); doc.Add(pdftable); doc.Close(); System.Diagnostics.Process.Start("Test.pdf"); }
Según las pruebas realizadas solo exporta la fila seleccionada.
Espero te sirva de ayuda.
Saludos.
- Marcado como respuesta Rodrigo Mancilla lunes, 18 de septiembre de 2017 23:17
Todas las respuestas
-
De toda la grilla? Es que seguro le pasas el datatable...
si quieres pasarle solo la fila seleccionada deberias crear un datatable donde guardaras los elementos seleccionados en tu caso 1 pero tambien se puede hacer como parametros .
Y que tipos de problemas te puede dar Crystal Reports si es muy bueno yo sigo con este desde sus inicios y no le veo error alguno tiene limitaciones pero ahi va bien.
Pasa los puntos prro v:
-
Buenas tardes.
Estuve realizando pruebas con itexsharp para exportar solo las filas seleccionadas primero cambio la propiedad del datagridview SelectionMode y elijo: FullRowSelect luego utilizo el siguiente código obtenido de Export selected row data to pdf in C# using iTextsharp
private void button1_Click(object sender, EventArgs e) { iTextSharp.text.Font text = new iTextSharp.text.Font(iTextSharp.text.Font.NORMAL, 11); Document doc = new Document(PageSize.A2.Rotate(), 1, 1, 1, 1); PdfWriter wri = PdfWriter.GetInstance(doc, new FileStream("Test.pdf", FileMode.Create)); doc.Open(); PdfPTable pdftable = new PdfPTable(dataGridView1.ColumnCount - 0); for (int j = 0; j < dataGridView1.Columns.Count - 0; j++) { PdfPCell cell = new PdfPCell(new Phrase(dataGridView1.Columns[j].HeaderText, text)); cell.BackgroundColor = BaseColor.LIGHT_GRAY; pdftable.AddCell(cell); } pdftable.HeaderRows = 0; for (int i = 0; i < dataGridView1.SelectedRows.Count; i++) { for (int k = 0; k < dataGridView1.Columns.Count - 0; k++) { if (dataGridView1[i, k].Value != null) { pdftable.AddCell(new Phrase(dataGridView1.SelectedRows[i].Cells[k].Value.ToString(), text)); //pdftable.AddCell(new Phrase(dgvLoadAll[k, i].Value.ToString(), text)); } } } //float[] widths = new float[] { 15f, 50f, 40f, 40f, 40f, 40f, 40f, 40f, 40f, 40f, 40f, 40f, 40f, 40f, 40f, 40f, 40f }; // pdftable.SetWidths(widths); doc.Add(pdftable); doc.Close(); System.Diagnostics.Process.Start("Test.pdf"); }
Según las pruebas realizadas solo exporta la fila seleccionada.
Espero te sirva de ayuda.
Saludos.
- Marcado como respuesta Rodrigo Mancilla lunes, 18 de septiembre de 2017 23:17
-