27
Ausführen von Ausführen von Berichten unter Berichten unter Visual FoxPro 9.0 Visual FoxPro 9.0 deutschsprachige FoxPro User deutschsprachige FoxPro User Group Group Rainer Becker Rainer Becker Microsoft Visual FoxPro 9.0 Microsoft Visual FoxPro 9.0 WebCast WebCast REP2

Ausführen von Berichten unter Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast REP2

Embed Size (px)

Citation preview

Page 1: Ausführen von Berichten unter Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast REP2

Ausführen von Berichten Ausführen von Berichten unter Visual FoxPro 9.0unter Visual FoxPro 9.0

deutschsprachige FoxPro User Groupdeutschsprachige FoxPro User Group

Rainer BeckerRainer Becker

Microsoft Visual FoxPro 9.0 WebCastMicrosoft Visual FoxPro 9.0 WebCast

REP2

Page 2: Ausführen von Berichten unter Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast REP2

Teil 6: Ausführen von BerichtenTeil 6: Ausführen von Berichten

Mittwoch, 17.8.2005, 16:00 – 17:00 UhrMittwoch, 17.8.2005, 16:00 – 17:00 Uhr Die objektorientierte Entwicklungsumgebung und relationale Die objektorientierte Entwicklungsumgebung und relationale

Datenbank Microsoft Visual FoxPro liefert seit jeher eine Datenbank Microsoft Visual FoxPro liefert seit jeher eine Vielzahl von Werkzeugen gleich mit. Besonders beliebt ist Vielzahl von Werkzeugen gleich mit. Besonders beliebt ist dabei der Berichtsgenerator, der lizenzkostenfrei an alle dabei der Berichtsgenerator, der lizenzkostenfrei an alle Anwender mitgeliefert werden darf. In der neuen Version 9.0 Anwender mitgeliefert werden darf. In der neuen Version 9.0 wurde der Berichtsgenerator grundlegend überarbeitet und wurde der Berichtsgenerator grundlegend überarbeitet und massiv erweitert. Behandelt werden die neuen Ausgabe-massiv erweitert. Behandelt werden die neuen Ausgabe-optionen und die Programmierbarkeit zur Laufzeit in optionen und die Programmierbarkeit zur Laufzeit in verschiedenen Beispielen sowie die zusätzlich mögliche verschiedenen Beispielen sowie die zusätzlich mögliche Erweiterung der Berichtsausgabe in PDF-Dateien. Erweiterung der Berichtsausgabe in PDF-Dateien.

Page 3: Ausführen von Berichten unter Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast REP2

Rainer BeckerRainer Becker

dFPUGdFPUG Online-AngeboteOnline-Angebote LoseblattsammlungLoseblattsammlung

VFP-EntwicklerkonferenzVFP-Entwicklerkonferenz VFP-LokalisierungVFP-Lokalisierung Framework Visual ExtendFramework Visual Extend MVP, MCP, ISVMVP, MCP, ISV Wizards & Builders GmbHWizards & Builders GmbH

Page 4: Ausführen von Berichten unter Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast REP2

Wie bekomme ich VFP ?Wie bekomme ich VFP ?

Update von 6.0, 7.0, 8.0 sowie VS 97Update von 6.0, 7.0, 8.0 sowie VS 97 Nicht von VFP 5.0 oder früherNicht von VFP 5.0 oder früher

Internationale und US/Canada-VersionInternationale und US/Canada-Version Preisunterschied durch DollarverfallPreisunterschied durch Dollarverfall Technisch identischTechnisch identisch Kein Support / Marketingbudget für US-Version in BRDKein Support / Marketingbudget für US-Version in BRD

dFPUG bietet exklusiv „Deutsche Version“dFPUG bietet exklusiv „Deutsche Version“ Benutzeroberfläche, Berichtsdesigner, WerkzeugeBenutzeroberfläche, Berichtsdesigner, Werkzeuge

Page 5: Ausführen von Berichten unter Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast REP2

VortragsthemenVortragsthemen Erweiterbarkeit von BerichtenErweiterbarkeit von Berichten

zur Laufzeit mit sogenanntenzur Laufzeit mit sogenanntenReportlistenern (Demos)Reportlistenern (Demos)

PDF-AusgabePDF-Ausgabe Erweiterbarkeit von BerichtenErweiterbarkeit von Berichten

zur Designzeit (Übersicht)zur Designzeit (Übersicht)

Vorwarnung:Vorwarnung: Reportlistener-Klassen sind komplex!Reportlistener-Klassen sind komplex! Designer-Anpassungen noch komplexer!Designer-Anpassungen noch komplexer!

Page 6: Ausführen von Berichten unter Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast REP2

Ein bißchen Theorie vorwegEin bißchen Theorie vorweg

In VFP 8.0 und früher übernahm der eingebaute In VFP 8.0 und früher übernahm der eingebaute Listengenerator monolitisch die FunktionalitätListengenerator monolitisch die Funktionalität

Ab VFP 9.0 wird die Funktionalität aufgeteilt Ab VFP 9.0 wird die Funktionalität aufgeteilt zwischen der Reportengine und einer weiteren Klassezwischen der Reportengine und einer weiteren Klasse

Die Klasse wird instanziiert und beim Berichtsaufruf Die Klasse wird instanziiert und beim Berichtsaufruf mit übergeben – und kann dabei verkettet werdenmit übergeben – und kann dabei verkettet werden

Diese sogenannten Reportlistener kann man Diese sogenannten Reportlistener kann man subclassen und bestehende Methoden überschreiben subclassen und bestehende Methoden überschreiben – und damit die Ausgabe korrigieren/ergänzen usw.!– und damit die Ausgabe korrigieren/ergänzen usw.!

Page 7: Ausführen von Berichten unter Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast REP2

SubclassedReportListener

Report Engine 8.0

Report Engine 9.0

ReportListener Class

Events (Before/After Band, Render, EvaluateContents, etc)

Handles Everything:DataObject PositioningRenderingPrintingPreviewing

Handles:DataObject Positioning

Handles:RenderingPrintingCustom Previewing

Handles:New Output Types:XML/HTMLCompresses TIFFCustom GDI+ drawingUser defined

REPORT FORM foo.frx PREVIEWREPORT FORM foo.frx TO PRINTER NOCONSOLEREPORT FORM foo.frx OBJECT oRListener

Report Engine Architecture Overview

Page 8: Ausführen von Berichten unter Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast REP2

Übergabe des ListenerobjektesÜbergabe des Listenerobjektes

Aufruf mit selbst erzeugtem Listenerobjekt:Aufruf mit selbst erzeugtem Listenerobjekt: oReportlistener = createobject(„MyReportListener“…)oReportlistener = createobject(„MyReportListener“…) REPORT FORM ? OBJECT oReportlistenerREPORT FORM ? OBJECT oReportlistener

Vereinfachter Aufruf für mitgelieferte ListenerVereinfachter Aufruf für mitgelieferte Listener REPORT FORM ? OBJECT TYPE <n>REPORT FORM ? OBJECT TYPE <n> 0=Preview, 1=Print, 4=XML, 5=HTML, -2=Debugger0=Preview, 1=Print, 4=XML, 5=HTML, -2=Debugger

Alte Optionen werden entsprechend umgesetztAlte Optionen werden entsprechend umgesetzt PREVIEW => 0, TO PRINTER => 1PREVIEW => 0, TO PRINTER => 1

Page 9: Ausführen von Berichten unter Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast REP2

DEMO Listener (1)DEMO Listener (1)

Before/After Report/Band (introlistener)Before/After Report/Band (introlistener) Farbeinstellungen für Elemente (evaluatecontents)Farbeinstellungen für Elemente (evaluatecontents)

Schriftgrad ändern mit GDI (rotatedcontrols)Schriftgrad ändern mit GDI (rotatedcontrols) Kreisdiagramme mit GDI (customcontrol)Kreisdiagramme mit GDI (customcontrol)

komplexere Version unter Solution Samples verfügbarkomplexere Version unter Solution Samples verfügbar Hinweise zu GDI-Funktionen (foxgdiplus/FFC)Hinweise zu GDI-Funktionen (foxgdiplus/FFC)

Page 10: Ausführen von Berichten unter Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast REP2

Class that usesReportPreview API

GDI+EMF Pages

stored in memory

ReportListener Class

ReportListenerObject Factory:_ReportOutput

Report Engine 9.0

Engine Events

Engine Driven Events:Load/UnloadReport()Before/AfterReport()Before/AfterBand()

Object Events:EvaluateContents()AdjustObjectSize()Render()

XBase PreviewObject Factory:_ReportPreview

Listener called by Preview:OutputPage()OnPreviewClose()GetPageHeight()GetPageWidth()

Preview called by Listener:SetReport()Show()Hide()

Preview ExampleRun the report, and generate the pages

2

Page 11: Ausführen von Berichten unter Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast REP2

DEMO Listener (2)DEMO Listener (2)

Verknüpfung von Listenern (successor)Verknüpfung von Listenern (successor) Achtung: Weiterleitung der Aufrufe notwendig!Achtung: Weiterleitung der Aufrufe notwendig!

Highlight: DynamicFormatting-Listener (Solution)Highlight: DynamicFormatting-Listener (Solution) Optimale generische Lösung für Userdata-Verwendung!Optimale generische Lösung für Userdata-Verwendung!

Page 12: Ausführen von Berichten unter Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast REP2

PDF-Ausgabe in VFP9PDF-Ausgabe in VFP9

Eine Reportlistener-Klasse von Lisa Slater Eine Reportlistener-Klasse von Lisa Slater Nichols für die PDF-Ausgabe in VFP 9.0Nichols für die PDF-Ausgabe in VFP 9.0

Page 13: Ausführen von Berichten unter Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast REP2

PDF-AusgabePDF-Ausgabe

Umfangreicher Artikel von Lisa Slater NichollsUmfangreicher Artikel von Lisa Slater Nicholls Einfachste Handhabung in eigener ApplikationEinfachste Handhabung in eigener Applikation Kurzvorführung Beispielaufruf PDF-ErstellungKurzvorführung Beispielaufruf PDF-Erstellung Kurze Erläuterung der technischen HintergründeKurze Erläuterung der technischen Hintergründe

Page 14: Ausführen von Berichten unter Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast REP2

Installation PDF-TreiberInstallation PDF-Treiber

Page 15: Ausführen von Berichten unter Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast REP2

DruckertreiberDruckertreiber

Page 16: Ausführen von Berichten unter Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast REP2

VerzeichnisVerzeichnis

Page 17: Ausführen von Berichten unter Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast REP2

Programmierung im Programmierung im Berichts-DesignerBerichts-Designer

Einführung für fortgeschrittene Einführung für fortgeschrittene Berichtsentwickler unter VFP 9.0Berichtsentwickler unter VFP 9.0

Page 18: Ausführen von Berichten unter Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast REP2

Report Designer EreignisseReport Designer EreignisseReport

Designer

(_REPORTBUILDER)Builderaufruf:

Anlage Datasession

frxPuffer für Layout

Tabelle

Parameter:1. returnFlags2. eventType3. commandClauses4. designerSessionId

Satzpointer setzen

Bericht/Etikett

lesen & updaten

Wechsel der Data-session falls notwendig

Page 19: Ausführen von Berichten unter Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast REP2

Aufruffolge in WortenAufruffolge in Worten

Reportdesigner erzeugt private Datasession und Reportdesigner erzeugt private Datasession und kopiert eine temporäre FRX-Version hineinkopiert eine temporäre FRX-Version hinein

Bei 19 verschiedenen Ereignisse im Report Designer Bei 19 verschiedenen Ereignisse im Report Designer ruft dieser die Systemvariable (_REPORTBUILDER) ruft dieser die Systemvariable (_REPORTBUILDER) auf und übergibt 4 Parameterauf und übergibt 4 Parameter

2 Werte werden wieder zurückgegeben und steuern 2 Werte werden wieder zurückgegeben und steuern das weitere Verhalten des Reportdesignersdas weitere Verhalten des Reportdesigners

Page 20: Ausführen von Berichten unter Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast REP2

Reportbuilder FrameworkReportbuilder Framework

Zusätzlich hat der Reportbuilder eine interne Lookuptabelle Zusätzlich hat der Reportbuilder eine interne Lookuptabelle zum Verbinden von Klassen mit Designer-Ereignissenzum Verbinden von Klassen mit Designer-Ereignissen

Stattdessen kann eine eigene externe Tabelle mit eigenen Stattdessen kann eine eigene externe Tabelle mit eigenen Klassen verwendet werden (leere Version rauskopierbar)Klassen verwendet werden (leere Version rauskopierbar)

Jede Klasse erhält ein Ereignisobject mit EigenschaftenJede Klasse erhält ein Ereignisobject mit Eigenschaften Es können Filter- oder Handler-Klassen sein wie folgt:Es können Filter- oder Handler-Klassen sein wie folgt:

Handler

Execute( oEvent )

FilterallowToContinue

Execute( oEvent )

Page 21: Ausführen von Berichten unter Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast REP2

Handler und FilterHandler und Filter

Filters (Filters (FF):): Werden in Reihenfolge zuerst abgearbeitetWerden in Reihenfolge zuerst abgearbeitet Setzen RückgabeflagSetzen Rückgabeflag Können den Vorgang abbrechen und zum Designer Können den Vorgang abbrechen und zum Designer

zurückkehrenzurückkehren

Handlers (Handlers (HH):): Werden für Ereignisse/Objekte angemeldetWerden für Ereignisse/Objekte angemeldet Zuordnung jeweils nur einmalig möglich (nur einer…) Zuordnung jeweils nur einmalig möglich (nur einer…)

Exit Handlers (Exit Handlers (XX):): Werden zum Abschluss aufgerufenWerden zum Abschluss aufgerufen

Page 22: Ausführen von Berichten unter Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast REP2

Nachtrag: DirektaufrufNachtrag: Direktaufruf

DO (_REPORTBUILDER) WITH ...DO (_REPORTBUILDER) WITH ...

Optionendialog: Optionendialog: [1][1]

Browse von FRX-Datei:Browse von FRX-Datei: 2 [, cFileName]2 [, cFileName]

Festlegung Lookuptabelle:Festlegung Lookuptabelle: 3 [, cRegFile]3 [, cRegFile]

Aufrufmodus einstellen:Aufrufmodus einstellen: 4 , iMode4 , iMode

Interne Lookuptabelle:Interne Lookuptabelle: 5 , cTableToCreate5 , cTableToCreate

Eintragung unter Extras:Eintragung unter Extras: 66

Page 23: Ausführen von Berichten unter Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast REP2

Online-QuerverweiseOnline-Querverweise

06-22 Berichtstoolbars (gilt nur bis VFP 8.0)06-22 Berichtstoolbars (gilt nur bis VFP 8.0) 11-01-08 Reportbehavior9011-01-08 Reportbehavior90 05-23 Der Report Writer von Visual FoxPro 905-23 Der Report Writer von Visual FoxPro 9 05-24 Was ist neu im Berichtsgenerator05-24 Was ist neu im Berichtsgenerator Neu: PDF – Power to the PeopleNeu: PDF – Power to the People

Von Lisa Slater NichollsVon Lisa Slater Nicholls Ergänzungen zum Buchtitel Reportwriter für 8&9Ergänzungen zum Buchtitel Reportwriter für 8&9 Alle Beiträge sind im dFPUG-Portal verfügbarAlle Beiträge sind im dFPUG-Portal verfügbar

Page 24: Ausführen von Berichten unter Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast REP2

Weiterführendes MaterialWeiterführendes Material

Visual FoxPro 9.0Visual FoxPro 9.0 Updatebuch (3 Report-Kapitel)Updatebuch (3 Report-Kapitel) Roadshow-CDRoadshow-CD Lokalisierungs-CDLokalisierungs-CD

Visual FoxPro 8.0Visual FoxPro 8.0 UpdatebuchUpdatebuch Deutsche HilfedateiDeutsche Hilfedatei

Online-Angebote der dFPUGOnline-Angebote der dFPUG Forum, Portal, eNewsletter, Homepage, WikiForum, Portal, eNewsletter, Homepage, Wiki

Page 25: Ausführen von Berichten unter Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast REP2

Teil 7: Arbeiten mit FormularenTeil 7: Arbeiten mit Formularen

Mittwoch, 14.9.2005, 16:00 – 17:00 UhrMittwoch, 14.9.2005, 16:00 – 17:00 Uhr Beschreibung: Mit dem Formulardesigner der Beschreibung: Mit dem Formulardesigner der

objektorientierten Entwicklungsumgebung Microsoft objektorientierten Entwicklungsumgebung Microsoft Visual FoxPro kann man problemlos auch Visual FoxPro kann man problemlos auch komplexeste Formulare für Datenbankanwendungen komplexeste Formulare für Datenbankanwendungen erstellen. In der neuen Version wurde nicht nur das erstellen. In der neuen Version wurde nicht nur das Eigenschaftsfenster und IntelliSense wesentlich Eigenschaftsfenster und IntelliSense wesentlich erweitert, sondern es werden auch eine Vielzahl neuer erweitert, sondern es werden auch eine Vielzahl neuer Möglichkeiten im Bereich der grafischen Ausgabe Möglichkeiten im Bereich der grafischen Ausgabe zur Verfügung gestellt.zur Verfügung gestellt.. .

Page 26: Ausführen von Berichten unter Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast REP2

Teil 8: Arbeiten mit WerkzeugenTeil 8: Arbeiten mit Werkzeugen

Mittwoch, 21.9.2005, 16:00 – 17:00 UhrMittwoch, 21.9.2005, 16:00 – 17:00 Uhr Beschreibung: In diesem Webcast stellen wir Ihnen Beschreibung: In diesem Webcast stellen wir Ihnen

einige der umfangreichen und leistungsfähigen einige der umfangreichen und leistungsfähigen Werkzeuge von Visual FoxPro vor. In der neuen Werkzeuge von Visual FoxPro vor. In der neuen Version hinzugekommene oder erweiterte Werkzeuge Version hinzugekommene oder erweiterte Werkzeuge wie zum Beispiel den Klassenbrowser und die wie zum Beispiel den Klassenbrowser und die Taskpane oder auch bereits bekannte leistungsfähige Taskpane oder auch bereits bekannte leistungsfähige Werkzeuge wie die Taskliste, die Codereferenz und Werkzeuge wie die Taskliste, die Codereferenz und weitere Tools. weitere Tools.

Page 27: Ausführen von Berichten unter Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast REP2

Vielen Dank!Vielen Dank!

Fragen an [email protected] an [email protected] besser http://forum.dfpug.de oder besser http://forum.dfpug.de

Besuchen Sie unsere Webseiten: Besuchen Sie unsere Webseiten: http://www.dfpug.dehttp://www.dfpug.de, , http://portal.dfpug.dehttp://portal.dfpug.de, , http://forum.dfpug.dehttp://forum.dfpug.de, ,

http://newsletter.dfpug.dehttp://newsletter.dfpug.de, , http://devcon.dfpug.dehttp://devcon.dfpug.de, , http://roadshow.dfpug.de, http://www.visualextend.de, http://roadshow.dfpug.de, http://www.visualextend.de,

http://www.linuxtransfer.de, http://www.visualfoxpro.de http://www.linuxtransfer.de, http://www.visualfoxpro.de