-
Posts
2 -
Cadastrado em
-
Última visita
Reputação
0-
Rikelme G. Carneiro alterou sua foto pessoal
-
C# 'Não é possível converter um objeto do tipo 'Class' no tipo 'DataGridRow'
Rikelme G. Carneiro respondeu ao tópico de Rikelme G. Carneiro em C/C#/C++
Essa foi a solução para mim: (Imagem anexada.) Estava tentando roda o foreach em um objeto de tipo class e tentando converter para Linha do DataGrid. Então ao invés de converter para DataGridRow, mudei isso para a Class e dentro dele adicionava os atributos.DataGridViewExport.pdf Aqui esta o exemplo depois de "pronto". -
C# 'Não é possível converter um objeto do tipo 'Class' no tipo 'DataGridRow'
Rikelme G. Carneiro postou um tópico em C/C#/C++
Boa noite pessoal do Clube. Estou tendo problemas para construir um codigo que busquei na internet referente à criação de relatorio utilizando C#. So encontrei para Windows Forms e VS.Net. Este é o link: https://www.aspsnippets.com/Articles/Export-Windows-Forms-DataGridView-to-PDF-using-iTextSharp-C-and-VBNet.aspx Como não achei nada para WPF, que é por onde eu estou construindo, resolvi pega esse mesmo codigo e converter para o WPF. O codigo original para Windows Forms seria: private void btnExportPdf_Click(object sender, EventArgs e) { //Creating iTextSharp Table from the DataTable data PdfPTable pdfTable = new PdfPTable(dataGridView1.ColumnCount); pdfTable.DefaultCell.Padding = 3; pdfTable.WidthPercentage = 30; pdfTable.HorizontalAlignment = Element.ALIGN_LEFT; pdfTable.DefaultCell.BorderWidth = 1; //Adding Header row foreach (DataGridViewColumn column in dataGridView1.Columns) { PdfPCell cell = new PdfPCell(new Phrase(column.HeaderText)); cell.BackgroundColor = new iTextSharp.text.Color(240, 240, 240); pdfTable.AddCell(cell); } //Adding DataRow foreach (DataGridViewRow row in dataGridView1.Rows) { foreach (DataGridViewCell cell in row.Cells) { pdfTable.AddCell(cell.Value.ToString()); } } //Exporting to PDF string folderPath = "C:\\PDFs\\"; if (!Directory.Exists(folderPath)) { Directory.CreateDirectory(folderPath); } using (FileStream stream = new FileStream(folderPath + "DataGridViewExport.pdf", FileMode.Create)) { Document pdfDoc = new Document(PageSize.A2, 10f, 10f, 10f, 0f); PdfWriter.GetInstance(pdfDoc, stream); pdfDoc.Open(); pdfDoc.Add(pdfTable); pdfDoc.Close(); stream.Close(); } } O Codigo que eu consegui chega ate o momento foi: private void Button_Click(object sender, RoutedEventArgs e) { //Creating iTextSharp Table from the DataTable data PdfPTable pdfTable = new PdfPTable(dgMarca.Items.Count); pdfTable.DefaultCell.Padding = 3; pdfTable.WidthPercentage = 30; pdfTable.HorizontalAlignment = Element.ALIGN_LEFT; pdfTable.DefaultCell.BorderWidth = 1; //Adding Header row foreach (DataGridColumn column in dgMarca.Columns) { PdfPCell cell = new PdfPCell(new Phrase(column.Header.ToString())); cell.BackgroundColor = new iTextSharp.text.BaseColor(240, 240, 240); pdfTable.AddCell(cell); } //Adding DataRow foreach (DataGridRow row in dgMarca.Items.SourceCollection) { foreach /*(DataGridCell cell in row as Object)*/(PropertyInfo cell in row.GetType().GetProperties()) { pdfTable.AddCell(cell.ToString()); } } //Exporting to PDF string folderPath = "C:\\PDFs\\"; if (!Directory.Exists(folderPath)) { Directory.CreateDirectory(folderPath); } using (FileStream stream = new FileStream(folderPath + "DataGridViewExport.pdf", FileMode.Create)) { Document pdfDoc = new Document(PageSize.A2, 10f, 10f, 10f, 0f); PdfWriter.GetInstance(pdfDoc, stream); pdfDoc.Open(); pdfDoc.Add(pdfTable); pdfDoc.Close(); stream.Close(); } } E então, seguei no seguinte erro que me travou de vez que esta em anexo. Por favor, pessoa ajuda de vocês para que eu consiga termina este projeto para finalizar o semestre. Obrigado.
Sobre o Clube do Hardware
No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais
Direitos autorais
Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais