come posso esportare i dati mostrati su una DBgrid in un file pdf?Esporta Datagrid in pdf
risposta
Beh, dati che vengono visualizzati in una DBGrid è fornito dal set di dati collegata a quella DBGrid, così l'esportazione dei dati in DBGrid in PDF significa esportare i dati nel vostro set di dati in formato PDF.
L'opzione più semplice è utilizzare uno strumento di segnalazione. Esistono molti diversi strumenti di reporting disponibili per Delphi, ad es. Rave Report, FastReport, Report Builder, QuickReport e così via.
Tali strumenti consentono di progettare un rapporto di stampa dai propri dati e consentono di stampare il rapporto o esportarlo in formati come HTML, DOC, PDF e così via. Rave Report viene spedito con Delphi e puoi usarlo gratuitamente. Personalmente mi piace FastReport e lo uso nelle mie applicazioni.
Un'altra opzione è che, se si dispone di una stampante PDF virtuale installata sul sistema di destinazione, è possibile selezionarla come stampante e utilizzare la classe TPrinter di Delphi per scrivere direttamente su tela della stampante e la stampante PDF virtuale creerà un PDF file per te piuttosto che stampare i tuoi dati su carta.
Una terza opzione consiste nell'utilizzare componenti di terze parti creati appositamente per la manipolazione di PDF e che consentono di creare o modificare file PDF nell'applicazione.
saluti
provare EMS Advanced Data Export VCL
http://sqlmanager.net/en/products/tools/advancedexport
- dati (dataset) l'esportazione in 17 formati più diffusi: MS Access, MS Excel, MS Word, Open formato XML, Formato Open Document Format (ODF), RTF, HTML, XML, PDF, TXT, DBF, CSV, SYLK, DIF, LaTeX, SQL e Windows
- Borland Delphi 5-7, 2005, 2006, CodeGear Delphi 2007, 2009 e Borland C++ Builder 5-6, C odeGear C++ Builder 2007, supporto 2009
- Esportazione di dati Unicode. Preselezione manuale della codifica del testo per i dati esportati (UTF-8, UTF-16/UCS-2, UTF-32/UCS-4, Latin1, Latin2, Latin5, Latin7 e altri)
- Salvataggio dei dati per visualizzazione, modifica, stampa in futuro o web pubblicazione
- facile da usare wizard permette agli utenti finali di esportare i dati in modo rapido
- opzioni di esportazione potenti per ogni formato di dati
- 100% di codice nativo di Delphi
- Nessun librerie aggiuntive o software necessari per il funzionamento
- Sistema di guida dettagliato e applicazione dimostrativa
- componenti potenti e proprietà redattori
- Impostazione dei formati utente per ogni campo separatamente il supporto
- Multilingue
Si possono scorrere i dati da soli e utilizzare eccellente esportazione VCL eDocEngine da Gnostice. Si collega anche agli strumenti di reporting e ad altri componenti.
I prezzi partono da $ 199 http://www.gnostice.com/edocengine_vcl.asp – Mawg
La suite di esportazione Scalabium per Delphi (incluso il 2009) supporta molti formati di esportazione, inclusi PDF e altri formati di ufficio con e senza OLE.I componenti di esportazione possono essere utilizzati con i discendenti TDBGrid e TDataSet.
Può essere utilizzato non visivo ma offre anche procedure guidate di esportazione configurabili. Lo utilizziamo con successo in una migrazione della suite di applicazioni da Delphi 7 al 2009.
EUR 35 senza fonte; 50 EUR con fonte. Sembra buono – Mawg
Public Sub ExportDataTableToPDF(ByVal dtImport As DataTable)
Dim strQuery As String = "select er_num,er_shortd,er_longd,er_severity from mv_error"
Dim doc As New Document(iTextSharp.text.PageSize.LETTER, 10, 10, 42, 35)
Try
'====================================================================
'Dim str As String = DateTime.Now.ToString("yyyyMMddHHmmssff")
'Dim sWebSettingPath As String = ConfigurationSettings.AppSettings("ExptLoctPath")
'Dim str1 As String = "E:\ExportPdf_File"
'Dim WorkingFile As String
'Dim s As String
'If (Directory.Exists(sWebSettingPath)) Then
' s = "already exists"
' WorkingFile = Path.Combine(sWebSettingPath, "" & str & " DataTestData.pdf")
'Else
' Dim ss As String = "C:\ReportPDF"
' WorkingFile = Path.Combine(str1, "" & str & " DataTestData.pdf")
' Directory.CreateDirectory(ss)
'End If
'====================================================================
'Folder Exists in Particular folder or not cheak ifnot create a folder
Dim strDateTime As String = DateTime.Now.ToString("yyyyMMddHHmmssff")
Dim sWebSettingPath As String = ConfigurationSettings.AppSettings("ExptLoctPath")
Dim str1 As String = "E:\ExportPdf_File"
Dim WorkingFile As String
Dim s As String
If (Directory.Exists(sWebSettingPath)) Then
s = "already exists"
WorkingFile = Path.Combine(sWebSettingPath, "" & strDateTime & "_DataTestData.pdf")
Else
Dim sWebStingNotPath As String = "C:\ReportPDFTest"
Directory.CreateDirectory(sWebStingNotPath)
WorkingFile = Path.Combine(sWebStingNotPath, "" & strDateTime & " DataTestData.pdf")
End If
'====================================================================
Dim fs As New FileStream(WorkingFile, FileMode.Create, FileAccess.Write, FileShare.None)
'Create Document class object and set its size to letter and give space left, right, Top, Bottom Margin
PdfWriter.GetInstance(doc, fs)
' Dim wri As PdfWriter = PdfWriter.GetInstance(doc, New FileStream("C:\Documents and Settings\lessly.l\Desktop\iTextSharp\Test11.pdf", FileMode.Create))
doc.Open()
'Open Document to write
Dim font8 As Font = FontFactory.GetFont("ARIAL", 7)
'Write some content
Dim paragraph As New Paragraph("Team :: CataPult")
Dim dt As DataTable = dtImport
If dt IsNot Nothing Then
'Craete instance of the pdf table and set the number of column in that table
Dim PdfTable As New PdfPTable(dt.Columns.Count)
Dim PdfPCell As PdfPCell = Nothing
Dim pdfrow As PdfPRow = Nothing
For column As Integer = 0 To dt.Columns.Count - 1
PdfTable.HeaderRows = dt.Columns.Count
PdfPCell = New PdfPCell(New Phrase(New Chunk(dt.Columns(column).Caption.ToString().ToUpper, New Font(Font.HELVETICA, 8.0F, Font.BOLD, Color.WHITE))))
PdfPCell.BackgroundColor = New Color(System.Drawing.ColorTranslator.FromHtml("#66CCFF"))
PdfTable.AddCell(PdfPCell)
Next
'Each Row Values added
For rows As Integer = 0 To dt.Rows.Count - 1
For column As Integer = 0 To dt.Columns.Count - 1
PdfTable.HeaderRows = dt.Columns.Count
PdfPCell = New PdfPCell(New Phrase(New Chunk(dt.Rows(rows)(column).ToString(), font8)))
PdfTable.AddCell(PdfPCell)
Next
Next
PdfTable.SpacingBefore = 15.0F
' Give some space after the text or it may overlap the table
doc.Add(paragraph)
' add paragraph to the document
' add pdf table to the document
doc.Add(PdfTable)
End If
Catch docEx As DocumentException
'handle pdf document exception if any
Catch ioEx As IOException
' handle IO exception
Catch ex As Exception
' ahndle other exception if occurs
Finally
'Close document and writer
doc.Close()
End Try
End Sub
Aggiungi una breve spiegazione di * cosa * fa il tuo codice, * perché * lo consiglieresti, o * come * sei arrivato alla conclusione. =) Inoltre, è pieno di codice commentato. È davvero necessario? –
OP ha richiesto una soluzione in Delphi, non in Visual Basic; anche se suppongo che egli potrebbe convertire manualmente questo (in tal caso, si prega di postare qui, grazie) – Mawg
Da $ 195, ma sembra buono. Ancora alla ricerca di una soluzione gratuita ;-) – Mawg