Session V-FIRE

FoxFire!

Holger Vorberg
ProLib Software GmbH


Inhalt

FoxFire! ist ein Werkzeug zum Erzeugen von Abfragen und Berichten. Es ermöglicht die rasche Gestaltung von Berichten und Abfragen zu einem Datenbanksystem.

FoxFire! kann an eine Datenbank angepasst werden, indem man Informationen über diese Datenbank in einem Data-Dictionary speichert. Dadurch ist FoxFire! in der Lage, präzise das gewünschte Resultat zu liefern, ohne dass der Benutzer sich um komplizierte Prozeduren oder um wiederholte Angabe von Details in großem Umfang kümmern muss.

Somit ist FoxFire! ein ausgezeichnetes Werkzeug für Entwickler, die die Endanwender ihrer Applikationen in die Lage versetzen wollen, sich ihre Berichte selbst zu gestalten bzw. erzeugen zu können.

Der Setup-Assistent

Wir starten mit dem Erzeugen eines Data-Dictionaries für unsere Datenbank und setzen dafür den FoxFire! Setup-Assistenten ein.

Der Setup-Assistent ermöglicht uns einen schnellen Einstieg in FoxFire!, in dem er uns mit vier Schritten durch die Integration unserer Datenbank in FoxFire! führt.

 

 

Eine neue Abfrage

 
Nach dem erfolgreichen Anlegen eines neuen Preferenz-Setup’s, gelangt man in den Abfrage-Manager, von wo aus neue Abfragen erzeugt, und vorhandene Abfragen modifiziert oder ausgeführt werden können.

Ein Click auf den "Neu..." Button öffnet den Abfrageeditor.

Wir geben der Abfrage den Namen KDLIST und legen als Be­schreibung den Begriff "Kundenliste" fest.

Die Beschreibung wird sogleich als Überschrift im Bericht festgelegt.

Danach rufen wir über die Schaltfläche "Daten­felder..." den Datenfeld-Dialog auf.

Im Datenfeld-Dialog be­kommen wir mit der linken Auswahlliste alle Felder angezeigt, die in das Datadictionary aufgenommen wurden.

Mit Doppelclick wählen wir die Felder aus, die in diesem Bericht erscheinen sollen. Sie werden anschließend in der Reihenfolge ihrer Anordnung in der "Gewählt" Liste, im Bericht platziert.

 
Im Sort & Group Dialog legen wir noch eine Sortierfolge fest, in der die Datensätze auf dem Bericht erscheinen sollen.

Wir speichern diese neue Abfrage und gelangen wieder in den Abfrage-Manager von FoxFire!

 

 

Im Abfrage-Manager sehen wir nun die neue Abfrage und können sie von hier aus starten. Der "Start" Button hat zu Beginn die gleiche Funktionalität wie der "Vorschau" Button, es wird ein Preview des Berichtes auf dem Bildschirm angezeigt. Die Optionen zur Ausgabe des Berichtes können selbstverständlich angepasst werden. So stehen z. B. als Ausgabeziel zur Verfügung: Drucker (mit oder ohne PROMPT), Datei (ASCII Text, .DBF, .XLS oder sogar HTML) und direkte Übergabe nach Excel oder MS Graph. Diese Optionen sind keine allgemein gültigen Einstellungen, sondern sie müssen bzw. können für jede Abfrage individuell eingestellt werden.

Die von FoxFire! erzeugten Berichte werden im Normalfall nicht als Report Datei ( .FRX) auf der Festplatte gespeichert. Zur Ausführungszeit werden ein Report-Template und die gespeicherten Meta-Daten der Abfrage herangezogen und "on the fly" zu einem Report zusammengesetzt.

Somit gibt es die Möglichkeit, individuelle Anpassungen, die in allen Berichten gelten sollen, nur an einer Stelle machen zu müssen. Möchten wir zum Beispiel, dass auf allen Berichten ein Firmenlogo im Seitenkopf erscheint, dann muss dieses Logo lediglich im entsprechenden Report Template von FoxFire! eingefügt werden. Anschließend werden alle Berichte, die auf diesem Template aufbauen, mit dem Logo ausgegeben.

Mehr Komfort durch Stapeldateien

Häufig kommt es in Unternehmen vor, dass es zu bestimmten Zeiten eine ganze Reihe von Druckvorgängen zu bewältigen gibt. Man denke da an Monatsabschlüsse, Saldenlisten, Inventurlisten usw.

Auf Dauer wird es aber immer lästig sein, ständig wiederkehrende Vorgänge Schritt für Schritt durchgehen zu müssen und auch noch darauf zu achten, dass kein Schritt vergessen wird.

Für solche Anforderungen bietet FoxFire! ein elegantes, und einfaches Werkzeug: Die Stapeldatei. Und zur Bearbeitung dieser, den Stapeldateigenerator.

 

 
Im Stapeldateigenerator haben wir die Möglich­keit, mehrere Abfragen zu einem Vorgang zusammen zu fassen und diese anschließend mit einem Befehl aus­führen zu lassen. Die Stapeldateien können gespeichert werden und können immer wieder zur Ausführung heran­gezogen werden.

 

FoxFire! automatisiert

 

Sicherlich ist es nicht immer sinnvoll, dem Endanwender die ganze Kontrolle über FoxFire! und dessen Möglichkeiten zu geben. Hier bietet FoxFire! Abhilfe, in dem es sich über Kommandozeilen-Parameter oder über eine "Batch" Datei steuern lässt.

Start mit Kommandozeilen-Parametern

 

Der Start von FoxFire! mit Parametern bringt nicht den gewohnten Abfrage-Manager auf den Bildschirm, sondern führt je nach Art der Parameter entsprechende Aktionen aus oder ruft einen FoxFire! Dialog in den Vordergrund.

Die Syntax zum Aufruf von FoxFire! mit Parametern ist wie folgt:

do ("ffstart") with <exprC1>, <exprC2>, <exprC3>, <exprC4>, <exprC5>,; <exprN1>, <exprL1>

Vor dem Start ist es erforderlich, die Preferenzdatei zu öffnen (FFPREFER.DBF) und den Satzzeiger auf eine entsprechende Preferenzeinstellung zu positionieren.

Der Parameter <exprC1> bezeichnet die Aktivität, die FoxFire! nach dem Start beginnen soll.

Möglich sind hier:

 
REQUEST Öffnet den Abfrage-Manager, wenn Parameter <exprC5> leer ist, ansonsten wird die unter <exprC5> benannte Abfrage ausgeführt.
DATA ITEM Öffnet den Datenfeld Editor.
UTILITIES Öffnet den Utilities-Dialog, wenn Parameter <exprC2> leer ist, ansonsten wird die unter <exprC2> benannte Utility-Funktion ausgeführt.

 

Hierzu einige Beispiele:

Datenfelder Dialog starten

SELECT 0

USE ffprefer shared

locate for upper(pf_name) = "TASTRADE"

do ("ffstart") with "DATA ITEM"

Starten einer Abfrage

SELECT 0

USE ffprefer shared

locate for upper(pf_name) = "TASTRADE"

DO ("foxfire.app") with "REQUESTS", "", "", "", "KDLIST" 

Starten mehrerer Abfragen, deren Namen in einem Array gespeichert sind

SELECT 0

USE ffprefer shared

locate for upper(pf_name) = "TASTRADE"

dimension aRequests[2]

aRequests[1] = "KDLIST"

aRequests[2] = "KDLIST1"

DO ("foxfire.app") with "REQUESTS", "", "", "", aRequests

Start mit einem Batch-CURSOR

Der Start von FoxFire! mit einem Batch-Cursor setzt voraus, dass eine Tabelle/Cursor mit dem Alias FF_BATCH geöffnet ist und diese über die erforderliche Feld Struktur verfügt. Die von FoxFire! auszuführenden Aktionen werden in die vorgesehenen Felder dieser Datei eingetragen und anschließend wird FoxFire! gestartet. Zum Aufruf mehrerer Aktionen werden einfach mehrere Datensätze in den Cursor eingefügt. In den folgenden Beispielen wird die Struktur der Datei FF_BATCH aus dem FoxFire! Unterverzeichnis GOODIES kopiert und mit den entsprechenden Datensätzen erweitert.

Starten mehrerer Abfragen

SELECT 0

USE goodies\ff_batch

COPY STRU TO mybatch

USE mybatch alias ff_batch

 

INSERT INTO ff_batch (action, config, request) ;

  VALUES ( "RUN", "FFCONFIG.PRG", "KDLIST" )

 

INSERT INTO ff_batch (action, config, request) ;

  VALUES ( "RUN", "FFCONFIG.PRG", "KDLIST1" )

 

DO ("ffstart")

Starten des Abfrage Managers

SELECT 0

USE goodies\ff_batch

COPY STRU TO mybatch

USE mybatch alias ff_batch

 

INSERT INTO ff_batch (action, config) ;

  VALUES ( "REQUEST MANAGER", "FFCONFIG.PRG" )

 

DO ("ffstart")