22
Afdrukken met Visual Basic 2008 André Obelink www.maryor.nl | www.obelink.com

Afdrukken met Visual Basic 2008

  • Upload
    milica

  • View
    44

  • Download
    0

Embed Size (px)

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

Page 1: Afdrukken met Visual Basic 2008

Afdrukken met Visual Basic 2008

André Obelink

www.maryor.nl | www.obelink.com

Page 2: Afdrukken met Visual Basic 2008

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

Page 3: Afdrukken met Visual Basic 2008

• 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

Page 4: Afdrukken met Visual Basic 2008

PrintDocument

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

• Methoden- Print()

• Eigenschappen- DefaultPageSettings, DocumentName, PrinterSettings

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

Page 5: Afdrukken met Visual Basic 2008

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.

Page 6: Afdrukken met Visual Basic 2008

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

Page 7: Afdrukken met Visual Basic 2008

Demo

PrintDocument en PrintPreviewDialog

Page 8: Afdrukken met Visual Basic 2008

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

Page 9: Afdrukken met Visual Basic 2008

Demo

Afdrukken meerdere pagina’s

Page 10: Afdrukken met Visual Basic 2008

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

Page 11: Afdrukken met Visual Basic 2008

Demo

PageSetupDialog

Page 12: Afdrukken met Visual Basic 2008

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

Page 13: Afdrukken met Visual Basic 2008

Demo

PrintDialog

Page 14: Afdrukken met Visual Basic 2008

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()

Page 15: Afdrukken met Visual Basic 2008

Code

Microsoft.VisualBasic.PowerPacks.Printing.Compatibility.VB6.Printer

Page 16: Afdrukken met Visual Basic 2008

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

Page 17: Afdrukken met Visual Basic 2008

Demo

PrintForm

Page 18: Afdrukken met Visual Basic 2008

Report

• Namespace Microsoft.Reporting• Microsoft.Reporting.WinForms• Microsoft.Reporting.WebForms

• LocalReport (.rdlc) en ServerReport• Met name gericht op database reporting

Page 19: Afdrukken met Visual Basic 2008

Demo

Microsoft.Reporting

Page 20: Afdrukken met Visual Basic 2008

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

Page 21: Afdrukken met Visual Basic 2008

Demo

DataDynamics ActiveReports 3.0 Professional

(Indien nog wat tijd over…)

Page 22: Afdrukken met Visual Basic 2008

Bedankt voor uw aandacht!

[email protected]

Vragen?