220 likes | 376 Views
Afdrukken met Visual Basic 2008. André Obelink www.maryor.nl | www.obelink.com. Over mezelf…. MarYor | software & consultancy Auteur van artikelen en boeken Geschreven voor Microsoft .NET Magazine, PC Active, MSDN Magazine Europe, SDN Magazine, VB Magazine
E N D
Afdrukken met Visual Basic 2008 André Obelink www.maryor.nl | www.obelink.com
Over mezelf… • MarYor | software & consultancy • Auteur van artikelen en boeken • Geschreven voor Microsoft .NET Magazine, PC Active,MSDN Magazine Europe, SDN Magazine, VB Magazine • Boek: Visual Basic 2005 – de Basis (9/2006) • Boek: Visual Basic Kookboek (3/2008) • Boek: Visual Basic 2008 – de Basis (8/2008) • Boek: C# Kookboek (co-auteur, verwacht maart 2009) • Actief binnen de ontwikkelaarsgemeenschap • Sinds 2006 Microsoft MVP voor Visual Basic
Agenda • Vrijafdrukken • PrintDocument, PrintPreviewDialog, PageSetupDialog • Printers en printerinstellingen • PrinterSettings, standaard printer • Afdrukken van lijsten (database) • Microsoft.Reporting, LocalReport, ReportViewer, .. • Visual Basic 6 • Printer, PrintForm
PrintDocument • PrintDocumentclass. Belangrijke methoden,properties en events zijn: • Methoden- Print() • Eigenschappen- DefaultPageSettings, DocumentName, PrinterSettings • Events- BeginPrint(), EndPrint(), PrintPage(), QueryPageSettings()
PrintPage() event Private WithEvents_PrintDocumentAs New PrintDocument Private Sub _PrintDocument_PrintPage(ByValsenderAs Object, _ ByVal e As PrintPageEventArgs) _ Handles _PrintDocument.PrintPage Dim lettertype As New Font("Arial", 24) e.Graphics.DrawString("Hallo!", lettertype, Brushes.Black, 100, 100) End Sub Private Sub PrintButton_Click() HandlesPrintButton.Click _PrintDocument.Print() End Sub
Demo PrintDocument en PrintPreviewDialog
Afdrukken over meerdere pagina’s • Vang het PrintPage() event af • Bereken hoe groot het printbare gebied is • hou rekening met afdrukstand, marges… • Bereken hoeveel karakters er in passen • gebruik hiervoor de methode e.Graphics.MeasureString() • Print het bewuste aantal karakters • Indien nog niet alle karakters geprint zijn… stel de eigenschap e.HasMorePages in op True PrintPage() • Doorloop alle stappen tot alle tekst afgedrukt is
Demo Afdrukken meerdere pagina’s
Pagina-instellingen • GebruikPageSetupDialog • Stel eigenschap PageSetupDialog.PageSettings in op de huidige pagina-instellingen van het PrintDocument • Toon het dialoogkader • Stel eigenschap PrintDocument.DefaultPageSettings in op PageSetupDialog.PageSettings
Demo PageSetupDialog
Printerinstellingen • GebruikPrintDialog • Stel eigenschap PrintDialog.Document in op het PrintDocument dat geprint moet worden • Toon het dialoogkader • Indien de gebruiker op OK heeft geklikt, roep de PrintDocument.Print() methode aan
Demo PrintDialog
VB6 – Printer.Print() • Voor backwards compatibiliteit met VB6 is er een alternatief – Printer object • Microsoft Visual Basic PowerPacks • Gebruik weer methoden en eigenschappen als: • Print() • CurrentX en CurrentY • Circle() • EndDoc()
Code Microsoft.VisualBasic.PowerPacks.Printing.Compatibility.VB6.Printer
PrintForm • Een andere oude bekende uit het VB6 tijdperk: de PrintFormclass • Microsoft Visual Basic PowerPacks • Handig voor een 1:1 dump van een formulier • Stel eigenschappen in zoals: • DocumentName • Form • PrintAction • Roep methode Print() aan
Demo PrintForm
Report • Namespace Microsoft.Reporting • Microsoft.Reporting.WinForms • Microsoft.Reporting.WebForms • LocalReport (.rdlc) en ServerReport • Met name gericht op database reporting
Demo Microsoft.Reporting
Alternatieven • Afdrukken met standaard Visual Basic is sterk verbeterd, maar voor veel projecten minder geschikt… • BusinessObjectsCrystal Reports • DataDynamicsActiveReports • DevExpressXtraReports • TelerikReporting
(Indiennog wat tijd over…) Demo DataDynamicsActiveReports 3.0 Professional
Vragen? Bedankt voor uw aandacht! andre@obelink.com