Ausführen von Berichten unter Visual FoxPro 9.0 REP2 Ausführen von Berichten unter Visual FoxPro 9.0 deutschsprachige FoxPro User Group Rainer Becker Microsoft Visual FoxPro 9.0 WebCast
Teil 6: Ausführen von Berichten Mittwoch, 17.8.2005, 16:00 – 17:00 Uhr Die objektorientierte Entwicklungsumgebung und relationale Datenbank Microsoft Visual FoxPro liefert seit jeher eine Vielzahl von Werkzeugen gleich mit. Besonders beliebt ist dabei der Berichtsgenerator, der lizenzkostenfrei an alle Anwender mitgeliefert werden darf. In der neuen Version 9.0 wurde der Berichtsgenerator grundlegend überarbeitet und massiv erweitert. Behandelt werden die neuen Ausgabe-optionen und die Programmierbarkeit zur Laufzeit in verschiedenen Beispielen sowie die zusätzlich mögliche Erweiterung der Berichtsausgabe in PDF-Dateien.
Rainer Becker dFPUG VFP-Entwicklerkonferenz VFP-Lokalisierung Online-Angebote Loseblattsammlung VFP-Entwicklerkonferenz VFP-Lokalisierung Framework Visual Extend MVP, MCP, ISV Wizards & Builders GmbH
Wie bekomme ich VFP ? Update von 6.0, 7.0, 8.0 sowie VS 97 Nicht von VFP 5.0 oder früher Internationale und US/Canada-Version Preisunterschied durch Dollarverfall Technisch identisch Kein Support / Marketingbudget für US-Version in BRD dFPUG bietet exklusiv „Deutsche Version“ Benutzeroberfläche, Berichtsdesigner, Werkzeuge
Vortragsthemen Erweiterbarkeit von Berichten zur Laufzeit mit sogenannten Reportlistenern (Demos) PDF-Ausgabe Erweiterbarkeit von Berichten zur Designzeit (Übersicht) Vorwarnung: Reportlistener-Klassen sind komplex! Designer-Anpassungen noch komplexer!
Ein bißchen Theorie vorweg In VFP 8.0 und früher übernahm der eingebaute Listengenerator monolitisch die Funktionalität Ab VFP 9.0 wird die Funktionalität aufgeteilt zwischen der Reportengine und einer weiteren Klasse Die Klasse wird instanziiert und beim Berichtsaufruf mit übergeben – und kann dabei verkettet werden Diese sogenannten Reportlistener kann man subclassen und bestehende Methoden überschreiben – und damit die Ausgabe korrigieren/ergänzen usw.!
Übergabe des Listenerobjektes Aufruf mit selbst erzeugtem Listenerobjekt: oReportlistener = createobject(„MyReportListener“…) REPORT FORM ? OBJECT oReportlistener Vereinfachter Aufruf für mitgelieferte Listener REPORT FORM ? OBJECT TYPE <n> 0=Preview, 1=Print, 4=XML, 5=HTML, -2=Debugger Alte Optionen werden entsprechend umgesetzt PREVIEW => 0, TO PRINTER => 1
DEMO Listener (1) Before/After Report/Band (introlistener) Farbeinstellungen für Elemente (evaluatecontents) Schriftgrad ändern mit GDI (rotatedcontrols) Kreisdiagramme mit GDI (customcontrol) komplexere Version unter Solution Samples verfügbar Hinweise zu GDI-Funktionen (foxgdiplus/FFC)
DEMO Listener (2) Verknüpfung von Listenern (successor) Achtung: Weiterleitung der Aufrufe notwendig! Highlight: DynamicFormatting-Listener (Solution) Optimale generische Lösung für Userdata-Verwendung!
PDF-Ausgabe in VFP9 Eine Reportlistener-Klasse von Lisa Slater Nichols für die PDF-Ausgabe in VFP 9.0
PDF-Ausgabe Umfangreicher Artikel von Lisa Slater Nicholls Einfachste Handhabung in eigener Applikation Kurzvorführung Beispielaufruf PDF-Erstellung Kurze Erläuterung der technischen Hintergründe
Installation PDF-Treiber
Druckertreiber
Verzeichnis
Programmierung im Berichts-Designer Einführung für fortgeschrittene Berichtsentwickler unter VFP 9.0
Report Designer Ereignisse Anlage Datasession Report Designer Puffer für Layout frx Satzpointer setzen lesen & updaten Bericht/Etikett Builderaufruf: (_REPORTBUILDER) Parameter: 1. returnFlags 2. eventType 3. commandClauses 4. designerSessionId Tabelle Wechsel der Data-session falls notwendig
Aufruffolge in Worten Reportdesigner erzeugt private Datasession und kopiert eine temporäre FRX-Version hinein Bei 19 verschiedenen Ereignisse im Report Designer ruft dieser die Systemvariable (_REPORTBUILDER) auf und übergibt 4 Parameter 2 Werte werden wieder zurückgegeben und steuern das weitere Verhalten des Reportdesigners
Reportbuilder Framework Zusätzlich hat der Reportbuilder eine interne Lookuptabelle zum Verbinden von Klassen mit Designer-Ereignissen Stattdessen kann eine eigene externe Tabelle mit eigenen Klassen verwendet werden (leere Version rauskopierbar) Jede Klasse erhält ein Ereignisobject mit Eigenschaften Es können Filter- oder Handler-Klassen sein wie folgt: Filter allowToContinue Execute( oEvent ) Handler Execute( oEvent )
Handler und Filter Filters (F): Handlers (H): Exit Handlers (X): Werden in Reihenfolge zuerst abgearbeitet Setzen Rückgabeflag Können den Vorgang abbrechen und zum Designer zurückkehren Handlers (H): Werden für Ereignisse/Objekte angemeldet Zuordnung jeweils nur einmalig möglich (nur einer…) Exit Handlers (X): Werden zum Abschluss aufgerufen
Nachtrag: Direktaufruf DO (_REPORTBUILDER) WITH ... Optionendialog: [1] Browse von FRX-Datei: 2 [, cFileName] Festlegung Lookuptabelle: 3 [, cRegFile] Aufrufmodus einstellen: 4 , iMode Interne Lookuptabelle: 5 , cTableToCreate Eintragung unter Extras: 6
Online-Querverweise 06-22 Berichtstoolbars (gilt nur bis VFP 8.0) 11-01-08 Reportbehavior90 05-23 Der Report Writer von Visual FoxPro 9 05-24 Was ist neu im Berichtsgenerator Neu: PDF – Power to the People Von Lisa Slater Nicholls Ergänzungen zum Buchtitel Reportwriter für 8&9 Alle Beiträge sind im dFPUG-Portal verfügbar
Weiterführendes Material Visual FoxPro 9.0 Updatebuch (3 Report-Kapitel) Roadshow-CD Lokalisierungs-CD Visual FoxPro 8.0 Updatebuch Deutsche Hilfedatei Online-Angebote der dFPUG Forum, Portal, eNewsletter, Homepage, Wiki
Teil 7: Arbeiten mit Formularen Mittwoch, 14.9.2005, 16:00 – 17:00 Uhr Beschreibung: Mit dem Formulardesigner der objektorientierten Entwicklungsumgebung Microsoft Visual FoxPro kann man problemlos auch komplexeste Formulare für Datenbankanwendungen erstellen. In der neuen Version wurde nicht nur das Eigenschaftsfenster und IntelliSense wesentlich erweitert, sondern es werden auch eine Vielzahl neuer Möglichkeiten im Bereich der grafischen Ausgabe zur Verfügung gestellt..
Teil 8: Arbeiten mit Werkzeugen Mittwoch, 21.9.2005, 16:00 – 17:00 Uhr Beschreibung: In diesem Webcast stellen wir Ihnen einige der umfangreichen und leistungsfähigen Werkzeuge von Visual FoxPro vor. In der neuen Version hinzugekommene oder erweiterte Werkzeuge wie zum Beispiel den Klassenbrowser und die Taskpane oder auch bereits bekannte leistungsfähige Werkzeuge wie die Taskliste, die Codereferenz und weitere Tools.
Fragen an hotline@dfpug.de oder besser http://forum.dfpug.de Vielen Dank! Fragen an hotline@dfpug.de oder besser http://forum.dfpug.de Besuchen Sie unsere Webseiten: http://www.dfpug.de, http://portal.dfpug.de, http://forum.dfpug.de, http://newsletter.dfpug.de, http://devcon.dfpug.de, http://roadshow.dfpug.de, http://www.visualextend.de, http://www.linuxtransfer.de, http://www.visualfoxpro.de