Afdrukken met Visual Basic 2008

Preview:

DESCRIPTION

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 - PowerPoint PPT Presentation

Citation preview

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

• Vrij afdrukken– PrintDocument, PrintPreviewDialog, PageSetupDialog

• Printers en printerinstellingen– PrinterSettings, standaard printer

• Afdrukken van lijsten (database)– Microsoft.Reporting, LocalReport, ReportViewer, ..

• Visual Basic 6– Printer, PrintForm

Agenda

PrintDocument

• PrintDocument class. Belangrijke methoden, properties en events zijn:

• Methoden- Print()

• Eigenschappen- DefaultPageSettings, DocumentName, PrinterSettings

• Events- BeginPrint(), EndPrint(), PrintPage(), QueryPageSettings()

Events PrintDocument

Volgorde Event Omschrijving

1 BeginPrint() Gebruik dit event om eventuele datastructuren op te bouwen of verbindingen naar een database te leggen.

2 QueryPageSettings()

Gebruik dit event om eventuele pagina-instellingen te wijzigen. Denk hierbij aan marges of bijvoorbeeld de afdrukstand.

3 PrintPage() Gebruik dit event om de feitelijke afdrukcode in te plaatsen. Wanneer dit event geen code bevat, zal er ook niets worden afgedrukt.

4 EndPrint() Gebruik dit event om gebruikte variabelen op te ruimen en eventuele verbindingen naar database(s) netjes af te sluiten.

PrintPage() event

Private WithEvents _PrintDocument As New PrintDocument

Private Sub _PrintDocument_PrintPage(ByVal sender As 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() Handles PrintButton.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

• Gebruik PageSetupDialog• 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

• Gebruik PrintDialog• 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 PrintForm class

• 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…• Business Objects Crystal Reports• DataDynamics ActiveReports• DevExpress XtraReports• Telerik Reporting

Demo

DataDynamics ActiveReports 3.0 Professional

(Indien nog wat tijd over…)

Bedankt voor uw aandacht!

andre@obelink.com

Vragen?

Recommended