Home
CodeReporter 1
Contents
1. TEC 002 Sanders Bo 20 07 8 5 TEC 002 Sanders Bo 21 07 7 BHT 001 Adams Jon 21 07 3 TEC 1 001 Jones Pete 20 07 8 5 Untermenge aller ei S tze mit ABT BHT 00t Bland Yan 20 07 118 5 2 TEC 001 Jones Pete 21 07 7 TEC und ORT BHT 001 Bland Van 21 07 3 Ba BON TEC 001 Smith John 20 07 8 5 BHT 002 Tech June 21 07 3 Untermenge aller S tze mit ABT TEC 001 Jones Pete 20 07 8 5 TEC ORT 001 und ANGEST Jones Pete Eine Untermenge aller Datens tze TEC 001 f Jones Pete 21 07 7 TEC 001 Jones Pete 20 07 7 Untermenge aller S tze mit ABT TEC ORT 001 ANGEST Jones Pete und DATUM 20 07 Abb 3 1 Eine zusammengesetzte Datendatei mit ihren Untermengen Jeder dieser Untermengen kann eine bestimmte Funktion zugeordnet sein Dabei kann es sich um eine Teilsumme der Stunden f r jede Untermenge die Gesamt stunden die jeder Angestellte gearbeitet hat die Gesamtstunden die an den verschiedenen Einsatzorten erbracht wurden handeln usw 73 CodeReporter 2 0 Infolgedessen l t sich jede Untermenge durch eine Gruppe darstellen die diese Funktion ausf hrt Auch die zusammengesetzte Datendatei l t sich in diesem Zusammenhang als Gru
2. Die Arbeit mit der Dialogbox Ausdruck eingeben ist nicht schwer Die Schaltfl chen bieten Ihnen eine vollst ndige Point and klick Umgebung Ins Editierfeld Ausdruck k nnen Sie einen Ausdruck manuell eingeben bzw einen Ausdruck oder den Teil eines Ausdrucks editieren Die brigen Schaltfl chen f gen ihre Elemente an der Position der blinkenden Schreibmarke ein wenn 146 Ausdr cke die Listbox angew hlt ist Die Listbox Felder enth lt alle Felder der zusammengesetzten Datendatei Die Felder der verschiedenen Datendateien werden durch xxxxxxx voneinander getrennt wobei xxxxxxx jeweils der Name einer Datendatei ist Wird ein Feld mit einem einfachen Mausklick angew hlt oder die Markierung in die Listbox bewegt werden im Informationsfenster Hinweise zum Feld ange zeigt Doppelklicken Sie mit der Maus auf ein Feld wird es zusammen mit dem Kennzeichner in das Editierfeld Ausdruck bernommen Die Listbox Funktionen enth lt alle unterst tzten dBASE Funktionen die in einen Ausdruck bernommen werden k nnen Bei der Auswahl einer Funktion zeigt das Informationsfenster eine kurze Be schreibung der Funktion an u a Parameter falls vorhanden und den Typ der R ckgaben Ein Doppelklick auf eine Funktion f gt diese in das Editierfeld Ausdruck ein und stellt die Schreibmarke zwischen die Klammern der Funktion Die Listbox Berechnungen enth lt alle bereits vorh
3. RAUM MASTER IDNUM C424 678 A994 123 C424 678 678 Smith J C424 678 678 Hunter N C424 678 678 Gr ter T A994 123 123 Shivji R A994 123 123 Smith A A994 123 123 O Brien M voa IDNUM SL VE NAME 678 Smith J 123 Shivji R 456 Allen P 123 Smith A 123 O Brien M 678 Hunter N 678 Gr ter T Sortierausdruck Abb 2 9 Ein Relationsset sortieren 64 Zusammengesetzte Datendatei in nat rlicher Reihenfolge A994 123 123 O Brien M A994 123 123 Shivji R A994 123 123 Smith A C424 678 678 Gr ter T C424 678 678 Hunter N C424 678 678 Smith J Sortierte zusammengesetzte Datendatei Relationale Reports Die zusammengesetzte Datendatei abfragen Eine Abfrage ist ein logischer Ausdruck mit dessen Hilfe eine Untermenge der zusammengesetzten Datendatei angegeben wird Dieser Abfrageausdruck bildet einen Filter durch den die zusammengesetzten Datens tze der Relation geschickt werden In den Report werden lediglich die Datens tze bernommen die das Fil terkriterium erf llen Das hei t der Ausdruck wird f r jeden zusammengesetzten Datensatz der zusammengesetzten Datendatei ausgewertet ist das E
4. Bei der Sortierung der zusammengesetzten Datendatei werden Datens tze mit gemeinsamen Inhalten nebeneinander gestellt Die Sortierfolge kann sich auf ein oder mehrere Felder gr nden Das hei t die zusammengesetzten Datens tze neh men eine neue Reihenfolge ein die von den im Sortierausdruck lokalisierten Fel dern abh ngt Aufgrund der Sortierung kann man sich die Datens tze auch als logische Untermengen vorstellen Eine Datendatei zum Beispiel die nach Abteilungsk rzeln sortiert wird erzeugt eine zusammengesetzte Datendatei die Untermengen der verschiedenen Abtei lungen enth lt Alle Datens tze in denen Abteilung A vorkommt werden vor den Datens tzen mit Abteilung B ausgegeben Man mu sich die Datens tze mit Abteilung A als Untermenge der zusammengesetzten Datendatei vorstellen Enth lt der Sortierausdruck mehr als ein Feld der zusammengesetzten Datendatei enth lt die resultierende zusammengesetzte Datendatei sozusagen Ober untermengen die ihre eigenen Unteruntermengen enthalten Ein Sortierausdruck zum Beispiel der sowohl das Abteilungsk rzel als auch die Lagebeschreibung enth lt bildet einzelne Abteilungsuntermengen die wiederum ihre eigenen Lageuntermengen enthalten Abb 3 1 macht Ober und Unterunter mengen deutlich Also beschreiben diese nat rlichen Untermengen ebenfalls den Gesamtablauf des Reports Der Report geht logisch einen Datensatz nach dem anderen durch und durchl uft jede Ob
5. Beschreibung Diese Funktion erzeugt ein Feldausgabeobjekt f r das angegebe ne Datendateifeld Bei Feldausgabeobjekten werden automatisch alle Leerzeichen am Ende entfernt so da man sie mittig links oder rechtsb ndig ausrichten kann Parameter R ckgaben Siehe auch area field width height Nicht Null Dieser AREA4 Zeiger bezeichnet den Reportbe reich in den das neue Feldausgabeobjekt gesetzt werden soll Ein FIELD4 Zeiger auf ein Datendateifeld Sie k nnen ihn mit der CodeBase 5 Funktion d4ield ermitteln Die waagerechte Koordinate in tausendstel Zoll an der die linke Seite des Feldobjekts steht Die senkrechte Koordinate in tausendstel Zoll vom oberen Rand des Reportbereichs an der die Oberkante des Feldobjekts steht Die horizontale Ausdehnung des Feldausgabeob jekts in tausendstel Zoll Die vertikale Ausdehnung des Feldausgabeobjekts in tausendstel Zoll Bei Erfolg wird ein Zeiger auf das neue Feldaus gabeobjekt zur ckgegeben Fehler Das Feldausgabeobjekt konnte nicht ange legt werden obj4fieldfree obj4delete die CodeBase 5 Funktion d4field 229 CodeReporter 2 0 API obj4fieldFree Aufruf void obj4fieldFree OBJ4 obj Beschreibung Diese Funktion l scht ein Feldausgabeobjekt aus dem Report und gibt den mit dem Objekt verbundenen Speicher frei Die Funktion wirkt sich nicht auf das Datendateifeld aus auf das das Ausgabeobjekt verweist Parameter obj Ein Zeiger auf d
6. CodeReporter 2 0 API Hat openFiles einen falschen Wert Null geht das Programm davon aus da alle Dateien bereits ge ffnet sind dataPath Ist dataPath Null benutzt report4retrieve zur Lokalisierung der Datendateien die in der Report datei gespeicherten Pfade Wenn die Datei keine Pfadnamen enth lt geht report4retrieve davon aus da sich die Datendateien im aktuellen Ver zeichnis befinden Ist dataPath nicht Null enth lt es als null termi niertes Zeichenarray Laufwerk und oder Verzeich nis in dem sich die Datendateien des Reports befinden Das Verzeichnis dataPath setzt alle innerhalb des Reports gespeicherten Pfade au er Kraft R ckgaben Nicht Null Der Report wurde erfolgreich geladen Der zu r ckgegebene REPORT4 Zeiger kann auch von anderen Funktionen des Reportmoduls benutzt werden 0 Fehler Der Report konnte nicht geladen werden Das liegt m glicherweise daran da die Top Ma ster Datendatei nicht lokalisiert oder nicht genug Speicher f r den Report zugewiesen werden konn te Siehe auch relate4retrieve report4save Aufruf int report4save REPORT4 report char fileName int savePaths Beschreibung Diese Funktion legt einen Report in einer variabel codierten Reportdatei ab die entweder mit einer CodeReporter Anwen 272 Hinweis Achtung Parameter R ckgaben Siehe auch Funktions bersicht dung bzw der Funktion report4retrieve wieder eingelesen wer den kann report4s
7. Exit wird das Programm beendet ber die Dialogbox Launch Options bestimmen Sie die Zieldatei des Reports und definieren Sortier und oder Abfrageausdr cke Wenn Sie den aktuellen Report aus Versehen geladen haben bzw wenn ein anderer Report ausgegeben werden soll rufen Sie ber die Schaltfl che Load Report die Dialogbox Select Report auf Mit Hilfe dieser Dialogbox k nnen Sie eine neue Reportdatei lokalisieren und ffnen Ist die Dialogbox Launch Options wieder auf dem Bildschirm zu sehen wird der neue Report geladen Klicken Sie auf die Schaltfl che Display wird der Report in einem Fenster ausgegeben Das Seitenformat der Fensteranzeige entspricht dem des aktuellen Druckers so da Sie sich den Rest der Seite m glicherweise mit den Bildlauflei sten anzeigen lassen m ssen Klicken Sie auf die Schaltfl che Print wird der Report ber den aktuellen Drucker ausgegeben W hrend des Druckvorgangs teilt Ihnen eine Dialogbox eben diesen Sachverhalt mit Ein Klick auf die Schaltfl che Cancel bricht den Druckvorgang ab Soll der Report nicht ber den Standard Drucker von Windows ausgegeben werden oder m ssen Sie die Druckereinstellungen ver ndern k nnen Sie die Dialogbox Druckereinrichtung ber die Schaltfl che Printer Setup aufrufen In dieser Dialogbox k nnen Sie den Ausgabedrucker bestimmen und ihn konfi gurieren Wenn die Reportdatei eine mit REPORT VORGABE
8. Summen definieren Das hei t die Summe berspringt die eigentliche Reportausgabe und setzt ihre Sum mierung fort auf diese Weise werden Summenwerte innerhalb des Reports er mittelt und ausgegeben bevor diese Informationen angezeigt werden Diese Summe l t sich z B in sp teren Berechnungen verwenden um den Prozentwert einer Summe anzuzeigen CodeReporter benutzt die unter Windows 3 1 verf gbaren Schriften einschlie Einleitung lich der neuen TrueType Fonts ber die Erstellung eines Styles k nnen Sie eine beliebige Anzahl verschiedener Schriften Schriftgr en und Farben in einem Report verwenden Alle Schriften die Windows darstellen kann k nnen Sie in einem Report benutzen Innerhalb des Reports k nnen Sie beliebige Ausgabeobjekte mittels Mausbefehl verschieben Dar ber hinaus lassen sich diese Objekte mit den Befehlen Aus schneiden und Kopieren auf einfache Weise vervielf ltigen In der Entwurfsphase eines Reports l t sich eine Menge Papier sparen wenn Sie sich die Ausgabe probehalber auf dem Bildschirm anzeigen lassen Da Code Reporter Windows Fonts benutzt stimmen Papierausdruck und Bildschirmdar stellung weitgehend berein Haben Sie mit CodeReporter einen Report entwickelt k nnen Sie ihn als variabel codierte Reportdatei f r die n chste CodeReporter Sitzung bzw als Quellcode sichern Der generierte Code l t sich in alle Anwendungen einbinden die mit einem Datenbankprogramm von
9. while rc report4generatePage report gt 0 Seite f llen if rc 2 letzte Seite wurde erreicht break for obj report4pageObjFirst report obj NULL S error obj report4pageObjNext report alle ausgewerteten Ausgabeobjekte des Reports durchlaufen switch obj gt objtype case obj4type_field case obj4type_expr case obj4type_total case obj4type_text Text Ausgaberoutine if style style4index report obj gt style_index NULL obj NULL error 1 break Informationen ber den Style des Objekts ermitteln mit style gt color style gt lfont und style gt point_ size entsprechenden Ausgabefont aufbauen 193 CodeReporter 2 0 API if report gt output_handle 1 Bildschirmausgabe Koordinaten obj gt x obj gt y einnehmen und mit Bildschirm Interfacefunktion den Text ausgeben auf den obj gt info mit einer L nge von obj gt info_len zeigt mit obj gt w und obj gt h falls erforderlich Zeilenumbruch und obj gt alignment steuern x E Ausgabe auf einen Drucker Koordinaten obj gt x obj gt y einnehmen und mit Drucker Interfacefunktion den Text ausgeben auf den obj gt info mit einer L nge von obj gt info_len zeigt mit obj gt w und obj gt h falls erforderlich Zeilenumbruch und obj gt alignment steuern break case obj4type_hline case obj4type_vl
10. bersicht ber Ertr ge und Aufwendungen der letzten zwei Jahre alphabetisch nach Firma und Gesch ftsbezeichnung sortiert Die Erstellung einer solchen Zweckerkl rung hilft dabei die Anforderungen an den Report zu erhellen sp ter kann man anhand der Erkl rung berpr fen ob aus dem Report tats chlich das hervorgeht wozu er entwickelt worden ist Entwurf auf dem Papier Nach der Ver nderung des Inhalts ist das Erscheinungsbild eines Reports der Aspekt der am h ufigsten Wandlungen unterworfen ist Je eher Sie sich f r ein definitives Layout entscheiden desto weniger Zweifel an Ihrer Arbeit werden sich bei Ihnen einstellen dar ber hinaus geht die eigentliche Erstellung des Reports erheblich schneller vonstatten Die einfachste Art und Weise das Format eines Reports zu ermitteln besteht darin ihn rasch auf einem Blatt Papier zu skizzieren und dabei Musterdaten zu verwenden Bei dem Entwurf ist die Anordnung der Daten wichtiger als deren Genauigkeit Die Stelle an die eine Information gesetzt wird ist oft eine Kombination aus Firmenpolitik und pers nlichem Geschmack also gibt es keine Regeln Bei einigen Firmen stehen die Seitenzahlen oben bei anderen unten Fertigen Sie verschiedene Entw rfe an bis ein geeigneter dabei ist Der wichtigste Gesichtspunkt eines Entwurfs ist da er dem Anspruch der Zweckerkl rung volles Gen ge leistet Ist das nicht der Fall mu der Entwurf berarbeitet werden Abb 1 1
11. mit einer Zeichenkonstante als Parameter ermittelt werden Operatoren der dBASE Ausdr cke Mit Operatoren wie oder lt werden Konstanten und Felder bearbeitet 3 8 ist ein Beispiel f r einen dBASE Ausdruck bei dem der Additionsoperator auf zwei numerische Konstanten wirkt um den numerischen Wert JI zur ckzugeben Die Werte auf die ein Operator wirkt m ssen einen mit dem Operator berein stimmenden Typ aufweisen Zum Beispiel wirkt der Divisionsoperator auf zwei numerische Werte Rangfolge Die Rangfolge der Operatoren bestimmt die Reihenfolge in der die Operatoren ausgewertet werden Die Rangfolge der Operatoren wird in den folgenden Ta bellen angegeben Je h her der Rang desto fr her wird die Operation ausgef hrt Beispielsweise nimmt dividieren Rang 6 addieren Rang 5 ein das bedeutet da dividieren vor addieren ausgewertet wird Infolgedessen ist das Ergebnis von 1 4 2 gleich 3 Die Reihenfolge der Auswertung kann durch den Einsatz von Klammern ver deutlicht werden Zum Beispiel 1 2 3 ergibt 7 w hrend 1 2 3 9 ergibt Addition Subtraktion Multiplikation Division Potenzrechnung oder 142 Ausdr cke Es gibt zwei Zeichenoperatoren Verketten I und Verketten II genannt die zwei Zeichenwerte zu einem verbinden Sie unterscheiden sich dadurch von den Operatoren Addition und Subtrakt
12. tendatei zu kennzeichnen Der erste Teil eines Feldnamens der Kennzeichner bezeichnet ein Datendatei Alias Dabei handelt es sich normalerweise einfach um den Namen der Daten datei dem nach dem gt der eigentliche Feldname folgt dBASE Ausdruckskonstanten dBASE Ausdr cke k nnen aus numerischen logischen oder Zeichenkonstanten bestehen Solche Ausdr cke sind allerdings meistens nicht sehr n tzlich Kon stanten werden gew hnlich in komplizierteren dBASE Ausdr cken benutzt Eine numerische Konstante ist eine Zahl Zum Beispiel sind 5 7 3 und 18 dBASE Ausdr cke mit numerischen Konstanten Zeichenkonstanten sind in Anf hrungszeichen eingeschlossene Buchstaben Das sind Daten Hans Schmidt und Hans Schmidt sind Beispiele f r dBASE Ausdr cke mit Zeichenkonstanten Wenn Sie eine Zeichenkonstante definieren m chten die einfache oder doppelte Anf hrungszeichen enth lt benutzen Sie den jeweils anderen Typ von Anf hrungszeichen um die Zeichenkonstante zu markieren Peter s und OK z B sind g ltige Zeichenkonstanten Hinweis Wenn nicht anders angegeben sind in diesem Handbuch alle dBASE Zeichenkonstanten in einfache Anf hrungszeichen eingeschlossen 141 CodeReporter 2 0 Die Konstanten TRUE und FALSE sind die einzigen g ltigen logischen Kon stanten Die Konstanten T und F sind g ltige Abk rzungen daf r Eine Datumskonstante kann unter Verwendung der dBASE Funktion STOD
13. zur ck wenn der Monat des Datumsfeldes Dezember ist PAGENOO Wird das Reportmodul bzw CodeReporter eingesetzt gibt diese Funktion die aktuelle Seitenzahl des Reports zur ck RECCOUNTO Die Funktion record count gibt die Gesamtzahl der Datens tze in der Datenbank zur ck Beispiel RECCOUNT Gibt 10 zur ck wenn die Datenbank 10 Datens tze enth lt RECNOO Die Funktion record number gibt die Datensatznummer des aktuellen Datensatzes zur ck STOD Zeichen_Wert Die Funktion string to date konvertiert einen Zeichenwert in einen Datums wert Beispiel STOD 19881130 Die Zeichendarstellung erfolgt im Format CCYYMMDD STR Zahl L nge Nachkomma Die string Funktion konvertiert einen numerischen Wert in einen Zeichen wert L nge ist die Anzahl der Zeichen in der neuen Zeichenkette das Dezimalkomma inbegriffen Nachkomma ist die Anzahl der gew nschten Nachkommastellen Ist die Zahl f r den zugewiesenen Platz zu gro werden Sternchen zur ckgegeben Beispiel STR 5 7 4 2 gibt 5 70 zur ck 294 Anhang A dBASE Funktionen Die Zahl 5 7 wird in eine Zeichenkette konvertiert die aus vier Zeichen be steht Au erdem sind zwei Nachkommastellen vorhanden Beispiel STR 5 7 3 2 gibt zur ck Die Zahl 5 7 pa t nicht in eine Zeichenkette die aus drei Zeichen besteht wenn sie zwei Nachkommastellen haben soll Infolgedessen werd
14. 22222000 39 Die Elemente des Reports festlegen 40 Die Relation planen 43 Die Indizes identifizieren 44 Die Top Master Datendatei bestimmen 44 Den Report gestalten 45 Den Report auf Stichhaltigkeit berpr fen 46 2 Relationale Reports 47 Relationen 2 2 se ser ee nah desen 47 Komplexe Relationen 22c2202eeeeeeenenenenene rennen 51 Relationstypen 2 Gre 2er nes ers 53 Relationen mit genauer bereinstimmung 22c2cccceec 53 Relationen mit ungef hrer bereinstimmung 53 Filterrelationen ENEE ee NEEN 55 Masterdatei mit mehreren Slavedateien 2222neneeeeeenn 55 Relationen herstellen 57 Den Top Master angeben 57 Bitoptimierte Abfragetechnik 58 Die Dialogbox Relation 222 c2eeeeeeeeeeeerne en 58 Eine Slavedatei hinzuf gen 202ceeeeeeeenenen en 58 Eine Relation bearbeiten 59 Die zusammengesetzte Datendatei sortieren 63 Der Sortierausdruck 2222n2eeeeeeeeeeenenenenenen 63 Die zusammengesetzte Datendatei abfragen 65 Relationen auf Pla 66 Als Code speichern in 2 2 na ENEE 66 B tepmel detresse eh ehe er 67 Top Master Datendatei 2 220220 eeeeeeeeeenenenenenn 67 Relation bearbeiten 68 Eine Slavedatei zu einer Slavedatei hinzuf gen 69 3 GAPPED er Ra Er BR end 72 Was ist eine Gruppe EELER NEEN REENEN 72 Gruppenausdruck 74 Kopf und FUB 24 Race 76 Gr ppen anlegen
15. Kopf und Fu im Kapitel Gruppen Angenommen in einem Kontenreport sollen die einzelnen Buchungsvorg nge nach Kontonummer und Datum sortiert und f r jedes Konto gesondert der Zeit raum der Buchungen aufgef hrt werden Da der Report nach dem Datum sortiert wird enth lt der erste Datensatz der Gruppe der f r die Ausgabe des Gruppen kopfes verwendet wird das Datum der Buchung auf dem Konto F r den Anfang der Buchungszeitraums reicht ein einfaches Feldobjekt aus Der letzte Datensatz vor der Zur cksetzung der Gruppe enth lt das Datum der letzten Buchung auf dem Konto Ein einfaches Feldobjekt das als Vorschauobjekt in den Gruppenkopf gesetzt wird gibt das Datum der letzten Buchung f r das Konto aus Ein Vorschausummenobjekt im Gruppenkopf enth lt dort denselben Wert den es als einfaches Summenobjekt im Gruppenfu annehmen w rde Als praktische Begleiterscheinung kann die Aufsummierung der Gruppe vor Ausgabe der Datens tze erfolgen die Vorschausumme l t sich in einer internen Gruppe als Detailzeilen verwenden die einen Prozentsatz der Gesamtsumme enthalten Ein nach Verk ufern sortierter Umsatzreport zum Beispiel kann den Prozentanteil eines jeden Verk ufers am Gesamtumsatz enthalten indem in einer u eren Gruppe einfach ein Vorschausummenobjekt und im Gruppenfu des Verk ufers eine Berechnung angelegt wird die die Summe der Verk ufe geteilt durch die Vorschausumme enth lt Folgende Typen von Ausgabeob
16. Parameter REPORT4 Bezeichnet den auszugebenden Report 315 CodeReporter 2 0 R ckgaben 0 Der Report wurde erfolgreich ausgegeben r4terminate Es konnte keine Relation hergestellt werden und bei der mit relate4derror Action angegebenen Feh lerbehandlung handelte es sich um relate4termi nate lt 0 Fehler Siehe auch report4toScreen report4printerSelect report4output report4free Aufruf Call report4free REPORT4 amp freeRelate closeFiles Beschreibung Dieser Befehl gibt den gesamten mit dem Report verbundenen Speicher frei Parameter REPORT4 Ein REPORT4 Zeiger auf den Report der aus dem Speicher gel scht werden soll freeRelate Hat dieser Parameter einen wahren Wert 1 wird der mit der Relation des Reports verbundene Speicher automatisch freigegeben Wird ein fal scher Wert 0 bergeben wirkt sich das nicht auf die Relation aus closeFiles Dieser Parameter schlie t wenn er einen wahren Wert 1 enth lt automatisch die im Report ge nannten Daten Index und Memodateien Sind closeFiles oder freeRelate falsch wird die Einstel lung ignoriert Siehe auch relate4free im CodeBasic 5 Referenzhandbuch 316 Anhang F CodeBasic API report4margins Aufruf rc report4margins REPORT4 amp left amp right amp top amp bottom amp unitType Beschreibung Mit dieser Funktion werden die Standard Randeinstellungen des Hinweis Parameter Reports ver ndert Einige Ausgabeger te z B Las
17. Reportdatei ausw hlen zu aktivieren W hlen Sie in der Listbox das Verzeichnis EXAMPLES an darauf die Reportdatei TUTI REP und klicken Sie auf OK Der Report wird im aktuellen Verzeichnis geladen Report mit Pfad ffnen Bei TUT2 REP handelt es sich um das genaue Gegenteil von TUT1 REP Die verschiedenen Pfadnamen f r die Datendateien COMPANY DBF und STORES DBF wurden innerhalb des Reports gespeichert Wenn Sie versuchen diesen Report mit DATEI FFNEN zu laden teilt Code Reporter Ihnen mit da die Datei nicht gefunden werden konnte und fragt ob sie f r jede nicht lokalisierbare Datei eine andere Datei angeben m chten Dieses Verfahren ist immer dann sinnvoll wenn sich die Dateinamen oder die Ver zeichnisse der im Report enthaltenen Datendateien ge ndert haben die manuelle Anpassung jeder einzelnen Datei kann sich allerdings zu einem zeitraubenden Unterfangen entwickeln insbesondere dann wenn sich alle Dateien im selben Verzeichnis befinden Die Men option DATEI FFNEN MIT PFAD setzt alle Laufwerks und Pfadangaben des Reports au er Kraft und ersetzt diese durch die des Reportentwicklers Laden Sie die Datei TUT2 REP mit DATEI FFNEN MIT PFAD und geben Sie das CodeReporter Beispieleverzeichnis EXAMPLES an Eine Datenbankliste ausgeben Die folgende bung erl utert wie man einen einfachen Report erstellt der den Inhalt der Datendatei COMPANY DBF ausgibt Die Datendatei die die Felder COMPID
18. aufgrund dessen die Summe erzeugt wird Dabei kann es sich einfach um ein Feld der Datendatei oder eine Berechnung handeln die mit der CodeBase 5 Funktion expr4calc_create erstellt worden ist Alle Felder der Datendatei auf die totalExpr verweist m ssen einen Feldkennzeichner haben type Mit diesem Flag wird festgelegt wie die Summe bei der Auswertung des Summenausgabeobjekts ihren Wert beh lt type kann einen der folgenden Konstantenwerte annehmen totaldaverage Diese Konstante erzeugt eine Summe die den arithmetischen Mittelwert Durchschnitt des Ausdrucks totalExpr bildet total4highest Diese Konstante erzeugt eine Summe die den h chsten f r totalExpr ermittelten Wert spei chert total4lowest Diese Konstante erzeugt eine Summe die den niedrigsten Wert f r fotalExpr speichert totaldsum Diese Konstante erzeugt eine Summe die eine arithmetische Summe aller f r den Ausdruck totalExpr ermittelten Werte bildet R ckgaben Siehe auch total4free Aufruf Beschreibung Parameter Siehe auch Funktions bersicht resetExpr Ein null terminiertes Zeichenarray das einen dBASE Ausdruck enth lt mit dem festgelegt wird wann das Summenausgabeobjekt auf seinen Ausgangswert zur ckgesetzt wird Nicht Null Ein Zeiger auf eine erfolgreich erzeugte Summe wird zur ckgegeben 0 Beim Analysieren des dBASE Ausdrucks sind Schwierigkeiten aufgetreten obj4totalCreate die CodeBase 5 Funktion expr4cal
19. ausgegangen da das Ergebnis von addCondition Src ein logischer Wert ist Wenn logical einen fal schen Wert null enth lt wird die Summe ledig lich bei einer nderung des ausgewerteten Aus drucks gebildet addConditionSrc kann als Ergebnis einen logi schen Wert haben und gleichzeitig kann logical falsch null sein In diesem Fall wird die Summe gebildet sobald die Auswertung des Ausdrucks sich von TRUE nach FALSE und von FALSE nach TRUE ver ndert Die Bedingung wurde erfolgreich zum Summen ausgabeobjekt hinzugef gt Fehler Ein ung ltiger Parameter wurde berge ben addConditionSrc hatte als Ergebnis keinen logischen Wert als logical auf wahr nicht Null eingestellt war bzw addConditionSrc konnte nicht ausgewertet werden obj4totalCreate die CodeBase 5 Funktion expr4calc_create TOTALA total4create REPORT4 report char totalName char totalExpr int type char resetExpr Diese Funktion definiert eine Summe die in obj4totalCreate verwendet wird 289 Parameter Hinweis 290 report totalName totalExpr CodeReporter 2 0 API Ein Zeiger auf den Report zu dem die Summe hinzugef gt werden soll Ein null terminiertes Zeichenarray das einen spre chenden Namen enth lt mit dem in anderen dBASE Ausdr cken auf die Summe verwiesen wird Diese Bezeichnung darf keine Leerstellen enthalten Ein null terminiertes Zeichenarray das einen nu merischen dBASE Ausdruck enth lt
20. ck Siehe auch group4headerfFirst group4ooterNext group4footerPrev group4footerNext Aufruf AREAA4 group4footerNext GROUP4 group AREA4 area 204 Beschreibung Parameter R ckgaben Achtung Siehe auch Funktions bersicht Diese Funktion gibt einen Zeiger auf den in der angegebenen Gruppe erzeugten Fu bereich hinter dem angegebenen Fu be reich zur ck Sie wird im allgemeinen in Verbindung mit group4footerFirst verwendet um die Fu bereiche einer Gruppe zu durchlaufen group Ein Zeiger auf die Gruppe mit dem Bereich area area Ein Zeiger auf den Fu bereich von dem aus der als n chster angelegte Fu bereich lokalisiert wird Diese Funktion gibt einen AREA4 Zeiger auf den Fu bereich zur ck der nach dem Fu bereich area angelegt wurde Ist area der letzte f r die Gruppe angelegte Fu bereich oder ist area Null gibt group4footerNext Null zur ck Es kann zu unerwarteten Ergebnissen kommen wenn der Para meter area kein g ltiger Fu bereich f r die Gruppe group ist group4footerFirst group4numFooters group4footerPrev Aufruf Beschreibung Parameter AREA4 group4footerPrev GROUP4 group AREA4 area Diese Funktion gibt einen Zeiger auf den in der angegebenen Gruppe unmittelbar vor dem angegebenen Bereich erzeugten Fu bereich zur ck Sie wird im allgemeinen in Verbindung mit area4lastFooter verwendet um die Fu bereiche einer Gruppe zu durchlaufen group Ein Zeiger auf die Grup
21. dem Gruppenfu Per Voreinstellung enth lt die einzeilige Listbox Datensatzausgabegruppe die am weitesten au en gelegene Gruppe des Reports W nschen Sie eine andere Gruppe kann sie ber diese Listbox ausgew hlt werden Ausgabe Datendatei Bei der Ausgabe Datendatei handelt es sich um die Datendatei in der der Report abgelegt werden soll Um den Dateinamen einzugeben klicken Sie auf Dateiauswahl damit die Dialogbox Datendatei ausw hlen eine gemeinsame Dialogbox zum ffnen einer Datei aufgerufen wird Hier geben Sie Laufwerk Verzeichnis und Namen der gew nschten Ausgabedatendatei ein Ist die angegebene Datendatei bereits vorhanden gibt CodeReporter vor dem berschreiben eine Meldung aus Wenn Sie auf OK klicken wird die neue Datendateischablone innerhalb des aktuellen Reports gespeichert In eine Datendatei drucken Nach dem Erstellen der Datendateischablone kann der Report ber die Men op tion DATEI IN DATENDATEI DRUCKEN ausgegeben werden Dabei wird die in der Dialogbox Schablone f r Ausgabedatei angegebene Datendatei angelegt und mit den Daten aus dem Report gef llt Mit der neuen Datendatei l t sich danach arbeiten wie mit jeder anderen Datendatei auch Beispiel Wie zweckm ig es sein kann einen Report in eine Datendatei zu drucken soll das vorliegende kurze Beispiel verdeutlichen Dabei wird die Datendatei PER SONEL DBE sortiert und in die Datei PERSONS DBF umg
22. enth lt alle notwendigen Einstellungen R cksetz ausdruck Art der Summe um die Summe des Feldes CREDIT zu bilden Die Bezeichnung summeo jedoch beschreibt nur unvollkommen was zusam mengerechnet wird ndern Sie also die Bezeichnung summeo im Editierfeld Summenname in CREDIT_SUM ab und klicken Sie auf OK 29 CodeReporter 2 0 Summe bilden Summenname CREDIT_SUM Berechnung INYOICES gt CREDIT Summenrlicksetzausdruck INYOICES gt CUSTID Summe Minimum CH Durchschnitt Maximum Abbrechen Abb 11 Dialogbox Summe bilden Wiederholen Sie die obigen Schritte um f r das Feld DEBIT im ersten Fu be reich der Kunden Gruppe ein Summenausgabeobjekt einzuf gen und bezeichnen Sie diese Summe als DEBIT_SUM Der geschuldete Geldbetrag l t sich ber ein Berechnungsausgabeobjekt ermit teln und ausgeben das die Differenz zwischen den Summen CREDIT_suM und DEBIT_suM errechnet Diesen Rechenvorgang k nnen und werden wir auch in anderen dBASE Ausdr cken verwenden Ein Berechnungsausgabeobjekt wird mit Hilfe der Listbox Berechnungsobjekt gebildet das ber die Schaltfl che Berechnung auf der Tastenleiste aktiviert wird Klicken Sie auf den Men punkt Neue Ber um die Dialogbox Berech nung aufzurufen Abb 12 Der Name der Berechnung wird zur Identifizierung der Berechnung in weiteren dBASE Ausdr cken verwendet Schreiben Sie SOLL_HABEN
23. format 0 Ein Zeiger auf den Report f r den das Datums format eingestellt wird Eine Zeichenkette die das Standard Datumsformat enth lt Diese Zeichenkette sollte aus den Schablonenformatierzeichen bestehen D M C Y report4dateFormat legt eine Kopie von format an Erfolg lt 0 Fehler REPORT4 ist ung ltig Anhang F CodeBasic API report4decimal Aufruf rc report4decimal REPORT4 amp decimalChar Beschreibung Mit dieser Funktion wird das Zeichen bestimmt das bei numeri schen Ausgabeobjekten die ganzen Zahlen von den Bruchwerten trennt Parameter REPORT4 Ein REPORT4 Zeiger auf den Report bei dem das Dezimalzeichen verwendet wird decimalChar Das als Dezimalzeichen zu verwendende Zeichen Voreingestellt ist der Dezimalpunkt R ckgaben 0 Erfolg lt 0 Fehler REPORT4 ist ung ltig report4do Aufruf rc report4do REPORT4 amp Beschreibung Mit dieser Funktion wird der Report auf das ausgew hlte Ger t ausgegeben Bei der Ausgabe unter Windows deaktiviert report4do das mit report4parent bezeichnete Elternfenster des Reports bis das Reportfenster geschlossen wird Auf diese Weise wird die An wendung daran gehindert w hrend der Ausf hrung reportrele vante Daten zu aktualisieren Achtung Bei Windows Programmen m ssen Sie vor dem Aufruf dieser Funktion zun chst report4parent aufrufen Erfolgt dieser Aufruf nicht kann das zu unvorhersehbaren Ergebnissen f hren
24. geht relate4retrieve davon aus da alle Daten In dex und Memodateien bereits ge ffnet sind Kann eine in der Relationsdatei angegebene Datendatei nicht ge ffnet werden wird diese Datei sowie alle ihr zugeordneten Slavedateien aus der Relation ausgeklammert und relate4 retrieve setzt den Aufbau der Relation fort Bei diesem Parameter handelt es sich um eine Zeichenkette die f r die in der Relation ge speicherten Daten Index und Memodateien einen neuen Pfadnamen angibt Ist dataPathName ein Nullstring werden die in der Relationsdatei abgelegten Pfade ver wendet Enth lt die Datei keine Pfadangaben versucht relate4retrieve die Dateien im aktu ellen Verzeichnis zu ffnen Wenn Sie dataPathName angeben werden da durch die in der Relationsdatei gespeicherten Pfade au er Kraft gesetzt Die Relation wurde erfolgreich aus der ange gebenen Relationsdatei eingelesen Beim Lesen der Relationsdatei oder beim ff nen der Top Master Datendatei hat sich ein Fehler ereignet Fragen Sie CODEA4 errorCode ab um den genauen Fehler zu ermitteln relate4save relate4init relate4free rc relate4save RELATE4 amp fileName savePathNames Mit dieser Funktion wird die angegebene Relation in einer Rela tionsdatei gespeichert 311 Parameter R ckgaben Siehe auch CodeReporter 2 0 RELATE4 fileName savePathNames 0 r4noCreate Ein Zeiger auf die Relation die in einer Rela tionsdatei ge
25. glich Eine bedingte Summe l t sich ber den Aufruf des Objektmen s eines Sum menausgabeobjekts und die Auswahl der Option BEDINGTE SUMME definieren In die Dialogbox Bedingte Summe die dann erscheint Abb 5 16 k nnen Sie die Bedingung f r die Summe eingeben Das Eingabefenster Summenbedingung nimmt den dBASE Ausdruck auf der den Zeitpunkt der Summenbildung bestimmt Dieser Ausdruck kann bis auf Memo jeder beliebige dBASE Typ sein Bedingte Summe Summenname CREDIT_SUM Berechnung INYOICES gt CREDIT Summenbedingung Logische Bedingung Wertver nderung Abb 5 16 Dialogbox Bedingte Summe Die Schaltfl chen Logische Bedingung und Wertver nderung bestimmen wie die Summenbedingung bei der selektiven Aktualisierung des Summenwertes eingesetzt wird Ist die Schaltfl che Logische Bedingung aktiviert und die Summenbedingung die auf einen logischen Wert hinauslaufen mu ist logisch wahr wird die Sum me mit dem Inhalt des aktuellen zusammengesetzten Datensatzes aktualisiert Ist 133 CodeReporter 2 0 das Ergebnis des Ausdrucks logisch falsch wird der aktuelle zusammengesetzte Datensatz ignoriert Bei Auswahl der Schaltfl che Wertver nderung wird die Summe lediglich bei einer nderung der ausgewerteten Summenbedingung aktualisiert Bei einer Fil terrelation zum Beispiel wird der Inhalt der Masterdatei in der zusammengesetz ten Datenda
26. group4headerNext group4headerPrev group4headerNext Aufruf AREA4 group4headerNext GROUP4 group AREA4 area Beschreibung Diese Funktion gibt einen Zeiger auf den in der angegebenen Parameter R ckgaben Achtung Siehe auch Gruppe erzeugten Kopfbereich hinter dem angegebenen Kopfbe reich zur ck Sie wird im allgemeinen in Verbindung mit group4headerFirst verwendet um die Kopfbereiche einer Gruppe zu durchlaufen group Ein Zeiger auf die Gruppe mit dem Bereich area area Ein Zeiger auf den Kopfbereich von dem aus der als n chster angelegte Kopfbereich lokalisiert wird Diese Funktion gibt einen AREA4 Zeiger auf den Kopfbereich zur ck der nach dem Kopfbereich area angelegt wurde Ist area der letzte f r die Gruppe angelegte Kopfbereich oder ist area Null gibt group4headerNext Null zur ck Es kann zu unerwarteten Ergebnissen kommen wenn der Para meter area kein g ltiger Kopfbereich f r die Gruppe group ist group4headerFirst group4numHeaders 207 CodeReporter 2 0 API group4headerPrev Aufruf AREA4 group4headerPrev GROUP4 group AREA4 area Beschreibung Diese Funktion gibt einen Zeiger auf den in der angegebenen Gruppe unmittelbar vor dem angegebenen Bereich erzeugten Kopfbereich zur ck Sie wird im allgemeinen in Verbindung mit area4lastHeader verwendet um die Kopfbereiche einer Gruppe zu durchlaufen Parameter group Ein Zeiger auf die Gruppe mit dem Kopfbereich area area Ein Zeiger a
27. obj4type_field obj4type_expr obj4type_text obj4type_total werden in bezug auf das Objekt links rechtsb ndig bzw mittig ausgerichtet M gliche Werte f r alignment sind Justify4right Rechtsb ndige Ausrichtung Justify4left Linksb ndige Ausrichtung justify4center Mittige Ausrichtung bezeichnet die waagerechte Position der linken oberen Ecke des Ausgabeobjekts in tausendstel Zoll bezeichnet die senkrechte Position bis zur linken oberen Ecke des Ausgabeobjekts in tausendstel Zoll gemessen vom oberen Blattrand gibt die Breite des Ausgabeobjekts in tausendstel Zoll an gibt die H he des Ausgabeobjekts in tausendstel Zoll an ist die Gr e der in info f r das Ausgabeobjekt abgelegten Daten Die Daten die f r das Ausgabeobjekt ausgegeben werden sollen ist ein Index f r das Seitenlayout des Reports report4pageObjFirst report4pageObjNext style4index Diese Struktur enth lt die f r die Beschreibung der Schriftart Farbe und Attribute der Reportstyles erforderlichen Informatio nen Mit style4lookup und style4index erhalten Sie Zeiger auf die entsprechenden Style Strukturen 191 Elemente Siehe auch 192 CodeReporter 2 0 API name lfont color point_size codes_before_len codes_after len codes_before codes_after ist ein null terminiertes Zeichenarray das den Namen des Styles enth lt wie er in Code Reporter vorhanden ist ist ein Zeiger auf eine Windows LOGFONT Stru
28. report4retrieve Aufruf Funktions bersicht REPORT4 report4retrieve CODE4 Sch char fileName int openFiles char dataPath Beschreibung Diese Funktion liest eine Reportdatei von der Platte ein und baut die entsprechende REPORTA4 Struktur auf Parallel dazu wird im Hintergrund ein Relationsset mit der entsprechenden RE LATE4 Struktur erzeugt Hinweis Parameter Reportdateien die mit CodeReporter und oder report4save an gelegt wurden sind nicht unbedingt auf ein anderes Betriebssy stem portierbar Soll der Report auf einer anderen Plattform verwendet werden mu er m glicherweise mit von CodeRepor ter generiertem Quellcode gelinkt werden cb fileName openFiles Ein Zeiger auf die CODE4 Struktur der Anwen dung er dient der Speicherverwaltung und der Fehlerbehandlung Ein null terminiertes Zeichenarray das Laufwerk Verzeichnis und Namen der Reportdatei enth lt Geben Sie keine Erweiterung am Dateinamen an geht report4retrieve von der Erweiterung REP aus Hat openFiles einen wahren Wert Nicht Null versucht report4retrieve die im Report genann ten Datendateien zu ffnen falls sie noch nicht ge ffnet sind Kann eine angegebene Datendatei nicht lokalisiert werden wird diese Datei sowie alle ihr zugeordneten Slavedateien aus dem Report ausgeklammert Alle Ausgabeobjekte und oder Ausdr cke die sich auf die fehlenden Daten dateien beziehen werden automatsich aus dem Report entfernt 271
29. speichert R ckgaben 0 Der Report wurde erfolgreich in die angegebene Datei geschrieben lt 0 Fehler REPORT4 ist ung ltig oder die angegebene Datei konnte nicht angelegt werden Siehe auch report4retrieve report4separator Aufruf rc report4separator REPORT4 amp separator Beschreibung Mit dieser Funktion wird das Zeichen angegeben das zwischen Hundertern und Tausendern Tausendern und Millionen usw steht Parameter REPORT4 Ein REPORTA4 Zeiger auf den Report f r den das Zifferntrennzeichen gelten soll separator Das als Trennzeichen verwendete Zeichen W n schen Sie kein Trennzeichen bergeben Sie f r separator einen Nullstring Wird diese Funktion nicht aufgerufen wird als voreingestelltes Trennzeichen das Komma be nutzt R ckgaben 0 Trennzeichen erfolgreich eingerichtet lt 0 Fehler REPORT4 ist ung ltig 325 CodeReporter 2 0 report4sortSet Aufruf Beschreibung Parameter Hinweis R ckgaben Siehe auch report4toScreen Aufruf Beschreibung 326 rc report4sortSet REPORT4 amp sortExpr Diese Funktion legt die Sortierfolge fest in der die zusammen gesetzten Datens tze des Reports eingelesen werden REPORT4 Ein REPORTA4 Zeiger auf den Report f r den die Sortierfolge gelten soll sortExpr Eine Zeichenkette die den dBASE Ausdruck ent h lt nach dem die zusammengesetzte Datendatei sortiert wird Dieser Ausdruck kann als Ergebnis einen Zeichen
30. werden Abweichungen der tats chlichen Funktion der Software von der Beschreibung im Handbuch sind daher keine Grundlage f r Anspr che gegen Sequiter Software Inc oder die ComFood Software GmbH Warenzeichen CodeBase M CodeBasic M und CodeReporter M sind Warenzeichen von Sequiter Software Inc Borland C und Turbo C sind eingetragene Warenzeichen von Borland Inter national Clipper ist ein eingetragenes Warenzeichen von Computer Associates International Inc dBASE ist ein eingetragenes Warenzeichen von Borland International FoxPro ist ein eingetragenes Warenzeichen der Microsoft Corporation MetaWare High C ist ein Warenzeichen von MetaWare Inc Microsoft C ist ein eingetragenes Warenzeichen der Microsoft Corporation Microsoft Windows ist ein eingetragenes Warenzeichen der Microsoft Corporation OS 2 ist ein eingetragenes Warenzeichen der International Business Machines Corpo ration ii Inhaltsverzeichnis Einleitung e 22er aan 1 Eigenschaften s 24 32 228 2 2 Starten mit CodeReporter 4 Systemanforderungen 2 222222 eeeeeeeeeeenenenen nennen 4 Registrierung ed due ee ehe sh 4 Installation ERNEIEREN Nee I 5 Versione u a ee DER ee 5 CodeReporter aufutfen snese ua E D E EREA REN EREA RE E GERERE 6 Datei M nager ENEE DERAT and 6 Datei l Ausf hren NEEN dE en ee REENEN 6 SYyMDOol ac Rena eu 7 Zugriff auf Reportdateien 2 2222 uceeeeeeeeneeeeneeeeneeenn 7 Einen Rep frt lad
31. werden dieselben Daten aus w hrend andere sich mit jedem zusammengesetzten Datensatz ndern Ausgabeobjekte die sich nicht ver ndern z B Linien Be schreibungen Firmenlogos usw bezeichnen wir als statisch Die w hrend der Reportentwicklung f r diese Elemente festgesetzten Werte und Einstellungen bleiben bei der Ausf hrung des Reports so bestehen Die Werte anderer Ausgabeobjekte z B Felder und Summen k nnen sich bei jedem Reportlauf ja von einem zusammengesetzten Datensatz zum n chsten ndern Diese laufenden Ver nderungen unterworfenen Reportelemente bezeich nen wir als dynamisch Die Werte dynamischer Ausgabeobjekte spiegeln die Daten in der den zusammengesetzten Datendatei en wider die sich jederzeit ndern k nnen Die verschiedenen Arten statischer und dynamischer Ausgabeobjekte werden im Rahmen dieses Kapitels ausf hrlich behandelt Ausgabeobjekte definieren F r jedes Objekt gilt ein bestimmter Typ ein Feld eine Linie ein Text usw Der Typ des Objekts wird bei seiner Definition festgelegt und ndert sich danach nicht mehr Ausgabeobjekte lassen sich jedem Reportbereich hinzuf gen z B dem Seiten kopf fu dem Titel Schlu und einem Gruppenkopf fu siehe Kapitel Grup pen und Bereiche Sie bleiben in ihrem urspr nglichen Bereich es sei denn sie werden ber Ausschneiden und Einf gen wie im Abschnitt Objekte verschieben weiter unten beschrieben verlagert 93 C
32. 159 Zahlenformat 165 Runden 113 Schriftart Objektgr e und 103 Schriftarten siehe Styles Seite Gr e anzeigen 160 Kopf Fu bereiche 90 Kopf Fu mit Gruppe tauschen 78 Kopf Fu und R nder 163 Papierformat 164 Position der Seitenzahl 90 Seitenbreite 163 Seitenumbruch innerhalb eines Bereichs 89 Seitenumbruch nach Titel 90 167 Seitenzahl zur cksetzen EN zur cksetzen 81 Seriennummer 11 Slavedatei 48 53 als Masterdatei 51 angeben 59 Master mit mehreren 55 Relation mit Datensatznummer 62 zur Relation hinzuf gen 58 Sortieren Report Utility 137 Sortierausdruck 63 zusammengesetzte Datendatei 72 Spaltenreport siehe Report Utility Speicheranforderungen 4 Speichern Relationen auf Platte 66 Reports als Code 181 Reports auf Platte 8 Standard Datumsformat 114 Statusanzeige 92 94 158 Stichhaltigkeit des Reports 46 STODO 294 Stop bei Fehler 51 341 CodeReporter 2 0 STRO 294 style4color 282 style4create 282 283 style4delete 284 style4free 285 style4index 286 style4lookup 286 Styles andere Plattformen und 153 Ausgabeobjekte und 104 ausw hlen 152 bearbeiten 152 benennen 150 erstellen 150 156 kopieren 151 l schen 151 Non Windows Styles 150 153 154 Normal 150 Objekte innerhalb v Objekten 119 Objekte und 152 Rahmen und 119 Schriftarten und 150 Seiten Layout laden 92 Style Popup Men 152 voreingestellter Style 150 Was sind 149 Subindizes eindeutige 53 Relation planen und 4
33. 159 Ma einheiten f r die Anzeige 2 2 22 ceeeeeeeeeerneen 159 Seitengr e einstellen 22222 cesueeeeeeeeeeneeeenennnn 160 10 Reports gestalten ra sea en EB dE 162 R nder und Seitenformat 162 EEN 162 KE let ann a ee ln Er EEE LET 163 Papierlorm t e e d ee te sr gehe 164 Reporiv rgaben LEE ns EE NEE EEN ENEN 164 Zahlenformat s peisso ei aoia E a A E EA RER S 164 Datumsformat 2 2 0 naar aan 166 Pfadnamens chinese se herein ech 166 Feste Zur cksetzung 2222220 en as e e EEE i 167 Seitenumbruch nach dem Tel 167 REPSTIKOPpE een De R 168 NEE NEE 170 Einen Drucker ausw hlen 22ueue sense eenneeennn 170 Auf den Bildschirm 2 222 coooeesesseneneeeenernnn 171 Aufeinen Drucker 171 ieme CEA 172 Drucken kontra Einsehen 173 In eine Datenbankdatei 174 Objekte nigra Bee as arena 175 Datensatzausgabegruppe 22222 eeeeeeeeenenenen nen 176 Ausgabe Datendatei 176 In eine Datendatei drucken 176 Beispiel eresi res ae breaks 176 12 Eunktions bersicht 28 32 A a 179 Bezeichnungen des Reportmoduls 2 222202 enere 179 Als Co de speichern Ne AEN 2 ei as reis 180 Reportfunktionen einsetzen 182 Eine Reportdatei verwenden 183 Generierten Code verwenden 186 Einen Report ganz von vorn aufbauen n2n2eeeeeeeeennn 188 Angepa te Ausgabetreiber 222222 eneneeeererenene nenn 189 Treiber Shell einsetzen seen
34. 171 CodeReporter 2 0 Geben Sie die gew nschte Anzahl der Kopien ein und oder klicken Sie auf Einrichten um den gew nschten Drucker auszuw hlen und einzurichten Klik ken Sie auf OK wird der Druckvorgang gestartet ein Klick auf Abbrechen bewirkt den R cksprung in den CodeReporter Entwicklungsbildschirm ohne zu drucken Hinweis Bei einem Report ohne Seitenumbr che macht es keinen Sinn eine bestimmte Anzahl von Seiten ausgeben zu lassen Alle hier eingege benen Werte werden von CodeReporter ignoriert Stellen Sie die einzeilige Listbox Druckqualit t auf Entwurf ein kann es geschehen da der Druckertreiber den waage bzw senk rechten Abstand von Ausgabeobjekten bis an die Zeichengrenze ver schiebt Das kann dazu f hren da Reports die beim Einsehen noch einzeilig waren mit jeweils einer Leerzeile zwischen den Zeilen ausgegeben werden Stellen Sie also Druckqualit t auf Brief ein oder setzen Sie die Gr e der Reportbereiche auf 12 Punkt oder ein Vielfaches davon Drucker Standarddrucker HP LaserJet IIP an LPT1 Abbrechen Druckqualit t 300 dpi E Kopien CO Ausdruck in Datei oO Kopien sortieren Abb 11 2 Dialogbox Drucken In eine Datei Aus verschiedenen Gr nden sollte die gedruckte Version eines Reports auch als Datei vorliegen Zum einen kann er dann sp ter noch einmal ausgedruckt werden zum anderen kann man ihn in ein anderes Program
35. 2 5 cm eingestellt hat der erste Seitenkopf Bereich einen Abstand von 2 5 cm zur oberen Papierkante R nder Links Rechts Reportbreite 19 625 Ma einheit Zentimeter Abbrechen Abb 10 1 Dialogbox R nder Hinweis Um den Eindruck zu erwecken da Teile des Seitenkopfes bzw fu es au erhalb des oberen und unteren Randes eines Reports liegen k nnen Sie diese R nder auf einen kleinen Wert einstellen und dann den Seitenkopf Seitenfu Bereich in der H he vergr ern Seitenbreite Wie bereits erw hnt richtet sich die Seitenbreite eines neuen Reports nach der Einstellung des Standard Windows Druckers Soll die Endausgabe auf einem Drucker erfolgen dessen Druckbreite gr er bzw kleiner als die des voreinge stellten ist k nnen Sie die von CodeReporter verwendete Seitenbreite entspre chend ver ndern Die H he der Seite wird w hrend des Druckvorgangs ber den ausgew hlten Drucker ermittelt Achtung Es liegt in der Verantwortung desjenigen der den Report ausgibt sicherzustellen da der Drucker f r Windows richtig konfiguriert ist dazu geh ren auch die berpr fung der Papiergr e und des Formats 163 CodeReporter 2 0 Papierformat Ob ein Report im Hoch bzw Querformat gedruckt wird entscheidet sich anhand der Druckerkonfiguration zum Zeitpunkt der Ausgabe Die Einstellung erfolgt entweder ber die Windows Systemsteuerung oder aber t
36. 24 2 m Abb 5 8 Ausgabe mit Vorschau Soll das Ausgabeobjekt LOOKAHD gt TOTSALES als W hrungswert angezeigt werden m ssen die Einstellungen ebenfalls abge ndert werden Rufen Sie die 110 Ausgabeobjekte Dialogbox Objektdefinition auf und klicken Sie auf die Schaltfl che W h rung im Bereich Zahlenformat Die Entwicklung des Reports ist nun abgeschlossen Lassen Sie sich mit DATEI DRUCKBILD EINSEHEN den fertigen Report anzeigen Sein Inhalt sollte in etwa aussehen wie der Reportentwurf und Abb 5 8 Zahlen Wenn ein Ausgabeobjekt einen Zahlenwert annimmt sei es ein numerisches Feldobjekt eine arithmetische Berechnung eine Summe oder ein numerischer dBASE Ausdruck kann die Objektausgabe formatiert erfolgen Zahlenformate CodeReporter kann Zahlenwerte in vier verschiedenen Formaten ausgeben und zwar als einfache Zahl ohne Formatierung W hrungswert Prozentwert und Exponent Bei jedem dieser Formate wird derselbe Wert unterschiedlich angezeigt Falls erforderlich werden alle Zahlenwerte mit Zeichen nach Tausend und oder Dezimalkomma ausgegeben Diese Zeichen werden vom Report gesteuert und in der Dialogbox Reportvorgaben definiert Siehe Reportvorgaben im Kapitel Reports gestalten wie man diese Werte ver ndert Ein Zahlenwert kann als W hrungswert formatiert werden dazu aktivieren Sie in der Dialogbox Objektdefinition die Schaltfl che
37. Bereich vorhan denen Ausgabeobjekte area4objFirst area4dobjNext area4dobjLast area4dobjPrev area4dobjFirst Aufruf Beschreibung Parameter R ckgaben Siehe auch OBJ4 area4objFirst AREA4 area Diese Funktion ruft einen Zeiger auf das erste Ausgabeobjekt im angegebenen Bereich ab In Verbindung mit area4objNext durchl uft sie die Ausgabeobjekte in einem Bereich area Ein Zeiger auf den Bereich der die Ausgabeob jekte enth lt Nicht Null Ein OBJ4 Zeiger auf das erste Ausgabeobjekt in dem Reportbereich wird zur ckgegeben 0 Fehler area ist ung ltig oder der angegebene Bereich enth lt keine Ausgabeobjekte area4objNext area4objLast 199 CodeReporter 2 0 API area4dobjLast Aufruf Beschreibung Parameter R ckgaben Siehe auch OBJ4 area4objLast AREA4 area Diese Funktion ruft einen Zeiger auf das letzte Ausgabeobjekt im angegebenen Bereich ab In Verbindung mit area4dobjPrev durchl uft sie die Ausgabeobjekte in einem Bereich r ckw rts area Ein Zeiger auf den Bereich der die Ausgabeob jekte enth lt Nicht Null Ein OBJ4 Zeiger auf das letzte Ausgabeobjekt in dem Reportbereich wird zur ckgegeben 0 Fehler area ist ung ltig oder der angegebene Bereich enth lt keine Ausgabeobjekte area4dobjPrev area4objFirst area4objNext Aufruf Beschreibung Parameter R ckgaben 200 OBJ4 area4objNext AREA4 area Diese Funktion ruft einen Zeiger auf das n
38. COMPNAME und CEO enth lt befindet sich im CodeReporter Ver zeichnis EXAMPLES 14 bungen CodeReporter 2 0 TEST Be a IL rerbrreierekerztrerbreriezckere EE been nn Gruppe Seitenkopf fu Kopf Bereich 1 von 1 ID FIRMENNAME Gruppe Titel Schlu Kopf Firmenliste Gruppe Body Kopf COMPII COMPNAME Seitenkopf fu Bereich 1 H he 0 333 Zoll Abb 2 Fertiggestellter Report von bung Nr 3 Einen neuen Report anlegen Aktivieren Sie nach dem Aufruf von CodeReporter die Option DATEI NEU Der aktuelle Report wird geschlossen und das Programm fordert die erste Datendatei des Reports an die Top Master Datendatei Da der Report den Inhalt der Datendatei COMPANY DBEF ausgeben soll markieren Sie im CodeReporter Beispieleverzeichnis die Datei COMPANY DBF und klicken auf OK Nach Erreichen dieser Ausgangslage zeigt CodeReporter einen leeren Report Entwicklungsbildschirm an Es wird eine voreingestellte Gruppe namens Body mit einem Kopfbereich angelegt in den Ausgabeobjekte eingef gt werden k nnen F r einen Report reicht es grunds tzlich aus da lediglich ein Reportbereich vorhanden ist der f r jeden zusammengesetzten Datensatz wiederholt wird Diesen Bereich legt CodeReporter automatisch f r jeden neuen Report an so da keine neuen Gruppen erzeugt werden m ssen Einzelheiten zu Gruppen und Bereichen finden Sie in den entsprechenden Kapiteln 15 Code
39. Datens tze gefunden werden N here Informationen zur Fehlerbe handlung finden Sie weiter oben Anstelle der voreingestellten Fehlerbehandlung Felder l schen k nnen Sie die Optionsschaltfl che N chster Satz bzw Stop bei Fehler aktivieren Hinweis Bei Relationen mit ungef hrer bereinstimmung ist als einzige Feh lerbehandlung Felder l schen m glich Wie aus Abb 2 7 ersichtlich beinhalten die Schaltfl chen der Datendateien in der Dialogbox Relation Henkel zum Verschieben Mit Hilfe eines Mausklicks auf 62 Relationale Reports das dunkelgraue Quadrat in der oberen rechten Ecke der Schaltfl che kann eine Slavedatei innerhalb derselben Masterdatei versetzt werden Der einzige Vorteil eine Slavedatei in bezug auf ihre Masterdatei h her oder tiefer zu setzen besteht darin da niedrigere Slavedateien die Felder von h heren Slavedateien im Masterausdruck f r die Relation benutzen k nnen In Abb 2 7 kann die Relation STORES EXPENSES zur Definition der Relation alle Felder der Dateien COMPANY DBF STORES DBF und SALES DBEF be nutzen Die Relation STORES SALES andererseits kann in ihrem Masteraus druck lediglich die Felder von COMPANY DBF und STORES DBF verwenden In bezug auf ihre Masterdatei kann eine Datendatei durch Klicken der linken Maustaste auf den Henkel und Ziehen mit der Maus versetzt werden Darf die Datei nicht an eine andere Stelle gesetzt werden hat das Anklicken und Ziehen k
40. Datumswertes wird mit Hilfe einer Datumsschablone dargestellt Diese Zeichenkette enth lt mehrere Formatierzeichen und oder auch andere Zeichen Die Formatierzeichen sind C Jahrhundert century Ein C steht f r die erste Ziffer des Jahrhunderts Erscheinen zwei C s werden beide Ziffern des Jahrhunderts dargestellt Alle weiteren C s werden nicht als Formatierzeichen benutzt Y Jahr year Ein Y steht f r die erste Ziffer des Jahres Erscheinen zwei Y s werden beide Ziffern des Jahres dargestellt Alle weiteren Y s werden nicht als Formatierzeichen benutzt M Monat month Ein bzw zwei M s stellen die erste oder beide Ziffern des Monats dar Stehen mehr als drei Mis hintereinander wird der Monat in Buchstaben angegeben 113 CodeReporter 2 0 D Tag day Ein bzw zwei D s stellen die erste oder beide Ziffern des Monatstages dar Alle weiteren D s werden nicht als Formatierzeichen be nutzt Andere Zeichen Alle oben nicht erw hnten Zeichen werden bei der Forma tierung in den Datumsstring bernommen Der 7 Oktober 1992 kann mit verschiedenen Datumsschablonen z B folgender ma en ausgegeben werden FORMAT AUSGABE DD MMMMMMM CCYY 07 Oktober 1992 YY MMMMMMM DD 92 Oktober 07 DD MM YY 07 10 92 Voreingestelltes Datumsformat Bei allen Ausgabeobjekten mit Datum verwendet CodeReporter das voreinge stellte Format DD MM YY Dieses Format l t sich ber das Editi
41. Fehler Der Report konnte nicht geladen werden Das liegt m glicherweise daran da die Top Ma ster Datendatei nicht lokalisiert oder nicht genug Speicher f r den Report zugewiesen werden konn te relate4retrieve rc report4save REPORT4 amp fileName savePaths Diese Funktion legt einen Report in einer variabel codierten Reportdatei ab die entweder mit CodeReporter bzw der Funk tion report4retrieve wieder eingelesen werden kann report4save wirkt sich in keinster Weise auf den im Speicher befindlichen Report aus Die Funktion kann ohne sch dliche Wirkung vor oder nach report4do aufgerufen werden Wird ein Report mit Grafikausgabeobjekten in eine Non Wind ows Anwendung geladen und mit report4save abgespeichert werden die Grafikausgabeobjekte in der neuen Reportdatei nicht mitgesichert REPORT4 Ein REPORT4 Zeiger auf den Report der auf der Platte abgelegt werden soll fileName Eine Zeichenkette die Laufwerk Verzeichnis und Namen der Datei enth lt unter denen der Report gespeichert werden soll Sie k nnen eine Erweite rung am Dateinamen angeben geben Sie keine an wird die voreingestellte Erweiterung REP an den Dateinamen angeh ngt savePaths Enth lt savePaths einen wahren Wert 1 legt report4save f r jede im Report genannte Datei Anhang F CodeBasic API Laufwerk und Pfad in der Reportdatei ab Enth lt savePaths einen falschen Wert 0 werden ledig lich die im Report vorhandenen Dateinamen ge
42. Funktion l scht ein mit obj4bitmapFieldCreate angeleg tes dynamisches Grafikausgabeobjekt aus dem Report und gibt den mit der Bitmap und dem Ausgabeobjekt verbundenen Spei cher frei Parameter obj Zeiger auf das zu l schende Grafikobjekt der von obj4bitmapFieldCreate zur ckgegeben wird Siehe auch obj4bitmapFieldCreate obj4delete report4free obj4brackets Aufruf int obj4brackets OBJ4 obj int useBrackets Beschreibung Diese Funktion gibt an ob das bezeichnete numerische Ausga beobjekt bei negativen Zahlen Klammern verwenden soll oder nicht Parameter obj Ein Zeiger auf das numerische Objekt das mit Klammern versehen werden soll useBrackets Dieser Parameter legt fest ob negative Zahlen in Klammern eingeschlossen werden sollen 220 R ckgaben Siehe auch gt Funktions bersicht useBrakkets kann einen der folgenden Werte annehmen 1 Negative Zahlen werden in Klammern einge schlossen also 123 0 Negativen Zahlen wird das Minuszeichen vor angestellt also 123 Die vorhergehende Einstellung von useBrackets wird zugegeben lt 0 Fehler obj oder useBrackets sind ung ltig obj4numericType obj4displayZero obj4dataFieldSet Aufruf Beschreibung Parameter int obj4dataFieldSet OBJ4 obj char destField char type int length int decimals Diese Funktion wird bei der Ausgabe eines Reports in eine Da tendatei verwendet um ein Objekt des Reports einem Feld der Zieldatenda
43. Ken Hirshfeld 123345 Sandra Donaghey Einer zu vielen 873454 Barry Webber Filterrelation 423232 Harvey Tyler 463722 James Miller 234533 David Krammer g Top Master Datendatei Master von ENROLL ENROLL DBF 534452 Bernie McFarland 234533 CMPT411 835543 Douglas Samoil 234533 CMPT389 153543 Ron Watson 858343 George Dean 423232 MATH114 157932 Albert Miller 423232 ECON102 876097 Scott Greig 345742 Brian Perron 423232 CMPT411 336544 Allan Racine 876097 ECON102 865422 Cameron Calvert 125753 Reginald Page 874632 Eric Lane 765343 Upali Shivji Viele zu einem genaue bereinstimmung Slave von STUDENT Master von COURSE Slave von ENROLL COURSE DBF CMPT389 Datenbankeinf CMPT411 Computer Grafik MATH114 Einf in Calculus ECON102 Makro Wirtschaft 423232 Harvey Tyler 423232 MATH114 MATH114 Einf in Calculus i j 1 STUDENT DBF ENROLL DBF COURSE DBF Erster zusammengesetzter Datensatz 423232 Harvey Tyler 423232
44. Prototyp 36 Relationen 43 45 zusammengeh rige Bereiche 39 Zweckerkl rung 35 36 46 50 report4caption 246 report4currency 246 report4dataDo 247 report4dataFileSet 248 report4dataGroup 248 report4dateFormat 249 report4decimal 250 report4do 250 report4free 251 report4generatePage 252 253 report4groupFirst 254 report4groupLast 254 report4groupLookup 255 report4groupNext 256 report4groupPrev 256 report4hardResets 257 report4init 258 report4margins 259 report4numGroups 260 report4numStyles 261 report4output 262 report4pageFree 263 report4pageHeaderFooter 264 report4pagelnit 264 report4pageMarginsGet 265 report4pageObjFirst report4pageObjNext report4pageSize report4pageSizeGet report4parent report4printerDC report4printerSelect report4querySet report4retrieve report4save report4separator report4sortSet report4styleFirst report4styleLast report4styleNext report4styleSelect report4styleSelected report4styleSheetLoad report4styleSheetSave report4titlePage report4titleSummary report4toScreen Reportbereiche siehe Bereiche Reportdateien 1 0 Dateien ffnen Inhalt laden neue Reports ffnen Pfade in Report speichern Report Utility umbenennen Verzeichnis wechseln Reportfunktionen abgespeicherten Report laden Einsatz Reportkopf siehe CodeReporter Reportvorgaben Anzeigema einheiten Index 265 266 267 268 268 269 269 270 271 273 274 275 276 276 277 277 278 278 279 280 281
45. SEENEN De EE REN e He Name eegene ebe d ebe ne gehen Sief Abee 77 BOSIION sr ran se ran SR per enge 78 Gruppen pti nen nu unse au Zee a en RS EE 78 Kopf austauschen Fu austauschen 78 Kopf wiederholen sooren ananaga Ban nei 8l Seite zur cksetzen ees anni 8l Seitenzahl zur cksetzen nn 8l Flag Feste R cksetzung 2222020 eeeeeeeenenenen en 8l Eine Gruppe bearbeiten ER Eine Gruppe l schen ER Eine Gruppe ausw hlen ER R cksetzbedingungen und Drucken von Gruppen ER 4 Bereicher 2 222 eebe 86 Einen Bereich ausw hlen ssnin sanira e i E a E E E OES 87 Einen Bereich anlegen 87 Einen Bereich l schen 87 Einen Bereich bearbeiten 87 Gr e eines Bereichs bestimmen 88 Seitenumbruch 2 8 2 ee NENNEN 89 Einen Bereich unterdr cken 89 Seitenkopf und Seitenfu Bereich 90 Titel und Schlu bereich 22222neeeeeeeeeeeeern nen 90 Beispiel 2 re een es a nenne 91 2 Ausgabeobjekte r sn tere Bene Bike IRB 93 Ausgabeobjekte definieren 22222 eneneeeerereneenn nen 93 Einf gemod s erre 5 2 2a REES e 94 Einsatz der Tastenleiste 2222222 neeeeeeeeeeeeernennn 94 Einsatz des Mentee 94 Mehrere Objekte definieren 94 Objekte innerhalb von Objekten 2 222202 ceeeenenen en 95 Objekte ausw hlen 95 Mehrfachauswahl 95 Objekte l schen eebe ege EE Be panel 96 vi Objekte verschieben 96 Fein
46. Sequiter Software und dem CodeReporter API arbeiten und zwar unter DOS OS 2 oder Windows Lockern Sie Ihre Reports mit Grafiken auf Dazu k nnen Sie entweder statische Grafikelemente wie Firmenlogos einbauen oder solche Elemente unmittelbar in den ablaufenden Report laden CodeReporter 2 0 ist in der Lage einen Report in eine Datendatei auszugeben Diese neue Eigenschaft gestattet es dem Benutzer einen Report auf Grundlage eines bereits vorhandenen Reports zu erstellen bzw CodeReporter als Datenum formungswerkzeug einzusetzen F r Programmentwickler stehen preisg nstige Mehrfachlizenzen von CodeRepor ter zur Verf gung die an Endanwender verkauft werden k nnen Einzelheiten erfragen Sie bitte telefonisch oder schriftlich CodeReporter 2 0 Starten mit CodeReporter Systemanforderungen Die mit CodeReporter und den Reportfunktionen erstellten Reports k nnen unter jedem beliebigen Betriebssystem eingesetzt werden CodeReporter selbst jedoch l uft nur unter Windows 3 1 Hinweis Zur Bedienung von CodeReporter ben tigen Sie eine Windows kom patible Maus Um die Funktionen von CodeReporter voll ausnutzen zu k nnen empfehlen wir die folgende Minimalkonfiguration IBM 386er oder 100 kompatibler Rechner mit einer Taktfrequenz von min destens 25 MHz mindestens 4 MB Hauptspeicher Windows kompatibler SVGA Farbmonitor Windows kompatible Maus mit zwei Tasten eine Festplatte mit mindestens 1 6 MB Plattenplat
47. Sie bitte dem Abschnitt Non Windows Styles weiter unten Styles erstellen Die Ausgabe neu erstellter Objekte erfolgt unter Verwendung des voreingestell ten Styles Wurde bislang kein Style erstellt gilt der CodeReporter Grundstyle Normal Sind bereits Styles vorhanden wird der zuletzt ausgew hlte als Vor einstellung f r alle neuen Ausgabeobjekte benutzt Styles werden ber die Men option STYLE ERSTELLEN definiert Nach der Aus wahl bittet CodeReporter Sie um die Eingabe eines Namens f r den neuen Style der in dem Report nur einmal vorkommen darf Ist ein Style mit diesem Namen bereits vorhanden kann der neue nicht erstellt werden Nachdem Sie einen Namen f r den Style eingegeben haben wird die gemeinsame Dialogbox Schriftart Abb 8 1 angezeigt wie sie die meisten Windows Anwendungen z B Textverarbeitungsprogramme enthalten W hlen Sie die gew nschte Schriftart gr e Farbe usw aus und klicken Sie auf OK Wenn Sie jetzt ein Ausgabeobjekt mit diesem neuen Style verbinden erfolgt die Ausgabe mit den eingestellten Schriftattributen 150 Styles Hinweis Beim Erstellen neuer Styles bildet der aktuelle Style die Grundlage f r den neuen Wenn Sie mehrere hnliche Styles erstellen wollen definieren Sie den ersten w hlen ihn aus und benutzen ihn dann als Grundlage f r die weiteren Styles Schriftart Schriftart Schriftstil Schriftgr e Steg Le Standard Abbrechen MS Ge
48. Teile des Reports hervorzuheben Wenn Sie die Men option OBJEKT TEXT anw hlen oder auf die Schaltfl che Text klicken begibt sich CodeReporter in den Einf gemodus Nach der Pla zierung eines Textobjekts wird die Dialogbox Text f r Textobjekt eingeben aufgerufen 115 CodeReporter 2 0 Dar ber hinaus werden Textobjekte erzeugt wenn ber die Men option BEAR BEITEN EINF GEN Texte aus der Windows Zwischenablage z B aus einer Text verarbeitung in den Report eingelesen werden DBF DBF Reportentwurf MONAT ANZ PROD Gruppe Gruppe Kopf Januar 200 LKWs DBF gt MONAT DBF gt ANZ DBF gt PROD Januar 100 PKWs Januar 150 Mopeds Feldobjekte Objekt DBF gt MONAT verwendet ee EELA Bee Einmal anzeigen und einen Unter dr ckungsausdruck DBP MONAT Ausgabe 3 Januar 200 ANS ge nderter Monatswert Monatsausgabe 100 PKWs 150 Mopeds Monatswert gleich keine Monatsausgabe Februar 150 PKWs ge nderter Monatswert Monatsausgabe Abb 5 9 Beispiel f r Einmal ausgeben 116 Ausgabeobjekte Linien und Rahmen Eine weitere M glichkeit einen Teil des Reports hervorzuheben besteht in der Verwendung statischer Linien und Rahmen Die Linien k nnen waagerecht oder senkrecht verlaufen Bei den Rahmen handelt es sich einfach um Rechtecke eventuell mit F llung oder run
49. Um diese Funktion einsetzen zu k nnen m ssen Sie zun chst report4parent aufrufen Erfolgt dieser Aufruf nicht kann das zu unvorhersehbaren Ergebnissen f hren Parameter R ckgaben Siehe auch report4free Aufruf Beschreibung Achtung Funktions bersicht Wird der Report in einer Non Windows Anwendung ausgege ben schickt report4do den Report an das mit report4output angegebene Ger t und springt nach Ausf hrung des Reports zur ck report Bezeichnet den auszugebenden Report 0 Der Report wurde erfolgreich ausgegeben Unter Windows wird dieser Wert augenblicklich zur ck gegeben auch wenn die Ausgabe des Reports im Ausgabefenster noch nicht ganz abgeschlossen ist r4terminate Es konnte keine Relation hergestellt werden und bei der mit relate4derror_action angegebenen Fehlerbehandlung handelte es sich um relate4 terminate lt 0 Fehler report4toScreen report4parent report4printerSelect report4printerSet report4output void report4free REPORT4 report int freeRelate int closeFiles Diese Funktion gibt den gesamten mit dem Report verbundenen Speicher einschlie lich den aller Ausgabeobjekte Gruppen und Bereiche frei Bei einer Windows Anwendung sollte diese Funktion erst aufge rufen werden nachdem das Elternfenster des Reports eine CRM_REPORTCLOSED Meldung erhalten hat Wird report4 free unter Windows unmittelbar nach report4do aufgerufen kann das zu unvorhersehbaren Ergebnissen f hre
50. Ze report4pageMarginsGet Aufruf int report4marginsGet REPORT4 report long left long right long top long bottom Beschreibung Mit dieser Funktion werden die f r den Report eingestellten R nder abgerufen Alle R nder werden in Schritten von 1 1000 Zoll eingelesen 264 Parameter R ckgaben Siehe auch report4pageObjFirst Aufruf Beschreibung Parameter R ckgaben Siehe auch Funktions bersicht report Ein Zeiger auf den Report dessen Randeinstellun gen abgerufen werden left Ein Zeiger auf eine long Variable die die Breite des linken Randes enth lt right Ein Zeiger auf eine long Variable die die Breite des rechten Randes enth lt top Ein Zeiger auf eine long Variable die die Breite des oberen Randes enth lt bottom Ein Zeiger auf eine long Variable die die Breite des unteren Randes enth lt 0 Randeinstellungen erfolgreich eingelesen lt 0 Fehler report ist ung ltig report4margins SZ OBJECTA4 report4pageObjFirst REPORTA4 report Diese Low Level Funktion dient dazu eine interne Darstellung des ersten ausgewerteten Ausgabeobjekts auf der aktuellen Seite des Reports einzulesen report Ein Zeiger auf den Report aus dem das erste Ob jekt der aktuellen Ausgabeseite eingelesen wird gt 0 Ein OBJECT4 Zeiger f r das ausgewertete erste Objekt der aktuellen Ausgabeseite wird zur ck gegeben lt 0 Die aktuelle Seite enth lt keine Objekte report4pageObjN
51. ausreichte nicht angelegt werden Fehler beim Ausw hlen des Styles Der STYLE4 Zeiger auf eine Style Auswahl funktion ist ung ltig Fehler beim Lokalisieren des Styles Der angegebene Style ist nicht auffindbar Entweder wurde ein ung ltiger STYLE4 Zei ger oder ein nicht vorhandener Stylename an eine Style Suchfunktion bergeben Fehler beim Anlegen des Bereichs Der Bereich konnte nicht angelegt werden weil ihm entweder kein Speicher zugewiesen oder der Unterdr ckungsausdruck nicht analysiert werden konnte Fehler beim Anlegen der Gruppe Die Gruppe konnte aufgrund von zu wenig Speicher oder eines ung ltigen GROUP4 Zeigers nicht angelegt werden 305 e4group_expr e4total_create e4obj_create e4rep_win e4rep_out e4rep_save e4rep_ret 306 816 817 818 819 820 821 822 CodeReporter 2 0 Fehler beim Einrichten des Gruppenr ck setzausdrucks Der Gruppenr cksetzausdruck konnte nicht richtig analysiert werden Fehler beim Erzeugen der Summe Das Summenausgabeobjekt konnte aufgrund von Speichermangel aufgrund einer ung ltigen numerischen Berechnung oder aufgrund eines ung ltigen R cksetzausdrucks nicht erzeugt werden Fehler beim Erzeugen des Objekts Das Ausgabeobjekt konnte aufgrund von Spei chermangel oder eines ung ltigen AREA4 Zeigers nicht erzeugt werden Fehler bei der Ausgabe unter Windows Ein Fehler hat sich bei der Anmeldung der Fensterklasse zur Ausgab
52. besten in Verbindung mit einem eindeutigen Subindex verwenden Abb 2 2 zeigt eine Relation mit genauer bereinstimmung zwischen SALES DBF und CUSTOMER DBF Relationen mit ungef hrer bereinstimmung Beim zweiten Relationstyp geht es um ungef hre bereinstimmung Dieser Typus hnelt der Relation mit genauer bereinstimmung insofern als f r einen Masterdatensatz lediglich eine bereinstimmung zugelassen wird Der einzige Unterschied besteht im Verhalten der Relation wenn die Slavedatei keinen genau passenden Datensatz enth lt Kommt es zu keiner genauen bereinstimmung wird statt dessen der Slavedatensatz genommen dessen Indexschl ssel als n chster im Slave Subindex steht 53 CodeReporter 2 0 Relationen mit ungef hrer bereinstimmung sind im allgemeinen eher selten und werden nur benutzt wenn innerhalb von Datens tzen ein Bereich durch einen einzigen hohen Wert dargestellt werden soll ANG_DAT DBF RENTE DBF ANG_NAME JAHRE JAHRE RENTE ADAMS J 6 5 25000 ADAMS L 15 10 35000 COOK P 2 15 50000 FRANK B 3 20 75000 HENKE D 20 999 100000 MOORE A 25 Abb 2 4 Relation mit ungef hrer bereinstimmung Abb 2 4 zeigt eine Relation mit ungef hrer bereinstimmung In diesem Fall richten sich die Rentenboni f r die Angestellten nach der Anzahl der Jahre die sie f r die Firma gearbeitet haben
53. d d Abb 2 11 Dialogbox Als Code speichern Beispiel Um den Aufbau einer Relation an einem Beispiel zu verdeutlichen erl utern wir in diesem Abschnitt die f r den Aufbau der in Abb 2 7 angegebenen Relation erforderlichen Schritte Top Master Datendatei Beim Anlegen einer neuen Reportdatei wird die Top Master Datendatei in unse rem Fall COMPANY DBE f r alle Relationen bestimmt Eine neue Reportdatei legen Sie mit DATEI NEU an Markieren Sie nach dem Erscheinen der Dialogbox Datendatei ausw hlen die Datei COMPANY DBF im CodeReporter Beispieleverzeichnis EXAMPLES und klicken Sie auf OK Der Report Entwicklungsbildschirm wird angezeigt W hlen Sie RELATION BEARBEITEN aus um die Slavedateien zum Relationsset hinzuzuf gen Die Dia logbox Relation sieht aus wie in Abb 2 12 angegeben Die Top Master Datendatei wird als Schaltfl che mit dem Namen der Datendatei angezeigt Die n chste Datendatei die mit ihr verkn pft werden soll hei t STORES DBEF Klicken Sie die Men option NEUER SLAVE an und w hlen Sie die Datei STORES DBEF in der angezeigten Dialogbox Datendatei ausw hlen aus 67 CodeReporter 2 0 Relation Neuer Slave Slave l schen Verkn pfung bearbeiten Schlie en Abb 2 12 Dialogbox Relation Relation bearbeiten Da es sich um eine neue Relation handelt erscheint automatisch die Dialogbox Datendatei Verkn pfungen In der Listbox Vorh Subin
54. da der Summe am Anfang des Reports noch kein Wert zugewiesen wurde Ein Summenausgabeobjekt innerhalb reportweiter Ausdr cke z B Abfrageaus dr cke hat keinen Sinn da der Wert der Summe sich erst bei der Reportausgabe errechnet In diesem Fall ruft der Versuch die zusammengesetzte Datendatei aufgrund des Reportinhalts zu begrenzen einen logischen Widerspruch hervor da der Report sich eben auf die zusammengesetzte Datendatei gr ndet Am besten bringt man Summen in dem Gruppenfu unter der die Daten der Untermenge zusammenfa t es sei denn es handelt sich um eine Vorschau summe in diesem Fall ist der Gruppenkopf Bereich angebracht 128 Ausgabeobjekte Eine Summe erstellen Ein Summenausgabeobjekt erstellen Sie ber die Dialogbox Summenberech nungen das mit der Men option OBJEKT SUMME bzw der Schaltfl che Summe im Report Entwicklungsbildschirm aufgerufen wird Die Dialogbox Summenberechnungen enth lt eine Listbox die die bereits vorhandenen numerischen Berechnungen und Summen umfa t Summenausgabe objekte werden in derselben Weise wie Berechnungen in den Report eingef gt Markieren Sie die gew nschte Berechnung Summe oder numerische Daten datei in der Listbox Positionieren Sie den Mauscursor auf die gew nschte Stelle des Reportbe reichs und klicken Sie einmal die linke Maustaste Mit der Positionierung wird die Dialogbox Summe bilden Abb 5 14 aufge rufen Summe
55. dem angegebenen Namen Zum Beispiel LAUNCH_D SAMPLE REP p lt Ausgabe auf standard print LAUNCH_D SAMPLE REP pSAMPLE OUT lt Ausgabe in Datei LAUNCH_D SAMPLE REP pLPT2 lt Ausgabe auf Anschlu LPT2 Die Option p kann in Verbindung mit f verwendet werden Die Ausgabe des Reports soll in eine Datendatei erfolgen Diese Option ist lediglich m glich wenn der Report mit einer Daten dateischablone gespeichert worden ist Geben Sie dataName nicht an erfolgt die Ausgabe in die im Report angegebene Da tendatei Geben Sie dataName an wird eine entsprechende Da tendatei angelegt und die Reportausgabe erfolgt in diese Datei Non Windows Druckercodes verwenden die in den Styles des Reports vorhanden sind Per Voreinstellung bermittelt LAUNCHLD die Druckersteuerzeichen nicht 333 Index Index CDX 5 IDX 5 MDX 5 NDX 5 NTX 5 REL 66 RER H Abfragen Abfrageausdruck eingeben 66 Report Utility und 137 zusammengesetzte Datendatei 65 Ansehen Report auf dem Bildschirm 171 Arbeitsindexdateien siehe Indexdateien areadcreate 197 area4free 198 areadnumObjects 199 area4objFirst 199 area4objLast 200 area4objNext 200 area4objPrev 201 area4pageBreak 201 Ausdrucksausgabeobjekte 125 erzeugen 125 Felder und 122 Ausgabeobjekte aus anderen Anwendungen einf gen 116 120 ausgew hltes Objekt 95 ausrichten 97 Ausrichtung 104 ausschneiden kopieren und einf gen 100 ausw hlen 95 bearbeiten 101 Definition 93 Ein
56. e der Bitmap ver ndert dabei bleiben ihre Propor tionen nicht unbedingt erhalten Wird ein Report mit einem solchen dynamischen Grafikobjekt gespeichert wird lediglich ein Verweis auf den Feldnamen mit abgelegt Das eigentliche Bild wird bei jeder Ausgabe des Gra fikausgabeobjekts aus der mit dem aktuellen Feldwert bezeich neten Bitmap Datei neu eingelesen area Dieser AREA4 Zeiger bezeichnet den Reportbe reich in den das neue Grafikausgabeobjekt gesetzt werden soll field Ein FIELD4 Zeiger auf das Feld einer Datendatei das Laufwerk Verzeichnis und Dateinamen einer Windows Bitmap Datei BMP enth lt Werden Laufwerk und oder Verzeichnis im Feld nicht genannt geht das Programm vom aktuellen Laufwerk Verzeichnis aus x Die waagerechte Koordinate in tausendstel Zoll an der die linke Seite des Grafikobjekts steht y Die senkrechte Koordinate in tausendstel Zoll vom oberen Rand des Reportbereichs an der die Oberkante des Grafikobjekts steht width Die horizontale Ausdehnung des Grafikausgabe objekts in tausendstel Zoll height Die vertikale Ausdehnung des Grafikausgabeob jekts in tausendstel Zoll Nicht Null Bei Erfolg wird ein Zeiger auf das neue Grafik ausgabeobjekt zur ckgegeben 219 CodeReporter 2 0 API 0 Fehler Das Grafikausgabeobjekt konnte nicht an gelegt werden Siehe auch obj4bitmapFieldFree obj4delete obj4bitmapFieldFree Aufruf void obj4bitmapFieldFree OBJ4 obj Beschreibung Diese
57. eine bestimmte Reihenfolge bei kombinierten Steuerse quenzen erforderlich ist entnehmen Sie bitte Ihrem Druckerhandbuch Wie bereits erw hnt sind die Werte f r Schriftarten und Attribute von Drucker zu Drucker verschieden In Anhang D Auszug aus der ASCH Tabelle finden Sie die entsprechenden Umrechnungswerte f r ASCH Hexadezimal und Dezi malnotation Beispiel Das folgende Beispiel zeigt die erforderlichen Schritte zur Erstellung einer Kur sivschrift sowohl f r Windows als auch ein Non Windows Betriebssystem und erkl rt wie man den neuen Style mit einem bereits vorhandenen Ausgabeobjekt verbindet Dabei gehen wir davon aus da es sich bei dem Non Windows Druk ker um ein Epson kompatibles Ger t handelt W hlen Sie die Men option DATEI NEU aus um einen neuen Report zu begin nen Da hierbei keine bestimmte Datendatei erforderlich ist k nnen Sie eine beliebige Datei aus dem Verzeichnis EXAMPLES zum Top Master erkl ren Automatisch erstellt CodeReporter die voreingestellte Gruppe Body mit einem Kopfbereich mit dem Standard Style Normal Versetzen Sie CodeReporter ber die Men option OBJEKT TEXT in den Einf ge modus f r Textobjekte und positionieren zwei Textausgabeobjekte mit folgendem Text in den Gruppenkopf Bereich Dieser Text ist NICHT kursiv Dieser Text IST kursiv 155 CodeReporter 2 0 Zu diesem Zeitpunkt sind beide Textobjekte noch mit dem voreingestellten Style Normal ve
58. einen Report von der Platte zu laden ist lediglich der Dateiname erforderlich Der gesamte Report einschlie lich der Namen der Datendateien befindet sich in der Reportdatei F r die Anzeige des Reports reicht die Funktion report4do aus die internen Funk tionen erledigen den Rest W rden Sie dieselbe Anwendung f r Windows schreiben s he der Code folgen derma en aus Programm WREP1 C include lt windows h gt include d4all h include r4report h define IDM_DOREPORT 101 static char reportName long FAR PASCAL WndProc HWND UINT WPARAM LPARAM int PASCAL WinMain HINSTANCE hInstance HINSTANCE hPrevInstance LPSTR lpszCmdParam int nCmdShow static char szAppName WREP1 HWND hwnd MSG msg WNDCLASS wndclass reportName lpszCmdParam 184 long Funktions bersicht if hPrevInstance wndclass style CS_HREDRAW CS_VREDRAW wndclass 1lpfnWndProc WndProc wndclass cbClsExtra se D wndclass cbWndExtra se D wndclass hInstance hInstance wndclass hIcon LoadIcon NULL IDI_APPLICATION wndclass hCursor LoadCursor NULL IDC_ARROW wndclass hbrBackground GetStockObject WHITE_BRUSH wndclass lpszMenuName MAINMENU wndclass lpszClassName szAppName RegisterClass amp wndclass hwnd CreateWindow szAppName Anwendungsfenster WS_OVERLAPPEDWINDOW CW_USEDEFAULT CW_USEDEFAULT CW_USEDEFAULT CW_USEDEFAULT NULL NULL hInstance NULL Sh
59. eingestellten Ma einheit vor Die Gr e eines Objekts l t sich hier exakt ange ben Wie man die Gr e eines Ausgabeobjekts mit der Maus ver ndert erfahren Sie weiter unten im Abschnitt Gr e ver ndern Wird die Optionsschaltfl che als Font aktiviert werden die Werte der Editier felder H he und Breite in die entsprechenden Zeicheneinheiten umgerechnet Die Gr e der Editierfelder l t sich auf n Zeichen Breite und m Zeilen H he 103 CodeReporter 2 0 einstellen Da es sich dabei um Durchschnittswerte der Zeichenbreiten handelt k nnen bei Verwendung von Proportionalschriften leichte Abweichungen in der Objektgr e auftreten Der Style Schriftart Farbe usw des Ausgabeobjekts kann ber eine einzeilige Listbox ver ndert werden Sie enth lt lediglich bereits vorhandene Styles N here Einzelheiten zu Styles und ihre Erstellung entnehmen Sie bitte dem Kapitel Styles Der Text f r Ausgabeobjekte kann ausgerichtet werden Das hei t der f r das Objekt ausgegebene Text kann links rechts oder in der Mitte des Objekts stehen Links Rechts Mittig b ndig b ndig ausgerichtete ausgerichtete ausgerichtete s s s Objekt Objekt Objekt Per Voreinstellung werden alle Ausgabeobjekte bis auf numerische die rechts b ndig stehen linksb ndig ausgerichtet Die Ausrichtung wirkt sich auf folgende Objekttypen aus Felder statischer Text Ausdr cke Summen und Berechnungen H
60. erzeugt und oder best ckt eine RELATE4 Struktur f r die Relation des gespeicherten Reports Diese Struk tur kann zusammen mit dem Relationsmodul von CodeBase 5 oder mit der Reportmodulfunktion report4init eingesetzt wer den Sie wird automatisch von buildReport aufgerufen Parameter cb Ein Zeiger auf die CODE4 Struktur der Anwen dung Er dient der Speicherverwaltung und der Fehlerbehandlung openFiles Dieser Parameter bestimmt ob buildRelate auto matisch die in der Reportdatei genannten Daten dateien ffnen soll Ist openFiles auf wahr gesetzt nicht Null werden die Datendateien ge ffnet falls sie noch nicht ge ffnet sind Ist openFiles falsch Null wird davon ausgegangen da die Datendateien bereits ge ffnet sind 181 CodeReporter 2 0 API R ckgaben Bei Erfolg gibt diese Funktion einen g ltigen Zeiger auf eine RELATE4 Struktur zur ck Konnten die Datendateien f r die Relation nicht gefunden werden wird Null zur ckgegeben buildReport Aufruf REPORT4 buildReport CODE4 Sch int openFiles Beschreibung Diese Funktion baut den Report auf und gibt einen Zeiger auf die best ckte Reportstruktur zur ck buildReport ruft automatisch buildRelate auf um die hinter dem Report stehende Relation aufzubauen Parameter cb Ein Zeiger auf die CODE4 Struktur der Anwen dung Er dient der Speicherverwaltung und der Fehlerbehandlung openFiles Dieser Parameter bestimmt ob buildRelate auto matisch die in der Rep
61. f r Objekte die eine hnliche Aussage vermitteln sollen lediglich einmal definiert werden Sollen zum Beispiel alle Summenobjekte in einer bestimmten Farbe er scheinen legen Sie die Farbe einfach innerhalb eines Styles fest und verbinden diesen mit den Summenobjekten Durch den Einsatz von Seiten Layouts lassen sich gemeinsame Styles in meh reren Reports verwenden CodeReporter speichert die Style Daten in einer be sonderen Datei ab die in andere Reports geladen werden kann Auf diese Weise 149 CodeReporter 2 0 k nnen verschiedene Reports dasselbe Erscheinungsbild aufweisen ohne da Sie die Styles jeweils neu definieren m ssen Die Flexibilit t von Styles und Seiten Layouts wird offensichtlich wenn Sie das Aussehen eines Reports ndern m ssen Soll eine Schriftart oder eine Farbe im gesamten Report ver ndert werden brauchen Sie lediglich den Style zu bearbei ten und alle Ausgabeobjekte innerhalb des Reports werden automatisch aktuali siert In Verbindung mit weiteren Produkten von Sequiter und dem CodeReporter API Application Programming Interface lassen sich mit CodeReporter unter Wind ows erstellte Reports auch unter anderen Betriebssystemen DOS Unix OSC usw ausgeben Die Ausgabe unter diesen Betriebssystemen ist gew hnlich mit einigen Problemen verbunden F r diesen Fall stellt CodeReporter Non Windows Styles zur Verf gung Einzel heiten zur Ausgabe von Reports unter anderen Betriebssystemen entnehmen
62. gelegt werden obj4textFree obj4delete void obj4textFree OBJ4 obj Beschreibung Diese Funktion l scht das angegebene statische Textausgabeob 240 jekt aus dem Report und gibt den mit dem Ausgabeobjekt ver bundenen Speicher frei Funktions bersicht Parameter obj Ein Zeiger auf das statische Textobjekt das aus dem Report entfernt werden soll Siehe auch obj4textCreate obj4delete report4free obj4totalCreate Aufruf OBJ4 obj4totalCreate AREA4 area TOTAL4 total long x long y long width long height Beschreibung Diese Funktion erzeugt ein Summenausgabeobjekt unter Ver wendung einer mit total4create erstellten Summe Parameter area Dieser AREA4 Zeiger bezeichnet den Reportbe reich in den das neue Summenausgabeobjekt ge setzt werden soll total Ein TOTAL4 Zeiger auf eine mit totaldcreate er stellte Summe x Die waagerechte Koordinate in tausendstel Zoll an der die linke Seite des Summenobjekts steht y Die senkrechte Koordinate in tausendstel Zoll vom oberen Rand des Reportbereichs an der die Oberkante des Summenobjekts steht width Die horizontale Ausdehnung des Summenausgabe objekts in tausendstel Zoll height Die vertikale Ausdehnung des Summenausgabeob jekts in tausendstel Zoll R ckgaben Nicht Null Bei Erfolg wird ein Zeiger auf das neue Summen ausgabeobjekt zur ckgegeben 0 Fehler Das Summenausgabeobjekt konnte nicht angelegt werden Siehe auch obj4totalFree totaldcreate to
63. hinzugef gt und wie andere Wind ows Anwendungen auch durch Doppelklicken aktiviert werden Das ist die einfachste Methode CodeReporter aufzurufen Weitere Einzelheiten zum Anlegen von Programmgruppen und Hinzuf gen von Symbolen entnehmen Sie bitte Ihrem Windows Benutzerhandbuch Zugriff auf Reportdateien Die mit CodeReporter erzeugten Reports k nnen als Reportdateien Erweiterung am Dateinamen REP abgespeichert werden Diese Dateien enthalten s mt liche reportspezifischen Angaben einschlie lich der Pfade zu den Datendateien der Relationen und der verwendeten Styles Einen Report laden Ein bereits vorhandener Report kann ber die Men option DATEI FFNEN erneut geladen werden Geben Sie im Dialog Datei ffnen die gew nschte Datei an und klicken Sie auf OK Hinweis Versuchen Sie bei bereits geladener Reportdatei eine weitere Report datei zu laden schlie t CodeReporter den aktuellen Report Sie k nnen eine Reportdatei auch mit der Option DATEI FFNEN MIT PFAD laden Neben dem Dateinamen bittet die Option DATEI FFNEN MIT PFAD Sie ebenfalls um die Eingabe des Verzeichnisses in dem sich die Datendateien des Reports befinden Hinweis Die Option DATEI FFNEN MIT PFAD sollten Sie verwenden wenn die Datendateien eines Reports in ein anderes Verzeichnis kopiert worden sind ber die Men option DATEI ALTE DATEI FFNEN lassen sich Dateien von Code Reporter 1 0 in CodeReporter 2 0 impor
64. hrend sich die Markierung auf der Schaltfl che von STORES DBEF befindet die Men option NEUER SLAVE w hlen Sie die Daten datei EXPENSES DBEF aus und nehmen Sie folgende Einstellungen in der Dia logbox Datendatei Verkn pfungen vor W hlen Sie den Subindex COMP_STORE aus Geben Sie als Masterausdruck COMPANY gt COMPID STORES gt STOREID an Aktivieren Sie die Optionsschaltfl che Filterrelation 70 Relationale Reports Vergewissern Sie sich da als Standard Fehlerbehandlung Felder l schen eingestellt ist Klicken Sie auf OK um die Dialogbox Datendatei Verkn pfungen zu schlie en und zum Dialog Relation zur ckzukehren Diese komplexe Relation l t sich nun als Grundlage f r die Erstellung eines komplexen Reports nutzen in den Daten aus allen vier Datendateien einflie en k nnen Hinweis Da diese Relation zwei Filterrelationen beinhaltet die dieselbe Ma sterdatei benutzen k nnen die ausgegebenen Daten geringf gig von der erwarteten Datenausgabe abweichen Einzelheiten dazu finden Sie unter der berschrift Masterdatei mit mehreren Slavedateien weiter oben 71 CodeReporter 2 0 3 Gruppen Was ist eine Gruppe Der Sinn und Zweck aller Reports besteht darin ungeordnet eingegebene Daten in ein bersichtlich strukturiertes Format zu bringen Ein Report zerlegt diese Daten in logische Abschnitte und oder fa t sie in einem sinnvollen Format zu sammen
65. mehrere Bereiche umfassen in die Ausgabeobjekte eingef gt werden k nnen Die Funktionen die die Bereichsgr e ver ndern und die Unterdr ckungsbedingungen bestimmen beginnen mit area4 Jeder Report enth lt eine Anzahl von Gruppen Die Funktionen die sich auf das Verhalten der Gruppe und auf den Zugriff darauf auswirken beginnen mit group4 Die Funktionen mit denen Ausgabeobjekte erzeugt gel scht und modifiziert werden beginnen mit obj4 Die sogenannten reportspezifischen Funktionen beginnen mit report4 und wer den eingesetzt wenn etwas f r den gesamten Report gilt Die Funktionen initiali sieren den Report laden und speichern Relationen und Styles ver ndern das Sei tenformat bearbeiten die Voreinstellungen des Reports usw Jedem Ausgabeobjekt lassen sich Ausgabemerkmale wie Schriftart und Farbe zuweisen Diese Styles m ssen in einem Report lediglich einmal also nicht f r jedes einzelne Ausgabeobjekt definiert werden Mit den style4 Funktionen wer den die Styles eines Reports erzeugt und bearbeitet Die Definitionen auf denen die Summenausgabeobjekte basieren werden mit den total4 Funktionen erstellt und gel scht Die Summenausgabeobjekte selbst werden aber nicht mit diesen sondern mit den obj4 Funktionen erzeugt Im folgenden Abschnitt erl utern wir alle oben genannten Reportmodule im Detail Hinweis Jede Anwendung kann gleichzeitig nur einen Report laden Soll eine Anwendung mit mehreren Reports arb
66. ndig untereinander ausgerichtet Plazieren Sie des weiteren zwei Textobjekte mit dem Inhalt Soll bzw Haben in den unteren Teil des Kunden Kopfbereichs ber die Feldobjekte DEBIT und CREDIT Der Seitenkopf Bereich Erstellen Sie nun mit Hilfe der Men option BEREICH NEUER SEITENKOPF BE REICH einen Seitenkopf der auf jeder Seite des Reports oben ausgegeben wird bis auf die Seiten auf denen er gegen den Kunden Gruppenkopf ausgetauscht wird Dieser Bereich hat die Aufgabe den Report kurz zu beschreiben und alle Seiten miteinander zu verbinden 27 CodeReporter 2 0 Stellen Sie die Bereichsh he auf 1 3 cm ein Der Bereich enth lt vier Ausgabe objekte und zwar ein Feld zwei Text und ein Ausdrucksobjekt In der Listbox Feldobjekte die noch zu sehen sein sollte markieren Sie das Feld NAME und f gen es in den Seitenkopf Bereich ein Schlie en Sie die Listbox indem Sie auf die Schaltfl che Fertig klicken Die beiden f r den Kunden Kopfbereich erstellten Textobjekte Soll und Ha ben k nnen wie beim Kundenkopf manuell erzeugt und in den Seitenkopf Bereich eingef gt werden Alternativ dazu k nnen Sie die Objekte im Kundenkopf aber auch markieren und dann ber die Men option BEARBEITEN KOPIEREN eine Kopie davon in der Zwi schenablage ablegen W hlen Sie darauf die Option BEARBEITEN EINF GEN an stellen den Mauszeiger in den Seitenkopf Bereich und klicken die linke Maus taste um di
67. obj4lineWidth OBJ4 obj long width Beschreibung Mit dieser Funktion ndern Sie die Linienst rke von Linien und Rahmenausgabeobjekten 236 Funktions bersicht Parameter obj Ein Zeiger auf das Linienausgabeobjekt f r das die Linienst rke neu eingestellt wird width Die neue Linienst rke des Linienobjekts in tau sendstel Zoll R ckgaben 0 Die St rke wurde erfolgreich eingestellt 1 Fehler obj ist ung ltig oder width ist eine negati ve Zahl Siehe auch obj4lineCreate obj4lookAhead Aufruf int obj4lookAhead OBJ4 obj int lookAhead Beschreibung Diese Funktion richtet das angegebene Ausgabeobjekt als Vor schauobjekt ein Bei seiner Ausgabe hat das Objekt den Wert den es im Gruppenfu gehabt h tte Hinweis Parameter Ein Vorschausummenausgabeobjekt enth lt den Wert den es bei einer nderung des Summenr cksetzausdrucks gehabt h tte also nicht unbedingt den im Gruppenfu obj look Ahead Ein Zeiger auf das Ausgabeobjekt f r das die Vorschau Option eingerichtet wird Dieser Parameter legt fest ob es sich bei dem Ausgabeobjekt um ein Vorschauobjekt handelt oder nicht lookAhead kann einen der folgenden Werte annehmen 1 Das angegebene Objekt ist als Vorschauobjekt eingerichtet 0 Das Objekt ist nicht als Vorschauobjekt einge richtet Wird diese Funktion nicht aufgerufen geht das Programm von diesem Wert aus 237 R ckgaben gt CodeReporter 2 0 API Der vorhergehende Wert v
68. pa t Viele zu einem Ein eindeutiger Suchwert aus einer Datendatei bezieht sich auf eine Vielzahl von Datens tzen in einer verkn pften Datendatei Viele zu vielen Eine beliebige Anzahl doppelter Suchwerte aus einer Daten datei bezieht sich auf eine Vielzahl von Datens tzen in einer verkn pften Datendatei Die Relationen lassen sich untereinander beliebig verkn pfen so da selbst eine Einer zu einem zu vielen zu vielen zu einem Relation unterst tzt wird Die Menge der in einem Report verwendeten Datens tze l t sich mit Hilfe ein facher oder komplexer dBASE Ausdr cke sog Abfragen einschr nken dabei k nnen Felder aus allen in der Relation verwendeten Datendateien einbezogen werden Ist Datendatei A z B mit Datendatei B verkn pft die wiederum mit Datendatei C verkn pft ist und enth lt C einen Wert der nicht in den Report eingehen soll k nnten Sie den Ausdruck c gt FELD_NAME lt gt WERT verwenden Die in einem Report enthaltenen Zahlen sind meistens in zusammengefa ter Form am n tzlichsten lange Zahlenkolonnen gewinnen erst mit der letzten Zeile Sinn CodeReporter ist in der Lage numerische Daten auf verschiedene Art und Weise zusammenzufassen Sie k nnen die Summe einer Gruppe von Zahlen ermitteln lassen Sie k nnen den h chsten bzw niedrigsten auftretenden Wert speichern Sie k nnen einen Mittelwert errechnen lassen Dar ber hinaus lassen sich Summen als Vorschau
69. so gut vorbereitet sondern meistens ber mehrere verkn pfte Datendateien verteilt Selbst in unse rem einfachen Beispiel k nnten die erforderlichen Datendateien aussehen wie in Abb 1 5 angegeben Da die Daten in den meisten F llen aus mehreren Datendateien stammen ver wenden wir f r den Rest des vorliegenden Kapitels die Abb 1 5 als Muster 41 CodeReporter 2 0 SPENDEN DBF SPENDER DBF EHEM DBF EHEMID EHEMID SPENDNR l NACH_NAME STEUERID VOR NAME DATUM SUMME VOR ADRESSE STADT STAAT Abb 1 5 Als n chster Arbeitsschritt werden die Reportelemente die von Datendateien abh ngen den entsprechenden Datendateien zugeordnet Tabelle 1 1 enth lt eine solche bersicht Einige Elemente z B Spendername setzen sich aus mehreren Feldern zusammen w hrend andere z B die Spender Nr in mehreren Daten dateien vorkommen Sie sollten alle Elemente auff hren da sie beim Aufbau des Reports alle erforderlich werden k nnten Datenfelder f r Element XXXXXXX SPENDEN gt GESAMT Adams John EHEM gt NACH_NAME EHEM gt VOR_NAME 123 West 4th Street AnyTown ST EHEM gt ADRESSE EHEM gt STADT 55212 EHEM gt STAAT EHEM gt PLZ 4321 34 1234 SPENDER gt SPENDNR SPENDEN gt SPENDNR G kk SPENDEN gt SUMME Tabelle 1 1 42 Einen Report entwerfen Die Relation planen Die aufgef hrten Datenfelder sind f r den Report erforderlich Befinden sich alle in derselben Date
70. stimmte Informationen in einem Report herausstellen lassen Ein Rahmenobjekt erstellen Sie ber einen Klick auf die Schaltfl che Rahmen in der Tastenleiste oder durch Auswahl der Men option OBJEKT RAHMEN Ein Rahmen hat jeweils eine voreingestellte Breite und H he gewinkelte Ecken und keine F llung Mit Hilfe der Henkel k nnen Sie Breite und H he des Rahmens ver ndern Die Linienst rke des Rahmens wird im Editierfeld Linienst rke innerhalb der Dialogbox Objektdefinition angegeben Per Voreinstellung sind die Ecken von Rahmen gewinkelt Sollen sie abgerundet sein klicken Sie auf die Schaltfl che Runde Ecken in der Dialogbox Objekt definition Ein gef llter Rahmen l t sich mit einer dicken Linie vergleichen Das Innere des Rechtecks hat die Farbe des bei seiner Erstellung aktiven Styles Der Unterschied zwischen einer dicken Linie und einem gef llten Rahmen besteht darin da der Rahmen mit den Gr enhenkeln in der H he und der Breite verstellbar ist w hrend bei einer Linie nur eine Richtung in Frage kommt Durch Klicken auf die Schaltfl che F llung in der Dialogbox Objektdefini tion l t sich ein Rahmen f llen Die Deaktivierung der Schaltfl chen F llung und Runde Ecken setzt den Rahmen auf die Vorgabewerte leer gewinkelte Ecken zur ck Farbe Wie andere Ausgabeobjekte k nnen auch Linien und Rahmen farbig dargestellt werden dazu w hlt man den Style
71. und Hin zuf gen bereinigen Dar ber hinaus l t sich die Position der Gruppe nach der Erzeugung des Reports ver ndern Sortieren und abfragen In der Dialogbox Spaltenreport Utility k nnen Sie ber die Schaltfl chen Sor tierausdr und Abfrageausdr den Sortier bzw Abfrageausdruck f r den Report angeben Beide Schaltfl chen rufen zur Eingabe die Dialogbox Ausdruck eingeben auf Einzelheiten zum Sortieren und Abfragen der zusammengesetzten Datendatei entnehmen Sie bitte dem Kapitel Relationale Reports Hinweis Die Dialogbox Ausdruck eingeben enth lt bereits vorhandene Sor tier bzw Abfrageausdr cke Sind diese Ausdr cke nicht mehr g ltig k nnen sie einfach aus der Dialogbox gel scht werden Beispiel Bei dem folgenden Beispiel f r einen einfachen Spaltenreport wird f r die Firma ATHA ein Verkaufsreport erstellt der f r jedes Gesch ft Zwischensummen enth lt 137 CodeReporter 2 0 SALES DBEF lokalisieren Die Datendatei auf die sich der Verkaufsreport st tzt hei t SALES DBF und befindet sich im Verzeichnis EXAMPLES Legen Sie ber die Men option DATEI NEU einen neuen Report an und w hlen Sie in der Dialogbox Datendatei ausw hlen SALES DBF aus Der Einfachheit halber wird dieser Report nicht mit den Datendateien COM PANY DBF und STORES DBF verkn pft Infolgedessen werden die Daten der f r den Verkauf verantwortlichen Firma und des Gesch f
72. usw 77 CodeReporter 2 0 Der Gruppenname der lediglich ein die Gruppe beschreibendes Element darstellt l t sich je nach Wunsch austauschen oder ver ndern Gew hnlich schl gt sich der Gruppenausdruck irgendwie in dieser Bezeichnung nieder Position Die Position bestimmt an welche Stelle die Gruppe in bezug auf andere Gruppen gesetzt wird Die innerste Gruppe des Reports die kleinste Untermenge ist Gruppe 1 Per Voreinstellung werden neue Gruppen immer au en angelegt und haben den h chsten Gruppenz hler ber die Ver nderung dieses Z hlers erh lt die Gruppe die gew nschte Position und die anderen Gruppen verschieben sich entsprechend Gruppenoptionen CodeReporter stellt Ihnen einige besondere Funktionen zur Verf gung mit denen Sie das Erscheinungsbild von Reports Ihren Erfordernissen anpassen k nnen Kopf austauschen Fu austauschen Trifft eine Gruppe auf eine R cksetzbedingung und ist die Schaltfl che Kopf austauschen f r die Gruppe aktiviert wird eine neue Seite begonnen und der Gruppenkopf statt des Seitenkopf Bereichs ausgegeben Auf dieser Seite wird der Seitenkopf unterdr ckt Hinweis Dieses Konzept ist zun chst nicht ganz leicht zu verstehen Am besten schauen Sie sich Abb 3 4 genau an und denken gr ndlich ber die folgenden Ausf hrungen nach Sehen Sie sich bitte ebenfalls die bung zum Kontoauszugsreport noch einmal an 78 Gruppen Gruppendefinition Gruppenna
73. verschiedene Art und Weise zusammenstellen Ber cksichtigen Sie folgende Richtlinien um den be sten Ablauf f r eine Relation zu bestimmen F r jede untergeordnete Datendatei mu ein Subindex vorhanden sein auf den die n chsth here Datendatei zeigt Viele zu einem und Einer zu einem Relationen eignen sich besser als Einer zu vielen und Viele zu vielen Relationen Aus Abb 1 7 gehen die verschiedenen Baumdiagramme hervor die nach dem Relationsschema in Abb 1 6 m glich sind Die erste Relation enth lt keine Einer zu vielen Relationen und kann aufgrund dessen rein theoretisch besser ablaufen als die beiden anderen Nat rlich kann die Beschaffenheit des Reports die Verwendung eines der anderen Relationsb ume notwendig machen Ist im Report z B eine Liste aller Ehemaligen nicht nur derjenigen die Beitr ge leisten erforderlich m ten Sie die Relation verwenden bei der EHEM oben 44 Einen Report entwerfen steht Im Kapitel Relationale Reports beschreiben wir wie sich die Beziehungen einer Relation auf das Ergebnis des Reports auswirken k nnen SPENDEN gpENDNR SPENDER zu ubindex an spENDNR gt A X SPENDER a EHEMID gt SPENDEN Subinde bindet zu gHEMID EHEM L gt EHEM Subindex Viele zu einem zu einem Einer zu vielen und einer zu einem EHEM MID EHE SS ubindex y SPENDER BR SPENDNR Subindex SPENDEN Einer
74. werden diese Einstellungen f r den aktuellen Report vorgenommen Sollen die numerischen Ausgabeobjekte als W hrungswerte ausgegeben werden wird werden das die im Editierfeld W hrung angegebene n Zeichen dem In halt des Objekts unmittelbar vorangestellt Einzelheiten zur Formatierung von Ausgabeobjekten als W hrungswerte finden Sie im Abschnitt Zahlen im Kapi tel Ausgabeobjekte Das voreingestellte W hrungssymbol ist das Dollarzei chen Sie k nnen hier jedoch bis zu zehn Zeichen eingeben Tabelle 10 1 enth lt einige der blichen W hrungssymbole die der Standard Windows Zeichensatz unterst tzt Tastenkombination d Cent Alt 162 Pfund Alt 163 Yen Alt 165 Tabelle 10 1 Verbreitete W hrungssymbole Zahlenwerte ab Tausend lassen sich mit Hilfe des Tausendertrennzeichens in Dreiergruppen gliedern Tausend Million Milliarde usw In Nordamerika wird dazu das Komma verwendet die CodeReporter V oreinstellung In das Editierfeld Zeichen n Tausend k nnen Sie ein beliebiges Zeichen auch ein Leerzeichen f r diesen Wert eingeben oder es allzumal l schen Haben Sie ein Tausendertrennzeichen angegeben wird es bei allen Zahlenwerten verwendet Wird das Zeichen gel scht erscheinen die Zahlen unformatiert 165 CodeReporter 2 0 Beispiel Mit Zeichen nach Tausend 1 000 000 Ohne Zeichen nach Tausend 1000000 Bei der Ausgabe von Dezimalbr chen setzt CodeReporter das im Editierfe
75. zu einem zu vielen Abb 1 7 Relationsb ume Den Report gestalten Nachdem ein Schema wie in Abb 1 7 erstellt worden ist vorausgesetzt alle f r den Report erforderlichen Datendateien k nnen miteinander verbunden werden kann man mit der Gestaltung des Reports beginnen Auf den restlichen Seiten des vorliegenden Handbuchs erl utern wir detailliert die Erstellung eines relationalen Reports 45 CodeReporter 2 0 Den Report auf Stichhaltigkeit berpr fen Wenn Sie den Report wie im vorliegenden Kapitel erl utert mit seinen Berei chen Relationen und Elementen entworfen haben sollten Sie ihn noch einmal anhand der Zweckerkl rung berpr fen ob er letztendlich den darin definierten Anforderungen gerecht wird Besteht er diese letzte Pr fung k nnen Sie die Ent wurfsphase als abgeschlossen betrachten 46 Relationale Reports 2 Relationale Reports Bei einem relationalen Report handelt es sich um einen Report der auf mehrere Datendateien zugreift Diese werden in den Report integriert um eine zusam menh ngende zusammengesetzte Datendatei als Ausgangsbasis f r den Report zu bilden Im allgemeinen ziehen relationale Reports Informationen aus mehreren verkn pften Datendateien und pr sentieren sie in einer lesbaren Art und Weise Relationen Bei der Erstellung eines relationalen Reports der auf mehrere Datendateien zugreift m ssen die entsprechenden Informationen in den Datendateien genau lokalisiert we
76. 0 150 00 30 Aug 1990 300 00 15 Sep 1990 150 00 16 Sep 1990 150 00 30 Sep 1990 300 00 15 Okt 1990 200 00 15 Jan 1990 200 00 15 Feb 1990 200 00 16 Feb 1990 150 00 17 Feb 1990 150 00 15 M r 1990 300 00 Gruppenkopf gegen Seitenkopf ausgetauscht Seitenkopf Gruppenfu gegen Pal Seitenfu ausgetauscht Res Q Public Seite 3 16 Okt 1990 150 00 17 Okt 1990 350 00 15 Dez 1990 150 00 16 Dez 1990 150 00 17 Dez 1990 150 00 20 Dez 1990 150 00 20 Dez 1990 600 00 Noch zu zahlen 100 00 Abb 3 5 Beispiel f r Kopf Fu austauschen In Abb 3 5 sehen Sie ein Beispiel f r einen Report mit ausgetauschtem Kopf und Fu Der auf den Seiten 2 und 3 verwendete Seitenkopf eignet sich nicht f r Seite 1 da die im Seitenkopf vorhandene Zusammenfassung bereits im Gruppenkopf enthalten ist Bei jedem Kunden wird eine neue Seite begonnen auf der die Kundendaten in ausf hrlicher Form erscheinen 80 Gruppen W rde anstelle des ausgetauschten Gruppenkopfes ein einfacher Seitenkopf ver wendet w rde die rahmenlose graue Fl che als Seitenkopf auf jeder Seite des Kontoauszugs gedruckt werden so da sich das Deckblatt und die restlichen Seiten kaum unterschieden In Abb 3 5 gibt es keinen Seitenfu Bereich Sind Seitenkopf fu nicht vorhan den wird an deren Stelle der Gruppenkopf fu ausgegeben Kopf wiede
77. 129 TYPED eeh RT HR Rad 130 R cksetzausdruck 131 Eine Summe l schen 222202 see eeeeenenenenen en 132 Vorschausummen 132 Bedingte Summen 2222 A A E N E nenn 132 6 Spaltenreport Uh 135 Report Utility aufrufen 2 222202 eeeeeeenenenen een ern 135 Einen Report erstellen 136 Felder hinzuf gen EEN ee ee 136 Zwischensummen 136 Sortieren und abfragen 137 Beispiel nes ee ee el dee 137 SALES DBF lokalisieren 138 Dialogbox Report Un 138 Den Report einsehen 139 A sfellen 5 u 22 2322ER Er Era Eee 139 KEE 140 Allgemeine Hinweise zudBASE Ausdr cken 140 Kennzeichner von Peldnamen en 141 dBASE Ausdruckskonstanten 141 Operatoren der dBASE Ausdr cke 142 Ra nffelse gg seta seat 142 Kurz Ausdruck eingeben 144 Dialogbox Ausdruck eingeben 2 202ceeeenenen en 145 Verwendung von Ausdruck eingeben 222cncenen 146 S STYIES re ee len se eher 149 Warm Styles un ee se a Bes ee 149 Stylesserstellen u sen are reed Ne AE 150 Einen Style J schen A8 REENEN H RENE ee gan a 151 Einen Style bearbeiten SEELEN Bar a 152 Einen Style ausw hlen 2c2cneneneneeeerenenennennen 152 F rem Objekt una ri abe 152 Non Windows Styles 153 Styles ngeben ann een er rennen 154 Beispiel ee neue 155 9 CodeReporter Optionen 158 vii Ansichtsoptionen 158 Reportvorgaben oiran ame aan ra aan AEN MECH
78. 3 werden sie ber AUSRICHTEN LINKSB NDIG so angeordnet wie in Abb 5 2 zu sehen CodeReporter 2 0 UNTITLED Gruppe Gruppe 1 Kopf Gruppe Gruppe 1 Fu Text Textil Dieser Text ist l nger als die anderen BE DD 2 S O MS Serif Gruppe 1 Bereich 1 H he 4 866 cm Abb 5 2 Linksb ndig ausrichten Noch einmal von Abb 5 1 ausgehend werden die Ausgabeobjekte in ihrer Rei henfolge ausgew hlt und mit AUSRICHTEN WAAGERECHT AUSTREIBEN in die Posi tionen gebracht die sie in Abb 5 3 einnehmen Das erste sowie das letzte ausgew hlte Objekt Text1 bzw Text3 werden nicht versetzt w hrend das mitt lere Objekt Text2 gleich weit von den Enden entfernt positioniert wird 99 CodeReporter 2 0 CodeReporter 2 0 UNTITLED Gruppe Gruppe 1 Kopf Gruppe Gruppe 1 Fu Textl Dieser Textist l nger als die anderen Fre MS Serif Gruppe 1 Bereich 1 H he 4 856 cm Abb 5 3 Waagerecht austreiben Nach vorn hinten Befinden sich zwei Ausgabeobjekte an derselben Stelle verdeckt ein Objekt das andere CodeReporter gibt anhand der Reihenfolge der Definition vor welches Objekt ber das andere gelegt wird Das hei t neue Objekte werden stets ber bereits vorhandene positioniert Mittels der Men optionen OBJEKT NACH VORN und OBJEKT NACH HINTEN l t sich die Stapelfolge f r ein ausgew hltes Objekt so ver ndern da es vor bzw hinter ein anderes Objekt gestellt we
79. 4 Reportentwurf und 44 Slave Subindex 48 61 SUBSTRO 295 Summen Ausgabeobjekt verbergen 130 Berechnungen und 128 Definition 128 erstellen 129 Gesamtsumme 131 l schen 132 reportweite 131 R cksetzausdruck 131 Vorschau 107 132 342 Zwischensumme 131 Zwischensummen mit Report Utility 136 Summentypen arithmetische Summe 130 Durchschnitt 130 Maximalsumme 130 Minimalsumme 130 Z hler 130 Systemanforderungen 4 Tastenleiste 94 158 Technische Unterst tzung 11 Texte aus anderen Anwendungen einf gen 116 erstellen 115 zum Report hinzuf gen 109 TIMEO 295 Titel Seitenumbruch nach 90 167 Top Master 50 51 ausw hlen 57 bestimmen 44 totaldaddCondition 288 total4dcreate 289 total4free 291 TRIMO 295 UPPER 295 VALO 295 Verschachtelung siehe Gruppen Vorschau siehe Ausgabeobjekte W hrung siehe Formatierung von Zahlen Wer was wo wann warum siehe Zweckerkl rung Wortumbruch 89 YEARO 296 Yen 165 Zeichen nach Tausend siehe Formatierung von Zahlen Index Zeilenumbruch 106 zentrieren 98 Zusammengesetzte Datendatei 49 123 sortieren 63 Zusammengesetzter Datensatz 50 Gruppe drucken 76 Zweckerkl rung 35 46 50 Zwischensummen 131 343 CodeReporter License Agreement This legal document is an agreement between you the CodeReporter LICENSEE and Sequiter Software Inc hereinafter referred to as the Agreement Sequiter Software Inc is not selling its software Instead Sequiter Softwa
80. Ausdruck der bestimmt wann die Berei che der Gruppe ausgegeben werden Ist resetExpr Null wird der Gruppenr cksetzausdruck gel scht und die Gruppe f r jeden zusammengesetzten Da tensatz zur ckgesetzt Funktions bersicht R ckgaben 0 Der Gruppenr cksetzausdruck wurde erfolgreich eingerichtet lt 0 Fehler Siehe auch group4create group4resetPage Aufruf int group4resetPage GROUPA4 group int resetPage Beschreibung Mit Hilfe dieser Funktion wird bestimmt ob vor der Ausgabe des Parameter Hinweis R ckgaben Siehe auch Kopfbereichs der angegebenen Gruppe ein Seitenumbruch erzwungen werden soll group Die Gruppe f r die die Option Seite zur ckset zen eingerichtet wird resetPage Dieser Parameter kann zwei Einstellungen haben 1 IstresetPage auf 1 eingestellt erfolgt jedes mal ein erzwungener Seitenumbruch wenn die Gruppe auf eine R cksetzbedingung trifft 0 Ist resetPage auf 0 eingestellt Voreinstel lung werden keine besonderen Ma nahmen er griffen um den Gruppenkopf auf der folgenden Seite auszugeben Wird diese Funktion nicht aufgerufen wird die Seite bei der Zu r cksetzung der Gruppe nicht zur ckgesetzt gt 0 Die vorhergehende Einstellung von resetPage wird zur ckgegeben lt 0 Fehler group4resetPageNum 211 CodeReporter 2 0 API group4resetPageNum Aufruf int group4resetPageNum GROUPA4 group int resetPageNum Beschreibung Mit Hilfe dieser Fun
81. Bet tigen der Tab Taste das erste Objekt des Bereichs ausgew hlt Die Tastenkombination Gro Tab bewirkt dasselbe wie die Tab Taste mit dem Unterschied allerdings da die Markierung den ausgew hlten Bereich r ckw rts durchl uft Mit der Tastenkombination Strg Tab werden im ausgew hlten Bereich mehrere Ausgabeobjekte markiert Dabei wird die Mar kierung auf das n chste Objekt des Bereichs gesetzt w hrend alle bereits markierten Objekte weiterhin ausgew hlt bleiben Die Tastenkombination Gro Strg Tab bewirkt dasselbe wie die Kombination Strg Tab mit dem Unterschied allerdings da die Markierung den ausgew hlten Bereich r ckw rts durchl uft 299 Bild Gro Bild Gro Gro Gro b Strg 7 Strg 6 Return 300 CodeReporter 2 0 Mit diesen Tasten bl ttern Sie im Report Entwicklungsbild schirm eine Seite vor Sind alle Elemente des Reports auf dem aktuellen Bildschirm zu sehen geschieht beim Bet tigen dieser Tasten nichts Mit diesen Tasten bl ttern Sie im Report Entwicklungsbild schirm eine Seite zur ck Sind alle Elemente des Reports auf dem aktuellen Bildschirm zu sehen geschieht beim Bet tigen dieser Tasten nichts Diese Tastenkombination verschiebt den Report Entwicklungs bildschirm so da der linke Rand des Fensters zu sehen ist Sind alle Elemente des Reports auf dem aktuellen Bildschirm zu sehen geschieht beim Bet tigen dieser Tastenfolge nichts Diese Tastenk
82. CodeReporter 2 Benutzer und Referenzhandbuch Deutsche Version Der Report Writer f r C C BASIC Entwickler dBASE kompatibel FoxPro kompatibel Clipper kompatibel Sequiter Software Inc bersetzung ins Deutsche ComFood Software GmbH Copyright Sequiter Software Inc 1988 1994 Alle Rechte vorbehalten Copyright der deutschen bersetzung Sequiter Software Inc und ComFood Software GmbH 1994 Alle Rechte vorbehalten Kein Teil dieser Publikation darf ohne schriftliche Erlaubnis von Sequiter Software Inc und der ComFood Software GmbH auf irgendeine Weise reproduziert oder bertragen werden Die hierin beschriebene Software wird im Rahmen einer Lizenzvereinbarung zur Verf gung gestellt und darf nur im Rahmen dieser Lizenzvereinbarung benutzt oder kopiert werden Dieses Handbuch und die zugeh rige Software werden ohne die Garantie verkauft da sie f r einen bestimmten Zweck verwendet werden k nnen Dies betrifft insbesondere die kommerzielle Verwendung der Software oder des Handbuchs Die Informationen in diesem Handbuch und die Funktion der zugeh rigen Software k nnen jederzeit ohne Ank ndigung ver ndert werden Die ComFood Software GmbH oder Sequiter Software Inc sind nicht verpflichtet dritten Personen evtl nderungen mitzuteilen Dieses Handbuch ist mit aller gebotenen Sorgfalt hergestellt und bersetzt worden Trotz dem sind Weiterentwicklungen jederzeit m glich und k nnen in die Software eingebaut
83. Datums oder einen numerischen Wert haben Im Sortierausdruck vorhandene Feldnamen m ssen mit Daten dateikennzeichner verwendet werden So ist DBF gt NAME z B ein g ltiger Sortierausdruck 0 Erfolg lt 0 Fehler oder REPORT ist ung ltig relate4sortSet report4querySet rc report4toScreen REPORT4 amp toScreen Mit dieser Funktion wird report4do angewiesen ein Fenster zu erzeugen und die Reportausgabe darin vorzunehmen oder statt dessen den Report auf den ausgew hlten Drucker zu schicken Per Voreinstellung erfolgt die Reportausgabe mit report4do in einem Fenster Anhang F CodeBasic API Parameter REPORT4 Ein REPORT4 Zeiger auf den Report der auf dem Bildschirm ausgegeben werden soll toScreen Mit diesem Parameter wird das Ausgabeziel des Reports festgelegt t0Screen kann einen der fol genden Werte annehmen 1 Es wird ein Fenster ge ffnet und die Report ausgabe erfolgt in dem Fenster 0 Die Reportausgabe erfolgt auf dem ausgew hl ten Drucker R ckgaben gt 0 Die vorhergehende Einstellung von toScreen wird zur ckgegeben lt 0 Fehler REPORT4 oder toScreen sind ung ltig Siehe auch report4output report4do 327 CodeReporter 2 0 Anhang G Launch Programme Im Lieferumfang von CodeReporter sind Dienstprogramme enthalten mit deren Hilfe Reportdateien auch au erhalb von CodeReporter ausgegeben werden k n nen Diese Dienstprogramme beschreiben wir im folgenden Windows Co
84. Die Relationsdatei konnte nicht angelegt wer den Die Ursache daf r besteht im allgemeinen darin da fileName bereits vorhanden ist oder die Anwendung keine Lese Schreibberechti gung f r das angegebene Laufwerk besitzt lt 0 Fehler relate4retrieve 245 CodeReporter 2 0 API report4 Funktionen Mit den report4 Funktionen lassen sich reportweite Einstellungen ver ndern z B Seitenbreite R nder W hrungssymbol ob die Ausgabe auf dem Bildschirm dem Drucker usw erfolgt 2 Seren Susunan KA report4caption Aufruf int report4caption REPORTA4 report char caption Beschreibung Mit dieser Funktion wird der Text in der Titelleiste des Report ausgabefensters bei der Bildschirmausgabe ver ndert Parameter report Ein Zeiger auf den Report f r den die Titelleiste des Reportausgabefensters eingerichtet wird caption Ein null terminiertes Zeichenarray das den Text enth lt der in der Titelleiste des Ausgabefensters erscheinen soll report4caption legt eine Kopie von caption an R ckgaben 0 Der Reportkopf wurde erfolgreich eingerichtet lt 0 Fehler report4currency Aufruf int report4currency REPORT4 report char currency Beschreibung Mit dieser Funktion wird der Text festgelegt der unmittelbar links von solchen numerischen Ausgabeobjekten erscheinen soll die als W hrungswerte formatiert sind 246 Funktions bersicht Parameter report Ein Zeiger auf den Report f r den das W hrungs symbo
85. ECON102 ECON102 Makro Wirtschaft STUDENT DBF ENROLL DBF COURSE DBF Zweiter zusammengesetzter Datensatz Abb 2 3 Komplexe Relation 52 Relationale Reports Relationstypen CodeReporter unterst tzt drei verschiedene Arten von Relationen die jeweils auf unterschiedliche Weise auf die Daten der Slavedatei zugreifen Die verf gbaren Relationstypen sind Relationen mit genauer bereinstimmung Filterrelationen und Relationen mit ungef hrer bereinstimmung Relationen mit genauer bereinstimmung Eine Relation mit genauer bereinstimmung l t zwischen der Master und der Slavedatei lediglich eine bereinstimmung zu das hei t da jeder Datensatz der Masterdatei nur auf einen Datensatz in der Slavedatei pa t Bei einer Relation mit genauer bereinstimmung wird auch wenn mehrere Datens tze auf den aus gewerteten Masterausdruck passen lediglich der erste passende Datensatz zu r ckgegeben Das ist eine Einer zu einem Relation ein Datensatz in der Master datei lokalisiert einen Datensatz in der Slavedatei Mit anderen Worten CodeReporter durchsucht f r jeden Datensatz der Master datei den Index der Slavedatei bis es auf einen Subindexeintrag st t der den selben Inhalt wie der ausgewertete Masterausdruck hat Die Suche endet mit dem ersten bereinstimmenden Datensatz bzw nach dem Durchlaufen des gesamten Slave Subindexes Hinweis Im allgemeinen l t sich eine Relation mit genauer bereinstimmung am
86. EINF GEN CodeReporter wird f r Ausgabeob jekte in der Windows Zwischenablage in den Einf gemodus versetzt Enth lt die Zwischenablage einen Text aus einer ande ren Anwendung erzeugt CodeReporter ein Textausgabeobjekt Enth lt die Zwischenablage eine Bitmap wird diese als stati sches Grafikobjekt in den Report eingef gt Strg W Strg X Gro Entf Entf Esc Anhang B Tastenkombinationen DATEI DRUCKBILD EINSEHEN Diese Tastenfolge ffnet ein ganzseitiges Bildschirmfenster und gibt den Report darin aus BEARBEITEN AUSSCHNEIDEN Die zur Zeit ausgew hlten Aus gabeobjekte werden aus dem Report gel scht und in der Wind ows Zwischenablage abgelegt aus der sie mit BEARBEITEN EINF GEN von CodeReporter abgerufen werden k nnen OBJEKT L SCHEN Diese Taste l scht das zur Zeit ausgew hlte Ausgabeobjekt Ist kein Objekt ausgew hlt geschieht nichts OBJEKT KEIN Beim Bet tigen dieser Taste verl t Code Reporter den Einf gemodus Report Entwicklungsbildschirm Im Report Entwicklungsbildschirm k nnen Sie statt der Maus auch folgende Tasten bet tigen um dieselben Operationen auszuf hren Tab Gro Tab Strg Tab Gro Strg Tab Die Tab Taste markiert das n chste Objekt eines Bereichs als ausgew hltes Ausgabeobjekt Bet tigen Sie die Tab Taste wenn die Markierung auf dem letzten Objekt eines Bereichs steht wird das erste Objekt ausgew hlt Ist bislang noch kein Objekt ausgew hlt wird beim
87. ENT DBF ENROLL DBF ID F_NAME L NAME AGE STU_ID C CODE Hirshfeld ECON102 Donaghey 234533 CMPT389 273452 Bary ROESER El z 3 gt 873357 Bary __ wege T 22 CMPT201 Drei Eintr ge in der MATH114 zusammengesetzten SESCH Datendatel CHE EE 234533 234533 H CMPT389 F mmen wm Abb 2 5 Filterrelation Masterdatei mit mehreren Slavedateien Bei einer komplexen Relation ist es auch m glich zwei oder mehr Slavedateien mit derselben Masterdatei zu verkn pfen In nahezu jeder Hinsicht stimmt diese Zusammenstellung mit den bereits besprochenen berein der Masterausdruck 55 CodeReporter 2 0 jeder Relation wird f r den aktuellen Datensatz der Masterdatei ausgewertet und das Ergebnis als Lookup Schl ssel f r die Slave Subindizes verwendet Ist keine Filterrelation beteiligt verh lt sich die Relation auf die bekannte Art und Weise der zusammengesetzte Datensatz enth lt die Daten aus den Daten s tzen der Master sowie der einzelnen Slavedateien Dabei spielt es keine Rolle ob es sich um Relationen mit genauer oder ungef hrer bereinstimmung handelt Siehe Abb 2 6 Ist eine Masterdatei jedoch mit zwei oder mehr Slavedateien per Filterrelation verkn pft behandelt CodeReporter die Relation etwas anders F r jede Filter relation der Masterdatei mu die Fehlerbehandlung auf Felder l schen einge stellt werden das liegt daran da f r jede einzelne Filterrelation e
88. Gruppe selbst f r die Gruppenr cksetzbedingung verantwortlich ist Ist das Kon trollk stchen Flag Feste R cksetzung aktiv wird desungeachtet eine neue Seite generiert Abb 10 3 verdeutlicht die Funktionsweise beider Einstellungen Seitenumbruch nach dem Titel ber das Kontrollk stchen Neue Seite nach Titel bestimmen Sie ob Code Reporter nach der Ausgabe des Titelbereichs eine neue Seite beginnen soll oder nicht Ist das Kontrollk stchen markiert wird der Titelbereich des Reports falls vor handen ausgegeben und der Report auf der n chsten Seite fortgesetzt Wenn das Kontrollk stchen nicht markiert ist erfolgt die Ausgabe der Titelgruppe auf derselben Seite wie die des Kopfbereichs der ersten Gruppe 167 CodeReporter 2 0 Reportkopf Per Voreinstellung wird beim Druckbild einsehen CodeReporter 2 0 in der Titelleiste angezeigt Dieser Text l t sich auf den Namen des Reports bzw auf jede andere sinnvolle Bezeichnung einstellen Bearbeiten Sie dazu das Editierfeld Reportkopf in der Dialogbox Reportvorgaben 168 Reports gestalten Gruppe Seitenkopf Report Entwicklungsbildschirm DATES DBF Patient BIRNEN ei Gruppe Jahr und Mo 1993 Januar 12 Gruppe Jahr nat ist die Option Seite zu 1993 Januar 13 YEAR r cksetzen akt
89. Gruppenr cksetzausdruck bereinstimmen und kann eine v llig anders geartete Zur cksetzung bewirken Der R cksetzausdruck bestimmt den Zeitpunkt wann die Summe auf ihren Aus gangswert zur ckgesetzt wird Er wird f r jeden zusammengesetzten Datensatz der zusammengesetzten Datendatei ausgewertet ndert sich nun der Wert des ausgewerteten R cksetzausdrucks wird die Summe zur ckgesetzt damit eine neue Summierung erfolgen kann Der Wert auf den die Summe zur ckgesetzt wird richtet sich nach dem Typ der Summe Arithmetische und Durchschnittssummen werden auf null zur ckgesetzt w hrend Maximal und Minimalsummen jeweils auf die gr t bzw kleinstm g liche Zahl zur ckgesetzt werden Eine reportweite oder Gesamtsumme wird unter Verwendung eines leeren Sum menr cksetzausdrucks ermittelt Das hei t die Summe wird lediglich am Anfang des Reports zur ckgesetzt so da das Summenobjekt bei seiner Ausgabe im Schlu bereich bzw Titelbereich wenn es sich um eine Vorschausumme handelt den gesamten Report aufsummiert Ein Summenausgabeobjekt das im selben Bereich wie die zu summierenden Daten plaziert wird bezeichnen wir als Zwischensumme Da die Summe laufend bei jeder Gruppenzur cksetzung und Ausgabe der Ausgabeobjekte innerhalb des Gruppenbereichs aktualisiert wird enth lt das Summenausgabeobjekt einen neuen Wert 131 CodeReporter 2 0 Eine Summe l schen L scht man ein Summenausgabeobjekt wird ebenfalls di
90. Kopf und Fu erw hnte Regel deutlich Fu bereiche werden mit den Werten des Datensatzes ausgegeben der dem Datensatz unmittelbar vorausgeht der die R cksetzbedin gung verursacht hat Nachdem die innerste Gruppe verarbeitet worden ist kommt der n chste Daten satz an die Reihe In Abb 3 6 setzt der Datensatz 27 Feb 1992 die Gruppe Tag zur ck Da lediglich diese Gruppe zur ckgesetzt wird wird auch nur der Fu f r die Gruppe Tag ausgegeben wiederum mit den Werten des vorhergehenden Datensatzes danach wird der Gruppenkopf mit den Werten des neuen Datensatzes ausgegeben Nachdem alle Datens tze verarbeitet worden sind endet der Report mit der Ausgabe der Fu bereiche aller in ihm enthaltenen Gruppen Kurzum wird eine Gruppe zur ckgesetzt werden vor der Ausgabe der Kopfbereiche zun chst die Fu bereiche aller Gruppen ausgegeben Die Fu bereiche werden beginnend mit dem der inner sten Gruppe bis hin zur Gruppe ausgegeben die f r die R cksetzbedingung 83 CodeReporter 2 0 verantwortlich ist Der Wert des Datensatzes unmittelbar vor dem Datensatz der die R cksetzbedingung verursacht hat wird bei der Ausgabe der Gruppen f e verwendet Ist bei einer der zur ckgesetzten Gruppen die Option Seite zur cksetzen aktiv wird im Report eine neue Seite ge ffnet Siehe Seite zur cksetzen weiter oben sowie Feste R cksetzung im Kapitel Reports gestalten Nachdem die Fu bereich
91. LES bzw C CODEREP EXAMPLES beziehen sich also auf ein und dasselbe Verzeichnis Symbole Im vorliegenden Handbuch benutzen wir folgende Symbole wenn es darum geht auf wichtige Informationen hinzuweisen Dieses Symbol zeigt an da sich die entsprechende Funktion auf Windows Anwendungen beschr nkt Sie ist lediglich dann verf g bar wenn die Reportmodulfunktionen mit der Option S WIND OWS kompiliert worden sind Das Symbol enth lt eine Grafik deren Rechte bei der Microsoft Corporation liegen Das nebenstehende Symbol zeigt an da die entsprechende Funk tion nicht in Windows Anwendungen verwendet werden kann Das Symbol enth lt eine Grafik deren Rechte bei der Microsoft Corpo ration liegen CodeReporter 2 0 Der Report Entwicklungsbildschirm An verschiedenen Stellen in diesem Handbuch werden Teile des CodeReporter Entwicklungsbildschirms angesprochen wie sie aus der folgenden Abbildung hervorgehen Code Repanti 2 0 TUTI Info Fenster Ausgabe Gr en Bereich Tasten objekt henkel leiste Style Schaltfl che Statuszeile Abb 1 Report Entwicklungsbildschirm 10 Danke f r Ihre Mithilfe Danke f r Ihre Mithilfe Sollten Sie Fragen oder Anregungen zu diesem bzw anderen Produkten von Sequiter haben wenden Sie sich bitte per Telefon Modem Fax oder Brief an uns Ihre Meinung und Ihre Fragen sind uns sehr wichtig Wenn Sie mit der Qualit t des Produkts oder unserem Service nic
92. Linien Rahmen und Zusatzelemente k nnen wir zu diesem Zeitpunkt ebenfalls vernach l ssigen da auch sie mit CodeReporter erstellt werden brigbleiben die Ele mente die aus Datendateien stammen sowie Grafiken Wenn Sie eine Liste der besonderen Reportelemente zusammenstellen die auch die Dateien mit eben diesen Elementen enth lt wissen Sie sogleich welche Da ten und Grafikdateien f r den Report erforderlich sind Auf diese Weise stellen 40 Einen Report entwerfen Sie sicher da die notwendigen Dateien vorhanden sind und schlie en nicht erforderliche von vornherein aus F r Abb 1 1 lautet die Liste der Reportelemente die Daten aus einer Datendatei verwenden xxxxxxx Gesamtsumme der Spenden der F rderer John Q Public der Name des Spenders 123 West 4th Street Ort ST 55212 Spenderanschrift die sich aus Stra e Ort Staat und Postleitzahl zusammensetzt 4321 34 1234 Spender Nr und x _ Gesamtsumme der Spenden eines Spenders Je nachdem wie die Datenbanken aufgebaut sind kann sich die Gestaltung des Reports als einfach bzw kompliziert erweisen Wenn die Datendatei so organisiert ist wie SPENDER DBF siehe Abb 1 4 dann befinden sich alle f r den Report erforderlichen Datenfelder in dieser einen Datei so da der Report im Grunde genommen eine Auflistung der in dieser vorhandenen Daten ist Abb 1 4 Leider sind die Daten f r einen Report im allgemeinen nicht
93. Mit dieser Funktion werden waagerechte und senkrechte Linien ausgabeobjekte von angegebener L nge erzeugt Die voreingestellte Linienst rke des Ausgabeobjekts betr gt ein Tausendstel Zoll 1 1 000 Zoll Parameter area Ein Zeiger auf den Bereich in den das Linien ausgabeobjekt gesetzt wird vertical Dieser Parameter legt fest ob es sich um ein senkrechtes bzw waagerechtes Linienausgabeob jekt handelt vertical kann einen der folgenden Werte annehmen 1 Beim Linienausgabeobjekt handelt es sich um eine senkrechte Linie 0 Beim Linienausgabeobjekt handelt es sich um eine waagerechte Linie 235 CodeReporter 2 0 API X Die waagerechte Koordinate in tausendstel Zoll an der die Linie beginnt y Die senkrechte Koordinate in tausendstel Zoll vom oberen Rand des Reportbereichs an der das Linienausgabeobjekt beginnt length Die L nge des Linienobjekts in tausendstel Zoll R ckgaben Nicht Null Bei Erfolg wird ein Zeiger auf das neue Linien ausgabeobjekt zur ckgegeben 0 Fehler Das Linienausgabeobjekt konnte nicht an gelegt werden Siehe auch obj4lineFree obj4lineWidth obj4lineFree Aufruf void obj4lineFree OBJ4 obj Beschreibung Diese Funktion l scht ein Linienausgabeobjekt aus dem Report und gibt den mit dem Ausgabeobjekt verbundenen Speicher frei Parameter obj Ein Zeiger auf das aus dem Report zu l schende Linienobjekt Siehe auch obj4lineCreate obj4delete report4free obj4lineWidth Aufruf int
94. N AUSGABEDATEI erstellte Schablone f r die Ausgabedatei enth lt k nnen Sie die Schaltfl che To Data File anklicken Dabei wird der Report in die Datendatei ausgegeben die Sie ins Editierfeld Ausgabe Datendatei eingetragen haben 329 CodeReporter 2 0 Enth lt der Report keine Schablone f r die Ausgabedatei ist die Schaltfl che To Data File von vornherein deaktiviert und der Report l t sich nicht in eine Datendatei ausgeben Mit dem Launch Programm k nnen Sie auch die im Report gespeicherten Sortier und Abfrageausdr cke ab ndern Nehmen Sie diese nderungen in den Editierfeldern Sort Expression und oder Query Expression vor spiegelt die Reportausgabe die neuen Einstellungen wider Weitere Einzelheiten zum Sortieren und Abfragen eines Reports entnehmen Sie bitte dem Kapitel Relationale Reports Nach der Reportausgabe kehrt das Launch Programm zu dieser Dialogbox zu r ck Befehlszeile LAUNCH_W gestattet die Eingabe von Befehlszeilenparametern die den Lade und Anzeigevorgang automatisieren Die Parameter k nnen Sie zu den Pro grammeigenschaften von LAUNCH_W hinzuf gen oder im Programm Manager als Option unter Datei Ausf hren eingeben Einzelheiten zur Verwendung von Befehlszeilenparametern bei Windows Anwendungen finden Sie in Ihrem Wind ows Benutzerhandbuch Aufruf LAUNCH_W name q expr s expr Iv 1 p I d name q expr s expr LL A1 name Der Name
95. ORES bestehende Relationstyp h ngt u a auch vom Report ab Da jede Firma in der Regel mehr als eine Niederlassung hat wird wahrscheinlich eine Filterrelation verwendet Klicken Sie also auf die Schaltfl che Filterrelation Wenn Sie nun noch die Standard Fehlerbehandlung Felder l schen auf N ch ster Satz einstellen und auf OK klicken sieht Ihr Bildschirm aus wie in Abb 2 13 angegeben Relation Neuer Slave Slave l schen Yerkn ptung bearbeiten Schlie en Abb 2 13 Beispiel f r eine noch nicht vollst ndige Relation Eine Slavedatei zu einer Slavedatei hinzuf gen Die Datei STORES DBE ist ein Slave der Datendatei COMPANY DBEF Damit die Relation ordnungsgem Daten f r den Umsatz jeder Niederlassung abrufen kann ist als weitere Datendatei SALES DBF erforderlich Diese Datei enth lt die Felder COMPID STOREID AMOUNT und PRODCODE einen Verweis auf eine Datendatei mit Produkten In der Datendatei wird jeder Verkauf firmen und niederlassungsabh ngig gef hrt Damit die Verk ufe also den richtigen 69 CodeReporter 2 0 Niederlassungen zugeordnet werden k nnen werden Daten ber die Firma und ihre Niederlassung ben tigt Das hei t da die Datendatei SALES DBE innerhalb der Relation eine Stellung einnehmen mu von der aus sie sowohl auf die Datei COMPANY DBF als auch auf STORES DBEF zugreifen kann Am besten l t sich SALES DBF als Slave der Datei STORES DBEF einrichten Letztere fung
96. OUT LADEN und w hlen Sie das Seiten Layout TUTORIAL CRS aus Wenn CodeReporter fragt ob das ak tuelle Layout berschrieben werden soll klicken Sie auf Ja N here Einzel heiten zum Anlegen Speichern und Laden von Seiten Layouts entnehmen Sie bitte dem Kapitel Styles W hlen Sie das Feld numEr c im negativen Bereich durch Anklicken mit der linken Maustaste an Aktivieren Sie die Schaltfl che Style in der Statusanzeige und Doppelklicken Sie auf rot Dadurch ndert sich das Layout aller angew hlten Ausgabeobjekte Da Sie das Feld numer c im negativen Bereich ausgew hlt haben werden seine Werte in Rot ausgegeben Aktivieren Sie die Men option DATEI DRUCKBILD EINSEHEN um sich den fertigen Report anzeigen zu lassen Es werden alle Werte in der Datendatei NUM BERS DBF aufgelistet Da Sie jedoch zwei Bereiche mit sich gegenseitig aus schlie enden Unterdr ckungsbedingungen definiert haben werden die negativen Zahlen in Rot ausgegeben 92 Ausgabeobjekte 5 Ausgabeobjekte Der Begriff Ausgabeobjekte umfa t die Gesamtheit aller Reportelemente mit deren Hilfe dem Leser der Inhalt des Reports vermittelt wird sozusagen das Wesentliche daran Texte Felder Summen Grafiken Linien Rahmen usw Diese Objekte werden beim Ausdrucken mit zu Papier gebracht Alle Ausgaben in einem Report erfolgen ber Ausgabeobjekte Einige Ausgabeobjekte geben berall wo sie innerhalb eines Reports eingesetzt
97. Objekte definieren Bis Sie sich f r einen anderen Objekttyp entscheiden verl t CodeReporter den aktuellen Einf gemodus nicht Das hei t Sie k nnen beliebig viele Objekte vom selben Typ einf gen ohne da Sie die Auswahl immer wieder neu vornehmen m ssen CodeReporter verl t den Einf gemodus wenn Sie in der Tastenleiste auf Kein klicken die Men option OBJEKT KEIN verwenden oder einfach die ESC Taste bet tigen 94 Ausgabeobjekte Objekte innerhalb von Objekten Ein Ausgabeobjekt kann so positioniert werden da es ein anderes kleineres Objekt vollst ndig einschlie t In einem solchen Fall wird das kleinere Objekt als Teil des gr eren behandelt da es diesem quasi innewohnt Ver nderungen an dem gr eren Objekt wirken sich auch auf alle kleineren Ob jekte darin aus Ein Rahmenobjekt zum Beispiel l t sich zur Hervorhebung um mehrere Feldobjekte plazieren Wird nun f r das Rahmenobjekt ein neues Layout ausgew hlt verwenden auch die inneren Objekte das neue Layout Beim Verschieben des bergeordneten Objekts werden alle Objekte die es enth lt mit verschoben Wird das Rahmenobjekt gel scht werden gleichzeitig alle darin ent haltenen Feldobjekte gel scht Objekte ausw hlen Damit ein Objekt bearbeitet gel scht verschoben usw werden kann mu es vorher mit Hilfe eines der unten angegebenen Verfahren ausgew hlt worden sein Das aktuelle Objekt wird auf dem Report Entwicklungsbildschirm i
98. Objekte selbst zugreifen Objekte bearbeiten Es ist bisweilen w nschenswert bestimmte Aspekte eines Ausgabeobjekts wie z B Gr e Layout Ausrichtung Anzahl der Nachkommastellen usw zu ver n dern Diese Ver nderungen k nnen f r das jeweilige Objekt ber die Dialogbox Objektdefinition vorgenommen werden das aus dem Objektmen des aktuellen Objekts aufgerufen wird Soll ein bestimmtes Ausgabeobjekt ver ndert werden geschieht das ber das Popup Men das mit diesem Objekt verbunden ist Je nach Objekttyp enth lt das Men drei bis vier verschiedene Auswahlpunkte Es kann folgenderma en aktiviert werden Entweder Sie klicken mit der rechten Maustaste auf ein Objekt und halten die Taste gedr ckt oder Sie markieren das Objekt und bet tigen die Eingabetaste Das Objektmen sieht danach in etwa so aus wie in Abb 5 4 angegeben 101 CodeReporter 2 0 CodeReporter 2 0 UNTITLED Datei Ausrichten Bearbeiten Ansicht Report Re Gruppe Bereich Objekt Style Gruppe Gruppe 1 Kopf Bereich 1 von 1 Objektdefinition Wiii Text bearbeiten Einmal ausgeben Schlie en E MS Serif Gruppe 1 Bereich 1 H he 2 056 cm Abb 5 4 Objektmen Objektdefinition ber die Dialogbox Objektdefinition lassen sich die Attribute eines Ausgabe objekts ver ndern Sie wird ber die Option OBJEKTDEFINITION im Objektmen aufgerufen Die Dialogbox selbst gliedert sich in mehrer
99. REPORT UTILITY aufgerufen Enth lt der aktuelle Report bereits Aus gabeobjekte werden diese beim Aufrufen der Dialogbox zerst rt Damit das nicht 135 CodeReporter 2 0 geschieht fordert CodeReporter den Benutzer vorher auf die Datei zu speichern oder den Spaltenreport abzubrechen Einen Report erstellen Die Dialogbox Spaltenreport Utility wird dazu verwendet markierte Felder zum Report hinzuzuf gen Zwischensummen von numerischen Feldern zu bilden und die zusammengesetzte Datendatei abzufragen und zu sortieren Nachdem Sie den Report innerhalb der Dialogbox definiert haben klicken Sie auf OK um den Report zu erzeugen Klicken Sie auf Abbrechen k nnen Sie die Dialogbox verlassen ohne da dabei ein Report erzeugt wird Felder hinzuf gen Alle Felder der zusammengesetzten Datendatei werden in der Listbox Felder aufgef hrt Hier k nnen mehrere Felder markiert und nach Klicken auf die Schaltfl che Hinzuf gen in den Report bernommen werden Klicken Sie auf Alle hinzuf gen werden automatisch alle Felder der zusammengesetzten Datendatei zum Report hinzugef gt Die Felder werden von links nach rechts in der Reihenfolge in den Report eingef gt in der sie in der Listenbox Enthaltene Felder erscheinen Nehmen die Felder hier nicht die gew nschte Reihenfolge ein bzw haben Sie ein Feld aus Versehen hinzugef gt k nnen Sie das die Feld er mit Entfernen oder Alle entfern
100. Reporter 2 0 Sich wiederholende Elemente einf gen Der voreingestellte Bereich sollte Felder aus der Top Master Datendatei enthal ten deren Werte sich mit jedem neuen zusammengesetzten Datensatz ndern Um diese Felder in den Bereich Body einzuf gen klicken Sie in der Tastenleiste auf die Taste Feld Jetzt wird die Listbox Feldobjekte Abb 3 unten ge ffnet die alle Felder der zusammengesetzten Datendatei angezeigt Feldobjekte COMPANY COMPID COMPNAME Abb 3 Listbox der Feldobjekte Markieren Sie ber die Tastatur bzw mit der Maus wie unter Windows blich alle Felder der Listbox ziehen Sie den Cursor bei gedr ckter linker Maustaste ber alle drei Felder Nach Auswahl der gew nschten Felder positionieren Sie den Mauszeiger im Kopfbereich der Gruppe Body aber klicken Sie zu diesem Zeitpunkt noch nicht auf die Schaltfl che Fertig Aus dem Pfeil Cursor wird ein Feldeinf gecursor die einzelnen Cursorformen finden Sie in Anhang C Das n chste Klikken der linken Maustaste bestimmt die Position der linken obere Ecke der Felder Bewegen Sie das Kreuz des Feldeinf gecursors links in den Bereich Body und dr cken Sie die linke Maustaste die Dialogbox Feldgestaltung wird aufgerufen Da die Voreinstellungen in Ordnung sind brauchen Sie nur noch auf OK zu klicken um die Positionierung der Felder zu beenden Der Report Entwicklungsbildschirm hat nun folgendes Au
101. Reporter 2 0 API allowBreaks Ist allowBreaks Null falsch wird innerhalb des Bereichs kein Seitenumbruch zugelassen Bei einem Seitenumbruch innerhalb der Gruppe wird diese auf der folgenden Seite ausgegeben Ist allowBreaks nicht Null wahr kann ein Seiten umbruch innerhalb des Reportbereichs vorkom men Dabei wird der Bereich soweit m glich auf der aktuellen Seite ausgegeben w hrend der Rest auf der folgenden Seite erscheint R ckgaben gt 0 Gibt die vorher g ltige Einstellung zum Seiten umbruch zur ck lt 0 area oder allowBreaks sind ung ltig 202 Funktions bersicht group4 Funktionen Mit den group4 Funktionen definiert man die Operationen die innerhalb einer Untermenge der zusammengesetzten Datendatei ausgef hrt werden Diese Opera tionen haben haupts chlich mit der Ausgabe von Reportbereichen zu tun Mit diesen Funktionen werden dar ber hinaus besondere Merkmale der Ausgabe definiert das Austauschen von Kopf Fu bereichen gegen die der Seite das Zur cksetzen von Seite und Seitenzahl usw Die group4 Funktionen werden ebenfalls zum Durchlaufen der mit der Gruppe verbundenen Kopf und Fu bereiche verwendet groupdcreate Aufruf GROUPA4 group4create REPORT4 report char name char resetExpr Beschreibung group4create erzeugt im angegebenen Report eine neue Gruppe Per Voreinstellung handelt es sich bei der neuen Gruppe um die am weitesten au en gelegene Parameter report Ein Zeiger auf de
102. Reporter arbeitet indexspezifisch und kann lediglich Indexdateien ffnen die mit dem aktuellen Indexformat kompatibel sind Innerhalb eines Reports lassen sich die Indexformate nicht nebeneinander benut zen Das hei t bei einem anderen Indexformat ist eine indexspezi fische Version von CodeReporter erforderlich Im Kapitel Starten mit CodeReporter finden Sie Hinweise auf die Verwendung der entspre chenden CodeReporter DLLs Haben Sie eine Indexdatei ge ffnet k nnen deren Subindizes f r die Relation in der Listbox Vorh Subindizes ausgew hlt werden Indexdateien mit nicht verwendeten Subindizes lassen sich ber die Schaltfl che Index schlie en schlie en Nach der Auswahl wird die mit dem ausgew hlten Slave Subindex verbundene Indexdatei geschlossen und alle anderen Subindizes f r den Index werden entfernt Da zus tzlich ge ffnete Indexdateien sich aber nicht negativ auf die Programmausf hrung auswirken braucht man sie nicht unbedingt zu schlie en F r Lookup Operationen erlaubt CodeReporter ebenfalls eine andere Methode bei der keine Subindizes aus der Slavedatei verwendet werden Der Masteraus druck kann neben dem Lookup Schl ssel auch eine Datensatznummer als Er gebnis haben Diese Datensatznummer bezeichnet die physische Nummer des aus der Slavedatei stammenden Datensatzes 61 CodeReporter 2 0 Dieser Methode bedient man sich in erster Linie bei statischen unver nderlichen Slavedateien die n
103. Reporter verleiht den Gruppen in einem Report automatisch einen eindeu tigen Namen Logischerweise kann diese Bezeichnung den Zweck der Gruppe nicht treffend beschreiben In der Dialogbox Gruppendefinition k nnen Sie den Namen der Gruppe im Editierfeld Gruppenname ver ndern Geben Sie anstelle der voreingestellten Bezeichnung Gruppe 2 Kunde ein 24 bungen Da diese Information nicht f r jeden einzelnen Soll und Habenwert angezeigt werden mu wird ein Gruppenr cksetzausdruck definiert um den Bereich der Gruppe Kunde nur dann auszugeben wenn sich der Kunde ndert Ein Grup penr cksetzausdruck der die Untermenge zu der ein einzelner Kunde geh rt eindeutig identifiziert lautet zum Beispiel INVOICES gt CUSTID Gruppendefinition Gruppenname Position Kunde ESCH R cksetzbedingung INYOICES gt CUSTID Si Kopf austauschen Seite zur cksetzen Fu austauschen Seitenzahl zur cksetzen Kopf wiederholen Abb 9 Dialogbox Gruppendefinition f r die Gruppe Kunde Diesen Ausdruck schreiben Sie in das Eingabefenster R cksetzbedingung Immer wenn sich die Identifizierungsnummer des Kunden ndert sollen die Soll und Habenwerte einem anderen Kunden zugeordnet werden Diese auch als Gruppenr cksetzbedingung bezeichnete Bedingung bewirkt die Ausgabe der Gruppe Kunde F r die voreingestellte Gruppe Body wurde keine Gruppenr cksetzbedi
104. Speicherverwaltung und Fehlerbehandlung fileName Ein null terminiertes Zeichenarray das den Namen einschlie lich Laufwerk und Verzeich nis der Relationsdatei enth lt Da stets die Er weiterung REL verwendet wird brauchen Sie keinen Dateityp einzugeben openFiles Hat openFiles einen wahren Wert Nicht Null versucht relate4retrieve die in der abgespei cherten Relationsdatei genannten Daten In dex und Memodateien zu ffnen falls sie noch nicht ge ffnet sind Kann relate4retrieve eine in der Relationsdatei angegebene Datendatei nicht finden wird diese Datei sowie alle ihr zugeordneten Slavedateien aus der Relation 243 R ckgaben Siehe auch 244 CodeReporter 2 0 API dataPathName Nicht Null Null ausgeklammert und der Versuch unternommen die n chste Datendatei zu lokalisieren Hat openFiles einen falschen Wert Null geht relate4retrieve davon aus da alle Daten In dex und Memodateien bereits ge ffnet sind Kann eine in der Relationsdatei angegebene Datendatei nicht ge ffnet werden wird diese Datei sowie alle ihr zugeordneten Slavedateien aus der Relation ausgeklammert und relate4 retrieve setzt den Aufbau der Relation fort Bei diesem Parameter handelt es sich um ein null terminiertes Zeichenarray das f r die in der Relation gespeicherten Daten Index und Memodateien einen neuen Pfadnamen angibt Ist dataPathName Null werden die in der Re lationsdatei abgelegten Pfade verwende
105. Statt eines Eintrags f r jedes m gliche Dienstjahr enth lt die Datei RENTE DBF lediglich die Obergrenze f r die ein zelnen Auszahlungsstufen Die erste Stufe reicht von null bis f nf Jahre die zweite von sechs bis zehn usw bis zur h chsten Stufe von 21 Jahren und dar ber f r die 100000 ausgesch ttet werden Hinweis Wird bei einer Relation mit ungef hrer bereinstimmung keine ge naue bereinstimmung gefunden mu der Datensatz aus der Slave datei nicht notwendigerweise dem des Masterausdrucks am n chsten kommen Es kann sich durchaus um den ersten Datensatz handeln dessen Schl sselwert gr er ist als der Masterausdruck In Abb 2 4 findet der Masterausdruck mit dem Wert sechs den Sub indexeintrag f r zehn obgleich sechs als Zahl der F nf n herkommt 54 Relationale Reports Filterrelationen Bei Filterrelationen besteht eine Einer zu vielen bereinstimmung zwischen der Master und der Slavedatei Das hei t da CodeReporter f r jeden Datensatz der Masterdatei alle passenden Datens tze nicht nur den ersten in der Slavedatei ausfindig macht In Abb 2 5 wird eine Filterrelation verwendet um die Masterdatei STU DENT DBF mit der Datei ENROLL DBEF zu verkn pfen Diese Relation enth lt alle Kurse f r die sich ein Student eingeschrieben hat Im vorliegenden Beispiel bildet die Filterrelation ausgehend von einem Datensatz in der Masterdatei drei zusammengesetzte Datens tze Masterdatei Slavedatei STUD
106. Strg P Strg R Strg S Strg T Strg V Gro Einfg 298 CodeReporter 2 0 Horizontalabst nde zwischen ihnen gleich gro sind Dabei die nen das erste und das letzte ausgew hlte Ausgabeobjekt als Fixpunkte AUSRICHTEN LINKSB NDIG Diese Tastenfolge richtet alle ausgew hlten Ausgabeobjekte so aus da ihre linke Seite eine Flucht mit der linken Seite des ersten ausgew hlten Objekts bildet GRUPPE BEARBEITEN Diese Tastenfolge ruft die Dialogbox Gruppendefinition f r die zur Zeit ausgew hlte Gruppe auf BEREICH BEREICH BEARBEITEN Diese Tastenfolge ruft die Dialogbox Bereich bearbeiten f r den ausgew hlten Bereich auf DATEI DRUCKEN Diese Tastenfolge ruft die Dialogbox Drucken auf ber die der aktuelle Report sich auf dem angegebenen Drucker ausgeben l t AUSRICHTEN RECHTSB NDIG Diese Tastenfolge richtet alle ausgew hlten Ausgabeobjekte so aus da ihre rechte Seite eine Flucht mit der rechten Seite des ersten ausgew hlten Objekts bildet DATEI SPEICHERN Diese Tastenfolge legt den aktuellen Report auf der Platte ab Wurde der Report bislang noch nicht gesichert bittet CodeReporter um Eingabe eines Dateinamens FEINEINSTELLUNG SENKRECHT AUSTREIBEN Diese Tastenfolge versetzt alle ausgew hlten Ausgabeobjekte so da die Vertikalabst nde zwischen ihnen gleich gro sind Dabei dienen das erste und das letzte ausgew hlte Ausgabeobjekt als Fix punkte BEARBEITEN
107. T4 Ein REPORT4 Zeiger auf den Report f r den die Titelleiste eingerichtet wird caption Eine Zeichenkette die den Text enth lt der in der Titelleiste des Ausgabefensters erscheinen soll report4caption legt eine Kopie von caption an R ckgaben 0 Der Reportkopf wurde erfolgreich eingerichtet lt 0 Fehler report4currency Aufruf rc report4currency REPORT4 amp currency Beschreibung Mit dieser Funktion wird der Text festgelegt der unmittelbar links von solchen numerischen Ausgabeobjekten erscheinen soll die als W hrungswerte formatiert sind Parameter REPORT4 Ein REPORT4 Zeiger auf den Report f r den das W hrungssymbol definiert wird 313 CodeReporter 2 0 currency Eine Zeichenkette die das W hrungssymbol ent h lt currency kann aus bis zu zehn Zeichen be stehen report4currency legt eine Kopie von currency an Wird diese Funktion nicht aufgeru fen geht das Programm vom Dollarzeichen aus R ckgaben 0 W hrungssymbol erfolgreich eingerichtet lt 0 Fehler report4dateFormat Aufruf rc report4dateFormat REPORT4 amp format Beschreibung Diese Funktion richtet das Standard Datumsformat f r den an gegebenen Report ein Alle neuen Ausgabeobjekte die als Er gebnis einen Datumswert haben benutzen dieses Format bei der Ausgabe Beim ersten Anlegen des Reports wird der Wert des Elements CODE4 dateFormat als Standard Datumsformat des Reports gespeichert Parameter R ckgaben 314 REPORT4
108. W hrung Von sich aus setzt CodeReporter das W hrungssymbol vor den eigentlichen Zahlenwert Vor einstellung Das W hrungssymbol wird vom Report gesteuert und in der Dialogbox Reportvorgaben definiert Siehe Reportvorgaben im Kapitel Reports gestalten Eine als Prozentwert formatierte Zahl wird mit hundert multipliziert und das Prozentzeichen wird unmittelbar hinter der Zahl erg nzt 111 CodeReporter 2 0 Eine Zahl kann wissenschaftlich geschrieben und im Format n nnnnn e xx aus gegeben werden dabei ist n der Zahlenwert und x der Exponent Bei diesem Format mu unbedingt die richtige Anzahl von Dezimalstellen angegeben werden siehe unten Negative Zahl Per Voreinstellung zeigt CodeReporter negative Zahlenwerte mit einem vorange stellten Minuszeichen an Bei bestimmten Reports m ssen negative Zahlen eventuell in Klammern ausgegeben werden Diese Einstellung erfolgt ber die Schaltfl che Klammern in der Dialogbox Objektdefinition Ohne Klammern Mit Klammern 1234 56 1234 56 F hrende Null Gebrochene Zahlen zwischen 1 und 1 werden durch das Dezimalzeichen und die Nachkommastellen dargestellt Bei einigen Objekten ist es m glicherweise w nschenswert da diesen Zahlen eine Null vorausgeht Aktivieren Sie dazu die Schaltfl che F hrende Null in der Dialogbox Objektdefinition F hrende Null Keine f hrende Null Tabelle 5 1 F hrende Null N
109. adnamen im Kapitel Reports gestal DI ten 11 CodeReporter 2 0 c Beschreiben Sie das Problem im einzelnen Wir sind da Ihnen weiterzuhelfen und bem hen uns Ihnen einen erstklassigen Service zu bieten BBS Unterst tzung Sequiter betreibt zur Zeit seine eigene elektronische Mailbox die technische Unterst tzung und Programm Updates bietet Dar ber hinaus nimmt Sequiter an einer Reihe nationaler und internationaler Mailboxen teil die dieselbe technische Unterst tzung bieten Die Datei READ MEF enth lt eine Liste der zur Zeit unterst tzten Mailboxen sowie Hinweise zur Kontaktaufnahme mit der Techni schen Unterst tzung Adressen Es folgen die Adressen der ausl ndischen Sequiter Niederlassungen Sequiter Software Inc ComFood Software GmbH 58 60 Beresford St Am Rohrbusch 79 London SE186BG D 48161 M nster Gro britannien Deutschland Tel 44813174321 Tel 025 34 7093 Fax 4481 3174040 Fax 025 34 8852 BBS 025 34 1663 12 bungen bungen Das vorliegende Kapitel ist dazu gedacht Anwender von CodeReporter 2 0 rasch mit den Grundverfahren der Reporterstellung vertraut zu machen Nach dem Durcharbeiten dieser bungen kann ein CodeReporter Anwender vorhandene Reportdateien mit und ohne Pfad ffnen neue Reports aufbauen Text Ausdrucks und Berechnungsausgabeobjekte positionieren Summenausgabeobjekte anlegen und positionieren Reportbereiche definieren und deren Gr e ver nder
110. agen und Verkn pfen von Datendateien immer wieder einen oder mehrere dBASE Aus dr cke Ist ein solcher Ausdruck erforderlich bietet CodeReporter im allgemeinen zwei M glichkeiten ihn zu definieren entweder durch direkte Eingabe oder ber die Dialogbox Ausdruck eingeben deren Titelleiste je nach Kontext variiert 144 Ausdr cke Berechnung Name der Berechnung Berechnungsausdruck ruft Dialog Ausdruck eingeben auf Abb 7 1 Beispiel f r die Schaltfl che Kurz Ausdr Die obige Abbildung ist ein typisches Beispiel f r die Anforderung eines dBASE Ausdrucks Die Dialogbox Berechnung enth lt einen Bereich das Editierfeld Berechnungsausdruck in den der Ausdruck unmittelbar eingegeben werden kann Stellen Sie den Cursor direkt in diesen Bereich und geben Sie den entsprechenden dBASE Ausdruck ein Des weiteren enth lt die Abb 7 1 eine Aufrufm glichkeit der Dialogbox Aus druck eingeben die Schaltfl che Kurz Ausdr In dem besagten Dialog brauchen Sie die entsprechenden dBASE Ausdr cke dann nur noch anzuklicken Sind Sie damit fertig wird der in der Dialogbox Ausdruck eingeben vorhan dene Ausdruck in das Editierfeld Berechnung bernommen Dialogbox Ausdruck eingeben Die Dialogbox Ausdruck eingeben Abb 7 2 stellt dem Reportentwickler eine einfache M glichkeit zum Aufbau eines dBASE Ausdrucks zur Verf gung Im Ed
111. andenen Reportberechnun gen Die in den Ausdruck eingef gte Berechnung wird bei der neuen Auswertung ber cksichtigt Es ist auch m glich eine Berechnung in die Ausdr cke anderer Berechnungen oder Summen einzuschlie en Mit dieser Verschachtelung k nnen Sie effektive Reports erstellen In dieser Listbox werden je nach aktivierter Schaltfl che rechts anstelle der Berechnungen auch die Summen oder Subindex Ausdr cke angezeigt Achtung Subindex Ausdr cken fehlen die f r CodeReporter Ausdr cke erforderlichen Feldnamen Kennzeichner Soll ein Subindex Aus druck verwendet werden m ssen Sie die Kennzeichner per Hand eingeben Mit Hilfe der Schaltfl che Pr fen k nnen Sie einen in das Editierfeld Aus druck eingegebenen Ausdruck berpr fen lassen Dabei wird versucht den Aus druck auszuwerten Schl gt der Versuch aus irgendeinem Grund fehl z B nicht kompatible Typen falsche Parameteranzahl bei einer Funktion oder unbekannte Symbole erfolgt eine Fehlermeldung Andererseits zeigt CodeReporter auch an wenn der Ausdruck keine Fehler enth lt 147 CodeReporter 2 0 Nach der Vervollst ndigung und Pr fung eines Ausdrucks klicken Sie auf OK um die Dialogbox Ausdruck eingeben zu schlie en Klicken Sie statt dessen auf Abbrechen verlassen Sie zwar die Dialogbox aber alle Ihre Eingaben gehen verloren 148 Styles 8 Styles Ein professionell gestalteter Report enth lt ni
112. arkiert haben schreiben Sie in Kurzform daneben wann der entsprechende Bereich ausgegeben werden soll Aus Abb 1 3 gehen die f r unseren Musterreport erforderlichen Bereiche hervor daneben wird kurz erl utert warum sie so definiert worden sind 39 CodeReporter 2 0 Dieser Bereich wird nur am Anfang des F rderergesellschaft Reports ausgege Spenderliste ben 1 Januar 1993 bis 21 Mai 1993 Gesamtspenden der F rderer xxxxxxx Dieser Bereich wird ul auf jeder Seite aus egeben Nur auf geg Spender Spender Nr umme der 1 Seite steht er nach dem Titel R Dieser Bereich 123 West 4th Street Ort ST 55212 wird f r jeden Spender einmal Baker John 4321 34 9 000 ausgegeben 123 West 4th Street Ort ST 55212 1234 Cramford John 4321 34 6 000 123 West 4th Street Ort ST 55212 1234 Denver John 4321 34 6 000 123 West 4th Street Ort ST 55212 1234 Abb 1 3 Reportentwurf mit Gruppen Die Elemente des Reports festlegen Der Entwurf eines Reports ist auf dem Weg bis zu seiner Erstellung die einfach ste Aufgabe Schwieriger ist es da schon die Daten zur Verf gung zu haben die in den Report einflie en sollen Dazu sind Kenntnisse oder eine Liste aller Datendateien erforderlich die m glicherweise reportrelevante Informationen enthalten Die statischen Textelemente k nnen wir vernachl ssigen da sie bei der Entwick lung des Reports unmittelbar in den CodeReporter eingegeben werden
113. as mit obj4fieldCreate ange legte aus dem Report zu l schende Feldausgabe objekt Siehe auch obj4fieldCreate obj4delete report4free obj4frameCorners Aufruf int obj4frameCorners OBJ4 obj int rounded Beschreibung Diese Funktion wird bei Rahmenausgabeobjekten eingesetzt um Parameter 230 festzulegen welcher Eckentyp runde oder gewinkelte bei der Objektausgabe verwendet werden soll obj Ein Zeiger auf das Rahmenausgabeobjekt f r das der Eckentyp festgelegt wird rounded Dieser Parameter bestimmt ob die Ecken des Rahmenobjekts gerundet sind oder nicht rounded kann einen der folgenden Werte annehmen 1 Das Rahmenobjekt wird mit gerundeten Ecken angelegt 0 Das Rahmenobjekt wird mit gewinkelten Ecken 90 Grad angelegt Wird diese Funktion nicht aufgerufen geht das Programm von dieser Ein stellung aus R ckgaben gt 0 Funktions bersicht Die vorhergehende Einstellung von rounded wird zur ckgegeben lt 0 Fehler obj ist ung ltig Siehe auch obj4frameCreate obj4frameFree obj4frameCreate Aufruf OBJ4 obj4frameCreate AREA4 area long x long y long width long height Beschreibung Diese Funktion erzeugt ein Rahmenausgabeobjekt im angegebe nen Reportbereich Per Voreinstellung handelt es sich um einen nicht gef llten Rahmen mit gewinkelten Ecken Parameter area width height R ckgaben Nicht Null Dieser AREA4 Zeiger bezeichnet den Reportbe reich in den das neue Rahmenausgabeobje
114. as Ausgabeobjekt wird innerhalb der Begrenzung des Objekts zentriert gt 0 Die vorhergehende Einstellung von justification wird zur ckgegeben lt 0 Fehler obj4exprCreate obj4fieldCreate obj4totalCreate obj4textCreate obj4leadingZero Aufruf int obj4leadingZero OBJ4 obj int leadingZero Beschreibung Mit dieser Funktion wird die Option F hrende Null f r das Parameter 234 angegebene Ausgabeobjekt eingestellt Hat das Ausgabeobjekt als Ergebnis einen Zahlenwert zwischen 1 und 1 wird diese Option verwendet um festzulegen ob dem Dezimalbruch eine Null vorangestellt wird oder nicht F hrende Null Keine f hrende Null obj Ein Zeiger auf das numerische Ausgabeobjekt f r das die Option F hrende Null eingerichtet wird leadingZero Dieser Parameter legt fest ob bei dem numeri schen Ausgabeobjekt eine f hrende Null verwen det wird oder nicht leadingZero kann die folgen den Werte annehmen R ckgaben Funktions bersicht 1 Bei Dezimalbr chen wird eine f hrende Null verwendet 0 Bei Dezimalbr chen wird keine f hrende Null verwendet Wird diese Funktion nicht aufgeru fen geht das Programm von diesem Wert aus gt 0 Der vorhergehende Wert von leadingZero wird zur ckgegeben lt 0 Fehler obj und oder leadingZero sind ung ltig Siehe auch obj4displayZero obj4lineCreate Aufruf OBJ4 obj4lineCreate AREA4 area int vertical long x long y long length Beschreibung
115. ateien Gruppenfelder hinzuf gen Nach dem erfolgreichen Laden der Relation beginnt CodeReporter einen neuen Report der lediglich die Gruppe Body mit einem einzigen Kopfbereich enth lt In diesem Bereich werden die sich wiederholenden Felder der zusammen gesetzten Datendatei ausgegeben Versetzen Sie CodeReporter in den Einf gemodus f r Feldausgabeobjekte indem Sie auf Feld in der Tastenleiste klicken bzw die Men option OBJEKT FELD aktivieren In beiden F llen erscheint die Listbox Feldobjekte die s mtliche Felder der in der Relation vorhandenen Datendateien anzeigt 21 CodeReporter 2 0 CodeReporter 2 0 KONTO Datei Ausrichten Bearbeiten Ansicht Report Relation Zune Bereich am Style ee N Seitenkopf 1 Grappe Seierkertiiuf kont Kopf NAME Seite Haben Soll Gruppe Kunde Kopf KONTOAUSZUG NAME ADDRESS CITYSTZIP Gruppe Body Kopf Bereich 1 von 1 ENTERDATI CREDIT DEBIT Gruppe Kunde Fu Summe Sol Haben CREDIT SUN DEBIT SUM Sie haben gut SOLL HABEN Sie schulden uns Soll_Haber i ENTERDATE 0 752 0 125 1 906 x 0 502 cm Abb 7 Fertiggestellter Report von bung Nr 4 Markieren Sie folgende Felder der Datendatei INVOICES DBF innerhalb der Listbox CREDIT DEBIT ENTERDATE Bewegen Sie den Mauszeiger in den Bereich der Gruppe Body und klicken Sie die linke Maustaste um die Feldobjekte zu positionieren Die Positi
116. atensatz zum L schen markiert ist DESCEND O Nur bei Clipper Kompatibilit t Gibt die Komplementversion eines Aus drucks zur ck DTOC Datums_Wert Die Funktion date to character konvertiert einen Datumswert in einen Zei chenwert Das Format des resultierenden Zeichenwertes wird von Code4 dateFormat angegeben das auf MM DD YY voreingestellt ist Beispiel DTOC DATEO Gibt den Zeichenwert 04 08 93 zur ck wenn das Datum der 8 April 1993 ist DTOS Datums_Wert Die Funktion date to string konvertiert einen Datumswert in einen Zeichen wert Das Format des resultierenden Zeichenwertes ist CCYYMMDD Beispiel DTOS DATEQ Gibt den Zeichenwert 19870530 zur ck wenn das Datum der 30 Mai 1987 ist IIF Log_Wert Wahr_Result Falsch_Result Ist Log Wert TRUE gibt IIF den Wert Wahr_Result zur ck sonst gibt IF den Wert Falsch Result zur ck Sowohl Wahr_Result als auch Falsch Result m ssen dieselbe L nge haben und vom selben Typ sein sonst wird ein Fehler generiert Beispiel 1 IIF WERT lt 0 Kleiner als Null Gr er als Null Beispiel 2 IIFONAME Hans Name ist Hans Nicht Hans LTRIM Zeichen_Wert Diese Funktion entfernt die f hrenden Leerzeichen aus dem Ausdruck 293 CodeReporter 2 0 MONTH Datums_Wert Gibt den Monat des Datumsparameters als numerischen Wert zur ck Beispiel MONTH DT_FELD Gibt 12
117. atierung von Zahlen Index Komplexe Relationen 51 55 Kopfbereich Wert der Objekte bei der Ausgabe 76 Kopieren siehe Ausgabeobjekte Kurz Ausdruck 66 125 137 144 Laden Relationen von der Platte 66 Reports von der Platte 7 Lineal 158 160 Linien erstellen 117 Farbe 118 L nge 117 118 Seitenumbruch innerhalb von 89 Lookup Schl ssel 56 LTRIM 293 Ma einheiten siehe Reportvorgaben Masterausdruck 50 53 54 56 61 angeben 60 Masterdatei 47 50 51 53 56 58 mit mehreren Slavedateien 55 Maus 4 Maximum 130 Mehrfachauswahl siehe Ausgabeobjekte Minimum 130 MONTHO 294 Nat rliche Reihenfolge 65 Neuer Report 8 Non Windows Styles siehe Styles obj4bitmapFieldCreate 218 obj4bitmapFieldFree 220 obj4bitmapFileCreate 217 obj4bitmapFileFree 218 obj4bitmapStaticCreate 215 obj4bitmapStaticFree 216 obj4brackets 220 obj4calcCreate 222 obj4calcFree obj4dataFieldSet obj4dateFormat obj4decimals obj4delete obj4displayOnce obj4displayZero obj4exprCreate obj4exprFree obj4fieldCreate obj4fieldFree obj4frameCorners obj4frameCreate obj4frameFill obj4frameFree obj4justify obj4leadingZero obj4lineCreate obj4lineFree obj4lineWidth obj4lookAhead obj4numericType obj4style obj4textCreate obj4textFree obj4totalCreate obj4totalFree Objektmen Optimierungen PAGENOO Pfade Pfund Proportionen siehe Grafiken Prozent siehe Formatierung von Zahlen Quellcode Relation speichern als Quellcode erzeugen Relat
118. atte ablegen und mit den Men optionen DATEI RELATION SPEICHERN und DATEI RELATION LADEN in einen neuen Report einlesen Diese Men optionen bitten Sie um die Eingabe eines Namens f r die Reportdatei und speichern laden die Rela tion Die Relationen werden in besonderen CodeReporter Relationsdateien mit der Erweiterung REL abgelegt Soll eine Relation nicht in weitere Reports eingehen braucht sie nicht gespeichert zu werden da die CodeReporter Reportdatei REP die Relation des Reports enth lt Achtung Wenn Sie eine Relation von der Platte laden wird die aktuelle Rela tion des Reports sowie alle Objekte Summen und Berechnungen gel scht Als Code speichern CodeReporter kann eine Relation auch als Quellcode speichern der mit den API Funktionsaufrufen verarbeitet werden kann Verwenden Sie f r diesen Fall die Men option RELATION ALS CODE SPEICHERN Nachdem Sie den Dateityp ausgew hlt haben geben Sie in der Dialogbox C Quelldatei angeben Abb 2 11 unten einen Dateinamen und ein Verzeichnis ein Diese Datei kann dann mit dem CodeReporter API verwendet werden Im Anhang F CodeBasic API finden Sie weitere Hinweise auf die Verwendung der generierten Quellcodedatei 66 Relationale Reports C Quelldatei angeben Dateiname Verzeichnisse d codebaseicoderepkexamples Bar Abbrechen E gt codebase E gt coderep gt examples o Schreibgesch tzt Dateiformat Laufwerke Quellcode Datei fC
119. auptfunktionen eines angepa ten Ausgabetreibers sind 189 CodeReporter 2 0 API report4pagelnit report4generatePage report4pageObjFirst report4pageObjNext report4pageFree Um den ordnungsgem en Einsatz dieser Funktionen zu gew hrleisten m ssen f r die Ausgabe der Reportdaten die folgenden Strukturen verwendet werden OBJECT4 Beschreibung Diese Struktur beschreibt ein ausgewertetes Ausgabeobjekt Die report4pageObj Funktionen geben einen Zeiger auf diese Struktur zur ck Elemente objtype Dieses Flag zeigt den Typ des aktuellen Ausgabe objekts an objtype kann als Wert jede der folgen den Konstanten annehmen obj4type_field obj4type_expr obj4type_total obj4type_text obj4type_hline obj4type_vline obj4type_frame 190 info speichert den Feldinhalt als Text info speichert den Inhalt eines Ausdrucks als Text info speichert den Wert einer Summe als Text info speichert statischen Text info ist leer Die waagerechte Linie wird mit x y w und h beschrieben info ist leer Die senkrechte Li nie wird mit x y w und h be schrieben info enth lt zwei Bytes mit de nen F llung und runde Ecken bestimmt werden Ist das linke Byte 1 ist der Rahmen ge f llt Ist das rechte Byte 1 hat der Rahmen runde Ecken Siehe auch STYLE4 Beschreibung alignment info_len info style_index Funktions bersicht Ausgabeobjekte die als Ergebnis Text haben
120. aus druck Beim Namen handelt es sich um eine Zeichenkette die die Rechenopera tion kurz beschreibt Diese Bezeichnung erscheint in der Listbox Berechnungen in der Dialogbox Ausdruck eingeben Der Berechnungsausdruck kann in das Editierfeld Berechnungsausdruck eingegeben werden Hinweis Der Name einer Berechnung darf keine Leerzeichen enthalten Im einem solchen Fall fa t CodeReporter lediglich die Zeichen bis zum ersten Leerzeichen als Namen der Berechnung auf Obwohl Berechnungen ber das Objektmen erstellt werden mu nicht f r jede Berechnung auch ein Berechnungsausgabeobjekt vorhanden sein Es ist allgemei ne Praxis Berechnungen nur innerhalb anderer Berechnungen Ausdr cke und Summen einzusetzen Berechnungen l schen Die Berechnungen werden in der Dialogbox Berechnungsobjekt gel scht Mar kieren Sie dazu den Namen in der Listbox und klicken Sie auf die Schaltfl che Ber l schen Dadurch werden die Berechnung alle Berechnungen Summen in denen sie verwendet wird und alle Ausgabeobjekte gel scht die eine der gel schten Berechnungen oder Summen benutzen Achtung Das L schen einer Berechnung kann schnell eine Vielzahl verkn pfter Elemente aus dem Report entfernen Also gehen Sie dabei vorsichtig vor Berechnungsobjekte Nachdem Sie eine Berechnung erstellt haben k nnen Sie ein Berechnungsaus gabeobjekt positionieren indem Sie 1 den Namen der gew nschten Berechnung in der D
121. aus gabeobjekt Siehe auch obj4delete obj4bitmapStaticCreate report4free 216 Funktions bersicht obj4bitmapFileCreate Aufruf OBJ4 obj4bitmapFileCreate AREA4 area char fileName long x long y long width long height Beschreibung Diese Funktion erzeugt ein statisches Grafikausgabeobjekt in dem sie eine vorhandene Windows Bitmap Datei BMP ffnet und intern eine Kopie des Bildes anlegt Nach Fertigstellung des Grafikausgabeobjekts wird die Bitmap Datei geschlossen Um sie innerhalb der angegebenen Koordinaten unterzubringen wird die Gr e der Bitmap ver ndert dabei bleiben ihre Propor tionen nicht unbedingt erhalten Wird ein Report mit einem solchen statischen Grafikobjekt ge speichert wird lediglich ein Verweis auf den Dateinamen mit abgelegt Das eigentliche Bild wird bei der Ausf hrung des Reports jeweils aus der Bitmap Datei neu eingelesen Parameter area Dieser AREA4 Zeiger bezeichnet den Reportbe reich in den das neue Grafikausgabeobjekt gesetzt werden soll fileName Ein null terminiertes Zeichenarray das Laufwerk Verzeichnis und Dateinamen einer Windows Bitmap enth lt Sind Laufwerk und oder Verzeich nis nicht vorhanden geht das Programm vom ak tuellen Laufwerk Verzeichnis aus x Die waagerechte Koordinate in tausendstel Zoll an der die linke Seite des Grafikobjekts steht y Die senkrechte Koordinate in tausendstel Zoll vom oberen Rand des Reportbereichs an der die Oberkante d
122. aus der die gew nschte Farbe enth lt Alle anderen Attribute des Styles wie z B Schriftart Punktgr e werden ignoriert 118 Ausgabeobjekte Einzelheiten zum Anlegen und Bearbeiten von Styles entnehmen Sie bitte dem entsprechenden Kapitel Objekte innerhalb Rahmen und dicke Linien werden oft dazu verwendet Ausgabeobjekte zu gruppieren Wie im Abschnitt Objekte innerhalb von Objekten weiter oben erw hnt spricht man davon da das zweite Objekt im ersten enthalten ist wenn ein Objekt ein anderes vollst ndig einschlie t Das ist bei Rahmen h ufig der Fall da sie andere Ausgabeobjekte umgeben Bei der Verwendung von Rahmen mit F llung sollten zwei Dinge beachtet werden jean Das wei e Rechteck das ein Ausgabeobjekt innerhalb des Rahmens umgibt im Entwicklungsmodus wird bei der Reportausgabe nicht mit ausgegeben Es zeigt lediglich die Kontur und die Gr enhenkel der inneren Ausgabeob jekte an 2 Ausgabeobjekte innerhalb eines Rahmens mit F llung sollten eine andere Farbe haben als die F llung Ein schwarzer Text auf einem schwarzem Hin tergrund zum Beispiel wird unsichtbar Das geschieht oft wenn ein Style f r den Rahmen ber das Style Popup Men ausgew hlt wird Da bei der Markierung des Rahmen gleichzeitig auch alle inneren Objekte markiert werden wird f r sie derselbe Style eingestellt wie f r den Rahmen Grafiken CodeReporter kann sowohl statische als auch dynamische Grafikelem
123. ave wirkt sich in keinster Weise auf den im Speicher befindlichen Report aus Die Funktion kann ohne sch dliche Wirkung vor oder nach report4do aufgerufen werden Wird ein Report mit Grafikausgabeobjekten in eine Non Wind ows Anwendung geladen und mit report4save abgespeichert werden die Grafikausgabeobjekte in der neuen Reportdatei nicht mitgesichert report Ein Zeiger auf den Report der auf der Platte ab gelegt werden soll fileName Ein null terminiertes Zeichenarray das Laufwerk Verzeichnis und Namen der Datei enth lt unter denen der Report gespeichert werden soll Sie k nnen eine Erweiterung am Dateinamen ange ben geben Sie keine an wird die voreingestellte Erweiterung REP an den Dateinamen angeh ngt savePaths Enth lt savePaths einen wahren Wert nicht Null legt report4save f r jede im Report genannte Da tei Laufwerk und Pfad in der Reportdatei ab Ent h lt savePaths einen falschen Wert Null werden lediglich die im Report vorhandenen Dateinamen gespeichert 0 Der Report wurde erfolgreich in die angegebene Datei geschrieben lt 0 Fehler report ist ung ltig oder die angegebene Datei konnte nicht angelegt werden report4retrieve 273 CodeReporter 2 0 API report4separator Aufruf int report4separator REPORTA4 report char separator Beschreibung Mit dieser Funktion wird das Zeichen angegeben das zwischen Hundertern und Tausendern Tausendern und Millionen usw steht Parameter report Ein Zeige
124. b 5 7 Geben Sie in die Dialogbox Summe bilden den Namen TITELSUMME und die R cksetzbedingung f r das Summenobjekt ein Da die Summe den gesamten Report zusammenfa t bleibt das Editierfeld Summenr cksetzausdruck leer Klicken Sie auf OK Klicken Sie in der Dialogbox Summenberechnungen auf Fertig um die Box zu schlie en Alle Objekte also auch Summenobjekte sind von Haus aus keine Vorschauob jekte Damit das neue Summenobjekt TITELSUMME erwartungsgem funktio niert mu seine Objektdefinition ver ndert werden Rufen Sie also das Objekt men auf und aktivieren Sie OBJEKTDEFINITION Es erscheint eine Dialogbox wie in Abb 5 5 Klicken Sie auf die Schaltfl che Vorschau Entsprechend dem Reportentwurf in Abb 5 7 soll die Verkaufs summe mit zwei Nachkommastellen angezeigt werden Schreiben Sie 2 in das Editierfeld Nachkommastellen und klicken Sie auf OK um die nderungen zu speichern Im Reportentwurf werden das Verkaufspersonal die Verkaufssummen und der Prozentanteil am Gesamtverkauf aufgef hrt Der Prozentanteil wird anhand der Division der einzelnen Verkaufssummen durch den Gesamtverkauf ermittelt Da der Gesamtverkauf im Titelbereich berechnet worden ist kann er auch auf den niedrigeren Stufen des Reports verwendet werden Um den Prozentanteil zu ermitteln ist ein Berechnungsobjekt erforderlich Klik ken Sie in der Tastenleiste auf die Schaltfl che Berechnun
125. ber auch mehrere gleichzeitig plazieren Ein einzelnes Feld wird in den Report eingef gt indem man das Feld in der ein zeiligen Listbox Feldobjekte markiert den Cursor mit der Maus an die ge w nschte Stelle bewegt und die linke Maustaste klickt Hier wird das Feld dann mit voreingestellter Gr e und Definition eingef gt Werden in der Listbox Feldobjekte mehrere Felder markiert wird bei der Pla zierung im Entwicklungsbildschirm die Dialogbox Feldgestaltung aufgerufen Wie aus der untenstehenden Abbildung ersichtlich bietet diese Dialogbox meh rere Option zur Positionierung der Ausgabeobjekte Feldgestaltung Einf gerichtung Waagerecht Senkrecht Umbruch O Bezeichnungen Abstand senkrecht 0 2 Abstand waagerecht 0 2 Abbrechen SCENE Abb 5 13 Dialogbox Feldgestaltung Vom Einf gepunkt aus gesehen positioniert CodeReporter die Ausgabeobjekte entweder in einer Reihe nach rechts oder nach unten je nach Einstellung der Optionsschaltfl chen Einf gerichtung Hierbei wird ebenfalls die Einstellung des Kontrollk stchens Umbruch ber cksichtigt Beim Einf gen der Ausgabeobjekte berpr ft CodeReporter ob ein Objekt ber den Rand des Reportsbereichs hinausgeht in dem die Plazierung stattfindet In einem solchen Fall wird die Gr e dieses Objekts gew hnlich so ver ndert da es in den Bereich pa t und der Einf gemodus verlassen 123 CodeReport
126. bereich e anstelle des Seitenkopf Bereichs ver wendet werden soll en swap Dieses logische Flag bestimmt ob die Gruppe ihren Kopfbereich austauschen soll oder nicht M gliche Werte f r swap sind 1 Der Gruppenkopf wird ausgetauscht 0 Der Gruppenkopf wird nicht ausgetauscht Wird die Funktion nicht aufgerufen geht das Pro gramm von diesem Wert aus gt 0 Der vorhergehende Wert von swap wird zur ck gegeben lt 0 Fehler group4swapFooter report4pageHeaderFooter Funktions bersicht obj4 Funktionen Die obj4 Funktionen sind dazu da innerhalb eines Reportbereichs Ausgabeob jekte zu erzeugen und zu modifizieren Die Objekte werden mit der f r ihren Typ vorgesehenen Funktion erzeugt und mit der entsprechenden L schfunktion oder obj4delete aus dem Report entfernt Dar ber hinaus stehen nach der Erstellung des Objekts besondere Formatier und Layout Funktionen zur Verf gung mit denen sich das Erscheinungsbild des Aus gabeobjekts ver ndern l t obj4bitmapStaticCreate Aufruf OBJ4 obj4bitmapStaticCreate AREA4 area HANDLE hDIB long x long y long width long height Beschreibung Diese Funktion erzeugt unter Verwendung eines Handles auf Parameter eine ger teunabh ngige Bitmap unter Windows ein Grafikobjekt Nachdem obj4bitmapStaticCreate ein Grafikausgabeobjekt er zeugt hat darf der Programmierer das Handle auf die ger teun abh ngige Bitmap ADIB nicht freigeben Die Bitmap wird von obj4bitma
127. bereinstimmung Stop bei Fehler Abb 2 8 Dialogbox Datendatei Verkn pfungen Den Masterausdruck k nnen Sie entweder per Hand in das Editierfeld Master ausdruck eingeben oder sich ber die Schaltfl che Kurz Ausdruck die Eingabe des Ausdrucks erleichtern N here Einzelheiten ber dBASE Ausdr cke und die Dialogbox zur Eingabe von Ausdr cken entnehmen Sie bitte dem Kapitel Ausdr cke 60 Relationale Reports Die Subindizes f r die Arbeitsindexdatei der Slavedatei falls vorhanden werden in der Listbox Vorh Subindizes aufgef hrt W hlen Sie einen Subindex aus so werden Hinweise ber ihn einschlie lich der Sortierfolge im Editierfeld Slave Subindex angezeigt Der dBASE Ausdruck der f r den Subindex aufgef hrt wird sollte falls in der Relation verwendet mit dem Masterausdruck f r die Lookup Operation bereinstimmen damit er richtig funktioniert Gibt es keinen dem Masterausdruck entsprechenden Subindex oder verf gt die Slavedatei nicht ber einen Arbeitsindex enth lt die Listenbox Norb Subindi zes lediglich den Eintrag Keiner Subindizes aus Indexdateien bei denen es sich nicht um Arbeitsindexdateien handelt k nnen ber die Schaltfl che Index ffnen ge ffnet und in der Relation eingesetzt werden Die Schaltfl che ruft die Dialogbox Index ausw hlen auf mit deren Hilfe die neue Indexdatei lokalisiert und ausgew hlt werden kann Hinweis Code
128. bilden Summenname CREDIT_SUM Berechnung INYOICES gt CREDIT Summenr cksetzausdruck Summe Minimum o Durchschnitt Maximum Abbrechen Abb 5 14 Dialogbox Summe bilden Wie Berechnungen lassen sich Summen innerhalb CodeReporters in jedem dBASE Ausdruck verwenden von daher braucht jede Summe einen eindeutigen Namen Diese Bezeichnung ist auf SUMMEn voreingestellt wobei es sich bei 129 CodeReporter 2 0 n um eine aufsteigende Zahl handelt Der Name l t sich dahingehend ver ndern da er die Funktion der Summe deutlich umschreibt Wird die Summe innerhalb anderer Ausdr cke verwendet bestimmt dieser Name gefolgt von runden Klammern OH welche Summe verarbeitet werden soll Hinweis Ist der Wert einer Summe in einem dBASE Ausdruck erforderlich mu aber im Report nicht erscheinen l t sich das Summenausgabe objekt verbergen indem man seine Gr e so weit reduziert da sein Inhalt nicht mehr angezeigt werden kann Typen Die bei der Aktualisierung des Summenwertes von einem zusammengesetzten Datensatz zum n chsten ausgef hrte Operation richtet sich nach der Verwendung der Summe Das Ergebnis einer Summe kann eine arithmetische Summe ein Durchschnitts ein Maximal oder ein Minimalwert sein Eine arithmetische Summe addiert die von der ausgewerteten Berechnung Sum me oder dem numerischen Feld zur ckgegebene Zahl zu ihrem bereits vorhande nen Wert hi
129. box k nnen Sie Indexdateien f r den Top Master ffnen und oder schlie en und so die BOA f r den Report erm glichen Ist die Relation neu enth lt die Dialogbox Datendatei Verkn pfungen die vor eingestellten Informationen wie aus Abb 2 8 hervorgeht Ehe die neue Relation g ltig werden kann m ssen Sie das Editierfeld Masterausdruck bearbeiten und einen vorhandenen Subindex ausw hlen 59 CodeReporter 2 0 Der Masterausdruck ist ein auf der Masterdatei bzw auf Datendateien auf h he rer Stufe basierender dBASE Ausdruck der als Lookup Schl ssel den Slave Subindex durchsucht Bei Durchf hrung des Reports wird dieser Ausdruck f r jeden aus der Masterdatei bernommenen Datensatz ausgewertet das Ergebnis wird dazu verwendet ber den f r die Slavedatei angegebenen Subindex einen Datensatz in der Slavedatei aufzusuchen Am h ufigsten werden Masterausdr cke verwendet die nur einen Feldnamen aus der Masterdatei enthalten Sie k nnen aber auch weitaus komplexer sein und Felder aus h heren Datendateien des Relationsbaumes und oder dBASE Funktio nen enthalten Datendatei Yerkn pfungen Masterdatei Slavedatei COMPANY DBF CODEREPYEXAMPLES STORES DBF Alias COMPANY Alias STORES Hasterausdruck Slawe Subindex Yorh Subindizes Relationstyp Fehlerbehandlung Eilterrelation Felder l schen genaue bereinstimmung N chster Satz Index schlie en ungef hre
130. c_create void total4free TOTAL4 total Diese Low Level Funktion gibt den gesamten mit der Definition der Summe verbundenen Speicher frei Sie wird automatisch von obj4totalFree aufgerufen total Ein Zeiger auf die Summendefinition die erzeugt werden soll obj4totalFree totaldcreate 291 CodeReporter 2 0 Anhang A dBASE Funktionen adBASE Ausdrucksfunktionen Die unten aufgef hrten Funktionen k nnen als dBASE Ausdruck oder als Teil eines dBASE Ausdrucks benutzt werden Wie Operatoren Konstanten und Felder geben auch Funktionen einen Wert zur ck Die Funktionen haben stets einen Namen dem eine linke und eine rechte Klammer folgt In den Klammern k nnen Werte Parameter stehen Liste der Funktionen CTOD Zeichen_Wert Die Funktion character to date konvertiert einen Zeichenwert in einen Datumswert Beispiel CTOD 11 30 88 Die Zeichendarstellung erfolgt immer im von Code4 dateFormat angegebe nen Format das auf MM DD YY voreingestellt ist DATEO Gibt das Systemdatum zur ck DAY Datums_Wert Gibt den Tag des Datumsparameters als numerischen Wert von 1 bis 31 zur ck Beispiel DAY DATEO Gibt 30 zur ck wenn es sich um den 30 Tag des Monats handelt DEL Gibt zur ck wenn der aktuelle Datensatz zum L schen markiert ist Sonst wird zur ckgegeben 292 Anhang A dBASE Funktionen DELETED Gibt TRUE zur ck wenn der aktuelle D
131. che Non Windows Programme zur Ausgabe von CodeReporter Reportdateien zur Verf gung Bei diesen Program men handelt es sich ausf hrbare DOS Dateien mit denen Sie sich Reports von der DOS Befehlszeile aus oder ber Stapelverarbeitungsdateien anzeigen und ausdrucken lassen k nnen Als weiteres Beispiel f r den Einsatz der Reportfunktionen und als M glichkeit LAUNCHL_D unter anderen Betriebssystemen einzusetzen ist im Lieferumfang ebenfalls der Quellcode von LAUNCH_D enthalten Hinweis Das Non Windows Launch Programm kann nicht auf Windows spezi fische Styles zugreifen Aus diesem Grund unterscheiden sich Reports die mit diesem Programm ausgegeben werden von Reports die unter CodeReporter ausgegeben werden Die Gr en von Gruppenkopf und fu Bereichen wie auch Titel Schlu Seitenkopf und fu Bereich werden auf 0 42 cm 1 6 etwa 12 Pkt gerundet da bei den meisten Druckern eine Zeile 0 42 cm hoch ist 331 CodeReporter 2 0 Dateinamen Das Launch Programm verh lt sich indexspezifisch Um zum Beispiel einen Report mit FoxPro Indexdateien auszuf hren m ssen Sie eine FoxPro kompa tible Version des Launch Programms aufrufen Die vorkompilierten Versionen des Launch Programms im Verzeichnis LAUNCH installiert hei en folgender ma en Kompatibilit t LNCH_FOX FoxPro 2 0 oder h her CDX LNCH_MDX dBASE IV nur MDX LNCH_CLI Clipper NTX LNCH_NDX dBASE III NDX Im vorliegenden Ha
132. chste Ausgabeobjekt im angegebenen Bereich ab In Verbindung mit area4dobjFirst durchl uft sie die Ausgabeobjekte in einem Bereich area Ein Zeiger auf den Bereich der die Ausgabeob jekte enth lt Nicht Null Ein OBJ4 Zeiger auf das n chste Ausgabeobjekt in dem Reportbereich wird zur ckgegeben 0 Fehler area ist ung ltig oder das zuletzt abgeru fene Ausgabeobjekt war das letzte in dem Bereich Siehe auch Funktions bersicht area4objFirst area4objPrev area4objPrev Aufruf OBJ4 area4objPrev AREA4 area Beschreibung Diese Funktion ruft einen Zeiger auf das vorhergehende Aus gabeobjekt im angegebenen Bereich ab In Verbindung mit area4dobjLast durchl uft sie die Ausgabeobjekte einem Bereich r ckw rts Parameter area Ein Zeiger auf den Bereich der die Ausgabeob jekte enth lt R ckgaben Nicht Null Ein OBJ4 Zeiger auf das vorhergehende Ausga Siehe auch beobjekt in dem Reportbereich wird zur ckge geben 0 Fehler area ist ung ltig oder das zuletzt abgeru fene Ausgabeobjekt war das erste in dem Bereich area4dobjLast areadobjNext area4dpageBreak Aufruf void area4pageBreak AREA4 area int allowBreaks Beschreibung Mit dieser Funktion werden in einem angegebenen Bereich Seitenumbr che zugelassen oder verhindert Wird diese Funktion nicht aufgerufen sind Seitenumbr che innerhalb der Bereiche nicht m glich Parameter area Mit diesem AREA4 Zeiger wird der Bereich be stimmt 201 Code
133. cht nur die erforderlichen Infor mationen sondern pr sentiert sie auch in ansprechender Weise Einen wichtigen Aspekt dabei bilden Schriftart gr e und Farbe mit deren Hilfe wichtige Aus gabeobjekte Spaltentitel Titel Summen negative Zahlen usw hervorgehoben werden k nnen In CodeReporter l t sich eine derartige Formatierung ber die Verwendung von Styles verwirklichen Mit einem Style legen Sie Schriftart gr e Farbe und Sonderattribute unterstreichen fett kursiv usw fest und geben ihm einen Na men Jedesmal wenn ein Ausgabeobjekt gleichartig strukturiert sein soll laden Sie den entsprechenden Style es ist nicht erforderlich das Erscheinungsbild immer wieder neu aufzubauen Im Laufe der Reportentwicklung k nnen Sie neue Styles definieren um den Report Ihren Anforderungen anzupassen Warum Styles Aus verschiedenen Gr nden setzt CodeReporter Styles sowie Seiten Layouts ein In erster Linie soll dadurch die Gesamtanlage des Reports erleichtert werden Das Erscheinungsbild des Reports oder das mehrerer Reports braucht lediglich einmal definiert zu werden Nach seiner Fertigstellung m ssen Sie sich nicht noch einmal Gedanken ber die Verwendung bestimmter Schriftarten machen Dar ber hinaus f rdern Styles das gleichm ige Aussehen des Reports Anstatt f r jedes Ausgabeobjekt immer wieder neu Schriftart gr e und Farbe festlegen zu m ssen und dabei m glicherweise Fehler zu begehen mu ein Style
134. chzeitig im Zahlungsr ckstand und auf der Gut habenseite befinden kann m ssen diese Werte in Reportbereiche geschrieben werden die sich gegenseitig ausschlie en Beim Anlegen der Kunden Gruppe hat CodeReporter automatisch ebenfalls einen einzigen Gruppenfu Bereich angelegt Dieser Bereich wird f r die Ausgabe der summierten Soll Habenwerte des Kunden verwendet Es besteht die M glich keit solange die Kunden Gruppe markiert ist ber die Men option BEREICH NEUER FUSSBEREICH zwei weitere Fu bereiche Sie schulden uns und Sie ha ben gut anzulegen Erweitern Sie jeden Kundengruppen Fu bereich um ein Textobjekt s Abb 7 Summe Soll Haben Sie haben gut Sie schulden uns Um zu bestimmen wer wem Geld schuldet mu jeweils die Gesamtsumme der Soll und Habenwerte des Kundenkontos ermittelt und miteinander verglichen werden Summen werden mit Hilfe der Listbox Summenberechnungen gebildet die ber die Schaltfl che Summe auf der Tastenleiste aktiviert wird Die Listbox enth lt neben den Namen aller numerischen Felder der zusammengesetzten Datendatei auch alle numerischen Berechnungen Ein Ausgabeobjekt f r das Feld CREDIT positionieren Sie indem Sie den Eintrag CREDIT in der Listbox mar kieren und diesen in den ersten Fu bereich der Kunden Gruppe einf gen Das ruft die Dialogbox Summe bilden auf den Plan Abb 11 die die voreingestellten Werte der Summe enth lt Der Dialog Summe bilden
135. d und es ereignet sich ein Seitenumbruch wird wie blich der Seitenfu ausgegeben Parameter group Dieser Zeiger bezeichnet die Gruppe deren Fu bereich e anstelle des Seitenfu Bereichs verwen det werden soll en swap Dieses logische Flag bestimmt ob die Gruppe ihren Fu bereich austauschen soll oder nicht M gliche Werte f r swap sind 1 Der Gruppenfu wird ausgetauscht 0 Der Gruppenfu wird nicht ausgetauscht Wird die Funktion nicht aufgerufen geht das Pro gramm von diesem Wert aus R ckgaben gt 0 Der vorhergehende Wert von swap wird zur ck gegeben lt 0 Fehler Siehe auch group4swapHeader report4pageHeaderFooter group4swapHeader Aufruf int group4swapHeader GROUP4 group int swap Beschreibung Diese Funktion tauscht beim Zur cksetzen der Gruppe den Seitenkopf Bereich gegen den Gruppenkopf Bereich aus 213 Parameter R ckgaben Siehe auch 214 CodeReporter 2 0 API Tritt f r die Gruppe eine R cksetzbedingung ein wird der Rest der aktuellen Seite bersprungen die Fu bereiche aller inneren Gruppen werden noch ausgegeben und der die Kopfbereich e der angegebenen Gruppe wird werden anstelle des blichen Sei tenkopfes oben auf der folgenden Seite ausgegeben der Seiten kopf wird nicht ausgegeben Wenn die Gruppe nicht zur ckgesetzt wird und es ereignet sich ein Seitenumbruch wird wie blich der Seitenkopf ausgegeben group Dieser Zeiger bezeichnet die Gruppe deren Kopf
136. dReport CODEA cb int openFiles In derselben Weise l t sich der generierte Quellcode auch in einer Windows Anwendung einsetzen dazu dient das Programm WREP2 C Sie k nnen den Re port laden und ausgeben indem Sie einfach die report4retrieve Zeile gegen den Funktionsnamen in der generierten Quellcode Reportdatei austauschen Ausschnitt aus der Quellcodedatei WREP2 C f r Windows long FAR PASCAL WndProc HWND hWnd UINT message WPARAM wParam LPARAM lParam static CODE4 cb static REPORT4 report switch message case WM_COMMAND switch wParam case IDM_DOREPORT report buildReport amp cb 1 if report report4parent report hWnd report4toScreen report 1 report4do report break break Einen Report ganz von vorn aufbauen Da CodeReporter f r jeden beliebigen Report Quellcode erzeugen kann ist es wenig empfehlenswert Reports ganz von vorn aufzubauen Mu ein Report an 188 Funktions bersicht bestimmte Anforderungen angepa t werden kann dazu als Ausgangspunkt der Quellcode eines bereits vorhandenen Reports verwendet werden Mu ein Report tats chlich per Hand ganz neu aufgebaut werden halten Sie sich bitte an die folgenden Schritte 1 Stellen Sie zun chst die Relation her Dabei k nnen Sie entweder die Funk tionen des Relationsmoduls von CodeBase 5 einsetzen oder eine Relation mit relate4retrieve aus einer Relationsdatei laden 2 Initialisieren Sie d
137. dateien zusammenzufassen zu formatieren anzuzeigen und auszu drucken Auf alle Funktionen des Reportmoduls k nnen Sie indirekt ber CodeReporter zugreifen CodeReporter verwendet das Reportmodul zur Erzeugung variabel codierter Reportdateien und deren Quellcodes in C Der generierte Quellcode enth lt zahlreiche Aufrufe der Funktionen des Reportmoduls In einigen F llen ist es m glicherweise erforderlich einen Report vollst ndig per Hand anzulegen oder einen mit CodeReporter erstellten Report zu bearbeiten Unter Verwendung des Reportsmoduls kann die Anwendung einen CodeRepor ter Report laden Abfrage und oder Sortierausdr cke ver ndern das Ausgabe ger t bestimmen und den Report schlie lich ausf hren Zur Durchf hrung dieser bestimmten Aufgaben werden unmittelbar die Reportfunktionen eingesetzt Hinweis Das Reportmodul enth lt keine Funktion um eine Berechnung zu erstellen denn expr4calc_create ist Bestandteil des Ausdrucksauswer tungsmoduls von CodeBase 5 Einzelheiten hierzu finden Sie im CodeBase Referenzhandbuch sowie unter obj4calcCreate Bezeichnungen des Reportmoduls Die Funktionen des Reportmoduls gliedern sich in Gruppen mit hnlicher Funk tionsweise z B Funktionen die sich auf den gesamten Report auswirken Funk tionen die Gruppen erzeugen und verarbeiten usw In gewissem Sinne besteht das Reportmodul aus einer Vielzahl von Einzelmodulen 179 CodeReporter 2 0 API Jede Gruppe kann einen oder
138. deReporter stellt Ihnen zur Ausgabe von Reportdateien das Windows Pro gramm LAUNCH_W EXE zur Verf gung Dabei handelt es sich um ein aus f hrbares Programm mit dem Sie direkt aus Windows Reports einsehen oder drucken k nnen ohne vorher CodeReporter aufzurufen LAUNCH_W verf gt sowohl ber eine interaktive Schnittstelle als auch ber Befehlszeilenparameter die in Symbolen verwendet werden k nnen Launch Options Load Report Display Current Report DACODEBASE CODEREFAEXAMPLESITUTI REP Query Expression E Print Sort Expression COMPANY gt COMPNAME E Printer Setup Destination Data File Selected Printer HP LaserJet IIP on LPT1 Ip Data pie Um die Indexdatei Kompatibilit t bestimmen zu k nnen ben tigt LAUNCH_W EXE die CodeReporter DLL CR2CODE DLL Einzelheiten dazu entnehmen Sie bitte dem Kapitel Starten mit CodeReporter 328 Anhang G Launch Programme Als weiteres Beispiel f r den Einsatz von CodeReporter Reportdateien sowie f r die Reportfunktionen unter Windows ist im Lieferumfang ebenfalls der Quell code von LAUNCH_W C enthalten Wird LAUNCH_W ohne Befehlszeilenparameter ausgef hrt wird die Dialogbox Launch Options aufgerufen bei dem lediglich die Schaltfl chen Load Report und Exit angeklickt werden k nnen Klicken Sie auf Load Report erscheint die Dialogbox Specify Report aus der Sie eine Reportdatei ausw hlen k nnen Klicken Sie auf
139. den Ecken Abb 5 10 enth lt die verschiedenen M glichkeiten bei Linien und Rahmen Linien Die Erstellung einer waagerechten Linie erfolgt ber einen Klick auf die Schalt fl che H Linie oder die Men option OBJEKT WAAGERECHTE LINIE und einen weiteren Klick auf die Stelle an der die Linie erscheinen soll In gleicher Weise wird eine senkrechte Linie ber die Schaltfl che V Linie oder die Men option OBJEKT SENKRECHTE LINIE erstellt CodeReporter 2 0 UNTITLED Gruppe Gruppe 1 Kopf Bereich 1 von 1 Runder Rahmen ohne F llung Senkrechte Linie Eckiger Kahmen mit F llung Waageres hte Linie MS Serif Obj 0 703 0 576 0 020 x 1 906 cm Abb 5 10 Linien und Rahmen Bei den Linien sind L nge und St rke voreingestellt diese Werte lassen sich nach der Auswahl der Option OBJEKTDEFINITION im Objektmen in der Dialogbox 117 CodeReporter 2 0 Objektdefinition ver ndern In diesem Dialog kann die Linienst rke vergr ert und die Linienfarbe neu eingestellt werden siehe unten Die Linienst rke wird im Editierfeld St rke angegeben Als Einheit werden dabei Pixel verwendet der kleinste f r einen Monitor verf gbare Wert Die L nge einer Linie l t sich ber ihre Gr enhenkel oder die Eingabe eines neuen Wertes in das Editierfeld L nge ver ndern Rahmen Bei Rahmen handelt es sich um besondere Linienobjekte mit denen sich be
140. des Reports wird zur ckgegeben 0 Fehler report ist ung ltig report4toScreen Aufruf int report4toScreen REPORT4 report int toScreen Beschreibung Mit dieser Funktion wird report4do angewiesen ein Fenster zu erzeugen und die Reportausgabe darin vorzunehmen oder statt dessen den Report auf den ausgew hlten Drucker zu schicken Per Voreinstellung erfolgt die Reportausgabe mit report4do in einem Fenster Parameter report Ein Zeiger auf den Report der auf dem Bildschirm ausgegeben werden soll 280 Funktions bersicht toScreen Mit diesem Parameter wird bei Windows Anwen dungen das Ausgabeziel des Reports festgelegt toScreen kann einen der folgenden Werte anneh men 1 Es wird ein Fenster ge ffnet und der Report wird von der Fensterprozedur gesteuert 0 Die Reportausgabe erfolgt auf dem ausgew hl ten Drucker R ckgaben gt 0 Die vorhergehende Einstellung von foScreen wird zur ckgegeben lt 0 Fehler report oder toScreen ist ung ltig Siehe auch report4output report4do 281 CodeReporter 2 0 API style4 Funktionen Die style4 Funktionen sind dazu da eine Reihe von Schriftattributen unter einem gemeinsamen Namen zusammenzufassen mit obj4style lassen sich diese Attri bute dann mit Ausgabeobjekten verbinden style4color Aufruf int style4color STYLE4 style RACOLORREEF color Beschreibung Mit dieser Funktion wird die Windows RGB Farbe f r den angegebenen Style ver ndert Parameter st
141. des ersten Reports der ausgegeben oder geladen werden soll d name Sollen weitere Reports ausgegeben werden k nnen Sie diese unter der Option d angeben Sie dient gleichsam als Trennzeichen zwischen den Reports q expr Voreingestellten Abfrageausdruck ndern Die Abfrageausdr cke m s sen in doppelte Anf hrungszeichen eingeschlossen werden zum Beispiel LAUNCH_W SAMPLE REP q DBF gt FELDNAME gt LINCOLN Zeichenliterale wie z B Lincoln oben m ssen in einfache Anf h rungszeichen eingeschlossen werden s expr Voreingestellten Sortierausdruck ndern Sortierausdr cke m ssen in doppelte Anf hrungszeichen eingeschlossen werden zum Beispiel 330 Anhang G Launch Programme LAUNCH_W SAMPLE REP s DBF gt FELDNAME Auch hierbei m ssen Zeichenliterale in einfache Anf hrungszeichen eingeschlossen werden v p Die Option v zeigt den angegebenen Report automatisch auf dem Bildschirm an Mit der Option p wird der Report automatisch auf dem Standard Drucker von Windows ausgegeben Geben Sie diese Parameter ein wird LAUNCH_W als Symbol aufgerufen Wenn Sie keine der beiden Optionen verwenden wird der angegebene Report geladen und die Dialogbox Launch Options aufgerufen es wird lediglich der erste Report geladen p und v d rfen nicht gleichzeitig aufgerufen werden Ihr Aufruf gilt f r alle Reports die geladen werden Non Windows CodeReporter stellt Ihnen vier indexspezifis
142. die je nach Kontext an verschiedenen Stellen innerhalb des Reports ausgegeben werden Dar ber hinaus l t sich ein Bereich so gestalten da er sich auf der folgenden Seite fortsetzt CodeReporter 2 0 UNTITLED Datei Ausrichten Bearbeiten Ansicht Report Relation Gruppe Bereich Objekt Style E EE Gruppe Gruppe 1 Kopf Bereich 1 von 1 _ gt Gr enhenkel ausgew hlter Bereich Gruppe Gruppe 1 Fu Bereich WEO E MS Set 10 Gruppe1 Bereich 1 H he 0 333 Zoll Abb 4 1 Bereiche und Gr enhenkel 86 Bereiche Einen Bereich ausw hlen Ein Bereich wird ausgew hlt indem Sie die linke Maustaste auf eine beliebige Stelle oder auf ein Objekt innerhalb des Bereichs klicken Alternativ dazu k nnen Sie mit den Tasten Strg_d und Strg_9 einen neuen Bereich ausw hlen Bedienen Sie sich dieser M glichkeit w hlen Sie damit gleichzeitig das erste Ausgabeobjekt an das zu dem Bereich hinzugef gt wurde Nachdem Sie einen Bereich ausgew hlt haben k nnen Sie ihn bearbeiten l schen oder einen zus tzlichen Bereich f r die aktuelle Gruppe definieren Einen Bereich anlegen ber die Men option BEREICH NEUER KOPFBEREICH bzw BEREICH NEUER FUSSBEREICH k nnen Sie f r die ausgew hlte Gruppe einen Kopf oder Fu bereich erstellen Um einen Seitenkopf Seitenfu Titel oder Schlu bereich anzulegen w hlen Sie die entsprechende Option im Men BEREICH aus Einzel heiten zu diesen Bereiche
143. die Non Windows Definition des Styles Kursiv abzuschlie en 157 CodeReporter 2 0 9 CodeReporter Optionen Das vorliegende Kapitel befa t sich mit einigen der bei CodeReporter ober fl chlich definierbaren Einstellungen Diese wirken sich in keiner Weise auf Reports oder Reportdateien aus sondern ver ndern lediglich die Funktionsweise und das Erscheinungsbild von CodeReporter Ansichtsoptionen Beim ersten Aufruf von CodeReporter haben die meisten Optionen noch ihre voreingestellten Werte Die Ansichtsoptionen fallen dabei am ehesten ins Auge CodeReporter 2 0 UNTITLED Datei Ausrichten Bearbeiten Ansicht Report Relation Text H Linie J Y4 Gruppe Gruppe 1 Fu gt Info Fenster Style Schaltfl che Bu MS Serif Gruppe 1 Bereich 1 H he 0 816 cm Abb 9 1 Elemente im Report Entwicklungsbildschirm Die Anzeige bzw unterdr ckte Anzeige der verschiedenen Elemente Tastenlei ste Lineal Statusanzeige und Info Fenster im Report Entwicklungsbildschirm wird ber das Men ANSICHT gesteuert Das H kchen Voreinstellung neben den einzelnen Men optionen bedeutet da das entsprechende Element im Report Entwicklungsbildschirm angezeigt wird 158 CodeReporter Optionen Dabei k nnen einige Elemente die Bildschirmfl che verkleinern auf der der Report entwickelt wird W hlen Sie eine Option mit H kchen aus wird das Bildschirmelement entfernt und das H kchen verschwinde
144. dizes werden f r STORES DBF die Subindizes COMPID festgelegt auf STORES gt CoMPID und COMP_STORE festgelegt auf STORES gt COMPID STORES gt STOREID angezeigt Da die Masterdatei COMPANY zwar das Feld COMPID aber nicht das Feld STOREID enth lt sollten Sie den Subindex COMPID von STORES DBF aus w hlen Bet tigen Sie die Tab Taste auf der Tastatur bis die Markierung die Listbox Vorh Subindizes erreicht hat und w hlen Sie daraus COMPID aus oder klik ken Sie den Subindex mit der linken Maustaste an Im Editierfeld Slave Sub index werden automatisch Informationen ber COMPID angezeigt In das Editierfeld Masterausdruck geben Sie einen dem ausgew hlten Subindex entsprechenden Masterausdruck ein Im vorliegenden Fall besteht der Masterausdruck einfach aus einem Feldnamen der Masterdatei Machen Sie fol gende Eingabe aber bet tigen Sie die Eingabetaste noch nicht COMPANY gt COMPID Hinweis Benutzer von dBASE III und Clipper m ssen die Indexdateien mit der entsprechenden Indexsortierung per Hand ffnen Das erfolgt ber die 68 Relationale Reports Schaltfl che Index ffnen in der Dialogbox Datendatei Verkn p fungen Die bei diesem Beispiel verwendeten Dateien befinden sich im CodeReporter Beispieleverzeichnis EXAMPLES und hei en STCOMPID NTX NDX f r STORES DBF SACMPSTO NTX NDX f r SALES DBF EXCMPSTO NTX NDX f r EXPENSES DBF Der zwischen COMPANY und ST
145. dizes identifizieren Damit CodeReporter Datendateien miteinander verkn pfen kann m ssen Indizes vorhanden sein Mit Hilfe von Indizes lassen die Datens tze sich rasch lokali sieren Werden zwei Datendateien miteinander verkn pft verwendet die erste einen Index um die entsprechenden Daten in der zweiten Datei zu finden Indizes werden im allgemeinen zusammen mit der Datendatei erzeugt Notieren Sie in der bersicht ber die Relationen die Indizes der einzelnen Datendateien Hat die Datendatei einen zusammengesetzten Index der mehr als ein Feld enth lt schreiben Sie den Namen des Indexes unten auf die Feldliste und kennzeichnen diesen als Index Wenn die Relation auf ein Indexfeld zeigt machen Sie aus der vorhandenen Linie einen Pfeil Zeigt eine Linie in dem Relationsschema auf ein Feld f r das kein Index erstellt worden ist mu die Relationslinie m glicherweise entfernt bzw mit einem ande ren Datenwerkzeug ein Index f r das Feld erstellt werden Damit eine Datendatei in die Relation aufgenommen wird braucht lediglich eine einzige Verkn pfung vorhanden zu sein Die Top Master Datendatei bestimmen Nach Fertigstellung der bersicht sollten Sie den f r die Relation besten Ablauf bestimmen Ordnen Sie die Datendateien in einem Baumdiagramm an wobei eine Datei an der Spitze steht die brigen Dateien nehmen ihre von den Verbin dungslinien vorgegebenen Positionen ein Bei vielen Relationen kann man die Datendateien auf
146. e Zahlenformat Das Ausgabeobjekt soll im Format W hrung erscheinen Den Report einsehen ber die Men option DATEI DRUCKBILD EINSEHEN haben Sie die M glichkeit sich die Seiten des Reports auf dem Bildschirm anzeigen zu lassen Die ersten drei sollten in etwa so aussehen wie in Abb 13 angegeben Einen Sortierausdruck angeben Wie aus den ersten drei Seiten des Reports Abb 13 hervorgeht teilt der Kon toauszug von Customer O Mine den von John Q Public in zwei Teile Das ist der Fall weil CodeReporter die Datens tze in ihrer nat rlichen Reihenfolge das hei t wie sie physisch vorhanden sind aus der zusammengesetzten Datendatei abruft Der letzte Schritt beim Anlegen dieses Reports besteht darin die Datens tze der zusammengesetzten Datendatei nach der Kundennummer zu ordnen die im Feld CUSTID zu finden ist 32 bungen N chste Schlie en IE KONTOAUSZUG m Jom Q Public 1234 Any Street AnyTown NY IB Haben Soll 01 Jan 1993 100 20 03 Jan 1993 104 00 05 Jan 1993 220 00 08 Jan 1993 165 00 08 Jan 1993 589 20 20 Jan 1993 15 00 25 Jan 1993 20 00 30 Jan 1993 19 50 07 Feb 1993 100 00 15 Feb 1993 6 20 Summe Soll Haben 9589 20 749 90 Sie schulden uns 160 70 A m d Abb 13 Seite 1 KONTO m N chste Schlie en E KONTOAUSZUG mi Customer O Mine 54321 MultiWealih Way Amberville CA 30122 Haben Soll 22 Feb 1993 160 00 Summe Soll Haben H 8160 00 Si
147. e ports deaktiviert 0 Erfolg lt 0 Fehler REPORT4 ist ung ltig Bei Windows Anwendungen mu diese Funktion vor report4do aufgerufen werden Geschieht das nicht kann das zu unvorher sehbaren Ergebnissen f hren Anhang F CodeBasic API report4printerSelect Aufruf Call report4printerSelect REPORT4 amp Beschreibung Dieser Befehl ruft die Dialogbox Druckereinrichtung auf um einen Drucker f r den Report auszuw hlen Damit die Funktion einwandfrei arbeitet mu die dynamische Link Bibliothek COMMDLG DLL von Microsoft Windows 3 1 vorhanden sein Die Datei wird gew hnlich vom Windows Setup im Unterverzeichnis WINDOWS SYSTEM installiert L uft Ihre Anwendung unter Windows 3 0 oder fehlt die Datei in dem Verzeichnis k nnen Sie diese Funktion nicht ausf hren Parameter REPORT4 Ein REPORT4 Zeiger auf den Report der f r den ausgew hlten Drucker konfiguriert ist report4querySet Aufruf rc report4querySet REPORT4 amp queryExpr Beschreibung Diese Funktion stellt eine Abfrage f r das Relationsset ein Dabei wird der Ausdruck queryExpr f r jeden zusammengesetz ten Datensatz ausgewertet Ist der Ausdruck wahr geht der Datensatz in den Report ein Ist das Ergebnis von queryExpr falsch wird der Datensatz ignoriert Parameter REPORT4 Ein REPORT4 Zeiger auf den Report f r den die Abfrage eingerichtet wird queryExpr Ein logischer dBASE Ausdruck der Datens tze der zusammengesetzten Datendatei f
148. e amp 4th 9199 Sanders Jim Hamline amp A Mator A owe Abb 2 1 Eine einfache Relation Wie k nnte ein Report der die Verk ufe auflistet auch die K ufer auff hren wenn zwischen SALES DBF und CUSTOMER DBF keine Relation bzw Ver kn pfung hergestellt worden ist 48 Relationale Reports Ist eine Relation vorhanden kann man die Felder aller Datendateien als Bestand teile einer einzigen Datei einer sogenannten zusammengesetzten Datendatei betrachten Diese Datei ist in Wirklichkeit nicht auf der Platte vorhanden CodeReporter richtet physisch keine Datei ein die alle Daten aus allen ver kn pften Datendateien enth lt sondern ist das Ergebnis der komplizierten Methode wie CodeReporter die Daten in den einzelnen Datendateien verwaltet Nachdem die Relation hergestellt worden ist umfa t die zusammengesetzte Da tendatei die Felder aller in der Relation vorhandenen Datendateien Die in den Feldern der zusammengesetzten Datendatei enthaltenen Daten aktualisiert Code Reporter w hrend der Reportausgabe E SALES DBF CUSTOMER DBF 100 00 1234 Smith Jane 123 West 3rd 140 44 4321 Rawji Fatim 204 East 44th 304 10 6543 Jones Jon 1 Microsquish 65 00 9124 West Davie 4420 14th St 102 99 6612 Sanders Mel Hamline amp 4th EE Sanders Jim Hamline amp 4t
149. e Bereiche Da einige Optionen nur f r bestimmte Typen von Ausgabeobjekten gelten tauchen diese Abschnitte bei anderen Ausgabeobjekten nicht auf Oben links enth lt die Dialogbox Objektdefinition eine Beschreibung des zu ver ndernden Objekts Darin werden Objekttyp und Name Ausdruck oder vom Objekt verwendeter Text angegeben Der Bereich Position zeigt die aktuelle waagerechte X und senkrechte GN Position der linken oberen Ecke des Objekts an Diese Koordinaten haben die in der Dialogbox Reportvorgaben eingestellte Ma einheit Ver ndern Sie 102 Ausgabeobjekte den X bzw Y Wert des Objekts verlagert es sich auch im Entwicklungsbild schirm Einzelheiten zum Verschieben eines Objekts mit der Maus finden Sie weiter oben Hinweis Ein Objekt l t sich nicht vollst ndig au erhalb seines Bereiches positionieren Objektdefinition Gr e als Font Feldobjekt JN te 1 882 INVOICES gt Xx Breite 1 882 cm DEBIT 10 H he cm Style Ausrichtung links zentriert Yorschau Normal al D rechts Zahlenformat Nachkommastellen 0 Zahl Prozent CO Klammern F hrende Null O W hrung Exponent Null anzeigen Abb 5 5 Dialogbox Objektdefinition Im Bereich Gr e lassen sich die aktuelle Breite und H he des ausgew hlten Objekts ablesen Diese Werte liegen in der in der Dialogbox Reportvorgaben
150. e Summe gel scht auf der es basiert Gleichzeitig werden alle anderen Summen Berechnungen Aus dr cke und Objekte gel scht in denen die Summe enthalten ist Diese Tatsache kann weitere L schungen nach sich ziehen und aufgrund ihrer kaskadenartigen Wirkung den Report zerst ren Gehen Sie deshalb bei der L schung von Sum menobjekten mit u erster Vorsicht vor Vorschausummen Vorschausummen werden zur Ausgabe von zusammengefa ten Untermengen verwendet bevor die Einzelzeilen tats chlich ausgegeben werden Dieses wich tige Konzept in Verbindung mit einem Anwendungsbeispiel haben wir im Ab schnitt Vorschau weiter oben bereits behandelt Monat Tag Verk Summe Ges Zwischensummen sunimenr cksetzausdruck auf Monat 148 00 Kein Summenr cksetzausdruck Abb 5 15 Beispielreport f r eine Summe Bedingte Summen Man kann Summen mit einem dBASE Ausdruck verbinden der bestimmt unter welchen Bedingungen die Summe ermittelt wird Durch die Formulierung einer Summierungsbedingung kann das Summenausgabeobjekt seinen Wert aufgrund bestimmter zusammengesetzter Datens tze in der zusammengesetzten Datendatei 132 Ausgabeobjekte aktualisieren w hrend es andere ignoriert So soll m glicherweise die Summe lediglich gebildet werden wenn ein Feld einen bestimmten Wert enth lt oder ein Masterdatensatz mit mehreren gefilterten Datens tzen verbunden ist Durch den Einsatz einer bedingten Summe ist das m
151. e Textobjekte zu positionieren Das vierte Ausgabeobjekt ein Ausdruck dient der Ausgabe der Reportseitenzahl Klicken Sie auf die Schaltfl che Ausdruck auf der Tastenleiste CodeReporter stellt sich auf den Einf gemodus f r Ausdrucksausgabeobjekte ein stellen Sie den Mauszeiger rechts oben in den Seitenkopf Bereich und dr cken Sie die linke Maustaste Dadurch wird die Dialogbox Ausdruck eingeben aktiviert in die der Ausdruck f r das Ausdrucksausgabeobjekt eingegeben werden kann Bitte geben Sie den folgenden Ausdruck einschlie lich der Anf hrungszeichen ein Seite STR PAGENO 3 0 Dieser Ausdruck der sich aus einer Zeichenkette seite und der Seitenzahl PAGENO zusammensetzt k nnte auch aus zwei Objekten gebildet werden einem Textobjekt f r seite und einem separaten Ausdrucksausgabeobjekt f r PAGENO Da beide Objekte jedoch logisch zusammengeh ren und immer gemeinsam versetzt werden ist es nur sinnvoll sie in einem Ausdruck unterzu bringen Klicken Sie nun auf OK um die Positionierung des Ausgabeobjekts abzu schlie en Der Schlu bereich des Kontoauszugs Der vorliegende Kontoauszug f hrt die Summe der Soll und Habenwerte f r das Konto jedes einzelnen Kunden auf Um den Kunden den berblick zu erleichtern enth lt der Auszug eine Zeile aus der hervorgeht ob sie der Firma Geld schulden bzw zuviel bezahlt haben 28 bungen Da ein Kunde sich nicht glei
152. e angelegt Wurde bislang noch kein Style aus gew hlt benutzt das Reportmodul den voreingestellten Style Normal Diese Funktion verbindet das Ausgabeobjekt mit dem angegebe nen Style obj Ein Zeiger auf das Ausgabeobjekt f r das der Style eingerichtet wird style Ein Zeiger auf den f r das Ausgabeobjekt ver wendeten Style 0 Erfolg lt 0 Fehler style4create style4lookup style4next obj4textCreate Aufruf OBJ4 obj4textCreate AREA4 area char text long x long y long width long height 239 CodeReporter 2 0 API Beschreibung Diese Funktion erzeugt ein statisches Textobjekt Parameter R ckgaben Siehe auch obj4textFree Aufruf area text width height Nicht Null Dieser AREA4 Zeiger bezeichnet den Reportbe reich in den das neue Textausgabeobjekt gesetzt werden soll Ein null terminiertes Zeichenarray das den auszu gebenden Text enth lt obj4textCreate legt eine Kopie von text an Die waagerechte Koordinate in tausendstel Zoll an der die linke Seite des Textobjekts steht Die senkrechte Koordinate in tausendstel Zoll vom oberen Rand des Reportbereichs an der die Oberkante des Textobjekts steht Die horizontale Ausdehnung des Textausgabe objekts in tausendstel Zoll Die vertikale Ausdehnung des Textausgabeobjekts in tausendstel Zoll Bei Erfolg wird ein Zeiger auf das neue Textaus gabeobjekt zur ckgegeben Fehler Das Textausgabeobjekt konnte nicht an
153. e ansprechenden Weise innerhalb des Report Entwicklungsbildschirms waagerecht zentriert werden Das k nnen Sie bewerkstelligen indem Sie das Textausgabeobjekt manuell mit der Maus in die Bereichsmitte ziehen oder die Men option AUSRICHTEN ZENTRIERT ausf hren Dieser Text erhellt worum es in dem Report geht macht aber die Bedeutung der einzelnen Reportspalten nicht klar Indem Sie die obigen Schritte wiederholen k nnten Sie jedes Feldausgabeobjekt mit einem statischen Textobjekt versehen und so die einzelnen Felder kennzeichnen Aber dieses Vorgehen w rde die End ausgabe mit unn tigen Wiederholungen nur belasten Was dem Report fehlt sind Spalten berschriften statische Textobjekte mit den Feldnamen die ber die einzelnen Spalten gesetzt werden Am Anfang einer neuen Seite sollen diese berschriften im Druck ebenfalls wiederholt werden Einen Reportbereich der oben auf jeder Seite ausgegeben wird bezeichnen wir als Seitenkopf Bereich Jede Seite mit Ausnahme der ersten falls ein Titel bereich angegeben wurde beginnt unabh ngig vom Inhalt der zusammengesetz ten Datendatei mit einem Seitenkopf Bereich Ein Seitenkopf Reportbereich l t sich ber die Men option BEREICH NEUER SEITENKOPF BEREICH erzeugen Dabei wird ein Bereich mit der voreingestellten H he von 0 84 cm 0 33 angelegt Plazieren Sie die folgenden Textausgabe objekte in diesem Bereich ID COMPNAME CEO und richten Sie sie manuell ber ihre
154. e des Siehe auch 276 Reports wird zur ckgegeben 0 Der Report enth lt keine weiteren Styles report4styleFirst report4stylePrev Funktions bersicht report4styleSelect Aufruf int report4styleSelect REPORT4 report STYLE4 style Beschreibung Diese Funktion macht den angegebenen Style zum aktuellen Style Alle neuen Ausgabeobjekte werden mit diesem Style auf gebaut Parameter report Ein Zeiger auf den Report in dem der Style aus gew hlt wird style Ein STYLE4 Zeiger auf einen bereits vorhande nen Style der als aktueller Style eingerichtet wird R ckgaben 0 Der Style wurde erfolgreich eingestellt lt 0 Fehler report oder style sind ung ltig report4styleSelected Aufruf STYLE4 report4styleSelected REPORT4 report Beschreibung Diese Funktion gibt einen Zeiger auf den aktuellen Style des Reports zur ck Parameter report Ein Zeiger auf den Report in dem der Style aus gew hlt wird R ckgaben report4styleSelected gibt einen STYLE4 Zeiger auf den vor handenen und ausgew hlten Style zur ck Per Voreinstellung wird immer der zuletzt angelegte Style ausgew hlt es sei denn Sie verwenden report4styleSelect Haben Sie noch keine Style definiert gibt die Funktion einen Zeiger auf den voreingestellten Style des Reportmoduls Normal zur ck 277 CodeReporter 2 0 API report4styleSheetLoad Aufruf int report4styleSheetLoad REPORTA4 report char fileName int overRide Beschreibung Diese Fun
155. e ereignet oder CreateWindow ist fehlgeschlagen Fehler bei der Reportausgabe Die Auswertung eines Ausgabeobjekts hat einen Fehler verursacht Die Ursache daf r ist im allgemeinen zu wenig Speicher Fehler beim Speichern des Reports Beim Abspeichern einer Reportdatei hat sich ein Fehler ereignet Die Ursache daf r k nnen eine bereits vorhandene Datei fehlender Plat tenplatz oder Schwierigkeiten beim Anlegen der Datei sein Fehler beim Einlesen des Reports Die Reportdatei konnte nicht von der Platte eingelesen werden Das kann daran liegen da die Top Master Datendatei nicht auffindbar oder die Reportdatei zerst rt worden ist Anhang E Fehlercodes e4rep_data 823 Fehler beim Anlegen der Ausgabedatendatei Der Report konnte nicht in die Ausgabedaten datei bertragen werden Ursache daf r k nnen ein Fehler beim Anlegen der Datei oder ein Fehler beim Ablegen der Daten sein 307 CodeReporter 2 0 Anhang F CodeBasic API Der vorliegende Abschnitt erl utert die unter CodeBasic verf gbaren Funktionen mit denen Reports ausgef hrt und modifiziert werden k nnen Mit diesen Funk tionen k nnen Sie u a Reports von der Platte einlesen sie sofort anzeigen lassen und bearbeiten und die nderungen auf die Platte zur ckschreiben Bis auf drei Funktionen handelt es sich um report4 Funktionen Die drei relate4 Funktionen lassen sich in Verbindung mit der Men option DATEI RELATION SPEICHERN einsetzen um komple
156. e schulden uns 160 00 E EB Cp Abb 13 Seite 2 33 CodeReporter 2 0 KONTO Mi N chste Schlie en KONTOAUSZUG m John Q Public 1234 Any Street AnyTown NY 12345 Haben Soll 28 Feb 1993 215 00 15 M r 1993 19 00 17 M r 1993 45 00 18 M r 1993 32 00 Summe Sol Haben 00 5371 00 Sie schulden uns 9371 00 Cu Abb 13 Seite 3 Rufen Sie ber die Men option REPORT SORTIERAUSDRUCK die Dialogbox Ausdruck eingeben zur Eingabe des Sortierausdrucks auf Geben Sie folgenden Ausdruck ein und klicken Sie auf OK INVOICES gt CUSTID Wenn Sie sich den Report das n chste Mal anzeigen lassen wird der neue Sor tierausdruck ber cksichtigt und alle Soll und Habenwerte von John Q Public werden vor denen von Customer O Mine angezeigt 34 Einen Report entwerfen 1 Einen Report entwerfen Die Erstellung eines Reports erfolgt in drei Schritten Zun chst mu man sich dar ber im klaren sein was der Report enthalten und wie er aussehen soll Die Schritte zwei und drei bestehen darin ihn zu entwickeln und probehalber auszu geben Stimmt das Endprodukt nach dem dritten Schritt mit der Ausgangsidee berein ist die Entwicklung abgeschlossen In den meisten F llen allerdings wird der Durchf hrungsschritt mehrere Male wiederholt bis der Report in seiner endg ltigen Form vorliegt Noch fter aber kommt es vor da sich die Vorstellung ber Inhalt und Aufbau im Laufe de
157. e verarbeitet worden sind erfolgt die Verarbeitung der Kopfbereiche nach innen Begonnen wird dabei mit der Gruppe die zu r ckgesetzt wurde und mit dem Wert des Datensatzes der die R cksetzbedin gung verursacht hat Hinweis Gruppen die sich au erhalb der Gruppe mit der R cksetzbedingung 84 befinden werden nicht verarbeitet Beim vorliegenden Beispiel wird die Gruppe Jahr erst zur ckgesetzt nachdem ihr eigener Gruppen ausdruck sich ge ndert hat Abb 3 6 Gruppenr cksetzbedingungen Beispiel Datendatei 20 Jan 1992 20 Jan 1992 20 Feb 1992 21 Feb 1992 Jahr 1992 Monat Januar Tag 20 Tag zur ckgesetzt Tag ist gleich 2 Monat zur ckgesetzt Monat ist gleich 2 Monat Februar Tag 20 Tag zur ckgesetzt Tag ist gleich 1 Tag 21 Tag zur ckgesetzt Tag ist gleich 1 Monat zur ckgesetzt Monat ist gleich 2 Jahr zur ckgesetzt Jahr ist gleich 4 Gruppen 20 Jan 1992 Anfang des Reports Alle Summen werden auf Null zur ckgesetzt und dann auf summiert Alle Kopfbereiche werden ausgegeben 20 01 92 20 01 92 20 02 92 21 02 92 21 02 92 21 02 92 20 Jan 1992 Zweiter Datensatz Keine R cksetzbedingung alle Summen werden aufsum miert 20 Feb 1992 Monat R cksetzbedin gung eingetreten Tag wird automatisch zur ckgesetzt Ausgabefu f r innere Gruppe Ausgabefu f r Monat Summ
158. eReporter Entwicklungsbildschirm an In der Reportdatei wird lediglich der Name der Bitmap Datei abgelegt aber nicht die Bitmap selbst Auf diese Weise kann ein Reportentwickler ein Grafikobjekt einfach durch die Ver nderung des Dateinamens der Bitmap Datei gegen ein anderes austauschen Typ des Grafikobjekts angeben Dynamische Grafik Verweis in der Datendatei Abb 5 11 Dialogbox Typ des Grafikobjekts angeben Aktivieren Sie das Kontrollk stchen Dynamische Grafik wird die einzeilige Listbox angezeigt die alle Feldnamen der aktuellen Datendatei enth lt Nach der Auswahl eines Feldnamens k nnen Sie das Grafikobjekt positionieren Da das Referenzfeld erst bei der Ausgabe des Reports einen Wert erh lt der sich danach st ndig ndern kann zeigt CodeReporter das dynamische Grafikobjekt auf dem Entwicklungsbildschirm an wie ein normales Feld Achtung Die Gr e eines dynamischen Grafikausgabeobjekts mu unbedingt richtig angegeben werden da CodeReporter die Bitmap so streckt bzw staucht da sie den angegebenen Raum vollst ndig ausf llt Sorgen Sie dar ber hinaus daf r da alle Bitmaps auf die das Feld verweist dieselbe Gr e haben Vers umen Sie das besteht die M glichkeit da einige Grafikobjekte korrekt w hrend andere verzerrt dargestellt werden 121 CodeReporter 2 0 Grafikobjekte skalieren CodeReporter bringt Grafikobjekte automatisch auf die Gr e des Ausgabeob jekts Da
159. eeeennrnnn 193 Anhang A dBASE Funktionen 2 2 222n2eeeeeeeeeeenen nenn 292 viii Anhang B Tastenkombinationen 297 Anhang C Cursorformen 301 Anhang D ASCH Tabelle nicht vollst ndig 303 Anhang E Fehlercodes 305 Anhang F Codebastc AP 308 Anhang G Launch Programme 222020 eeeeeenenenenenen 328 Index 2 22 ea an ee rrslene 335 Lizenzvereinbarung ix Einleitung Einleitung CodeReporter ist ein umfassendes Programm zur Erstellung relationaler Reports das das Entwickeln von auf Ihre Bed rfnisse zugeschnittenen Reports erleichtert Mit CodeReporter entwerfen Sie ber einfache Auswahlbefehle ausgefeilte Reports direkt am Bildschirm Die Daten f r den Report k nnen aus jeder belie bigen Datendatei auf Ihrem PC bzw einer Netzwerkstation stammen Die im Report verwendeten Datendateien werden ber einfache dBASE Ausdr cke ver kn pft Auch wenn Sie lediglich einen Teil der Datendatei z B bei der Durch f hrung einer Abfrage verwenden nimmt sich CodeReporter der Schwierigkei ten an Die Geschwindigkeit der bitoptimierten Abfragetechnik von Sequiter Software kommt berall in CodeReporter deutlich zum Tragen Sortier und Abfragevor g nge sowie das Herstellen von Relationen erfolgen un bertroffen schnell Code Reporter ist in der Lage eine Datendatei mit 500000 Datens tzen abzufragen und nur eine Sekunde sp ter mit der Ausgabe zu beginnen Die mit CodeReporter unter Windows 3 1 entworfene
160. ei zu schreiben Wird diese Funktion nicht aufgerufen erfolgt die Reportausgabe ber report4do auf dem standard out Bildschirm Diese Funktion wird auch eingesetzt wenn ein Report in eine Datei ausgegeben wird Parameter REPORT4 Der Report f r den ein Ausgabeziel eingerichtet wird outputHandle Ein Standard System Handle wie es von der BASIC Funktion FILEATTR zur ckgegeben wird Andere vordefinierte Handles sind 1 standard out per Voreinstellung ist das der Bildschirm 4 standard print Bei PCs handelt es sich dabei gew hnlich um den Drucker am Anschlu LPTI useStyles Mit diesem Parameter wird festgelegt ob die von report4do ausgegebenen Daten die Druckersteu ersequenzen die in den Seiten Layouts definiert sind enthalten sollen oder nicht useStyles mu einen der folgenden Werte annehmen 318 R ckgaben Siehe auch Anhang F CodeBasic API 1 Die Ein und Ausleitungssequenzen des Druk kers werden in das angegebene Handle ausge geben 0 Die Druckersteuersequenzen werden ignoriert und es wird lediglich der Text f r die Ausga beobjekte ausgegeben 0 Einstellungen erfolgreich vorgenommen lt 0 Fehler REPORT4 ist ung ltig report4do report4pageSize Aufruf rc report4pageSize REPORT4 amp height amp width amp unitType Beschreibung Mit dieser Funktion werden Breite und H he der Reportseite Parameter eingestellt Bei einer Windows Anwendung wird das akt
161. eibung Parameter Siehe auch 198 CodeReporter 2 0 API Gruppenr cksetzbedingung wird suppressExpr ausgewertet Ist der Wert wahr wird der Report bereich f r die Gruppenr cksetzbedingung nicht ausgegeben ist der Wert falsch erfolgt die Aus gabe Wenn suppressExpr Null ist oder auf ein Array mit Leerzeichen zeigt wird der neue Bereich niemals unterdr ckt areadcreate legt eine Kopie des Parameters suppressExpr an Infolgedessen kann man den Speicher f r suppressExpr nach dem Funktionsaufruf freigeben Falls erfolgreich gibt area4create einen AREA4 Zeiger zur ck Konnte der Bereich nicht erstellt werden gibt areadcreate einen Null Wert zur ck area4free group4create group4titleSummary void area4free AREA4 area Diese Funktion entfernt einen angegebenen Bereich aus dem Re port Dar ber hinaus wird der mit dem Reportbereich verbundene Speicher freigegeben alle Ausgabeobjekte in dem Reportbereich werden gel scht und freigegeben area Dieser AREA4 Zeiger bestimmt den zu l schen den Reportbereich area4create group4free Funktions bersicht area4dnumObjects Aufruf int areadnumObjects AREA4 area Beschreibung Diese Funktion gibt die aktuelle Anzahl der im angegebenen Bereich vorhandenen Ausgabeobjekte zur ck Parameter area Dieser AREA4 Zeiger identifiziert den Bereich R ckgaben 0 Der angegebene Bereich enth lt keine Ausgabeob jekte Siehe auch Nicht Null Die Anzahl der im angegebenen
162. eibung Diese Funktion gibt einen Zeiger auf den ersten f r den Report definierten Style zur ck In Verbindung mit report4styleNext dient die Funktion dazu die Styles eines Reports zu durchlaufen Parameter report Ein Zeiger auf den Report der die Styles enth lt R ckgaben Ein Zeiger auf den ersten f r den Report definierten Style wird Siehe auch zur ckgegeben report4styleNext report4styleLast 275 CodeReporter 2 0 API report4styleLast Aufruf STYLEA4 report4styleLast REPORT4 report Beschreibung Diese Funktion gibt einen Zeiger auf den letzten f r den Report definierten Style zur ck In Verbindung mit report4stylePrev dient die Funktion dazu die Styles eines Reports r ckw rts zu durchlaufen Parameter report Ein Zeiger auf den Report der die Styles enth lt R ckgaben report4styleLast gibt einen Zeiger auf den letzten definierten Siehe auch Style zur ck Enth lt der Report lediglich einen Style zeigt diese Funktion gleichzeitig auf den ersten Style report4stylePrev report4styleFirst report4styleNext Aufruf STYLE4 report4styleNext REPORT4 repotrt Beschreibung Diese Funktion gibt einen Zeiger auf den n chsten f r den Report definierten Style zur ck In Verbindung mit report4styleFirst dient die Funktion dazu die Styles eines Reports vorw rts zu durchlaufen Parameter report Ein Zeiger auf den Report der die Styles enth lt R ckgaben Nicht Null Ein STYLE4 Zeiger auf den n chsten Styl
163. eine Auswirkung Die zusammengesetzte Datendatei sortieren Die Eingabe von Daten in eine Datendatei erfolgt gew hnlich ungeordnet Die Verk ufe an den Kunden Nr 1 werden in ihrer Gesamtheit nicht immer vor den Verk ufen an den Kunden Nr 300 eingegeben Bei Reports ist es jedoch im allgemeinen blich die Daten in einer logischen Reihenfolge auszugeben alphabetisch numerisch nach Datum usw Mit CodeReporter k nnen Sie die zusammengesetzte Datendatei ber einen Sortierausdruck sortieren lassen Dieser dBASE Ausdruck wird f r jeden zusam mengesetzten Datensatz ausgewertet das Ergebnis und die zusammengesetzten Datens tze wird in der neuen logischen Reihenfolge eingelesen Diesen Vorgang bezeichnen wir als das Sortieren der zusammengesetzten Datendatei Der Sortierausdruck Der Sortierausdruck besteht einfach aus einem dBASE Ausdruck der ein Feld oder eine Kombination von Feldern aus der zusammengesetzten Datendatei ent halten kann In Abb 2 9 sind die Auswirkungen eines Sortierausdrucks zu sehen In den Sortierausdruck eingeschlossen ist jeweils ein Feld aus Master und Slavedatei 63 CodeReporter 2 0 Der Sortierausdruck wird in die Dialogbox Ausdruck eingeben eingegeben Diese Box k nnen Sie ber die Men option REPORT SORTIERAUSDRUCK auf rufen Einzelheiten zu dBASE Ausdr cken und der Dialogbox Ausdruck eingeben finden Sie im Kapitel Ausgabeobjekte unter der berschrift Ausdr cke
164. einstelung e Suite NEEN are Nr an NN 97 B ndigkeit 22 22 22 222 Ta aa 97 Waagerecht senkrecht austreiben 98 Nach vorn hinten EE een ae Ee 100 Ausschneiden Kopieren und Einf gen 2 2 2222 cnenen 100 Objekte bearbeiten rs i EE lineare Bern 101 Objektdefinttion 2 4 2er ee det eege te 102 Gr e E EE En Es san 105 Zejlen mbr ch 42 2 see nee eek DB ke 106 Moegchan Ae Eege here 106 Beispiel u 2422 re ee 107 Zahlen sa ae ai 111 Zahlenform te EE er messen 111 Negative Zahl breet ee Bash en ep 112 F hrende Null ENEE ANNERES de 112 N ll nzeigen 3 4318 dE EE EES AE EE 112 Dezim lstellen eat e 2 ar Ee 113 IR 113 Datumsschablonen 113 Voreingestelltes Datumsformat 114 Einmal ausgeben eeler tee ee aa 114 Text bjekte n ua 2222 22 ers Pe nn re 115 Linien und Rahmen 117 LINIEN lern ara ERAR BEEN NEE 117 Kafen Assets este anni 118 Farbe oyei a 22 58 EE ea Rap rt ea OS 118 Objekte innerhalb SEENEN EE 119 Gratiken ala aa 119 Ein Grafikobjekt erstellen 120 Grafikobjekte skalieren 2222020 eeeeeeeenenenenen 122 Felder 42223 8 2 as Es keit sur Nele EE 122 Plazief ng EE aeg 123 Mem felder 222 22 een er 124 Ee EE 125 Erzeugen un ee a Ben ind Be 125 Berechnungen unsern ea Ren 125 Berechnungen definieren 126 Berechnungen l schen 127 Berechnungsobjekte 22222222eeeeeeeeeeneee rennen 127 SUMMEN asee eena ee ee ee ee 128 Eine Summe erstellen
165. eiten mu zwischen den einzel nen Reports die Funktion report4free aufgerufen werden Als Code speichern Wenn CodeReporter einen Report ber die Men option DATEI SPEICHERN auf Platte sichert wird dabei eine variabel codierte Reportdatei mit der Erweiterung REP erzeugt Das reicht so auch f r Endbenutzer Anwendungen meistens aus da die Reportdatei in die laufende Anwendung geladen werden kann Auf 180 Funktions bersicht diese Weise kann der Entwickler einen Reportaufbau modifizieren ohne gleich die Anwendung neu kompilieren zu m ssen die sich des Reports bedient In einigen F llen ist es jedoch w nschenswert den Report unmittelbar als Quell code abzulegen Das geschieht ber die Men option DATEI SPEICHERN ALS Cope die die Dialogbox Reportdatei zum Speichern angeben aufruft in der der Dateiname und die Programmiersprache f r den Code eingegeben werden CodeReporter erzeugt programmiersprachenspezifischen Quellcode f r den aktu ellen Report und speichert ihn in der angegebenen Datei ab Die Quellcodedatei enth lt zwei Funktionen die in einer Anwendung aufgerufen werden k nnen um den Report und oder die Relation zu laden Diese beiden Funktionen m ssen in der Anwendung vor ihrem Einsatz als Prototypen vorliegen k nnen aber in der generierten Quelldatei und dem Prototypen beliebig umbenannt werden buildRelate Aufruf RELATE4 buildRelate CODE4 Sch int openFiles Beschreibung Diese Funktion
166. elfaches davon eingestellt sein damit der Report mit dem richtigen Zeilenabstand gespeichert wird In eine Datenbankdatei Ein wichtiges Leistungsmerkmal von CodeReporter ist seine F higkeit einen Report in eine Datendatei auszugeben Dabei werden alle Ergebnisse u a Sum men Berechnungen Felder in der Datendatei abgelegt die dann als Grundlage f r einen weiteren Report dienen kann Um das zu bewerkstelligen werden die Ausgabeobjekte angegeben die in die Ausgabedatendatei bernommen werden sollen Da die meisten Ausgabeobjekte jedoch dynamische Objekte sind deren Wert sich von zusammengesetztem Datensatz zu zusammengesetztem Datensatz ndert m ssen Sie auch angeben wann die Werte der Ausgabeobjekte in die Ausgabedatendatei geschrieben wer den sollen Diese beiden Aufgaben werden mit Hilfe der Dialogbox Schablone f r Ausga bedatei bew ltigt das ber die Men option REPORT VORGABEN AUSGABEDATEI aufgerufen wird Die in dieser Dialogbox vorgenommenen Einstellungen werden zusammen mit dem Report gespeichert und k nnen jederzeit ver ndert werden 174 Drucken Objekte In der Listbox Objekte werden alle Ausgabeobjekte des Reports aufgef hrt bis auf Memofelder Linien Rahmen Grafiken und Objekte im Titel Schlu be reich und in den Seitenkopf fu Bereichen W hlen Sie ein Objekt an werden seine entsprechenden Daten im Fenster Ob jektinformationen angezeigt Um Objekte zur Ausgabedatendate
167. em Quellcode komplexe Reports erstellen ohne da Sie gro artig von Hand codieren m ssen 196 area4 Funktionen Funktions bersicht Die area4 Funktionen dienen zur Erstellung von Reportausgabebereichen in die Ausgabeobjekte gesetzt werden k nnen Dar ber hinaus werden diese Funktionen verwendet um die in einem Reportbereich vorhandenen Ausgabeobjekte zu durchlaufen areadcreate Aufruf Beschreibung Parameter AREAA4 area4create GROUP4 group long height short isHeader char suppressExpr Diese Funktion erzeugt f r die angegebene Gruppe einen Re portkopf bzw fu bereich in den Ausgabeobjekte plaziert werden k nnen group height isHeader suppressExpr Ein Zeiger auf die Gruppe mit der der neue Re portbereich verbunden ist Dieser long Wert gibt die H he des neuen Re portbereichs in tausendstel Zoll an Dieses logische Flag bestimmt ob der neue Re portbereich mit dem Kopf bzw dem Fu der Gruppe verbunden werden soll Ist isHeader nicht Null wahr wird der neue Bereich mit dem Gruppenkopf verbunden Ist isZeader Null falsch wird der neue Bereich mit dem Gruppen fu verbunden Hierbei handelt es sich um ein null terminiertes Zeichenarray das auf einen logischen dBASE Ausdruck zeigt welcher bestimmt ob der Report bereich unterdr ckt wird oder nicht wenn eine Gruppenr cksetzbedingung eintritt Bei einer 197 R ckgaben Siehe auch area4free Aufruf Beschr
168. empor r ber die Men option DATEI DRUCKERAUSWAHL Einzelheiten zum Einstellen des Papier formats entnehmen Sie bitte dem Kapitel Drucken Reportvorgaben Die Dialogbox Reportvorgaben kann zur Ab nderung report weiter V oreinstel lungen verwendet werden die die Ausgabe des Reports beeinflussen unter anderem die Formatierung von Zahlen und Daten Reportvorgaben Linealeinheiten amp Zoll Zoll W hrung Zeichen n Tausend Zentimeter Zentimeter Punkt Dezimalzeichen Seitenformat entspricht beim Druckbild einsehen Bildschirmformat Pfadnamen speichern Oo Neue Seite nach Titel O Flag Feste R cksetzung Reportkopf Abbrechen Abb 10 2 Dialogbox Reportvorgaben Zahlenformat Ein Gro teil der Einstellungen die sich auf Ausgabeobjekte mit Zahlenwerten auswirken erfolgen objektbezogen ber die jeweilige Dialogbox Objektdefini tion Zu den Einstellungen geh ren Anzahl der angezeigten Dezimalstellen ob 164 Reports gestalten es sich bei dem Objekt um einen Prozent einen W hrungswert oder eine ganze Zahl handelt wie ein Nullwert ausgegeben wird usw Bei manchen numerischen Ausgabeobjekten sind die Einstellungen von Report zu Report verschieden Dazu z hlen die Verwendung des Zeichens nach Tausend das im Report benutzte W hrungssymbol das Zeichen f r das Dezimalkomma usw In der Dialogbox Reportvorgaben
169. en aus dem Report l schen Hinweis Haben Sie mehr Felder in den Report eingef gt als in einer Zeile Platz haben wird das Feld das ber den Rand hinausragt abgeschnitten und die weiteren Felder werden in eine zweite Zeile gesetzt Zwischensummen Der ber die Dialogbox Spaltenreport Utility erstellte Report bildet reportweit automatisch Summen f r alle numerischen Felder und setzt diese Summen in den Schlu bereich Sollen Zwischensummen f r Untermengen der zusammenge setzten Datendatei gebildet werden mu die Untermenge definiert werden mit der sie verbunden sind 136 Spaltenreport Utility Das geschieht mittels der Schaltfl che Hinzuf gen unter Gruppenr cksetz ausdr cke f r Zwischensummen im unteren Bereich der Dialogbox Die Schalt fl che ruft die Dialogbox Gruppenausdruck eingeben auf in die ein Gruppen ausdruck f r die Untermenge eingegeben werden kann f r die die Zwischen summe gebildet werden soll Automatisch erzeugt das Spaltenreport Utility eine Gruppe namens Gruppe n wobei n der Gruppenz hler ist f r den Ausdruck und setzt die Zwischensummen in den Fu bereich der Gruppe Hinweis Die Zwischensummengruppen werden in der Listbox Subtotal on an die erste Stelle gesetzt Die Gruppen werden also von innen nach au en hinzugef gt Haben Sie eine Gruppe an der falschen Position hinzugef gt k nnen Sie diesen Fehler mit Hilfe der Schaltfl chen Entfernen
170. en Dabei wird der Abfrageausdruck mit den Sortierfolgen der Subindizes des Top Masters verglichen Pa t die Abfrage auf den Subindexausdruck wird der Subin dex selbst dazu verwendet die Datens tze herauszufiltern die nicht mit der Abfrage bereinstimmen Diese Operation erfolgt selbst bei der gr ten zusammengesetzten Datendatei blitzschnell da lediglich die erforderlichen Datens tze physisch von der Platte eingelesen werden Wie man die Subindizes der Top Master Datendatei ffnet entnehmen Sie bitte dem Abschnitt Eine Relation bearbeiten weiter unten Hinweis Um einen h ufigen Einsatz der BOA zu gew hrleisten empfehlen wir alle m glichen Subindizes f r die Top Master Datendatei zu ffnen Die Dialogbox Relation ber die Dialogbox Relation Abb 2 7 das ber die Men option RELATION BEARBEITEN aufgerufen wird lassen sich Slavedateien zum Relationsset hinzu f gen Diese Dialogbox zeigt die Relation in ihrem Aufbau an dabei werden bestehende Verkn pfungen durch Linien gekennzeichnet Die Datendatei links oben ist der Top Master Werden dem Relationsset weitere Datendateien hinzugef gt erscheinen sie als Schaltfl chen rechts unter der entsprechenden Masterdatei So bildet sich nach und nach auch optisch der Relationsbaum Wenn dieselbe Masterdatei mit mehreren Slavedateien verkn pft wird erscheinen die neuen Schaltfl chen unmittelbar unter denen der bereits vorhandenen Slavedate
171. en Anwendungen gelinkt werden k nnen die den Report einsetzen Dazu sind von seiten der Anwendung lediglich ein Prototyp der Funktion die die REPORT4 Struktur erzeugt sowie ein entsprechender Funktionsaufruf erfor derlich Danach werden die do und free Abfolgen genauso ausgef hrt als w re der Report mit der Funktion report4retrieve geladen worden Das Programm REP2 C verwendet von CodeReporter generierten Quellcode include d4all h ifdef __TURBOC__ extern unsigned _stklen 10000 endif Prototyp der von CodeReporter generierten Funktion REPORT4 buildReport CODEA int void main void CODE4 cb REPORT4 report d4init amp cb report buildReport amp cb 1 if report report4do report report4free report 1 1 d4init_undo amp cb return REP2 C benutzt eine Reportdatei die als Quellcode gespeichert wurde Wie oben erl utert wird die von CodeReporter generierte Funktion buildReport zum Auf bau des Reports verwendet Der Code f r diese Funktion mu mit REP2 C gelinkt werden um die ausf hrbare Datei zu erzeugen 187 CodeReporter 2 0 API Der Prototyp der Funktion buildReport sollte vor dem Abschnitt main stehen Er wird verwendet um die Parameter und den R ckgabewert der von CodeReporter erzeugten Funktion ordnungsgem an den Compiler zu bergeben Der Prototyp der von CodeReporter generierten Funktion hat folgendes Muster REPORT4 buil
172. en Monat und Tag auf Null zur cksetzen und alle ermitteln Ausgabekopf f r Monat Ausgabekopf f r innere Gruppe 21 Feb 1992 Tag R cksetzbedingung eingetreten Ausgabefu f r Gruppe Tag Summe Tag auf Null zur cksetzen und alle Summen ermitteln Ausgabekopf f r Gruppe Tag Dateiende Alle Fu bereiche ausgeben 85 CodeReporter 2 0 4 Bereiche Ein Bereich ist ein Teil eines Reports in den Ausgabeobjekte gesetzt werden k nnen Seitenkopf Seitenfu und Hauptteil des Reports werden als Bereiche betrachtet Von einigen Ausnahmen abgesehen Seitenkop fu Titel Schlu sind alle Bereiche mit Gruppen verbunden die die Ausgabe von Objekten inner halb des Bereichs bestimmen Trifft eine Gruppe auf eine R cksetzbedingung werden die mit der Gruppe verbundenen Bereiche ausgegeben Beim Anlegen einer Gruppe erh lt diese standardm ig die Bereiche Gruppen kopf und Gruppenfu bei der Grundgruppe BODY ist lediglich ein Grup penkopf vorhanden Diese Bereiche k nnen als Voreinstellung f r die Gruppen bereiche des Reports bernommen oder aber je nach Bedarf in der Gr e ver n dert gel scht oder unterdr ckt werden Mit Bereichen l t sich leicht arbeiten und doch sind sie sehr flexibel Neben der Anordnung von Ausgabeobjekten kann eine Reihe sich gegenseitig ausschlie Bender unterdr ckter Bereiche das Aussehen des Reports zu ver ndern Eine Gruppe kann mehrere Kopf und oder Fu bereiche haben
173. en Sie indem Sie entweder auf die Schalt fl che Kein in der Tastenleiste klicken oder die Esc Taste bet tigen Dieser Cursor zeigt an da CodeReporter sich im Einf gemodus f r Berechnungsausgabeobjekte befindet Dieser Cursor zeigt an da CodeReporter sich im Einf gemodus f r Ausdrucksausgabeobjekte befindet Dieser Cursor zeigt an da CodeReporter sich im Einf gemodus f r Feldausgabeobjekte befindet Haben Sie mehrere Felder ausgew hlt werden diese ab dem Einf gepunkt horizontal oder vertikal je nach Einstellung in der Dialogbox Feldgestaltung in den Report ber nommen Dieser Cursor zeigt an da CodeReporter sich im Einf gemodus f r Rahmenausgabeobjekte befindet Dieser Cursor zeigt an da CodeReporter sich im Einf gemodus f r horizontale Linienausgabeobjekte befindet Die Linien haben jeweils eine voreingestellte L nge 301 U ID m 302 CodeReporter 2 0 Dieser Cursor zeigt an da CodeReporter sich im Einf gemodus f r vertikale Linienausgabeobjekte befindet Die Linien haben jeweils eine voreingestellte L nge Dieser Cursor zeigt an da CodeReporter sich im Einf gemodus f r Objekte befindet die sich in der Windows Zwischenablage befinden Enth lt die Zwischenablage mehrere Ausgabeobjekte werden diese in bezug auf das erste eingef gte Objekt bernommen Dieser Cursor zeigt an da CodeReporter sich im Einf gemodus f r Textausgabeobjekte befind
174. en Sternchen eingesetzt SUBSTR Zeichen Wert Start_Position Anzahl_Zeichen Ein Teilbereich des Zeichenwerts wird zur ckgegeben Der Teilbereich wird Anzahl_Zeichen lang sein und auf dem Zeichen Start_Position von Zei chen_Wert beginnen Beispiel 1 SUBSTR ABCDE 2 3 gibt BCD zur ck Beispiel 2 SUBSTR Hr Greser 5 1 gibt G zur ck TIMEO Die Zeitfunktion gibt die Systemzeit in Zeichendarstellung zur ck Sie benutzt das Format HH MM SS Beispiel 1 TIME gibt 12 00 00 zur ck wenn es Mittag ist Beispiel 2 TIME gibt 13 30 00 zur ck wenn es 13 30 Uhr nachmittags ist TRIMO Diese Funktion entfernt alle Leerzeichen am Ende eines Ausdrucks UPPER Zeichen_Wert Eine Zeichenkette wird auf Gro schreibung konvertiert und das Ergebnis wird zur ckgegeben VAL Zeichen Wert Die Funktion value konvertiert einen Zeichenwert in einen numerischen Wert Beispiel 1 VAL 10 gibt 10 zur ck Beispiel 2 V AL 8 7 gibt 8 7 zur ck 295 CodeReporter 2 0 YEAR Datums_Wert Gibt das Jahr des Datumsparameters als numerischen Wert zur ck Beispiel YEAR STOD 19920830 gibt 1992 zur ck 296 Anhang B Tastenkombinationen Anhang B Tastenkombinationen Bei CodeReporter ist eine Microsoft kompatible Maus erforderlich Bestimmte Operationen wie z B das Plazieren von Ausgabeobjekten k nnen ausschlie lich mit einer Mau
175. en restore e s NENNEN ENEE nn H Einen neuen Report anlegen 8 Einen Report speichern 8 Drucktechnische Vereinbarungen 8 Symbole diine pena need 9 Der Report Entwicklungsbildschirm 10 Danke f r Ihre Mithilfe essre set ee e e e EE EA 11 Technische Unterst tzung 11 BBS Unterst tzung 12 Adressen una ans en RE D E 12 L a en ee re 13 Einen Report mit Pfad laden 13 Report im aktuellen Verzeichnis offen 13 Report mit Pfad ffnen 14 Eine Datenbankliste ausgeben 14 Einen neuen Report anlegen 15 Sich wiederholende Elemente einf gen 16 Reportieinsehen 3 o alas ne as EELER 17 Bereiche zur Erl uterung einf gen 222 2e22ceeeeeeeen 17 Kontoauszugsrepott EEN ke nn 20 Relation laden sr 2822 03 nn I 21 Gruppenfelder hinzuf gen 21 Objektdefinition ver ndern 2 222202 eeeeeeeeenene nen 23 Gr e von Body ver ndern 23 iii Die Gruppe Kunde hinzuf gen 24 Kopf der Gruppe Kunde f llen 26 Der Setenkopt Bereich 27 Der Schlu bereich des Kontoauszugs 2222222 ceenenenen 28 Fu bereiche unterdr cken 2 222020 eeeeeenenenen en 31 Den Report einsehen 32 Einen Sortierausdruck angeben 2222 cnenenenrenenn 32 1 Einen Report entwerfen 35 Zweck des Repotts 20 02 2000 ren Ra E E E 35 Entwurf auf dem Dante 36 Den Entwurf auswerten 38 Zusammengeh rige Reportbereiche ermitteln
176. ente in einen Report einbetten Vom Firmenlogo bis hin zu Bildern des Mitarbeiterstabes ist alles m glich Aus gew hnlichen langweiligen Reports lassen sich durch Einf gen von grafi schen Elementen optisch ansprechende Dokumente machen So k nnte zum Bei spiel in der letzten Zeile eines Finanzreports bei Verwendung der bedingten Bereichsunterdr ckung und verschiedenen Grafikelementen je nach Ergebnis ein Daumen hoch bzw ein Daumen runter Symbol ausgegeben werden Zur Zeit unterst tzt CodeReporter Windows Bitmap Grafiken auf dreierlei Art und Weise 119 CodeReporter 2 0 statisch durch Einbetten der Bitmap in den Report statisch durch Verweis auf einen Dateinamen und dynamisch durch Verwendung eines Datenfeldes das einen Dateinamen ent h lt Hinweis Die Ausgabe kleinerer Bitmaps ist in der Regel qualitativ besser als die gr erer Aufgrund der bei der Verkleinerung hochaufl sender Bitmap Bilder auftretenden Skalierung z B bei gescannten Bildern empfehlen wir die Verwendung von Bildern mit niedriger Aufl sung Ein Grafikobjekt erstellen Grafikobjekte werden ber die Men option OBJEKT GRAFIK oder das Einf gen eines Grafikelements aus der Zwischenablage erstellt Mit der ersten Methode werden Grafikobjekte erzeugt die kaum Plattenplatz verbrauchen Das mit der zweiten Methode erzeugte statische Grafikobjekt wird in einer von CodeReporter angelegten Bitmap Datei gespeichert Andere Windo
177. er und nachfolgende Unteruntermenge der zusammengesetz ten Datendatei bis alle Datens tze verarbeitet worden sind Bei der Bearbeitung einer neuen Untermenge der zusammengesetzten Datendatei f r den Report besteht jeweils die M glichkeit bestimmte Funktionen auszuf h ren dazu geh ren die Bildung Zur cksetzung von Summen die Ausgabe von 72 Gruppen Feldern der zusammengesetzten Datendatei die Ausgabe von Titeln das Durch f hren von Berechnungen usw Die Funktionen die bei einem bestimmten zu sammengesetzten Datensatz vollzogen werden richten sich nach der Unter menge zu der der Datensatz geh rt Diese untermengenspezifischen Funktionen f hrt CodeReporter in Konstrukten aus die man als Gruppen bezeichnet Am besten lassen sich die Begriffe der Untermenge und Gruppe an einem Beispiel verdeutlichen Abb 3 1 gibt eine zu sammengesetzte Datendatei wieder die nach ABT ORT ANGEST und DATUM sortiert wird Wird die Datendatei nach diesen Kriterien sortiert ergeben sich verschiedene Untermengen eine f r jeden Teil des Sortierausdrucks ABT ORT ANGEST DATUM STD TEC 001 Jones Pete 20 07 8 5 TEC on Jones Pete 21 07 7 TEC_ 001 Jones Pete 20 07 85 TEC 001 Smith vonn_ 20 07 8 5 e ee Kies R SET Tec 002 Sanders Bo 20 07 8 5 TEC 001 Smith John 20 07 85 TEC TEC 002 Sanders Bo 21 07 7 BHT 001 Adams Jon 20 07 8 5
178. er 2 0 Haben Sie jedoch das Kontrollk stchen Umbruch aktiviert stellt CodeReporter den Einf gepunkt auf die Ausgangskoordinaten zur ck bewegt sich je nach Einf gerichtung nach unten oder nach rechts und setzt die Einf gung der Felder fort Ist der Bereich weiterhin zu klein falls CodeReporter die rechte untere Ecke erreicht wird er m glicherweise in der H he erweitert damit alle Aus gabeobjekte hineinpassen CodeReporter erweitert den Bereich in der H he wenn die Schaltfl che Senk recht markiert das Kontrollk stchen Umbruch aber nicht aktiviert ist bzw wenn die Schaltfl che Waagerecht markiert und das Kontrollk stchen Um bruch aktiviert ist Per Voreinstellung ist Umbruch eingestellt Ist das Kontrollk stchen Bezeichnungen ausgew hlt f gt CodeReporter in einer Spalte links von den Feldobjekten Textobjekte mit den jeweiligen Feld namen ein Der Abstand zwischen den eingef gten Feldausgabeobjekten und Bezeichnun gen wird ber die Editierfelder Abstand senkrecht und Abstand waagerecht angegeben Per Voreinstellung betr gt dieser Abstand 0 25 cm 0 1 er kann aber auf jeden beliebigen Wert eingestellt werden Mit Hilfe dieser n tzlichen Einrichtung lassen sich Ausgabeobjekte rasch in Reports positionieren die m glicherweise nicht unter Windows ausgegeben werden und bei denen es auf genaue Positionierung ankommt Memofelder Memofelder ihr Inhalt wird
179. er AREA4 Zeiger bezeichnet den Reportbe reich in den das neue Berechnungsausgabeobjekt gesetzt werden soll calc Ein Zeiger auf die mit expr4calc_create erstellte Berechnung X Die waagerechte Koordinate in tausendstel Zoll an der die linke Seite des Berechnungsobjekts steht 222 Funktions bersicht y Die senkrechte Koordinate in tausendstel Zoll vom oberen Rand des Reportbereichs an der die Oberkante des Berechnungsobjekts steht width Die horizontale Ausdehnung des Berechnungsaus gabeobjekts in tausendstel Zoll height Die vertikale Ausdehnung des Berechnungsaus gabeobjekts in tausendstel Zoll R ckgaben Nicht Null Bei Erfolg wird ein Zeiger auf das neue Berech nungsausgabeobjekt zur ckgegeben 0 Fehler Das Berechnungsausgabeobjekt konnte nicht angelegt werden Siehe auch expr4calc_create obj4calcFree obj4delete obj4calcFree Aufruf void obj4calcFree OBJ4 obj Beschreibung Diese Funktion l scht das Berechnungsausgabeobjekt aus dem Report und gibt den mit dem Ausgabeobjekt verbundenen Spei cher frei Hinweis obj4calcFree gibt weder den mit der eigentlichen Berechnung verbundenen Speicher frei noch wird die Berechnung gel scht Lassen Sie die Berechnung mit der CodeBase 5 Funktion expr4 calc_reset oder mit report4free l schen Parameter obj Zeiger auf das zu l schende Berechnungsobjekt Siehe auch obj4calcCreate obj4delete report4free die CodeBase 5 Funk tion expr4calc_reset 223 CodeRep
180. er auf eine u ere Gruppe ber die die innere Gruppe ermittelt wird die vorher angelegt wurde Der Report enth lt keine weiteren Gruppen group ist die innerste Gruppe Ein Zeiger auf die vorhergehende Gruppe wird zur ckgegeben report4groupLast report4numGroups report4hardResets Aufruf int report4hardResets REPORTA4 report int hardResets Beschreibung Anhand dieser Funktion wird die Methode festgelegt wie Grup pen mit der Option Seite zur cksetzen neue Seiten beginnen Parameter report hardResets Ein Zeiger auf den Report f r den das Flag Feste R cksetzung gesetzt wird Mit diesem Parameter wird festgelegt auf welche Art und Weise Seitenzur cksetzungen erfolgen hardResets kann einen der folgenden Werte an nehmen 1 Vor Ausgabe einer Seite mit dem Flag Seite zur cksetzen immer eine neue Seite anlegen 0 F r eine Gruppe mit einem Flag Seite zur ck setzen lediglich dann eine neue Seite generie ren wenn die Gruppe aufgrund einer nderung ihrer eigenen R cksetzbedingung zur ckgesetzt wird Wird die Gruppe aufgrund der 257 R ckgaben Siehe auch report4init Aufruf Beschreibung 258 CodeReporter 2 0 API R cksetzung einer h heren Gruppe zur ckgesetzt wird keine neue Seite generiert Wird diese Funktion nicht aufgerufen geht das Programm von diesem Wert aus gt 0 Der vorhergehende Wert von hardResets wird zu r ckgegeben lt 0 Feh
181. erden mittels der Men optionen BEREICH NEUER TITELBEREICH und BEREICH NEUER SCHLUSSBEREICH erzeugt 90 Bereiche Beispiel Bei diesem Beispiel wird die Datendatei NUMBERS DBEF angezeigt die sowohl positive als auch negative Zahlen enth lt Durch den Einsatz von zwei Gruppen Unterdr ckungsbedingungen und einer anderen Schrift werden die negativen Zahlen der Datendatei in Rot die positiven Zahlen in Schwarz angezeigt Bei der Durcharbeitung des Beispiels setzen Sie einige der Dinge ein die Sie im vorliegenden Kapitel gelernt haben dar ber hinaus flie en hier weitere Infor mationen aus den Kapiteln Ausgabeobjekte und Styles ein siehe dort Aktivieren Sie nach dem Aufruf von CodeReporter die Men option DATEI NEU und w hlen Sie im Verzeichnis EXAMPLES die Datei NUMBERS DBF an CodeReporter erzeugt die Gruppe Body mit einem Kopfbereich Um die negativen Zahlen auszugeben wird ein zweiter Gruppenkopf ber die Men option BEREICH NEUER KOPFBEREICH erzeugt Nachdem der neue Bereich angelegt und automatisch ausgew hlt wurde rufen Sie ber die Option BEREICH BEREICH BEARBEITEN die Dialogbox Bereich bearbeiten auf und geben folgenden Ausdruck in das Editierfeld Unterdr ckungsbedingung ein NUMBERS gt NUMERIC gt 0 Ist der Wert dieses Feldes gr er oder gleich null positive Zahl wird der zweite Bereich nicht ausgegeben Der zweite Bereich dient ausschlie lich der Ausgabe negativer Za
182. erdrucker haben einen hardware m ig eingestellten Randbereich der nicht bedruckbar ist report4margins pr ft diese Tatsache ab und l t es nicht zu da die physikalischen R nder des Ger ts nicht eingehalten werden REPORT4 Ein REPORT4 Zeiger auf den Report bei dem die R nder eingestellt werden left Breite des linken Randes in den Schritten der eingestellten Ma einheit right Breite des rechten Randes in den Schritten der eingestellten Ma einheit top Breite des oberen Randes in den Schritten der eingestellten Ma einheit bottom Breite des unteren Randes in den Schritten der eingestellten Ma einheit unitType Ma einheit f r die oben genannten Randeinstel lungen Bei graphischen Benutzerschnittstellen lassen sich dabei recht gut Angaben in tausendstel Zoll verwenden Bei zeichenbezogenen Schnitt stellen eignen sich Angaben in Zeichen oft besser unitType kann folgende Werte annehmen 1 Die Ma einheiten werden in Zeichen angege ben 0 Die Ma einheiten werden in tausendstel Zoll angegeben 317 CodeReporter 2 0 R ckgaben 0 Die R nder wurden erfolgreich eingestellt lt 0 Fehler Siehe auch report4pageSize report4output Aufruf rc report4output REPORT4 amp outputHandle useStyles Beschreibung Der Aufruf dieser Funktion erfolgt vor der Erzeugung des Re ports und weist report4do an den Report auf ein System Handle wie standard out standard print oder in eine offene Dat
183. eren Reportbereichen las sen sich auf diese Weise ausrichten Die Men option AUSRICHTEN ZENTRIERT richtet das aktuelle Objekt innerhalb des Reportbereichs mittig aus Sind mehrere Objekte ausgew hlt bildet die Mitte des ersten ausgew hlten Objekts das Zentrum nach dem die anderen ausgerichtet werden das erste Objekt selbst bewegt sich dabei nicht 97 CodeReporter 2 0 ber die Men option AUSRICHTEN OBEN bzw AUSRICHTEN UNTEN werden die Objekte nach dem oberen oder unteren Rand des ausgew hlten ausgerichtet Auf diese Weise k nnen allerdings nur im selben Reportbereich ausgew hlte Objekte ausgerichtet werden Waagerecht senkrecht austreiben Drei oder mehr Objekte k nnen mit der Men option AUSRICHTEN SENKRECHT AUSTREIBEN bzw AUSRICHTEN WAAGERECHT AUSTREIBEN so angeordnet werden da der Zwischenraum zwischen allen Objekten gleich gro ist Nachdem die beiden Endobjekte bestimmt worden sind verschiebt CodeReporter die dazwi schenliegenden Objekte der ausgew hlten Option entsprechend CodeReporter 2 0 UNTITLED Datei Ausrichten Bearbeiten Gruppe Gruppe 1 Kopf Gruppe Gruppe 1 Fu Text Textil Dieser Text istl nger als die anderen CT MS Serif Gruppe 1 Bereich 1 H he 4 866 cm Abb 5 1 Ausgangsformat 98 Ausgabeobjekte Abb 5 1 enth lt mehrere wahllos plazierte Ausgabeobjekte Vorausgesetzt sie werden in ihrer Reihenfolge markiert also Textl Text2 und dann Text
184. erfeld Gr e innerhalb der Dialogbox Objektdefinition eingeben zum andern die Gr enhenkel des Ob jekts mit der Maus versetzen Das Editierfeld Gr e erlaubt die exakte Bestimmung von H he und Breite eines Ausgabeobjekts Allerdings sieht man nicht wie sich das Objekt ver ndert und die Einstellung dauert l nger Bei den Gr enhenkeln handelt es sich kleine schwarze Quadrate die den An zeigetext eines Objekts umgeben und mit deren Hilfe die Gr e des Objekts ver ndert werden kann siehe Abb 5 6 Dazu klickt man mit der linken Maus taste auf einen Henkel und zieht das Objekt mit der Maus auf die gew nschte Gr e In Verbindung mit der Feineinstellung l t sich mit dieser schnellen Methode die Gr e eines beliebigen Ausgabeobjekts exakt einstellen Siehe Unterabschnitt Feineinstellung weiter oben Achtung Die Gr e von Grafikobjekten l t sich ber das Editierfeld Gr e bzw ber die Henkel ver ndern Nach dem Einstellen der neuen Gr e wird das Bild vergr ert und oder verkleinert um den neuen Raum auszuf llen Dabei bleiben m glicherweise die urspr nglichen Proportionen nicht erhalten 105 CodeReporter 2 0 Gr en e Gr en henkel ZDBFFELD De henkel Abb 5 6 Gr enhenkel eines Objekts Zeilenumbruch Alle Ausgabeobjekte bis auf Linien Rahmen und Grafiken geben ihren Inhalt unter Verwendung des im entsprechenden Style angegebenen Zeiche
185. erfeld Stan dard Datumsformat in der Dialogbox Reportvorgaben ab ndern Dar ber hinaus kann man das voreingestellte Format objektbezogen ber das Editierfeld Datumsformat modifizieren in der Dialogbox Objektdefinition in Abb 5 5 nicht enthalten Das voreingestellte Datumsformat wird beim Erzeugen eines Datumsausgabeob jekts automatisch verwendet Das verwendete Format beh lt seine G ltigkeit solange das Objekt existiert es sei denn das Editierfeld Datumsformat wird ge ndert Auch eine sp tere Ver nderung des Datumsformats f r den Report ber hrt das Objekt nicht Wenn Sie das Datumsformat eines Objekts l schen und auf OK klicken wird das Standard Datumsformat des Reports wieder in Kraft gesetzt Einmal ausgeben In einigen F llen ist es w nschenswert ein Objekt nur bei einer Wert nderung und nicht bei jeder Gruppenr cksetzung auszugeben Abb 5 9 zum Beispiel zeigt einen einfachen Report der den Inhalt einer Datendatei ausgibt Anstatt den Monat in jeder Zeile auszugeben wird er nur angezeigt wenn er sich ndert 114 Ausgabeobjekte Diese selektive Ausgabe l t sich ber die Option EINMAL AUSGEBEN im Objekt men steuern die die Dialogbox Objektausgabe unterdr cken aufruft Klicken Sie das Kontrollk stchen Einmal ausgeben an und geben Sie einen Ausdruck zur Unterdr ckung der Objektausgabe ein Dieser Ausdruck wird bei der Grup penr cksetzbedingung aus
186. erk und oder Verzeichnis nicht angegeben geht das Programm vom aktuellen Verzeichnis aus R ckgaben 0 Erfolg lt 0 Fehler report oder destFile sind ung ltig Siehe auch obj4dataFieldSet report4dataGroup report4dataGroup Aufruf int report4dataGroup REPORT4 report GROUP4 group Beschreibung Mit dieser Funktion wird die Gruppe bestimmt deren R cksetz bedingung in der Ausgabedatendatei einen neuen Datensatz er zeugt Die Ausgabeobjekte werden mit den Werten in dem er zeugten Datensatz gespeichert die sie bei der Ausgabe im Fu bereich der Gruppe group gehabt h tten Parameter report Ein Zeiger auf den Report der mit der Gruppe und der Datendatei verbunden ist group Ein GROUP4 Zeiger auf die Gruppe die Daten s tze in der Ausgabedatendatei erzeugt 248 Funktions bersicht R ckgaben 0 Erfolg lt 0 Fehler report oder group sind ung ltig Siehe auch report4groupLookup obj4dataFieldSet report4dataFileSet report4dateFormat Aufruf int report4dateFormat REPORT4 report char format Beschreibung Diese Funktion richtet das Standard Datumsformat f r den an gegebenen Report ein Alle neuen Ausgabeobjekte die als Er gebnis einen Datumswert haben benutzen dieses Format bei der Ausgabe Beim ersten Anlegen des Reports wird der Wert des Elements CODE4 date_format als Standard Datumsformat des Reports gespeichert Parameter report Ein Zeiger auf den Report f r den das Datums format eingestellt wird
187. es Die Reportausgabe unter Windows erfolgt unter Verwendung der verschiedenen Windows Bildschirm und Druckertreiber Dabei sieht ein auf einem Nadel bzw Laserdrucker ausgegebener Report in etwa gleich aus Ob ein Drucker eine be stimmte Schrift unterst tzt oder nicht spielt dabei keine Rolle da Windows die Schrift emuliert oder den Text als Grafik ausgibt Dieses Leistungsmerkmal fehlt den meisten Non Windows Anwendungen Hinweis Non Windows Styles sind lediglich erforderlich wenn der Report unter einem anderen Betriebssystem ausgegeben werden soll Soll er einzig und allein unter Windows verarbeitet werden brauchen Sie die Non Windows Styles nicht zu ber cksichtigen Bei Non Windows Anwendungen k nnen lediglich die Schriften und Attribute gedruckt werden die der Drucker unterst tzt da die Ausgabe ausschlie lich ber den Drucker l uft Um noch mehr Verwirrung zu stiften verschiedene Drucker aktivieren dieselben Attribute z B Fettdruck auf unterschiedliche Art und Wei se So sind bei einem vielleicht Paare von Steuerzeichen erforderlich w hrend ein zweiter etwas v llig anderes ben tigt Durch die Verwendung von Non Windows Styledefinitionen k nnen druckerspe zifische Steuerzeichen die den Drucker den Text in unterschiedlichen Schriften ausgeben lassen in die Styles eines Seiten Layouts integriert werden Der Vorteil dieser Methode besteht darin da man f r die verschiedenen Drucker eigene Seiten Layouts ers
188. es Grafikobjekts steht width Die horizontale Ausdehnung des Grafikausgabe objekts in tausendstel Zoll height Die vertikale Ausdehnung des Grafikausgabeob jekts in tausendstel Zoll 217 CodeReporter 2 0 API R ckgaben Nicht Null Bei Erfolg wird ein Zeiger auf das neue Grafik ausgabeobjekt zur ckgegeben 0 Fehler Das Grafikausgabeobjekt konnte nicht an gelegt werden Siehe auch obj4bitmapFileFree obj4bitmapStaticCreate A Eeeeece suurunn Kr obj4bitmapFileFree Aufruf void obj4bitmapFileFree OBJ4 obj Beschreibung Diese Funktion l scht ein mit obj4bitmapFileCreate angeleg tes Grafikausgabeobjekt aus dem Report und gibt den mit der Bitmap und dem Ausgabeobjekt verbundenen Speicher frei Parameter obj Zeiger auf das zu l schende statische Grafikob jekt der von obj4bitmapFileCreate zur ckgege ben wird Siehe auch obj4bitmapFileCreate obj4delete report4free obj4bitmapFieldCreate Aufruf OBJ4 obj4bitmapFieldCreate AREA4 area FIELD4 field long x long y long width long height Beschreibung Diese Funktion erzeugt ein dynamisches Grafikausgabeobjekt indem sie die im Feld der Datendatei angegebene Windows 218 Parameter R ckgaben Funktions bersicht Bitmap Datei BMP ffnet und intern eine Kopie des Bildes an legt Nach der Ausgabe des Grafikausgabeobjekts wird die Bit map Datei geschlossen Um sie innerhalb der angegebenen Koordinaten unterzubringen wird die Gr
189. ese Funktion l scht den bezeichneten Style aus dem Report und gibt den mit dem Style verbundenen Speicher frei Handelte Funktions bersicht es sich bei dem gel schten Style um den aktuellen wird der erste Style des Reports nun zum aktuellen Style Parameter report Ein Zeiger auf den Report der den zu l schenden Style enth lt styleName Ein null terminiertes Zeichenarray das den Na men des zu l schenden Styles enth lt style4delete durchl uft die Styles des Reports und vergleicht deren Namen mit styleName Kommt es zu einer bereinstimmung wird der Style aus dem Report entfernt R ckgaben 1 Style erfolgreich lokalisiert und gel scht 0 Ein Style mit Namen styleName wurde im Report nicht gefunden style4free Aufruf int style4free REPORT4 report STYLE4 style Beschreibung Diese Funktion l scht den angegebenen Style aus dem Report und gibt den damit verbundenen Speicher frei Handelte es sich bei dem gel schten Style um den aktuellen wird der erste Style des Reports zum aktuellen Style Parameter report Ein Zeiger auf den Report der den zu l schenden Style enth lt style Ein Zeiger auf den zu l schenden Style R ckgaben 1 Der Style wurde erfolgreich gel scht 0 Fehler report und oder style sind ung ltig 285 CodeReporter 2 0 API styledindex Aufruf STYLEA4 style4index REPORTA4 report int styleIndex Beschreibung Diese Funktion gibt einen STYLE4 Zeiger auf den Style in der styleIndexten Pos
190. et Dieser Cursor zeigt an da CodeReporter sich im Einf gemodus f r Summenausgabeobjekte befindet Anhang D ASCIH Tabelle Anhang D ASCII Tabelle nicht vollst ndig Im folgenden f hren wir die verbreitetsten Druckersteuerzeichen mit der entspre chenden Hexadezimalnotierung auf Da die Hexadezimalwerte in den meisten Druckerhandb chern aufgef hrt werden mag die bersicht als zus tzliche Refe renz zum raschen Nachschlagen dienen ASCI Dez Hex ASCII Dez Hex ASCH Dez Hex gt n r i D Sei CH d el gt A B C D E F G H I J K L M N O P Q R rn rm ba mo Go C GD oo JA Ch nu P A H ra E nS 303 CodeReporter 2 0 ASCI Dez Hex ASCII Dez Hex ASCH Dez Hex 304 Anhang E Fehlercodes Anhang E Fehlercodes Diesem Teil des Anhangs k nnen Sie die Fehlercodes entnehmen die die Code Reporter API Funktionen beim Auftreten eines Fehlers zur ckgeben Die brigen Fehlercodes schlagen Sie bitte im CodeBase Referenzhandbuch nach Name der Konstanten Wert e4report e4style_create e4style_select e4style_index edarea_create e4group_create 810 811 812 813 814 815 Bedeutung Reportfehler Allgemeiner Fehler beim Report Alle Report fehler die hier nicht gesondert aufgef hrt wer den sind e4report Fehler Fehler beim Anlegen des Styles Der Style konnte aufgrund eines bereits vor handenen Stylenamens oder weil der Speicher nicht
191. ewandelt 176 Drucken Aktivieren Sie nach dem Aufruf von CodeReporter die Men option DATEI NEU um einen neuen Report zu beginnen und machen Sie die Datendatei PER SONEL DBF zum Top Master F gen Sie ber die Schaltfl che Feld in der Tastenleiste alle Felder der Datei in den Report ein und klicken Sie auf die Gruppe Body Da dieser Report in erster Linie zur bertragung von Daten verwendet wird kommt es auf die Pla zierung der Felder in dem Bereich nicht an In der Datei PERSONEL DBEF liegen die Namen jeweils getrennt in Vor und Nachnamenfeldern vor FNAME bzw LNAME In der neuen Datendatei soll f r die Namen jeweils nur ein Feld im Format Smith John vorhanden sein Mit CodeReporter bereitet das keine Schwierigkeiten L schen Sie einfach die beiden Namensfelder und f gen Sie ein Ausdrucksausgabeobjekt ein das beide Felder enth lt Zum Beispiel TRIM LNAME FNAME Wenn Sie sich den Report jetzt anzeigen lassen enth lt er zwar wie vorher alle Daten der Datei PERSONEL DBEF doch nur ein kombiniertes Namenstfeld Da der Report nun alle Felder enth lt kann die Schablone f r die Ausgabedatei generiert werden W hlen Sie die Men option REPORT VORGABEN AUSGABEDA TEI und rufen Sie die Dialogbox Schablone f r Ausgabedatei auf Klicken Sie auf die Schaltfl che Alle hinzuf gen um alle Ausgabeobjekte des Reports in die neue Datendatei zu bernehmen W hrend das geschie
192. ext 265 CodeReporter 2 0 API report4pageObjNext Aufruf OBJECTA4 report4pageObjNext REPORTA4 report Beschreibung Diese Low Level Funktion dient dazu das n chste ausgewertete Ausgabeobjekt auf der aktuellen Seite des Reports einzulesen Parameter report Ein Zeiger auf den Report aus dem das n chste Objekt der aktuellen Ausgabeseite eingelesen wird R ckgaben gt 0 Ein OBJECT4 Zeiger f r das ausgewertete n ch ste Objekt der aktuellen Ausgabeseite wird zu r ckgegeben lt 0 Die aktuelle Seite enth lt keine Objekte Siehe auch report4pageObjFirst report4pageSize Aufruf int report4pageSize REPORT4 report long height long width int unitType Beschreibung Mit dieser Funktion werden Breite und H he der Reportseite Parameter 266 eingestellt Wird diese Funktion innerhalb einer Windows An wendung nicht aufgerufen wird das aktuelle Seitenformat des ausgew hlten Druckers verwendet Wenn die Funktion in einer Non Windows Anwendung nicht aufgerufen wird wird das vor eingestellte Seitenformat von 25x80 Zeichen verwendet report Ein Zeiger auf den Report f r den das Seitenfor mat eingestellt wird R ckgaben Siehe auch height width unitType 0 Funktions bersicht Die H he der Ausgabeseite in der angegebenen Ma einheit Die Breite der Ausgabeseite in der angegebenen Ma einheit Mit diesem Parameter wird die Ma einheit von height und width festgelegt unitType kan
193. ezeichnet Der Kopf und oder Fu einer Gruppe k nnen keine einen oder mehrere Report bereiche umfassen Dabei handelt es sich um Abschnitte des Reports in die Ausgabeobjekte eingef gt werden k nnen siehe die Kapitel Bereiche und Ausgabeobjekte Gruppenkopf und fu sind dazu da die Funktionen der Gruppe auszuf hren das hei t da beim Auftreten einer Gruppenr cksetzbedin gung die mit Kopf und Fu verbundenen Reportbereiche ausgegeben werden Der Hauptunterschied zwischen den Reportbereichen die mit dem Kopf bzw dem Fu verbunden sind besteht darin da die Werte der im Kopfbereich ausgegebenen Objekte auf dem zusammenge setzten Datensatz basieren der die R cksetzbedingung verursacht hat und die Werte der im Fu bereich ausgegebenen Objekte auf dem dem zusammen gesetzten Datensatz unmittelbar vorausgehenden Datensatz basieren der die R cksetzbedingung verursacht hat Aus Abb 3 3 geht dieser etwas kompliziert klingende Sachverhalt deutlich her vor Nach dem Anlegen einer Gruppe enth lt diese automatisch einen Kopf und einen Fu bereich Gruppen anlegen Eine Gruppe wird ber die Men option GRUPPE NEU angelegt Per Voreinstel lung wird jede neue Gruppe so positioniert da alle bereits vorhandenen Gruppen von Kopf und Fu der neuen Gruppe umschlossen werden Aufgrund dieser voreingestellten Operation werden die neuen Gruppen auf der h chsten u er sten Stufe angelegt He Gr
194. f gemodus 94 erzeugen 93 gleichm iger Abstand 98 99 Gr e 103 105 Gr enhenkel 105 l schen 96 L schung r ckg ngig machen 96 Mehrfachauswahl 95 Objektdefinition 102 Objekte innerhalb von Objekten 95 119 positionieren 93 Standard Ausrichtung 104 statisch dynamisch 93 Style ausw hlen 104 152 bereinander legen 100 unterdr cken 115 unvollst ndige Ausgabe 19 verschieben 96 102 Vorschau 106 Vorschausummen 107 132 Zeilenumbruch 106 Ausgabetreiber angepa te 189 Ausrichtung siehe Ausgabeobjekte Ausschneiden siehe Ausgabeobjekte Austreiben waagerecht senkrecht 98 99 Beispiele Bereich unterdr cken 91 Dialogbox Relation einsetzen 70 Dialogbox Summe bilden 109 Felder hinzuf gen 92 Feldobjekte hinzuf gen 108 neue Datei anlegen 108 neuen Bereich anlegen 91 neuer Report 67 91 Prozentanteil 109 335 CodeReporter 2 0 336 Relation aufbauen 67 BOA Relation bearbeiten 68 siehe bitoptimierte Report anzeigen lassen 92 111 Abfragetechnik Report Utility 138 und CodeReporter 58 Reportbereich erzeugen 108 buildRelate 181 Seiten Layout laden 92 buildReport 182 Spaltenreport 137 B ndigkeit 97 Style ausw hlen 92 siehe auch Ausrichtung Style erstellen 156 Cent 165 Styles Non Windows 156 Clipper Summen hinzuf gen 109 CodeReporter Version 5 Textausgabeobjekte erzeugen 155 Indexdateien 5 Textobjekte hinzuf gen 109 CodeReporter Vorschauausgabeobjekte 107 110 Ansichtsoptionen 158 Zahle
195. format Ein null terminiertes Zeichenarray das das Stan dard Datumsformat enth lt Diese Zeichenkette sollte aus den Schablonenformatierzeichen beste hen D M C Y report4dateFormat legt eine Kopie von format an so da format auf tempor ren Speicher zeigen kann R ckgaben 0 Erfolg lt 0 Fehler report ung ltig oder nicht gen gend Speicher um format zu kopieren Siehe auch obj4dateFormat 249 CodeReporter 2 0 API report4decimal Aufruf int report4decimal REPORT4 report char decimalChar Beschreibung Mit dieser Funktion wird das Zeichen bestimmt das bei numeri schen Ausgabeobjekten die ganzen Zahlen von den Bruchwerten trennt Parameter report Ein Zeiger auf den Report bei dem das Dezimal zeichen verwendet wird decimalChar Das als Dezimalzeichen zu verwendende Zeichen Wird diese Funktion nicht aufgerufen geht das Programm vom Dezimalpunkt aus R ckgaben 0 Erfolg lt 0 Fehler report ist ung ltig Siehe auch obj4decimals report4do Aufruf Beschreibung Achtung 250 int report4do REPORT4 report Mit dieser High Level Funktion wird der Report auf das ausge w hlte Ger t ausgegeben Bei der Ausgabe unter Windows deaktiviert report4do das mit report4parent bezeichnete Elternfenster des Reports und er zeugt ein Ausgabefenster das den Report anzeigt Nach Ab schlu des Vorgangs sendet das Ausgabefenster eine CRM_RE PORTCLOSED Meldung an das Elternfenster
196. g um die Dialogbox 109 CodeReporter 2 0 Berechnungsobjekt aufzurufen Klicken Sie auf Neue Ber Geben Sie als Namen f r die Berechnung PROZENTANTEIL und als Berechnungsausdruck LOOKAHD gt TOTSALES TITELSUMME ein und klicken Sie auf OK Die neue Berechnung PROZENTANTEIL wird in die Berechnungsobjekt Liste bernommen Klicken Sie sie mit der linken Maustaste an und plazieren Sie die Berechnung in der Gruppe Body Klicken Sie auf die Schaltfl che Fertig um die Dialogbox Berechnungsobjekt zu schlie en Markieren Sie das neu erstellte Berechnungsausgabeobjekt rufen Sie das Ob jektmen auf rechte Maus bzw Eingabetaste und aktivieren Sie die Men op tion Objektdefinition Da der Prozentanteil in Abb 5 7 zwei Nachkommastel len aufweist und ein Prozentwert ist m ssen diese Attribute entsprechend einge stellt werden Klicken Sie auf die Schaltfl che Prozent im Bereich Zahlenformat und ndern Sie die Anzahl der Nachkommastellen auf zwei Klicken Sie auf OK um die Dialogbox zu schlie en EN ke VERKAUF Ge N chste Schlie en e mi XYZ Verkaufs GmbH Verkaufs bersicht Gesamtverkauf 8 802 65 Prozentanteil am Verk ufername Verk ufe Gesamtverkauf Smith John 9432 10 491 James Donald 5 092 33 57 85 Mann Horace 15 00 0 17 Levy Eugene 2 010 31 22 84 Stein Gottlieb 430 67 489 Wayne Jonathan 4801 25 9 10 Cypher Scott 20 99 0
197. g Productions Ltd LR221601 PARIOL Paradise Products HS016301 BLANDI Bland Or Not GD02630 e ER 2 Abb 5 Teilausgabe von bung Nr 3 Eine berschrift f r den Report geh rt in den Titelbereich Alle Elemente darin werden oben auf der ersten Seite vor allen anderen Ausgabeobjekten einschlie lich des Seitenkopf Bereichs ausgegeben Auf diese Weise k nnen Sie den Bereich als Deckblatt f r den gesamten Report benutzen Einen Titelbereich erstellen Sie ber die Men option BEREICH NEUER TITELBE REICH und der neue Bereich wird eingerichtet Die berschrift Inhalt von COMPANY DBF wird als statischer Text betrach tet einmal in den Report eingebracht bleibt sein Wert unver ndert Um stati schen Text in den Report einzuf gen klicken Sie in der Tastenleiste auf die Taste Text oder aktivieren die Men option OBJEKT TEXT Der Mauszeiger wird zum Texteinf gecursor mit dem sich die Position des Textausgabeobjekts bestimmen l t Stellen Sie den Mauszeiger in den neuen Titelbereich und klicken Sie die linke Maustaste um so die linke obere Ecke des Ausgabeobjekts zu bestimmen Da nach wird die Dialogbox Text f r Textobjekt eingeben ge ffnet um Ihren Text aufzunehmen Geben Sie Firmenliste bzw eine andere aussagekr ftige berschrift ein und klicken Sie auf OK um die Erzeugung des Objekts abzuschlie en 18 bungen Das neue Ausgabeobjekt sollte in einer f r das Aug
198. ge Erst wenn dieser Reportentwurf vom Urheber in diesem Fall der F rderergesell schaft freigegeben wird kann mit dem eigentlichen Aufbau des Reports begonnen werden Den Entwurf auswerten Der fertige Entwurf enth lt s mtliche f r den Report erforderliche Informationen Sicherlich ist an dieser Stelle die Versuchung gro CodeReporter aufzurufen und sofort mit der Arbeit am Report zu beginnen Es sind jedoch weitere Pla nungsschritte erforderlich um den Einsatz von CodeReporter hinreichend pro duktiv zu gestalten Zun chst geht es darum den Entwurf auszuwerten und die einzelnen Elemente typenm ig festzulegen Es sind Fragen zu bedenken wie ndert sich diese Information innerhalb des Reports Besteht die M glichkeit da diese Infor mation bei jeder Ausgabe des Reports anders lautet Wird diese Summe berech net Ermitteln Sie anhand des Reportentwurf die einzelnen Elemente und be zeichnen Sie sie mit Ausdr cken siehe Abb 1 2 wie z B Db Feld Diese Daten stammen aus einer Datenbank Grafik bezeichnet ein als Datei abgelegtes Bild Verzichten Sie auf Elemente Briefkopf usw die Ihr Drucker nicht mit ausgibt Statischer Text Dieser Text ndert sich innerhalb des Reports nicht Berechneter Text Summe Diese Informationen setzen sich aus zwei oder mehr Elementen des Reports zusammen Summe Diese Information summiert numerische Daten auf Linien Sonstige Elemente wie Seitenzahlen oder aktuel
199. genommen und das Objekt wird entspre chend angepa t Aktivieren Sie wie oben beschrieben die Dialogbox f r das Ausgabeobjekt CREDIT Die Optionsschaltfl che Null anzeigen im rechten unteren Bereich der Dialogbox ist ausgew hlt Klicken Sie auf die Schaltfl che um sie zu deaktivieren und auf OK um die Dialogbox zu schlie en Wiederholen Sie diese Schritte auch f r das Ausgabeobjekt DEBIT Gr e von Body ver ndern Lassen Sie sich mit der Men option DATEI DRUCKBILD EINSEHEN den Report anzeigen Zwischen den ausgegebenen Zeilen ist jeweils eine Leerzeile vorhan den Das liegt daran da die Gruppe mit der voreingestellten H he von 0 84 cm 0 33 angelegt wurde die Buchstaben f r das Ausgabeobjekt aber lediglich etwa 0 43 cm 0 17 hoch sind Um die Leerzeilen zu entfernen kann man die H he des Reportbereichs an die des Ausgabeobjekts angleichen Die Angleichung kann entweder ber die Gr enhenkel des Bereichs oder die unmittelbare Eingabe der Gr e in der Dialogbox Bereich bearbeiten erfolgen Hier erl utern wir die erste Methode w hrend die zweite weiter unten bei der Bearbeitung des Gruppenkopfbereichs Kunde eingesetzt wird Ziehen Sie den linken bzw rechten Henkel des Bereichs Body mit der Maus bis der Bereich kleiner ist als der der drei Ausgabeobjekte Wenn Sie die Maus taste loslassen versucht CodeReporter den Bereich kleiner als die Reportobjekte zu machen abe
200. gewertet Hat sich der Wert des Ausdrucks seit der letzten Auswertung ver n dert erfolgt die Ausgabe Ist der Wert gleichge blieben wird das Ausgabeobjekt ignoriert R ckgaben 0 Erfolg lt 0 Fehler obj ist ung ltig obj4displayZero Aufruf int obj4displayZero OBJ4 obj int displayZero Beschreibung Diese Funktion gibt an ob ein Nullwert f r ein numerisches Ausgabeobjekt ausgegeben werden soll oder nicht Hat das angegebene Ausgabeobjekt als Ergebnis keinen Zahlen wert zeigt diese Funktion keine Wirkung Parameter obj Ein Zeiger auf das Ausgabeobjekt f r das die Option Null anzeigen eingerichtet wird 226 Funktions bersicht displayZero Dieses Wahr Falsch Flag kann zwei Werte an nehmen 1 Hat displayZero den Wert 1 wahr werden Nullwerte ausgegeben Wird diese Funktion nicht aufgerufen geht das Programm von die sem Wert aus 0 Hat displayZero den Wert O falsch werden f r das angegebene Ausgabeobjekt keine Null werte ausgegeben R ckgaben 0 Erfolg lt 0 Fehler obj ist ung ltig Siehe auch obj4brackets obj4numericType obj4exprCreate Aufruf OBJ4 obj4exprCreate AREA4 area EXPR4 expr long x long y long width long height Beschreibung Diese Funktion erzeugt ein Ausdrucksausgabeobjekt der ver wendete Ausdruck wurde mit der CodeBase 5 Funktion expr4 parse erstellt Parameter area Dieser AREA4 Zeiger bezeichnet den Reportbe reich in den das neue Ausdrucksa
201. gewertet weicht der ermittelte Wert von der letzten R cksetzbedingung ab erfolgt die Ausgabe Hinweis Wie man die Ausgabe mit Hilfe einer Wahr Falsch Bedingung steu ert entnehmen Sie bitte dem Abschnitt Einen Bereich unterdr cken im Kapitel Bereiche Das Ausgabeobjekt DBF gt Monar in Abb 5 9 verwendet die Option Einmal aus geben mit einem Unterdr ckungsausdruck der eben diesen Ausgabewert enth lt Mit der ersten Ausgabe von Januar wird der Monat ausgegeben Da sich beim zweiten Eintrag der Wert der Einmal ausgeben Bedingung von DBF gt MoNAT nicht ndert wird der Monat nicht ausgegeben Um die Einmal anzeigen Bedingung f r ein Objekt zu ndern bzw zu stornieren aktivieren Sie EINMAL AUSGEBEN im Objektmen Nehmen Sie nach dem Erschei nen der Dialogbox Objektausgabe unterdr cken die erforderlichen nderungen an der Unterdr ckungsbedingung vor oder deaktivieren Sie das Kontrollk stchen Einmal ausgeben damit das Ausgabeobjekt bei jeder Zur cksetzung der Grup pe angezeigt wird Sie k nnen alle Ausgabeobjekttypen auf Einmal ausgeben einrichten Textobjekte Ein Ausgabeobjekt einfachster Art ist ein Objekt mit statischem Text Ein solches Objekt besteht aus einer alphanumerischen Zeichenkette die w rtlich im Report wiedergegeben wird Oft dienen Textobjekte zur Bezeichnung des Reports z B Titel zur Erl uterung von nicht eindeutigen Reportelementen oder dazu bestimmte
202. h a E i GE we f ek 100 00 1234 1234 Smith Jane 123 West 3rd 140 44 4321 4321 Rawji Fatim 204 East 44th 304 10 6543 6543 Jones Jon 1 Microsquish 65 00 9124 9124 Sanders Mel Hamline amp 4th 102 99 6612 6612 West Davie 4420 14th St AUS ame 04 Dt endal ei Abb 2 2 Zusammengesetzte Datendatei Obgleich die zusammengesetzte Datendatei die Felder der Masterdatei enth lt m ssen die der Slavedatei notwendigerweise nicht ebenfalls vorhanden sein 49 CodeReporter 2 0 Hierbei handelt es sich um eine unmittelbare Auswirkung der Master Slave Beziehung Bei Einsatz der Relation werden die Datens tze der Masterdatei zur Lokalisierung entsprechender Datens tze in der Slavedatei verwendet Allerdings sind f r die Masterdatei keine Verweise auf alle Datens tze der Slavedatei erfor derlich letztere wird lediglich f r Suchoperationen gebraucht Die Schritte die CodeReporter dabei intern unternimmt sind 1 Auf einen Datensatz in der Masterdatei zeigen 2 Die gemeinsamen Daten in der Masterdatei bernehmen vom Masterausdruck definiert 3 Einen Datensatz mit denselben Daten in der Slavedatei suchen bildet jetzt den zusammengesetzten Datensatz 4 Schritte 1 3 wiederholen bis alle Datens tze der Masterdatei durchlaufen worden sind Enth lt die Masterdatei keinen Verweis auf einen bestimmten Datensatz in der Slavedatei wird dieser offensichtlich nicht in die zusammenge
203. herweise f r die Formel keine Berechnung definiert werden man k nnte genauso gut den Ausdruck in das Ausdrucksausgabeobjekt schreiben M te der Report allerdings auch noch die Gesamtsumme aller Geh lter im Berechnungszeitraum oder andere Rechen operationen in bezug auf die Angestellten enthalten empfehlen wir den Einsatz einer Berechnung Die Verwendung einer Berechnung anstatt die Rechenoperation mehrere Male in verschiedene Ausdrucksobjekte zu schreiben verk rzt die Entwicklungszeit dar ber hinaus l t sich der Report leichter ver ndern und auf dem neuesten Stand halten Hinweis Wird ein Ausdruck innerhalb eines Reports mehr als einmal verwen det ist die Erstellung einer Berechnung empfehlenswert Eine Berechnung selbst kann wiederum weitere Berechnungen enthalten Das hei t Sie k nnen eine Berechnung mit der Definition einer anderen Berechnung verschachteln Das Nettogehalt zum Beispiel errechnet sich aus dem Bruttogehalt minus Ab z gen Also kann eine Berechnung des Nettogehalts folgenderma en aussehen GES_ANG_BEZ ABZUG Dabei handelt es sich bei GES_ANG_BEZ und ABZuG um bereits vorhandene Berechnungen Berechnungen definieren Eine Berechnung wird ber die Dialogbox Berechnungsobjekt und Klicken auf die Schaltfl che Neue Ber erstellt Die Dialogbox hnelt der in Abb 7 1 dar gestellten 126 Ausgabeobjekte Die zwei Elemente einer Berechnung sind der Name und der Berechnungs
204. hlen die positiven Zahlen werden im ersten Bereich ausgegeben Klicken Sie nach Ihrer Eingabe auf OK Per Voreinstellung gibt es f r den ersten Bereich keine Unterdr ckungsbedin gung so da jeder Wert sowohl positiv als auch negativ der Datendatei NUMBERS DBF angezeigt wird Rufen Sie also zur Eingabe einer Unterdr k kungsbedingung f r den ersten Bereich die Dialogbox Bereich bearbeiten auf oder klicken Sie die linke Maustaste w hrend der Mauszeiger im ersten Bereich steht Geben Sie folgenden Ausdruck in das Editierfeld Unterdr ckungsbedin gung ein NUMBERS gt NUMERIC lt 0 Ist der Wert dieses Feldes eine negative Zahl wird der erste f r die Ausgabe von positiven Zahlen benutzte Bereich unterdr ckt Klicken Sie mit der Maus in der Tastenleiste auf die Schaltfl che Feld und klicken Sie in der Popup Liste auf das Feld nuMERIC um es auszuw hlen 91 CodeReporter 2 0 Stellen Sie den Mauszeiger in den ersten Bereich der Zeiger verwandelt sich in einen Feldzeiger und dr cken Sie die linke Maustaste um das Feld zu positio nieren Einzelheiten zum Positionieren und Verschieben von Ausgabeobjekten finden Sie im Kapitel Ausgabeobjekte W hlen Sie das Feld numer c in der Popup Liste noch einmal an und positionie ren Sie es im zweiten Bereich Klicken Sie danach in der Listbox Feldobjekte auf die Schaltfl che Fertig Aktivieren Sie die Men option STYLE SEITEN LAY
205. hnis und Namen der Reportdatei enth lt Geben Sie keine Erweiterung am Dateinamen an geht report4 retrieve von der Erweiterung REP aus Hat openFiles einen wahren Wert 1 versucht report4retrieve die im Report genannten Daten dateien zu ffnen falls sie noch nicht ge ffnet sind Kann eine angegebene Datendatei nicht lokalisiert werden wird diese Datei sowie alle ihr zugeordneten Slavedateien aus dem Report aus geklammert Alle Ausgabeobjekte und oder Aus dr cke die sich auf die fehlenden Datendateien beziehen werden automatisch aus dem Report entfernt Hat openFiles einen falschen Wert 0 geht das Programm davon aus da alle Dateien bereits ge ffnet sind Ist dataPath ein Nullstring benutzt report4 retrieve zur Lokalisierung der Datendateien die in der Reportdatei gespeicherten Pfade Wenn die Datei keine Pfadnamen enth lt geht report4re trieve davon aus da sich die Datendateien im aktuellen Verzeichnis befinden Ist dataPath nicht Null enth lt es als Zeichenkette Laufwerk und oder Verzeichnis in dem sich die Datendateien des Reports befinden Das Ver zeichnis dataPath setzt alle innerhalb des Reports gespeicherten Pfade au er Kraft Der Report wurde erfolgreich geladen Den zu r ckgegebenen REPORT4 Zeiger k nnen auch andere Funktionen des Reportmoduls benutzen 323 Siehe auch report4save Aufruf Beschreibung Hinweis Achtung Parameter 324 CodeReporter 2 0 0
206. ht meldet CodeReporter da dem Ausdrucksausgabeobjekt ein Name f r die neue Datendatei fehlt Geben Sie NAME in das Editierfeld Neuer Name ein und klicken Sie auf OK Klicken Sie auf die Schaltfl che Dateiauswahl und geben Sie in der Dialogbox als Bezeichnung f r die neue Datendatei PERSONS DBF ein Da alle anderen Einstellungen der Dialogbox Schablone f r Ausgabedatei in Ordnung sind klicken Sie auf OK um die Schablone zu speichern Falls erforderlich k nnen Sie ber die Men option REPORT SORTIERAUSDRUCK einen entsprechenden Ausdruck f r den Report eingeben Die Datens tze werden dann in dieser Reihenfolge in die Ausgabedatei geschrieben Geeignete Sortier ausdr cke sind LNAME FNAME EMPID Oder SALARY Die neue Datendatei PERSONS DBF wird ber die Auswahl der Men option DATEI IN DATENDATEI DRUCKEN erzeugt 177 CodeReporter 2 0 Laden Sie die Datei PERSONS DBEF mit DATEI NEU und speichern die aktuelle Datei vorher ab um zu berpr fen ob die Daten wunschgem bernommen worden sind 178 Funktions bersicht 12 Funktions bersicht Hinweis Im vorliegenden Kapitel erl utern wir die Funktionen und Techniken f r den Einsatz des Reportmoduls in C C CodeBasic Programmie rer lesen bitte Anhang F Die Funktionen des Reportmoduls sind dazu da ma geschneiderte Reports zu entwickeln Mit dem Reportmodul ist es ein leichtes Daten aus Daten Index und Memo
207. ht vollauf zufrieden sind wenden Sie sich mit Ihrem Problem einfach an unsere Qualit tssicherung Technische Unterst tzung Damit wir Ihnen bei Schwierigkeiten rasch helfen k nnen sollten Sie unserem Support Personal folgende Angaben machen k nnen 1 Name Telefon Telefaxnummer Name Ihrer Firma 2 Die Tatsache da Sie mit CodeReporter 2 0 arbeiten 3 Die Seriennummer von CodeReporter Diese finden Sie entweder auf den Programmdisketten oder vorne in diesem Handbuch 4 Das Betriebssystem mit genauer Versionsnummer 5 Die Dateikompatibilit t der CodeReporter Version mit der Sie arbeiten Fox Pro dBASE IV dBASE IH Clipper 6 Das Datum der Dateien auf den Programmadisketten Von Zeit zu Zeit erschei nen neue Versionen von CodeReporter Die Version mit der Sie arbeiten kann dann anhand des Datums auf den Programmadisketten exakt ermittelt werden Wenn Sie sich den Inhalt der Disketten anzeigen lassen wird eben falls das Datum mit ausgegeben 7 Die Gr e der CodeReporter Programmdatei mit der Sie arbeiten Sollen wir einen Report f r Sie testen der nicht richtig funktioniert ben tigen wir neben den obigen Angaben a Eine Kopie des Reports entweder als Nachricht in unserer Mailbox oder auf Diskette Die in dem Report verwendeten Daten Index und Memodateien sind ebenfalls erforderlich b Speichern Sie die Reportdatei ohne Pfadnamen ab Wie man das macht entnehmen Sie bitte dem Abschnitt Pf
208. i der Ausgabe Genaue bereinstimmung siehe Relationstypen Gesamtsummen Grafiken aus anderen Anwendungen einf gen Bitmaps und Definition dynamische erstellen Proportionen skalieren statische Grafikobjekte skalieren Gr enhenkel 63 88 105 118 group4create group4footerFirst group4footerNext group4footerPrev group4free group4headerFirst group4headerNext group4headerPrev group4numFooters group4numHeaders group4repeatHeader group4resetExprSet group4resetPage 111 338 112 110 111 165 111 165 165 5 5 179 76 131 120 120 119 121 120 122 122 121 122 122 203 204 204 206 206 207 208 209 209 210 211 group4resetPageNum 212 group4swapFooter 213 group4swapHeader 213 Gruppen anlegen 76 Ausdruck siehe Gruppenausdruck ausw hlen 82 bearbeiten 82 Beispiel f r 73 Bereiche und 76 Gruppenz hler 78 innerhalb einer anderen Gruppe 77 83 Kopf und Fu 74 76 77 84 107 Kopf und Fu austauschen 78 Kopf wiederholen 8l l schen 82 Namen 77 Position 78 Reihenfolge bei der Ausgabe 84 Reportentwurf und 39 R cksetzbedingung 74 81 82 R cksetzbedingung und Drucken ER Seite zur cksetzen 81 84 167 Seitenzahl zur cksetzen 8l Verschachtelung 77 voreingestellte Namen 77 Was ist eine Gruppe 72 Gruppenausdruck Definition 74 Gruppen ohne 74 IIFO 293 Indexdateien Arbeitsindexdateien 61 ffnen 61 unterst tzte 5 Info Fenster 77 158 Installation 5 Komma siehe Form
209. i hinzuzuf gen brauchen Sie sie lediglich zu markieren und auf die Schaltfl che Hinzuf gen bzw Alle hinzuf gen zu klicken Schablone Wir Ausgabedatet Felder Hinzuf gen gt gt lt lt Entfernen Alle hinzuf gen gt gt lt lt Alle entfernen Feldnamen ndern Feldbreite ndern Objektinformationen Feldinformationen Datensatzausgabegruppe Ausgabe Datendatei Co Abb 11 3 Dialogbox Schablone f r Ausgabedatei In F llen in denen es sich bei der Bezeichnung des Objekts nicht um einen g ltigen Feldnamen handelt z B bei Summen und Berechnungen oder falls in der Ausgabedatendatei bereits ein gleichnamiges Feld vorhanden ist bittet Code Reporter um die Eingabe eines neuen Feldnamens 175 CodeReporter 2 0 Nach dem Hinzuf gen k nnen die Feldangaben ber die Schaltfl chen Feldna men ndern und Feldbreite ndern neu definiert werden Datensatzausgabegruppe Mittels des R cksetzausdrucks der Datensatzausgabegruppe bestimmt Code Reporter den Zeitpunkt an dem der Inhalt der Feldausgabeobjekte in einen neuen Datensatz geschrieben wird Tritt f r die angegebene Gruppe eine R ck setzbedingung ein wird auf der Platte ein neuer Datensatz angelegt und die Werte des Ausgabeobjekts in diesen Datensatz geschrieben die verwendeten Werte stammen aus dem letzten Datensatz der Untermenge der vorhergehenden Gruppe d h
210. i vielen Reports sind Anpassungen erforderlich damit sie den an sie ge richteten Anforderungen gerecht werden Die genannten und auch andere Einstellungen k nnen nach der Anlage eines Reports innerhalb der Dialogboxen R nder und Reportvorgaben vorgenom men werden R nder und Seitenformat In der Dialogbox R nder Abb 10 1 die mittels der Men option REPORT R NDER aufgerufen wird k nnen Sie sowohl die R nder des Reports als auch die Seitenbreite einstellen R nder und Seitenformat werden automatisch auf die maximal verf gbare Druckfl che des Standard Windows Druckers eingestellt Bei den meisten Nadel druckern bedeutet das da der Report sich anfangs ber die ganze Seite erstreckt Bei anderen Druckern insbesondere bei Laserdruckern gibt es einen hardware m ig eingestellten nicht bedruckbaren Bereich der beim Drucken frei bleibt CodeReporter ermittelt diesen Bereich automatisch und sorgt daf r da die Randeinstellungen f r einen Report den nicht bedruckbaren Bereich des Standard Druckers nicht unterschreiten R nder Die Randeinstellungen des Reports erfolgen ber die Eingaben in die Dialogbox R nder Um den Rand oben unten links oder rechts neu einzustellen ndern Sie einfach den Wert im jeweiligen Editierfeld 162 Reports gestalten Hinweis Seitenkopf und Seitenfu Bereiche werden zwischen dem oberen und dem unteren Rand ausgegeben Ist der obere Rand zum Beispiel auf
211. ialogbox Berechnungs objekt markieren 2 den Mauscursor auf die gew nschte Stelle in einem Reportbereich positio nieren und 127 CodeReporter 2 0 3 die linke Maustaste einmal klicken Nach der Plazierung des Berechnungsobjekts verl t CodeReporter automatisch den Einf gemodus Hinweis L schen Sie ein Berechnungsausgabeobjekt wird damit nicht gleich zeitig auch die Berechnung gel scht auf die es sich gr ndet Summen Mit einer Summe hat der Reportentwickler die M glichkeit Zahlendaten aus numerischen Berechnungen und numerischen Datenfeldern zusammenzufassen und innerhalb des Reports auszugeben Im wesentlichen handelt es sich bei einer Summe um ein Ausgabeobjekt das seinen Wert von einem zusammengesetzten Datensatz zum n chsten beh lt wobei der Wert bei jedem zusammengesetzten Datensatz aktualisiert wird Summen basieren auf bereits vorhandenen numerischen Berechnungen und nu merischen Datenfeldern Infolgedessen k nnen Mehrfachsummen die auf densel ben Daten beruhen auch dieselbe Berechnung verwenden Im Gegensatz zu Berechnungen m ssen Summen mit einem Objekt verbunden sein Das liegt daran da eine Summe ihren Wert an einer bestimmten Stelle und zu einem bestimmten Zeitpunkt innerhalb des Reports erreicht Die Ver kaufssumme f r die einzelnen Verk ufer zum Beispiel ist bei jedem anders Ein Verweis auf diese Summe im Titelbereich des Reports h tte einen nicht vorhan denen Wert zur Folge
212. ie Reportstruktur durch einen Aufruf an report4init Hierdurch wird intern Speicher reserviert und zahlreiche Voreinstellungen vorgenommen 3 Stellen Sie mit report4querySet und report4sortSet die entsprechenden Abfrage und oder Sortierbedingungen her 4 Ver ndern Sie die Voreinstellungen eventuell mit den folgenden Funktionen report4caption report4currency report4decimal report4hardResets report4margins report4pageSize report4separatorund report4titlePage 5 Legen Sie die Gruppen des Reports mit group4create an Da die Bereiche Seitenkopf fu und Titel Schlu automatisch von report4init angelegt werden brauchen Sie sie nicht zu erzeugen 6 Legen Sie die Gruppenbereiche mit area4create an 7 Erzeugen Sie mit der CodeBase 5 Funktion expr4calc_create reportweite Berechnungen falls n tig 8 Erzeugen Sie die Ausgabeobjekte unter Verwendung der entsprechenden Funktionen und stellen Sie sie in die gew nschten Bereiche Nachdem Sie den Report auf diese Weise aufgebaut haben k nnen Sie zu seiner Ausgabe die bliche load do und free Abfolge verwenden Angepa te Ausgabetreiber Das CodeReporter API enth lt zwei Treiber f r die Plattformen Microsoft Wind ows und MS DOS Sollen die Reportfunktionen auf anderen Plattformen verwen det oder eine angepa te Anzeigebibliothek z B CodeScreens eingesetzt wer den mu der Entwickler eine eigene report4do entsprechende Funktion erstel len Die H
213. ie gepackt werden Der Vorteil besteht darin da Suchopera tionen rascher und effizienter durchgef hrt werden als bei einem Subindex W hlen Sie zur Durchf hrung einfach die Option Keiner in der Listbox Vorh Subindizes an Es wird kein Subindex ausgew hlt und der Masterausdruck wird als Datensatznummer bernommen Der Entwickler des Reports ist daf r verantwortlich da die Datensatznummer f r den ausgewerteten Masterausdruck auf die Datensatznummer der Slavedatei verweist die dem Datensatz der Masterdatei entspricht Hinweis Enth lt der ausgewertete Masterausdruck einen Verweis auf eine nicht vorhandene Datensatznummer lt 0 oder gt Anzahl der Slavedaten s tze generiert CodeReporter bei der Erstellung des Reports einen Fehler mit der Nummer 70 Die Dialogbox Datendatei Verkn pfungen wird auch dazu benutzt den Typ der Relation von Master zu Slavedateien einzustellen Die einzelnen Relationstypen bestimmen wie Datens tze aus der Slavedatei abgerufen werden N here Informationen zu den verschiedenen Relationstypen finden Sie weiter oben Der voreingestellte Relationstyp genaue bereinstimmung kann mit Hilfe der Optionsschaltfl chen Filterrelation oder ungef hre bereinstimmung auf einen neuen Wert gesetzt werden Die Optionsschaltfl chen unter dem Begriff Fehlerbehandlung steuern das Verhalten von CodeReporter wenn bei einer Lookup Operation in einer Slave datei keine
214. ien siehe Abb 2 7 Eine Slavedatei hinzuf gen Eine Slavedatei l t sich ber die Auswahl der Masterdatei und die Men option NEUER SLAVE bzw durch Doppelklicken auf die Schaltfl che der Masterdatei zum Relationsset hinzuf gen Dabei spielt es keine Rolle wenn die Masterdatei bereits die Slavedatei einer anderen Datendatei ist 58 Relationale Reports Mit der Dialogbox Datendatei ausw hlen wird die Slavedatei aufgesucht und ge ffnet W hlen Sie die Slavedatei wiederum anhand der Verzeichnis und Dateiauswahlbox aus Relation Neuer slave lave l schen Verkn ptung bearbeiten Schlie en Abb 2 7 Dialogbox Relation bearbeiten Eine Relation bearbeiten Die Dialogbox Datendatei Verkn pfungen Abb 2 8 wird dazu verwendet die Relation zwischen einer Master und einer Slavedatei zu definieren und zu bearbeiten Diese Dialogbox wird bei der Definition einer neuen Slavedatei automatisch aufgerufen Sp ter l t sich die Box zwecks Bearbeitung der Rela tion nach der Markierung des entsprechenden Slavedateik stchen ber die Men option VERKN PFUNG BEARBEITEN bzw durch Klicken der rechten Maustaste auf die Schaltfl che der Slavedatei wieder aufrufen Handelt es sich bei der ausgew hlten Dateischaltfl che um den Top Master der Relation und aktivieren Sie VERKN PFUNG BEARBEITEN oder klicken die rechte Maustaste wird die Dialogbox Master Indexdateien aufgerufen Mit Hilfe dieser Dialog
215. iert dann als Slavedatei von COMPANY DBEF und als Masterdatei von SALES DBEF Machen Sie mit Hilfe der Tab Taste STORES DBF zur aktuellen zur Zeit COMPANY DBEF Datendatei oder klicken Sie STORES DBF unmittelbar mit der linken Maustaste an Um die Datei SALES DBEF zur Relation hinzuzuf gen aktivieren Sie die Men option NEUER SLAVE bzw doppelklicken auf die Schaltfl che der Datei In beiden F llen wird die Dialogbox Datendatei ausw hlen aufgerufen in der die Datendatei SALES DBF markiert und ausgew hlt werden kann Nach der Dateiauswahl wird die Dialogbox Datendatei Verkn pfungen aufge rufen um die Relation entsprechend einzurichten Nehmen Sie folgende Ein stellungen vor und klicken Sie auf OK W hlen Sie den Subindex COMP_STORE aus Geben Sie als Masterausdruck cOMPANY gt COMPID STORES gt STOREID an Aktivieren Sie die Optionsschaltfl che Filterrelation Vergewissern Sie sich da als Standard Fehlerbehandlung Felder l schen eingestellt ist Nachdem Sie diese Einstellungen vorgenommen und auf OK geklickt haben wird die Datei SALES DBF unterhalb von STORES DBEF eingef gt Die Positionierung der Datei EXPENSES DBF erfolgt aufgrund derselben ber legungen wie bei SALES DBF EXPENSES DBF ben tigt Daten aus den Dateien COMPANY DBEF und STORES DBF aber nicht aus SALES DBE Infolgedessen sollte diese Datei dieselbe Ebene einnehmen wie SALES DBEF Aktivieren Sie w
216. ilt werden darf sollten Sie die Schaltfl che Seitenumbruch deaktivieren Einen Bereich unterdr cken Ein logischer dBASE Ausdruck l t sich mit einem Bereich verbinden um zu bestimmen ob der Bereich ausgegeben werden soll oder nicht Ergibt der in das Editierfeld Unterdr ckungsbedingung eingegebene dBASE Ausdruck einen lo gisch wahren Wert wird der Bereich und alle Objekte darin ignoriert Diese Einrichtung l t sich dazu benutzen das Erscheinungsbild bzw den Inhalt des ausgegebenen Bereichs je nach Dateninhalt des Reports verschieden zu gestalten Dazu erstellt man zwei oder mehr Bereiche im selben Teil der Gruppe Kopf oder Fu weist die verschiedenen Daten den verschiedenen Bereichen zu und bestimmt wann welche r Bereich e unterdr ckt werden soll en Enth lt ein Feld z B einen negativen numerischen Wert k nnte man ihn sinni gerweise in Rot ausgeben Die Objekte in den beiden Versionen sind bis auf die Ausgabe der roten Schrift im Falle von Minuszahlen identisch Jeder Bereich erh lt eine Unterdr ckungsbedingung Schwarze Schrift bei negativen Werten unterdr cken DBF gt FELD lt 0 Rote Schrift bei positiven Werten unterdr cken DBF gt FELD gt 0 Ein Beispiel f r das Unterdr cken eines Bereichs finden Sie am Ende des vor liegenden Kapitels 89 CodeReporter 2 0 Seitenkopf und Seitenfu Bereich Die Seitenkopf Bereiche werden oben auf jeder Seite des Reports ausgegeben und enthalte
217. iltert Ist queryExpr ein Nullstring werden alle Daten s tze der zusammengesetzten Datendatei im Re port verwendet 321 CodeReporter 2 0 Hinweis Im Abfrageausdruck vorhandene Feldnamen m ssen mit Daten dateikennzeichner verwendet werden So ist DBF gt NAME SCHMIDT Z B ein g ltiger Abfrageausdruck R ckgaben 0 Die Abfrage wurde erfolgreich eingerichtet lt 0 Fehler Siehe auch relate4querySet relate4sortSet report4sortSet report4relate Aufruf RELATE4 amp report4relate REPORT4 amp Beschreibung Diese Funktion gibt einen Zeiger auf die mit dem Report ver bundene RELATE4 Struktur zur ck Parameter REPORT4 Ein REPORT4 Zeiger auf den Report f r den der RELATE4 Zeiger zur ckgegeben wird R ckgaben Nicht Null Der mit dem Report verbundene RELATE4 Zeiger 0 Fehler Siehe auch report4querySet report4sortSet report4retrieve Aufruf REPORT4 amp report4retrieve CODE4 amp fileName openFiles dataPath Beschreibung Diese Funktion liest eine Reportdatei von der Platte ein und baut 322 die entsprechende REPORTA4 Struktur auf Parallel dazu wird im Hintergrund ein Relationsset mit der entsprechenden RE LATE4 Struktur erzeugt Parameter R ckgaben CODE4 fileName openFiles dataPath Nicht Null Anhang F CodeBasic API Ein Zeiger auf die CODE4 Struktur der Anwen dung er dient der Speicherverwaltung und der Fehlerbehandlung Eine Zeichenkette die Laufwerk Verzeic
218. in das Editier feld Name der Berechnung sowie den folgenden Ausdruck in das Editierfeld Berechnungsausdruck CREDIT_SUM DEBIT_SUM Klicken Sie auf OK um das Editierfeld zu schlie en und in die Dialogbox Berechnungsobjekt zur ckzukehren Markieren Sie in der Listbox die neue 30 bungen Berechnung sOLL_HABEN und positionieren Sie sie im zweiten Fu bereich der Kunden Gruppe Sie haben gut Name der Berechnung SOLL HADEN Berechnungsausdruck CREDIT_SUMI DEBIT_SUMI Abb 12 Dialogbox Berechnungsobjekt Schuldet der Kunde der Firma Geld enth lt das Ergebnis der Berechnung SOLL_HABEN eine Minuszahl Um den dritten Reportbereich Sie schulden uns jedoch richtig auszugeben sollte der Wert eine positive Zahl sein Erzeugen Sie im dritten Fu bereich der Kunden Gruppe also ein Ausdrucksausgabeobjekt wie oben die Seitenzahl und geben Sie folgenden Ausdruck ein SOLL_HABEN 1 Dieser Ausdruck ergibt in allen F llen in denen ein Kunde der Firma Geld schuldet eine positive Zahl Fu bereiche unterdr cken Zum gegenw rtigen Zeitpunkt gibt der Report je einmal alle Soll und Haben werte f r einen Kunden die Summenwerte f r Soll und Haben und eine Zeile aus in der steht da die Firma dem Kunden Geld schuldet und umgekehrt jedoch nur eine dieser Aussagen kann stimmen Das hei t da die beiden letzten Bereiche bedingt unterdr ckt werden m ssen w
219. in einer separaten Memodatei gespeichert verhal ten sich genauso wie andere Felder auch Folgendes ist dabei zu bedenken Ist das Memofeld leer wird das Objekt mit einem Leerwert angezeigt Istdas Memofeld kleiner als das Ausgabeobjekt geht der bersch ssige Raum nutzlos verloren Istdas Memofeld gr er als das Ausgabeobjekt werden die bersch ssigen Daten ignoriert siehe Zeilenumbruch weiter oben 124 Ausgabeobjekte Ausdr cke dBASE Ausdr cke die lediglich ein oder zweimal im Report erforderlich sind lassen sich mit einem Ausdrucksausgabeobjekt ausgeben Oder andersherum ein Ausdrucksobjekt dient der Ausgabe eines ausgewerteten Ausdrucks im Report Enth lt eine Datendatei zum Beispiel getrennte Felder f r Vor und Nachnamen die im Report als Porombka Jonas erscheinen sollen k nnte man ein Aus drucksausgabeobjekt mit folgendem Inhalt verwenden TRIM DBF gt NACH_NAME DBF gt VOR_NAME Erzeugen CodeReporter wird durch Auswahl der Men option OBJEKT AUSDRUCK oder durch Klicken auf die Schaltfl che Ausdruck in den Einf gemodus f r Aus drucksausgabeobjekte versetzt An der Form des Mauscursors k nnen Sie erkennen da Sie sich im Einf ge modus befinden Bewegen Sie den Cursor in einen Reportbereich und klicken Sie die linke Maustaste um das Ausdrucksausgabeobjekt zu positionieren CodeReporter bittet um Eingabe eines Ausgangsausdrucks f r das Objekt in die Dialogbo
220. ine Routine zum Linienzeichnen if style style4index report obj gt style_index NULL obj NULL error 1 break mit style gt color Linienfarbe einstellen if report gt output_handle 1 Koordinaten obj gt x obj gt y einnehmen und einen Rahmen mit F llung zu obj gt x tobj gt w obj gt y obj gt h zeichnen else 194 Funktions bersicht Koordinaten obj gt x obj gt y einnehmen und einen Rahmen mit F llung zu obj gt x tobj gt w obj gt y obj gt h drucken break case obj4type_frame Routine zum Rahmenzeichnen if style style4index report obj gt style_index NULL obj NULL error 1 break mit style gt color Rahmenfarbe einstellen if char obj gt info 1 runde Ecken einstellen else gewinkelte Ecken einstellen if char obj gt info 1 1 Rahmen mit F llung einstellen else Rahmen ohne F llung einstellen if report gt output_handle 1 das entsprechende Rechteck von obj gt x obj gt y bis obj gt x tobj gt w obj gt y tobj gt h zeichnen else das entsprechende Rechteck 195 CodeReporter 2 0 API von obj gt x obj gt y bis obj gt x tobj gt w obj gt ytobj gt h drucken break default alle anderen Objekttypen ignorieren Ausgabeger t f r neue Seite freigebe
221. ine komplexe Relation durchgef hrt wird die f r die weiteren Filterrelationen mit Leerzeichen gef llte Felder ausgibt Abb 2 6 zeigt eine Masterdatei mit zwei Slavedateien in Relationen mit genauer bereinstimmung sowie als Filterrelationen Abb 2 6 Komplexe Relation mit einer Master und zwei Slavedateien Relationsset Zusammengesetzte Datendateien MASTER AAA 123 als Relationen mit genauer bereinstimmung SLAVE AAA 123 AAA APFEL 123 98765 AAA APFEL 47 A a EN Master Slavel Slave2 AAA ORANGE AAA PFIRSICH als Filterrelationen AAA 123 AAA APFEL SLAVE2 AAA 123 AAA ORANGE 123 98765 AAA 123 AAA PFIRSICH 123 76543 AAA 123 123 98765 123 32109 AAA 123 123 76543 AAA 123 123 32109 Master Slavel Slave2 56 Relationale Reports Achtung Eine Filterrelation darf bei einer Masterdatei mit zwei oder mehr Slavedateien nicht gleichzeitig mit Relationen mit genauer bzw un gef hrer bereinstimmung verwendet werden Relationen herstellen Bei der Entwicklung eines Reports sind die darin verwendeten Relationen beson ders wichtig Aus diesem Grund schlagen wir vor da Sie sich bei allen Reports in die mehrere Datendateien eingehen an die in Kapitel 1 erl uterten Schritte halten und u a die Relationen auf dem Papier en
222. int report4numGroups REPORT4 report Beschreibung Diese Funktion gibt die aktuelle Anzahl der im Report enthal Parameter 260 tenen Gruppen zur ck Das ist beim Durchlaufen der Gruppen in einem Report n tzlich report Dieser REPORT4 Zeiger bezeichnet den Report bei dem die Anzahl der Gruppen ermittelt werden soll Funktions bersicht R ckgaben 0 Der angegebene Report enth lt keine Gruppen gt 0 Anzahl der im Report enthaltenen Gruppen lt 0 Ein Fehler ist aufgetreten Siehe auch report4groupNext report4groupPrev group4first report4groupLast report4numsStyles Aufruf int report4numStyles REPORT4 report Beschreibung Diese Funktion gibt die aktuelle Anzahl der im Report enthal tenen Styles zur ck Das ist beim Durchlaufen der Styles in einem Report n tzlich Parameter report Dieser REPORT4 Zeiger bezeichnet den Report bei dem die Anzahl der Styles ermittelt werden soll R ckgaben gt 0 Anzahl der im Report enthaltenen Styles Jeder Report enth lt zumindest einen Style lt 0 Ein Fehler ist aufgetreten Siehe auch report4styleFirst report4styleNext report4styleLast report4stylePrev report4output Aufruf int report4output REPORTA4 report int outputHandle int useStyles 261 CodeReporter 2 0 API Beschreibung Der Aufruf dieser Funktion erfolgt vor der Erzeugung des Re Parameter 262 ports und weist report4do an den Report auf ein System Handle wie standard out s
223. inweis Der Funktion TRIM kommt bei der Ausrichtung von dBASE Aus dr cken die Datenbankfelder enthalten gro e Bedeutung zu Da Datenbankfelder eine feste L nge haben fehlende Daten werden mit Leerzeichen aufgef llt bewirkt deren Ausrichtung wenig oder gar nichts Ein zehn Zeichen umfassendes Ausgabeobjekt zum Beispiel enth lt ungeachtet der Ausrichtung immer zehn Zeichen und ist gleichzeitig links rechtsb ndig und mittig ausgerichtet Ein mittig ausgerichtetes Ausdrucksobjekt das zehn Zeichen beinhal tet z B SCHUH unterscheidet sich kaum von einem linksb n dig ausgerichteten da die Leerzeichen auch bei Verwendung einer Proportionalschrift ber cksichtigt werden Werden die Leerzeichen mit TRIMO entfernt wird scHUH zu SCHUH und die zen trierte Ausrichtung erscheint auch f r das Auge korrekt Bei Feldausgabeobjekten werden Leerzeichen automatisch entfernt 104 Ausgabeobjekte Proportionalschriften k nnen auch ohne den Einsatz der Funktion TRIM ausgerichtet werden Allerdings wird der ausgegebene Text in diesem Fall f r das Auge nicht korrekt ausgerichtet da die Leer zeichen ungeachtet ihrer Weite in der Zeichenkette ber cksichtigt werden Hinweis Wir empfehlen die Funktion TRIMO stets bei rechts bzw linksb n dig ausgerichtetem Text einzusetzen Gr e ver ndern Die Gr e eines Ausgabeobjekts l t sich auf zweierlei Art und Weise ver ndern Zum einen kann man neue Werte in das Editi
224. ion da sie bei anderen Werttypen n mlich Zeichenketten eingesetzt werden Name des Operators Symbol Verketten I 5 Verketten I 5 Beispiele Hans Schmidt wird zu Hans Schmidt ABC DEF wird zu ABCDEF Verketten I arbeitet hnlich h ngt aber alle endst ndigen Leerzeichen der ersten Zeichenkette an das Ende des Gesamtausdrucks an Beispiele Hans Schmidt wird zu HansSchmidt ABC DEF wird zu ABCDEF A _ D WA wird zu AD WU Vergleichsoperatoren geben ein logisches Ergebnis entweder wahr oder falsch zur ck Alle Operatoren mit der Ausnahme von Beinhalten arbeiten mit nu merischen Zeichen oder Datumswerten Beinhalten arbeitet mit zwei Zei chenketten und gibt wahr zur ck wenn die erste in der zweiten enthalten ist Name des Operators Symbol Gleich Ungleich lt gt oder Kleiner als Gr er als Kleiner oder gleich Gr er oder gleich Beinhalten 143 CodeReporter 2 0 Beispiele CD SABCD gibt wahr zur ck 8 lt 7 gibt falsch zur ck 5 4 1 gibt wahr zur ck Logische Operatoren geben ein logisches Ergebnis zur ck und arbeiten mit zwei logischen Werten Name des Operators Symbol Nicht Und Beispiele NOT T gibt T zur ck TT AND PI gibt F zur ck Kurz Ausdruck eingeben An vielen Stellen bittet CodeReporter den Reportentwickler um die Eingabe von dBASE Ausdr cken So erfordern zum Beispiel das Sortieren Abfr
225. ionsdateien Reportdateien Rahmen 1 97 223 221 224 224 225 226 226 227 228 229 230 230 231 232 233 233 234 235 236 236 237 238 239 240 240 241 242 101 294 167 165 66 180 339 CodeReporter 2 0 Ausgabeobjekte gruppieren 119 erstellen 118 Farbe 118 mit F llung 118 mit runden Ecken 118 Seitenumbruch innerhalb von 89 R nder einstellen 162 Kopf Fu und 163 nicht bedruckbarer Bereich 162 RECCOUNTO 294 RECNOO 294 Registrierung 4 relate4retrieve 243 relate4save 245 Relationen 7 als Code speichern 66 auf Platte speichern 66 bearbeiten 59 Datens tze abrufen 50 Definition und Beispiel 47 fehlende Datens tze 50 Fehlerbehandlung siehe Fehlerbehandlung herstellen 57 hierarchische Struktur 47 komplexe Relationen 51 55 neue Relationen 57 relationale Reports 47 Relationsb ume 45 51 58 Reportentwurf und 43 Slavedatei ohne Subindizes 61 suchen mit 48 Typen siehe Relationstypen von der Platte laden 66 zusammengesetzte Datendatei 49 zusammengesetzter Datensatz 50 zwischen mehreren Slavedateien 55 Relationsdateien ffnen 66 Relationsset 51 Relationstypen Einer zu einem 53 340 Einer zu vielen 55 einstellen 62 Filterrelation 55 56 genaue bereinstimmung 53 ungef hre bereinstimmung 53 54 Report abbrechen 51 Report entwerfen Datendateien lokalisieren 41 Elemente ermitteln 38 Elemente festlegen 40 Entwicklungszyklus 35 Entwurf auswerten 38 Entwurf berpr fen 46
226. itierfeld Ausdruck wird der Ausdruck nach und nach aufgebaut Doppel klicken Sie auf ein Element der vorhandenen Listboxen wird es an der aktuellen Schreibmarkenposition in den Ausdruck bernommen Die dBASE Operatoren lassen sich ber einen einfachen Klick auf die gew nschte Schaltfl che hin zuf gen Die Dialogbox Ausdruck eingeben bietet beim Aufbau eines Ausdrucks einen erheblichen Geschwindigkeitsvorteil Die Felder werden automatisch mit ihren Dateikennzeichnern hinzugef gt w hrend Funktionen automatisch die erforder lichen Klammern und Kommata erhalten usw Die Listboxen enthalten alle Fel 145 CodeReporter 2 0 der der zusammengesetzten Datendatei jede unterst tzte dBASE Funktion und alle bereits vorhandenen Berechnungen und Summen Dar ber hinaus sind per Mausklick f r alle Felder bzw Funktionen entsprechende Informationen abrufbereit Diese werden unterhalb der Listboxen angezeigt In Abb 7 2 enth lt dieses Feld Informationen ber die Funktion TRIMO Ausdruck eingeben Ausdruck Soll_Haben 1 Funktionen Berechnungen INYOICES LTRIM SOLL_HABENI LUSTID MONTH CREDIT FAGENO DEBIT RECCOUNT ENTERDATE RECNO STOD LUST STRA LUSTID SUBSTRA NAME TIME ADDRESS Subindex Ausdr Berechnungen TRIM Zeichen Wen Entfernt alle Leerzeichen am Ende eines Ausdrucks Abb 7 2 Dialogbox Ausdruck eingeben Verwendung von Ausdruck eingeben
227. ition zur ck Parameter report Ein Zeiger auf den Report der den gew nschten Style enth lt styleIndex Ein Index des internen Seiten Layouts des Re ports Mit dieser Funktion wird rasch ein Zeiger auf den styleIndexten Style des Reports abgerufen Dabei ist der erste Style Style 1 eins Der Zeiger wird von den report4pageObj Funktionen be nutzt R ckgaben Nicht Null Ein STYLE4 Zeiger auf den angegebenen Style 0 styleIndex ist gr er als die Anzahl der im Report vorhandenen Styles oder null Siehe auch style4lookup report4pageObjFirst style4lookup Aufruf STYLEA4 style4lookup REPORTA4 report char styleName Beschreibung Diese Funktion gibt einen STYLE4 Zeiger auf den Style mit dem angegebenen Namen zur ck Parameter report Ein Zeiger auf den Report der den gew nschten Style enth lt styleName Ein null terminiertes Zeichenarray das den Na men des Styles enth lt der gesucht wird 286 Funktions bersicht R ckgaben Nicht Null Ein STYLE4 Zeiger auf den angegebenen Style 0 Ein Style namens styleName konnte im angegebe nen Report nicht lokalisiert werden Siehe auch style4index 287 CodeReporter 2 0 API total4 Funktionen Mit den total4d Funktionen werden die f r eine Summe erforderlichen Informa tionen angegeben Ist er erst vorhanden k nnen Sie den TOTAL4 Zeiger zu sammen mit obj4totalCreate einsetzen um ein Summenausgabeobjekt zum Report hinzuzuf gen total4daddCondition Aufr
228. iviert 1993 Januar 14 Gruppe Monat 1993 Februar 10 MONTH 1993 Februar 11 5 7 ruppe ial 1994 Februar 4 ppe 2g DAY eg 1 2 3 Flag Feste 1993 Februar 1994 R cksetzung deaktiviert Januar 10 Februar Voreinstel 11 _ lung 12 4 i 13 14 e Monat zur ckgesetzt Keine Monat zur ckgesetzt Neue Monat zur ckgesetzt Keine neue Seite da er durch Jahr Seite da Seite r cksetzen neue Seite da er durch Jahr zur ckgesetzt wird aktiv zur ckgesetzt wird e nf 2 3 Flag Feste 1993 R cksetzung Januar Februar aktiviert 12 10 13 u 14 Jedesmal wenn Monat _ EN J oder Jahr zu r ckgesetzt e A X wird wird eine neue Sei 1994 Februar te generiert 4 G J N J Abb 10 3 Seite zur cksetzen und Flag Feste R cksetzung 169 CodeReporter 2 0 11 Drucken Jeder Report soll am Ende auf Papier ausgegeben werden das Ausgabeger t ist gew hnlich ein Drucker Es gibt aber auch Situationen in denen ein Report bes ser auf dem Bildschirm ausgegeben bzw in eine Datei geschrieben wird Das vorliegende Kapitel erl utert die bei der Reportausgabe erforderlichen Ope rationen Einen Drucker ausw hlen Viele Hardware Konfigurationen setzen sich aus einem Computer und einem daran angeschlossenen Drucker zusammen ber den alle Druckausgaben erfol gen In diesem Fall kann man nur einen Drucker ausw hlen Bei anderen Konfigurationen werden mehrere Drucker lokal und oder ber ein Netzwerk an einen Co
229. jekten lassen sich als Vorschauobjekte definie ren Felder Summen Berechnungen Ausdr cke und dynamische Grafiken Beispiel Als Beispiel f r Vorschauausgabeobjekte erl utern wir im vorliegenden Ab schnitt die zur Erstellung des oben genannten Verkaufsreports erforderlichen Schritte 107 CodeReporter 2 0 XYZ Verkaufs GmbH Verkaufs bersicht Gesamtverkauf XX XXX XX Prozentanteil am Verk ufername Verk ufe Gesamtverkauf Sanders John XXX XX XX XX Smith John XXX XX XX XX Thompson John XXX XX XX XX Abb 5 7 Reportentwurf f r eine Vorschau Aktivieren Sie die Men option DATEI NEU und bestimmen Sie die Datei LOOKAHD DBF zum Top Master diese Datei finden Sie im Verzeichnis EXAMPLES Der Einfachheit halber enth lt sie die Namen der Verk ufer und deren Verkaufssummen Bei einem komplexeren Aufbau der Datendateien w rde es wahrscheinlich ge trennte Verkaufs und Verk uferdatendateien geben In einem solchen Fall m te eine Relation hergestellt und anstelle des Gesamtsummenfeldes im Kopf ein Summenausgabeobjekt f r den Verk ufer im Body Fu verwendet werden Da aus der Reportbeschreibung hervorgeht da das Vorschausummenobjekt den gesamten Report aufsummiert sollte es in einem Kopfbereich untergebracht werden der nur am Anfang des Reports ausgegeben wird z B dem Titelbe reich Erstellen Sie mit BEREICH NEUER TITELBEREICH den Titelbereich mit einer H he von etwa 2 5 cm Pla
230. k sowie alle ihr untergeordneten Grup pen das sind die Gruppen die sich zwischen Kopf und Fu der ersten Gruppe befinden zur ck In Abb 3 6 sehen Sie einen Report mit Gruppen f r Jahr Monat und Tag In dem Augenblick in dem die Gruppe Monat zur ckgesetzt wird wird die Gruppe Tag automatisch ebenfalls zur ckgesetzt Gruppen werden lediglich bei der R cksetzung ausgegeben In Abb 3 6 ist der zweite Datensatz v llig identisch mit dem ersten Da f r jede Gruppe eine R ck setzbedingung gilt und keine zur ckgesetzt wurde wird der zweite Datensatz nicht ausgegeben Mit dem Abarbeiten des dritten Datensatzes 20 Feb 1992 jedoch wird die Gruppe Monat zur ckgesetzt Automatisch werden auch alle untergeordneten Gruppen in diesem Fall Tag zur ckgesetzt Beim Eintreten einer R cksetzbedingung werden die Fu bereiche beginnend mit dem der innersten Gruppe ausgegeben bis der Fu der Gruppe ausgegeben wird die die R cksetzbedingung verursacht hat In Abb 3 6 wird zun chst der Fu der Gruppe Tag und dann der der Gruppe Monat ausgegeben Der Fu der Gruppe Jahr wird zu diesem Zeitpunkt nicht ausgegeben da diese Gruppe noch nicht zur ckgesetzt wurde In den Fu bereichen von Tag und Monat lautet der Datumswert 20 Jan 1992 der zweite Datensatz und nicht 20 Feb 1992 der Datensatz der die R cksetzbedin gung verursacht hat Hieran wird die zweite im Abschnitt
231. kt ge setzt werden soll Die waagerechte Koordinate in tausendstel Zoll an der die linke Seite des Rahmenobjekts steht Die senkrechte Koordinate in tausendstel Zoll vom oberen Rand des Reportbereichs an der die Oberkante des Rahmenobjekts steht Die horizontale Ausdehnung des Rahmenausgabe objekts in tausendstel Zoll Die vertikale Ausdehnung des Rahmenausgabeob jekts in tausendstel Zoll Bei Erfolg wird ein Zeiger auf das neue Rahmen ausgabeobjekt zur ckgegeben Fehler Das Rahmenausgabeobjekt konnte nicht angelegt werden 231 CodeReporter 2 0 API Siehe auch obj4frameCorners obj4frameFill obj4frameFree obj4line Width obj4frameFill Aufruf int obj4frameFill OBJ4 obj int fill Beschreibung Mit dieser Funktion wird die F llung f r das angegebene Rah menausgabeobjekt festgelegt Hat der Rahmen eine F llung stel len die Reportmodul Ausgabefunktionen diesen in der Farbe des f r den Rahmen ausgew hlten Styles dar Enth lt der Rahmen keine F llung Voreinstellung wird lediglich die Rahmenlinie ausgegeben Parameter obj Ein Zeiger auf das Rahmenausgabeobjekt f r das der F llstatus eingerichtet wird fill Dieser Parameter legt fest ob der Rahmen bei der Ausgabe eine F llung erh lt oder nicht fill kann die folgenden Werte annehmen 1 Wird fill auf 1 wahr eingestellt erh lt das Rahmenausgabeobjekt eine F llung 0 Wird fill auf 0 falsch eingestellt hat das Rahmenausgabeobje
232. kt keine F llung R ckgaben 0 Die vorhergehende Einstellung von fill wird zu r ckgegeben lt 0 Fehler obj oder fill sind ung ltig Siehe auch obj4frameCreate obj4frameCorners obj4lineWidth 232 Funktions bersicht obj4frameFree Aufruf Beschreibung Parameter Siehe auch obj4justify Aufruf Beschreibung Parameter void obj4frameFree OBJ4 obj Diese Funktion l scht ein Rahmenausgabeobjekt aus dem Report und gibt den mit dem Ausgabeobjekt verbundenen Speicher frei obj Ein Zeiger auf das zu l schende Rahmenausgabe objekt obj4frameCreate obj4delete report4free int obj4justify OBJ4 obj int justification Diese Funktion legt fest ob Objekte mit Textausgaben innerhalb der Objektfl che mittig links oder rechtsb ndig ausgerichtet werden Per Voreinstellung werden alle Objekte linksb ndig ausgerichtet obj Bezeichnet das auszurichtende Objekt justification Beim Parameter justification kann es sich um eine der folgenden vordefinierten Konstanten handeln Justify4left Der Text f r das Ausgabeobjekt wird ab der u erst links gelegenen Begrenzung des Ob jekts ausgegeben Justify4right Der Text f r das Ausgabeobjekt wird ab der u erst rechts gelegenen Begrenzung des Ob jekts ausgegeben dabei beginnt die Ausgabe mit dem letzten Zeichen des Objekts und setzt sich nach links fort 233 R ckgaben Siehe auch CodeReporter 2 0 API Justify4center Der Text f r d
233. ktion f gt die Styles eines CodeReporter Seiten Lay outs in den angegebenen Report ein Parameter report Ein Zeiger auf den Report in den die neuen Styles eingef gt werden fileName Ein null terminiertes Zeichenarray das Laufwerk Verzeichnis und Dateinamen Erweiterung CRS des CodeReporter Seiten Layouts enth lt Gibt fileName kein Laufwerk und oder Verzeichnis an wird das aktuelle Verzeichnis durchsucht overRide Dieser Parameter ist dazu da Konflikte zwischen gleichnamigen Styles im Report und im Seiten Layout zu verhindern Enth lt overRide einen wahren Wert nicht Null verwendet report4 styleSheetLoad bei Benennungskonflikten die Styles des Seiten Layouts Enth lt der Parameter einen falschen Wert Null bleiben die Styles im Report unver ndert R ckgaben 1 Das Seiten Layout wurde erfolgreich geladen 0 Fehler Die Datei konnte nicht lokalisiert werden sie war fehlerhaft oder veraltet report4styleSheetSave Aufruf int report4styleSheetSave REPORTA4 report char fileName Beschreibung Diese Funktion speichert die Styles des angegebenen Reports als CodeReporter Seiten Layout 278 Funktions bersicht Parameter report Ein Zeiger auf den Report dessen Styles gespei chert werden sollen fileName Ein null terminiertes Zeichenarray das Laufwerk Verzeichnis und Namen der Datei enth lt in der die Styles abgelegt werden sollen Geben Sie kein Laufwerk und oder Verzeichnis an wird das Sei ten Layout i
234. ktion wird bestimmt ob vor der Ausgabe des Kopfbereichs der angegebenen Gruppe ein Seitenumbruch erzwungen werden soll Ist die Option Seitenumbruch aktiv wird die Seitenzahl auf 1 zur ckgesetzt Parameter group Die Gruppe f r die die Option Seitenzahl zu r cksetzen eingerichtet wird resetPageNum Dieser Parameter kann zwei Einstellungen haben 1 Ist resetPageNum auf 1 eingestellt erfolgt jedesmal ein erzwungener Seitenumbruch wenn die angegebene Gruppe auf eine R cksetzbe dingung trifft Des weiteren wird die Seitenzahl auf 1 gesetzt 0 Ist resetPageNum auf O0 eingestellt Vorein stellung werden keine besonderen Ma nahmen ergriffen den Gruppenkopf auf der folgenden Seite auszugeben die Seitenzahl wird weiter hochgez hlt R ckgaben gt 0 Die vorhergehende Einstellung von resetPageNum wird zur ckgegeben lt 0 Fehler Siehe auch dBASE Ausdruck PAGENO group4resetPage 212 Funktions bersicht group4swapFooter Aufruf int group4swapFooter GROUPA4 group int swap Beschreibung Diese Funktion tauscht beim Zur cksetzen der Gruppe den Seitenfu Bereich gegen den Gruppenfu Bereich aus Tritt f r die Gruppe eine R cksetzbedingung ein wird der Rest der aktuellen Seite bersprungen und der die Fu bereich e der angegebenen Gruppe wird werden anstelle des blichen Seiten fu es ausgegeben der Seitenfu wird nicht ausgegeben Wenn die Gruppe nicht zur ckgesetzt wir
235. ktur die die vom Style verwendete Schriftart beschreibt Dabei handelt es sich um einen vorzeichen losen long Wert der die f r den Style ein gestellten RGB Farben speichert ein Byte f r den Rotwert eines f r den Gr nwert und eines f r den Blauwert Jedes Byte kann einen Wert von O bis 255 haben und so die Farb schattierung anzeigen Die einzelnen Einstel lungen lassen sich ber folgende Makros ab rufen R4GETRVALUE rgb RAGET GVALUE rgb RAGETBVALUE TSb Dabei handelt es sich um die Punktgr e der im Style verwendeten Schriftart ist die L nge der Codezeilen auf die codes_ before zeigt ist die L nge der Codezeilen auf die codes_ after zeigt Dabei handelt es sich um ein Zeichenarray mit den Druckersteuersequenzen im Seitenlayout die die Druckattribute aktivieren Dabei handelt es sich um ein Zeichenarray mit den Druckersteuersequenzen im Seitenlayout die die Druckattribute deaktivieren style4index style4create Funktions bersicht Treiber Shell einsetzen Die Grundstruktur eines Reportausgabetreibers ist im wesentlichen f r alle Um gebungen und Interface Bibliotheken gleich Es folgt der kommentierte Quell code DRSHELL C als Beispiel f r eine angepa te Interface Treiber Shell int SA4FUNCTION report4doDriverShell REPORT4 report int rc error OBJECT4 obj STYLE4 style Seitenstruktur initialisieren if report4pagelnit report lt 0 return 1 error 0
236. l definiert wird currency Ein null terminiertes Zeichenarray das das W h rungssymbol enth lt currency kann aus bis zu zehn Zeichen bestehen report4currency legt eine Kopie von currency an Wird diese Funktion nicht aufgerufen geht das Programm vom Dollarzei chen aus R ckgaben 0 W hrungssymbol erfolgreich eingerichtet lt 0 Fehler Siehe auch obj4numericType report4dataDo Aufruf int report4dataDo REPORT4 report Beschreibung Diese Funktion gibt den Report in eine Datendatei aus wie in der Parameter R ckgaben Siehe auch Schablone f r die Reportausgabedatei oder mit den Funktionen obj4dataFieldSet report4dataFileSetund report4dataGroup angegeben report Ein Zeiger auf den Report der in eine Datendatei ausgegeben werden soll 0 Erfolg lt 0 Fehler report ist ung ltig oder enth lt keine Datendateischablone obj4dataFieldSet report4dataFileSet report4dataGroup 247 CodeReporter 2 0 API report4dataFileSet Aufruf int report4dataFileSet REPORT4 report char destFile Beschreibung Mit dieser Funktion wird der Dateiname eingestellt den die Ausgabedatendatei erh lt wenn die Reportausgabe mit report4 dataDo in eine Datendatei erfolgt Parameter report Ein Zeiger auf den Report f r den der Name der Datendatei eingerichtet wird destFile Ein null terminiertes Zeichenarray das Laufwerk Verzeichnis und Namen der Datendatei enth lt in die die Reportausgabe erfolgen soll Werden Lauf w
237. ld Dezimalzeichen angegebene Zeichen zwischen die ganze Zahl und den Bruch teil Auch in dieses Editierfeld k nnen Sie jedes beliebige Zeichen eingeben In Nordamerika wird dazu der Dezimalpunkt verwendet in Deutschland und ande ren europ ischen Staaten das Komma Hinweis Diese Einstellung wirkt sich nicht auf die Anzahl der bei einem Objekt ausgegebenen Dezimalstellen aus Wie man die Anzahl der Dezi malstellen festlegt entnehmen Sie bitte dem Abschnitt Zahlen im Kapitel Ausgabeobjekte Datumsformat Ausgabeobjekte die als Ergebnis einen Datumswert haben z B Datumsfelder Datumsausdr cke lassen sich in verschiedenen Formaten ausgeben Bei neuen Ausgabeobjekten gilt bis auf weiteres die Einstellung der einzeiligen Listbox Standard Datumsformat In den editierbaren Teil des Feldes k nnen Sie eine bestimmte Datumsschablone eingeben oder ein vordefiniertes Datumsformat in der Liste markieren und aus w hlen Einzelheiten zu Datumsschablonen entnehmen Sie bitte dem Abschnitt Datum im Kapitel Ausgabeobjekte Hinweis Eine nderung des Wertes in der Listbox Standard Datumsformat wirkt sich nicht auf das Datumsformat bereits vorhandener Datums ausgabeobjekte aus Die Einstellung von Standard Datumsformat bezieht sich ausschlie lich auf neu zu erstellende Objekte Pfadnamen In einem Report kann CodeReporter mehrere Datendateien verwenden die sich auf verschiedenen Laufwerken
238. ldes berein Feldnamen Konstanten und Funktionen k nnen als Teile von dBASE Ausdr k ken benutzt werden Diese Teile lassen sich mit anderen Funktionen oder mit Operatoren kombinieren Beispiel f r einen dBASE Ausdruck UPPER DBF gt FELD_NAME In der Mathematik wird 1 2 als eine Aussage betrachtet die denselben Wert aufweist wie 3 4x3 6 entspricht 2 In der dBASE Terminologie geben diese mathematischen Aussagen einen Wert zur ck Die Zahlen werden auf ma thematisch richtige Weise zusammengefa t und das Ergebnis wird gebildet 140 Ausdr cke W rde ein Sch ler einen Richtig oder falsch Test schreiben und er sie m te die Gleichung 1 2 5 auswerten lautete die richtige Antwort falsch Bei 1 2 3 lautete die Antwort dagegen richtig Die Werte auf jeder Seite des Gleich heitszeichens werden getrennt ausgewertet und ihre R ckgabewerte verglichen Im ersten Fall ergeben 1 2 3 und 5 hat den Wert 5 Die Aussage da 3 mit 5 bereinstimmt ist nicht richtig also falsch Bei 1 2 3 jedoch ergeben beide Seiten 3 dBASE Ausdr cke bei denen beide Seiten der Gleichung vorhanden sind bezeichnen wir als logische Ausdr cke Diese Ausdr cke bedienen sich sogenannter Vergleichsoperatoren die wir weiter unten anf hren Kennzeichner von Feldnamen Da in die meisten Reports eine Vielzahl von Datendateien eingeht ist es erfor derlich einen Feldnamen in einem dBASE Ausdruck durch die Angabe der Da
239. ler report und oder hardResets sind ung ltig group4resetPage REPORT report4init RELATEA4 relate Diese Funktion initialisiert eine Reportstruktur mit voreinge stellten Werten und gibt einen Reportzeiger zur ck der zusam men mit den brigen Reportmodulfunktionen eingesetzt werden kann Die Funktion wird automatisch von report4retrieve aufgerufen Nach der Ausf hrung des Reports sollten Sie report4free aufru fen um den mit dem Report verbundenen Speicher wieder frei zugeben report4init richtet folgende Standardwerte ein R nder links 0 64 cm rechts 0 64 cm oben 0 cm unten 0 cm Seitenformat 21 59 cm x 27 94 cm Dezimalpunkt Zeichen n Tausend 5 W hrungssymbol Style Voreinstellung Normal Windows MS Serif 10 Pkt Non Windows Keine Steu erzeichen Titel Schlu gruppe Gr e null Seitenkopf fu gruppe Gr e null Parameter R ckgaben Siehe auch Funktions bersicht relate Die Relation auf der der Report basiert Nicht Null Der Report wurde erfolgreich initialisiert und ein Zeiger auf die Reportstruktur wird zur ckgegeben Null Fehler Der Report konnte nicht initialisiert wer den Einzelheiten entnehmen Sie bitte der Einstel lung von CODE4 error_code report4retrieve relate4retrieve report4do report4free report4margins Aufruf int report4margins REPORTA4 report long left long right long top long bottom int unitType Beschreibung Mit dieser Funktion
240. les Datum aktuelle Uhrzeit die in keine andere Kategorie passen Wenn der Report dann tats chlich mit CodeReporter in Angriff genommen wird beschleunigen diese Definitionen die Positionierung der einzelnen Elemente 38 Einen Report entwerfen statischer F rderergesellschaft T statischer Text linien penderliste Reportdatum anuar 1993 bis 21 Mai 1993 e Summe aller Spenden Gesamtspenden der F rderer 2 xxxxXXX lt nicht nur der aufgef hrten PR statischer Text Spender Sage Se Spender Nr Summe Adams John en 4321 34 1234 1 000 123 West 4th Street Ort ST 55212 Db Feld oder Summe Baker John 4321 34 1234 9 000 123 West 4th Street Ort ST 55212 Cramford John 4321 34 1234 6 000 123 West 4th Street Ort ST 55212 Abb 1 2 Bearbeiteter Reportentwurf Zusammengeh rige Reportbereiche ermitteln Kreisen Sie auf einer Kopie des Reportentwurfs die Bereiche ein die definitiv zusammengeh ren Ein solcher Abschnitt k nnte z B lediglich am Anfang bzw Ende gedruckt werden auf jeder Seite wiederholt werden hier und da im Report auftauchen oder kontinuierlich vorhanden sein Diese Abschnitte sogenannte Bereiche legen fest wann und warum zusammen geh rige Teile des Reports gemeinsam ausgegeben werden Je eher man diese Bereiche definiert desto klarer tritt der Aufbau des Reports zu Tage und desto schneller steht der endg ltige Aufbau des Reports fest Nachdem Sie die Abschnitte m
241. m bertragen und zum dritten l t er sich auf diese einfache Weise elektronisch speichern 172 Drucken Folgende Schritte m ssen Sie unternehmen um einen Report in eine Datei zu drucken 1 Rufen Sie ber die Men option DATEI DRUCKEN die Dialogbox Drucken auf 2 Aktivieren Sie das Kontrollk stchen Ausdruck in Datei 3 Klicken Sie auf OK um den Druckvorgang zu starten 4 Geben Sie bei Erscheinen der Dialogbox Ausdruck in Datei den Dateinamen und Pfad ein unter dem der gedruckte Report abgelegt werden soll Dieser Name sollte sich deutlich von dem der Reportdatei unterscheiden hei t der aktuelle Report z B RECHNUNG REP sollte die Druckdatei eben nicht genauso hei en Drucken kontra Einsehen Eine Reportdruckdatei enth lt alle Angaben um einen Report in der gew nschten Schriftart gr e Formatierung usw ausgeben zu k nnen Wie im Abschnitt Non Windows Styles erw hnt kann Windows ber seine Druckertreiber mit nahezu jedem Drucker zusammenarbeiten Beim Drucken in eine Datei schreibt Windows alle druckerspezifischen Steuer zeichen f r Linien Grafiken Schriften usw ebenfalls in die Datei Wird diese nun sp ter auf den Drucker kopiert sieht der Report genauso aus als w re er unmittelbar aus der Anwendung gedruckt worden Das Erstellen einer Reportdruckdatei bringt allerdings zwei nicht zu untersch t zende Nachteile mit sich Zum einen kann die Datei recht g
242. me Position runge E 2 Abbrechen R cksetzbedingung Kopf austauschen C Seite zur cksetzen Fu austauschen Seitenzahl zur cksetzen Kopf wiederholen Abb 3 4 Dialogbox Gruppendefinition hnlich wird wenn die Gruppe auf eine R cksetzbedingung trifft und die Schaltfl che Fu austauschen f r die Gruppe aktiviert ist der Rest der aktuel len Seite bersprungen und der Gruppenfu statt des Seitenfu Bereichs ausge geben Auf dieser Seite wird der Seitenfu unterdr ckt Im allgemeinen dient ein ausgetauschter Kopf dazu andere Daten bzw Daten in einem Format anzuzeigen das von dem des Seitenkopf Bereiches abweicht Der Hauptgrund f r einen ausgetauschten Fu bzw Kopf besteht darin den Sei tenkopf fu zu unterdr cken eine neue Seite zu beginnen und den Gruppen bereich auszugeben sobald eine Gruppenr cksetzbedingung eintritt Die Verwen dung unterscheidet sich von der f r den Seitenkopf fu Bereich verf gbaren Bereichsunterdr ckungsbedingung siehe Abschnitt Einen Bereich unterdr k ken im Kapitel Bereiche weil der Bereich aufgrund einer Wert nderung und nicht aufgrund einer logischen Bedingung unterdr ckt wird 79 CodeRepotter 2 0 e ER Q Public Seite 2 KONTOAUSZUG 15 Apr 1990 150 00 John Q Public 16 Apr 1990 150 00 Nirgendweg 1234 12345 Irgendwo 30 Juli 1990 200 00 15 Aug 1990 150 00 16 Aug 199
243. mputer angeschlossen Solange Sie CodeReporter keine andersgearteten Anweisungen geben wird f r alle Druckausgaben der Windows Standarddrucker benutzt Handelt es sich hierbei um einen geeigneten Drucker brauchen Sie die Ein stellung nicht zu ver ndern Jeder andere Drucker mu in der Dialogbox Druckereinrichtung explizit ausgew hlt werden Abb 11 1 Die Dialogbox wird ber die Men option DRUCKEN DRUCKERAUSWAHL oder die Schaltfl che Einrichten in der Dialogbox Drucken Abb 11 2 aufgerufen Druckereinrichtung Drucker d Abbrechen momentan HP LaserJet IIP an LPT1 Spezieller Drucker Optionen HP LaserJet IIP an LPT E Foma 1 Papier ES Hochformat AA 210 x 297 mm Querformat Zufuhr Unterer Schacht E Abb 11 1 Dialogbox Druckereinrichtung 170 Drucken Einen nicht voreingestellten Drucker w hlen Sie ber die Optionsschaltfl che spezieller Drucker aus der daraufhin angezeigten Listbox aus In dieser Dialogbox geben Sie ebenfalls an ob Sie im Hoch oder Querformat drucken wollen welches Papierformat Sie w nschen usw W hlen Sie die f r den Report erforderlichen Optionen an und klicken Sie auf OK Achtung Die Einstellungen der Dialogboxen Drucken sowie Druckereinrich tung werden nicht zusammen mit dem Report gespeichert und m ssen deshalb beim Laden des entsprechenden Reports jedesmal neu vo
244. n report4pageFree report if report gt code_base gt error_code lt 0 error return 1 return 0 Wie aus den Codezeilen ersichtlich durchl uft der Treiber alle ausgewerteten Ausgabeobjekte und gibt sie einzeln aus und zwar f r jede Seite des Reports Der Code geht davon aus da von jeder Stelle der Seite aus in das Ausgabeger t geschrieben werden kann Erfolgt die Ausgabe an das Ger t zeilenorientiert wie bei einem Nadeldrucker m ssen die Ausgabeobjekte m glicherweise zwi schengespeichert werden Dazu k nnen Sie im Speicher einen Puffer von der Gr e des Ausgabeger ts einrichten und die Ausgabeobjekte darin nach und nach ablegen Zeigt report4pageObjNext an da alle Objekte der Seite ausgegeben worden sind kann die gepufferte Kopie dieser Seite ausgegeben werden Eine weitere M glichkeit besteht darin die Objekte auf der Seite zu durchlaufen und eine verkettete Liste der Objekte zu erstellen die nach senkrechter und waa gerechter Position sortiert wird Enth lt die Seite keine weiteren Objekte k nnen die Elemente anhand dieser Sortierliste dann zeilenweise ausgegeben werden Diese wenigen Beispiele lassen erkennen da das Erstellen eines ma geschnei derten Reports mit dem CodeReporter API ein u erst einfaches wie auch h chst kompliziertes Unterfangen darstellen kann In den meisten F llen lassen sich aus einer Kombination von variabel codierten Reports und oder von CodeReporter generiert
245. n 251 Parameter Siehe auch report4generatePage Aufruf CodeReporter 2 0 API report Der Report der aus dem Speicher gel scht werden soll freeRelate Hat dieser Parameter einen wahren Wert nicht Null wird der mit der Relation des Reports ver bundene Speicher automatisch freigegeben Wird ein falscher Wert Null bergeben wirkt sich das nicht auf die Relation aus closeFiles Dieser Parameter schlie t wenn er einen wahren Wert nicht Null enth lt automatisch die im Report genannten Daten Index und Memodatei en Ist freeRelate falsch null wird die Einstel lung von closeFiles ignoriert report4pageFree sowie relate4free im CodeBase 5 Referenz handbuch int report4generatePage REPORT4 report HDC hDC Beschreibung Diese Low Level Funktion wird dazu verwendet die n chste 252 Reportseite in einen Windows Ger tekontext z B einen Bit map Ger tekontext oder einen Druckerger tekontext zu kopie ren Der vorhergehende Ger tekontext wird bei dieser Funktion nicht gel scht Soll der Report mit Hilfe dieser Funktion auf einem Drucker ausgegeben werden ist der Programmierer daf r verantwortlich da die Codes SETABORTPROC falls gew nscht START DOC NEWFRAME und ENDDOC mit der Windows Abbruch funktion auf das Ger t geschickt werden Soll der Report mit Hilfe dieser Funktion in eine Bitmap zwecks Anzeige in einem Fenster Speicherung auf der Platte usw Funktions bersicht a
246. n Ar beitszeit Report 1x pro Report Abteilung TEC EES Ort 001 1x pro ORT Angest Jones 1x pro ANGEST 1x f r jeden 20 7 8 50 Satz oder DATUM Summe Jones 15 5 1x pro ANGEST Angest Smith 20 7 _ 2 amp 50_ Summe Smith 50 1x pro ORT Ort 002 Angest Sanders 20 7 8 50 21 7 LOO_ Summe Sanders E Eo ia aS Summe Ort 002 S S Summe Abteilung TEC 39 50 E Mr jede Gesamtsumme f r alle Abteilungen 65 50 1x pro Report Abb 3 2 Reportgruppen Der Gruppenausdruck f r die Gruppe w rde dann DBF gt ABT lauten vorausge setzt die Datendatei hei t DBF Wichtig ist da der Gruppenausdruck nicht DBF gt ABT TEC lautet Das liegt daran da der Gruppenausdruck keine bestimmte Untermenge sondern die Grundlage der Untermenge beschreibt n dert sich der ausgewertete Gruppenausdruck gilt eine neue Untermenge und die Funktionen der Gruppe werden ausgef hrt Die Gruppe wird aufgrund ihres Gruppenausdrucks gebildet 75 CodeReporter 2 0 Kopf und Fu Wie aus Abb 3 2 ersichtlich l t sich eine Gruppe am Anfang und am Ende der Untermenge durch einen Textabschnitt begrenzen Diese Abschnitte oder Report bereiche siehe Kapitel Bereiche sind mit der Gruppe verbunden und bilden eine Einheit mit der Funktion der Gruppe Der Bereich am Anfang der Gruppe z B Abteilung TEC in Abb 3 2 wird als Gruppenkopf und der Bereich am Ende z B Summe Abteilung TEC als Gruppenfu b
247. n eine Relation manuell erzeugen bzw von der Platte laden einen Report auf dem Bildschirm ausgeben die Optionen Kopf austauschen und Fu austauschen einsetzen Zus tzliche Beispiele zu den besonderen Eigenschaften von CodeReporter 2 0 finden sich jeweils am Ende der Kapitel Relationale Reports Bereiche Ausgabeobjekte Spaltenreport Utility Styles und Drucken Die genauen Seitenzahlen entnehmen Sie bitte dem Inhaltsverzeichnis Einen Report mit Pfad laden In der ersten bung erl utern wir wie man Reports laden und auf welche Weise man deren Datendateien lokalisieren kann Report im aktuellen Verzeichnis ffnen Der erste Beispielreport TUT1 REP zeigt lediglich den Inhalt der Datendatei COMPANY DBEF an Beim Abspeichern dieses Reports wurden Laufwerk und Verzeichnis der Datendatei nicht mitabgelegt Wie man das macht entnehmen Sie bitte dem Kapitel CodeReporter Optionen Daher geht das Programm davon aus da sich die Datendateien im selben Verzeichnis befinden wie die Reportdatei Der Vorteil hierbei besteht darin da Report und Datendateien in jedes beliebige Verzeichnis auf jedem beliebigen Laufwerk verschoben werden k nnen sie m ssen lediglich zusammenbleiben 13 CodeReporter 2 0 Rufen Sie CodeReporter mit einer der im Kapitel Starten mit CodeReporter beschriebenen Methoden auf Verwenden Sie danach die Men option DATEI FFNEN um die Dialogbox
248. n dex durchsucht 47 CodeReporter 2 0 um einen Datensatz mit derselben Information in jener Datendatei zu lokali sieren bezeichnet die f r den Suchvorgang verwendete Slavedatei und deren Indexfolge aufgrund derer der entsprechende Datensatz lokalisiert wird Die in der Relation verwendete Indexfolge wird auch als Slave Subindex bezeichnet Eine Relation zwischen zwei Datendateien ist lediglich in einer Richtung wirk sam aus einer Datendatei werden Informationen in einer anderen gesucht Eine Datendatei steuert die zweite deren Datens tze nur auf Anweisung der ersten abgerufen werden Mit anderen Worten eine Datendatei enth lt Informationen die Verweise auf Informationen in einer zweiten Datendatei liefern Sind die beiden Dateien ver kn pft weist der Master die erste Datendatei die Slavedatei an einen Datensatz im Slave zu lokalisieren der dieselben Daten enth lt Diese Daten kann die Masterdatei anschlie end verwenden und ausgeben dabei wird nicht einfach auf die Daten in der Slavedatei verwiesen sondern diese werden tats chlich ge braucht SALES DBF CUSTOMER DBF Smith Jane 123 West 3ra Rawiji Fatim 204 East 44th Jones Jon Microsquish West Davie 4420 14th St 100 00 1234 140 44 4321 304 10 6543 65 00 9124 102 99 6612 9124 Sanders Mel Hamlin
249. n den Datei Manager durch Doppelklicken auf das Symbol das sich im allgemeinen in der Hauptgruppe befindet auf W hlen Sie mit dem Datei Manager das Laufwerk und das Ver zeichnis an in dem CodeReporter installiert wurde Standard c CODEREP Wird die Dateiliste f r das CodeReporter Verzeichnis angezeigt suchen Sie darin den Dateinamen der ausf hrbaren CodeReporter Version z B CREP2 EXE Wenn Sie auf diesem Dateinamen doppelklicken wird CodeReporter gestartet Datei Ausf hren Daneben kann CodeReporter ber die Men optionen des Windows Programm Managers aufgerufen werden Klicken Sie dazu den Men punkt Datei Ausf hren an Windows zeigt eine Dialogbox an in die Sie Laufwerk Pfad und Pro grammnamen von CodeReporter eingeben k nnen Haben Sie CodeReporter auf Laufwerk C im Standard CodeReporter Verzeich nis installiert w rde die Clipper kompatible Version mit folgender Eingabe in die Dialogbox aufgerufen C CODEREP CREP2 EXE CodeReporter unterst tzt einen Befehlszeilenparameter der als Name einer Reportdatei interpretiert wird Bei Aufruf mit Befehlszeilenparameter wird der angegebene Report automatisch geladen Der Aufruf ohne Befehlszeilenpara meter startet lediglich CodeReporter Starten mit CodeReporter Symbol Unter Windows werden Symbole verwendet damit der Benutzer rasch auf die entsprechenden Anwendungen zugreifen kann Das Symbol f r CodeReporter kann zu jeder beliebigen Programmgruppe
250. n Report zu dem die neue Gruppe hinzugef gt wird name Ein null terminiertes Zeichenarray das eine nur einmal vorkommende beschreibende Bezeichnung f r die Gruppe enth lt Ist dieser Parameter Null wird der Name der Gruppe auf Gruppe n vor eingestellt wobei n die Position der erzeugten Gruppe angibt groupd4create legt eine Kopie von name an resetExpr Ein null terminiertes Zeichenarray mit einem dBASE Ausdruck der bestimmt wann die Gruppe zur ckgesetzt wird Das Reportmodul wertet 203 R ckgaben 0 Nicht Null CodeReporter 2 0 API diesen Ausdruck f r jeden Datensatz der zusam mengesetzten Datendatei aus tritt eine Wert nde rung ein wird die Gruppe zur ckgesetzt und der Bereich f r die Gruppe ausgegeben Ist resetExpr Null wird die Gruppe f r jeden Da tensatz in der zusammengesetzten Datendatei zu r ckgesetzt Beim Anlegen der Gruppe hat sich ein Fehler er eignet Es wird ein Zeiger auf die erfolgreich angelegte Gruppe zur ckgegeben Siehe auch areadcreate group4free group4footerFirst Aufruf AREAA4 group4footerFirst GROUPA4 group Beschreibung Diese Funktion gibt einen AREA4 Zeiger auf den ersten f r die Gruppe angelegten Fu bereich zur ck Parameter group Ein GROUP4 Zeiger f r die Gruppe R ckgaben group4footerFirst gibt einen AREA4 Zeiger auf den ersten f r die Gruppe angelegten Fu bereich zur ck Wenn die Gruppe keinen Fu bereich hat gibt diese Funktion Null zur
251. n Reports sind portier und konfigurierbar Ein und derselbe Report l t sich durch das Laden einer Report datei in verschiedenen Anwendungen benutzen dar ber hinaus k nnen Sie Quellcode generieren der unmittelbar in DOS OS 2 UNIX und oder Wind ows Anwendungen eingebunden werden kann Ist die Struktur des Reports erst einmal vorhanden fest oder variabel codiert kann sie mit den API Funktionen von CodeReporter so ver ndert werden da eine absolut ma geschneiderte L sung dabei herauskommt Bei der Ausgabe von Reports macht sich CodeReporter die Bildschirmdarstellung und Druckertreiber von Windows 3 1 zunutze Jeder Teil des Reports kann nach Schriftgr e Schriftart und oder Farbe variiert werden Unter Verwendung der Windows 3 1 Standard und TrueType Schriften ist ein gedruckter Report mit der Darstellung auf dem Bildschirm identisch Diese und andere Eigenschaften machen CodeReporter zu einem unverzichtbaren Werkzeug f r Software Entwickler und Endanwender CodeReporter 2 0 Eigenschaften CodeReporter vereint die Eigenschaften zahlreicher DOS Reportprogramme die Vorteile von Windows 3 1 sowie die langj hrigen Erfahrungen von Sequiter Software mit der Datenbankprogrammierung in sich Sie k nnen eine beliebige Anzahl von Datendateien in Relation setzen und sich dabei einer der folgenden Methoden bedienen Einer zu einem Die Masterdatei enth lt lediglich einen Datensatz der auf einen Datensatz der Slavedatei
252. n Zahlenwert zeigt diese Funktion keine Wirkung Alle numerischen Ausgabeobjekte bis auf solche die mit obj4 fieldCreate erzeugt wurden haben per Voreinstellung keine Dezimalstellen Ausgabeobjekte numerischer Felder verwenden per Voreinstellung die Anzahl der Dezimalstellen die auch das Feld aufweist obj Ein Zeiger auf das Objekt f r das die Anzahl der Dezimalstellen eingestellt wird numDecimals Anzahl der bei dem Ausgabeobjekt verwendeten Dezimalstellen 0 Erfolg lt 0 Fehler obj ist ung ltig report4decimal void obj4delete OBJ4 obj Hierbei handelt es sich um eine Universalfunktion mit der Ob jekte beliebigen Typs gel scht werden k nnen obj4delete er mittelt den Typ des Ausgabeobjekts obj und ruft die entspre chende free Funktion auf obj Ein Zeiger auf das Objekt das aus dem Report entfernt werden soll report4free 225 CodeReporter 2 0 API obj4displayOnce Aufruf int obj4displayOnce OBJ4 obj char supprExpr Beschreibung Diese Funktion sorgt daf r da das angegebene Ausgabeobjekt lediglich bei einer Wert nderung des vorhandenen Ausdrucks ausgegeben wird Parameter obj Ein Zeiger auf das Objekt f r das die Option Einmal ausgeben eingerichtet wird supprExpr Ein null terminiertes Zeichenarray das einen dBASE Ausdruck enth lt der bestimmt wann das Ausgabeobjekt ausgegeben wird Bei Zur ckset zung der Gruppe in der das Objekt sich befindet wird der Ausdruck aus
253. n einen der folgenden Werte annehmen 1 height und width werden in Zeichen angege ben O height und width werden in tausendstel Zoll angegeben Das Seitenformat wurde erfolgreich eingerichtet lt 0 Fehler report4margins report4printerSelect report4pageSizeGet Aufruf int report4pageSizeGet REPORT4 report long width long height Beschreibung Diese Funktion fragt das aktuelle Format der Reportseite in tausendstel Zoll ab Parameter report width height Ein Zeiger auf den Report bei dem das Seitenfor mat abgefragt wird Ein Zeiger auf eine long Variable in der die Breite der Seite gespeichert werden soll Ein Zeiger auf eine long Variable in der die H he der Seite gespeichert werden soll 267 CodeReporter 2 0 API R ckgaben 0 Das Seitenformat wurde erfolgreich abgefragt lt 0 Fehler report ist ung ltig Siehe auch report4pageSize report4marginsGet report4parent Aufruf int report4parent REPORT4 report HWND parent Beschreibung Diese Funktion legt das f r die Reportausgabe zu verwendende Elternfenster fest Bei der Reportausgabe deaktiviert report4do das parent Fenster nachdem das Reportausgabefenster geschlos sen wurde erh lt das Elternfenster eine CRM_REPORTDONE Meldung Parameter report Ein Zeiger auf den Report f r den das Elternfen ster eingerichtet wird parent Ein Microsoft Windows Handle das der Report ausgabe dient Achtung Diese Funktion m
254. n entsprechenden Feldobjekten aus Wenn Sie damit fertig sind klicken Sie um den Einf gemodus zu verlassen auf Kein in der Tastenleiste oder bet tigen die ESC Taste Der Report Entwicklungsbildschirm sollte nun in etwa wie in Abb 2 aussehen das eingesehene Druckbild sollte weitgehend Abb 6 unten entsprechen Bei einigen Datens tzen wird das letzte Zeichen des Feldes CEO nur zum Teil ausgegeben Das liegt daran da CodeReporter die Gr e des Ausgabeobjekts anhand der durchschnittlichen Zeichenbreite der aktuellen Schriftart sch tzt Da diese Sch tzung aufgrund von Mittelwerten erfolgt kann es zu leichten Abwei chungen kommen wenn das Feld Gro buchstaben enth lt die in ihrer Breite bekanntlich ber dem Durchschnittswert liegen 19 CodeReporter 2 0 TEST ls N chste Schlie en Firmenliste ID FIRMENNAME CEO ATHAD1 Athabasca Inc KS468100 EUCLOL Euclid Enterprises Inc FC60 1207 HANS Hamstring Productions Ltd LR221601 PARIDI Paradise Products HS018301 BLANDI Bland Or Not GD02630 ES ei Abb 6 Fertiggestellter Report von bung Nr 2 Um das Feld komplett anzuzeigen klicken Sie das Feld CEO mit der linken Maustaste an acht kleine Quadrate erscheinen um das Objekt Dabei handelt es sich um sogenannte Gr enhenkel mit denen die Gr e des Ausgabeobjekts ver ndert werden kann Klicken Sie einen der rechten Henkel an halten die Maustaste gedr ckt und ziehen die Maus etwa drei Millimeter nach
255. n finden Sie weiter unten Einen Bereich l schen Der aktuelle Bereich kann mit Hilfe der Men option BEREICH L SCHEN entfernt werden Dabei werden ebenfalls alle im Bereich vorhandenen Ausgabeobjekte gel scht Alle Bereiche eines Gruppenkopfes bzw fu es k nnen gel scht werden aller dings wird das Informationsfenster des letzten Gruppenbereichs weiterhin an gezeigt wenn die Men option ANSICHT INFO FENSTER aktiv ist Einen Bereich bearbeiten Jeder Bereich hat drei ver nderbare Merkmale Gr e Unterdr ckung ja nein und Fortsetzung nach Seitenumbruch Diese Optionen k nnen in der Dialogbox Bereich bearbeiten Abb 4 2 ver ndert werden das Feld wird f r den aus gew hlten Bereich ber die Men option BEREICH BEREICH BEARBEITEN oder ber das Klicken der rechten Maustaste innerhalb des Bereichs aufgerufen 87 CodeReporter 2 0 Gr e eines Bereichs bestimmen Die H he eines Bereichs l t sich mit Hilfe der Maus bzw ber die Dialogbox Bereich bearbeiten siehe Abb 4 2 ver ndern Die Breite dagegen l t sich f r einen Bereich nicht individuell einstellen Sie h ngt jeweils von der angegebenen Seitenbreite des Reports oder den eingestellten R ndern ab Die Vergr erung der Bereichsh he wirkt sich nicht auf die Position der Aus gabeobjekte innerhalb der Gruppe aus Wird die Bereichsh he jedoch herabge setzt kann es geschehen da einige Ausgabeobjekte gel scht werden wenn sie an ih
256. n formatieren 110 API bersicht 179 Zwischensummen 138 aufrufen 6 Berechnung Befehlszeilenparameter 6 definieren 126 Dateien der Version 1 0 7 Definition 125 Dateien ffnen 7 l schen 127 Dateiliste 6 Name einer 127 Datum 11 Summe und 128 neue Reports 8 verschachteln 126 Report speichern 8 Bereiche Report Entwicklungsbildschirm 10 ausw hlen 87 Report Utility 135 bearbeiten 87 Reportdateien 7 Breite 88 Reportkopf 168 Definition 86 Seriennummer 11 Gruppen und 76 86 Standard Verzeichnis 6 H he 88 Versionen 5 l schen 87 CodeReporter aufrufen neu anlegen 87 Datei Ausf hren 6 Reportentwurf und 39 Datei Manager 6 Seitenkopf fu 90 Symbole 7 Seitenumbruch 89 CTODO 292 Titel Schlu bereich 90 DATEQ 292 unterdr cken 79 86 89 91 Datendatei Bitmaps drucken in eine 174 siehe Grafiken siehe zusammengesetzte Bitoptimierte Abfragetechnik Datendatei aktivieren 59 Datendateien verkn pfen Was ist 58 siehe Relationen Datensatz siehe zusammengesetzter Datensatz Datensatz berspringen Datensatznummer Relationen mit Datumsformatierung Datumsschablonen Standard Datumsformat voreingestelltes Format DAYO dBASE Ausdruck eingeben Ausdruckssyntax CodeReporter Version Konstanten Operatoren Typen unterst tzte Indexdateien dBASE Operatoren Rangfolge DELO DELETEDO DESCENDO Dezimalstellen bei numerischen Objekten einrichten Dezimalzeichen festlegen Drucken auf einen Universaldrucker Ausgabe vorbereiten Druckbild einsehen D
257. n im allgemeinen Textobjekte wie die Kurzbezeichnung des Reports ein Datum und oder eine Seitenzahl Die Seitenfu Bereiche werden unten auf jeder Seite ausgegeben und enthalten im allgemeinen Textobjekte wie Zwischensummen Seitensummen und Seiten zahlen Werden sie nicht unterdr ckt oder ist bei der Gruppe die Option Kopf austau schen bzw Fu austauschen aktiviert erscheinen diese Bereiche auf jeder Seite des Reports Sie werden mittels der Men optionen BEREICH NEUER SEI TENKOPF BEREICH und BEREICH NEUER SEITENFUSS BEREICH erzeugt Titel und Schlu bereich Der Titelbereich ist der erste Bereich der auf der ersten Reportseite nach dem Seitenkopf Bereich ausgegeben wird f r jeden Report wird lediglich ein Titel bereich ausgegeben Der Titelbereich als solcher sozusagen das Deckblatt des Reports enth lt im allgemeinen in Gestalt des Reportnamens eindeutige Hin weise auf seinen Inhalt Sollnach dem Titelbereich eine neue Seite begonnen werden aktivieren Sie die Schaltfl che Neue Seite nach Titel in der Dialogbox Reportvorgaben Siehe Abschnitt Reportvorgaben im Kapitel Reports gestalten Ein Schlu bereich wird als letzter Bereich vor dem Seitenfu der letzten Seite des Reports ausgegeben jeder Report enth lt lediglich einen Schlu bereich Der Schlu bereich dient der Ausgabe von Schlu bemerkungen und oder von den gesamten Report zusammenfassenden Zahlenwerten Diese Bereiche w
258. n roter Schrift und mit Gr enhenkeln markiert Hinweis W hlen Sie ein Objekt aus das weitere Objekte enth lt werden gleichzeitig alle darin enthaltenen Objekte mit ausgew hlt Ein Objekt kann man durch einen einfachen Mausklick darauf ausw hlen Zu s tzlich werden dabei Gruppe und Bereich des Objekts ausgew hlt Mittels der TAB Taste lassen sich Ausgabeobjekte im ausgew hlten Bereich markieren Das wiederholte Bet tigen der TAB Taste l t die Markierung alle Objekte des Bereichs durchlaufen Mit der Tastenkombination Gro _TAB wan dert die Markierung r ckw rts Mehrfachauswahl Es ist oft erforderlich eine Operation z B einen Layout Wechsel f r mehrere Objekte durchzuf hren Mehrere Ausgabeobjekte lassen sich parallel ausw hlen und gemeinsam ver ndern indem man eines von ihnen bearbeitet 95 CodeReporter 2 0 Bei der Auswahl mehrerer Objekte werden alle mit rotem Schriftzug gekenn zeichnet doch lediglich das erste ausgew hlte Objekt beh lt seine Gr enhenkel Die Auswahl mehrerer Objekte gleichzeitig kann erfolgen beim Verschieben von Objekten L schen von Objekten Ausschneiden Kopieren und Einf gen von Objekten beider Auswahl von Layouts und bei allen Ausrichtoptionen Mit der Maus w hlt man mehrere Ausgabeobjekte aus indem man die Gro Taste gedr ckt h lt und die gew nschten Objekte anklickt Auf diese Weise l t sich jedes beliebige Objekt in jedem beliebigen Bereich au
259. ndatei k nnen Sie diesen Arbeitsschritt berspringen und die Reporterstellung mit CodeReporter unmittelbar in Angriff nehmen Wie bereits gesagt greifen die meisten Report auf Daten aus mehreren Daten dateien zur ck Die Verkn pfung bzw Verkettung dieser Datendateien ist der eigentliche Kern von relationalen Datenbanken Das Modell relationaler Daten banken und wie man mit CodeReporter eine Relation erstellt behandeln wir ausf hrlich in Kapitel 2 Verbinden Sie in der bersicht ber die Datendateien und ihre Felder die ge meinsamen Felder mit Linien Daraus werden die erforderlichen Verbindungen zwischen den Datendateien ersichtlich dar ber hinaus k nnen die zwischen den Datendateien bestehenden Relationen leichter bestimmt und die Top Master Datendatei des Reports ermittelt werden Beachten Sie die in Abb 1 6 von links nach rechts verlaufende Relation Die Datendatei SPENDEN DBE enth lt oder k nnte enthalten f r jeden Spender mehr als einen Spenden Datensatz In der Datendatei SPENDER DBE hat jeder Ehemalige lediglich einen Datensatz das hei t da alle Spenden eines Ehema ligen unter einer einzigen Kennummer zu finden sind SPENDEN SPENDER EHEM SPENDNR EHEMID et EHEMID DATUM TL Le SPENDNR NACH_NAME SUMME weien STEUERD Einer zu VORNAME einem 5 e nem S STADT STAAT PLZ Index Feld Abb 1 6 Eine Relation planen 43 CodeReporter 2 0 Die In
260. ndbuch bezeichnen wir das Launch Programm per berein kunft als LAUNCH_D Aufruf LAUNCH_D name q expr s expr x nn y nn pldest f dataName t q expr Voreingestellten Abfrageausdruck ndern Die Abfrageausdr cke m ssen in doppelte Anf hrungszeichen eingeschlossen wer den zum Beispiel LAUNCH_D SAMPLE PER q DBF gt FELDNAME gt LINCOLN Zeichenliterale wie z B Lincoln oben m ssen in einfache Anf hrungszeichen eingeschlossen werden s expr Voreingestellten Sortierausdruck ndern Sortierausdr cke m s sen in doppelte Anf hrungszeichen eingeschlossen werden zum Beispiel LAUNCH_D SAMPLE REP s DBF gt FELDNAME Auch hierbei m ssen Zeichenliterale in einfache Anf hrungszei chen eingeschlossen werden x nn Voreingestellte Breite der Seite in Zeichen ndern Als Stan dard sind 80 Zeichen pro Zeile eingestellt Zum Beispiel LAUNCH_D SAMPLE REP x70 332 y nn p dest f dataName t Anhang G Launch Programme Voreingestellte H he der Seite in Zeilen ndern Als Standard sind 25 Zeilen eingestellt Die meisten Drucker bringen 66 Zei len auf einer Seite unter Zum Beispiel LAUNCH_D SAMPLE REP y66 Voreingestelltes Ausgabeziel ver ndern Reports werden stan dardm ig auf dem Bildschirm ausgegeben Geben Sie nur p an erfolgt die Ausgabe auf standard print Wenn Sie eine Zeichenkette angeben erfolgt die Ausgabe in eine Datei mit
261. ngung definiert Das liegt daran da die Gruppe Body ohne Gruppenr cksetzausdruck f r jeden zusammengesetzten Datensatz zur ckgesetzt wird dabei wird der Gruppenkopf Bereich f r jeden einzelnen Datensatz ausgegeben 25 CodeReporter 2 0 Aktivieren Sie innerhalb der vorliegenden Dialogbox ebenfalls die Schaltfl chen Kopf austauschen Fu austauschen und Seitenzahl zur cksetzen Diese Optionen stellen dem Kontoauszugsreport einige besondere Bearbeitungsm g lichkeiten zur Verf gung N here Einzelheiten zu diesen Einstellungen entneh men Sie bitte dem Kapitel Gruppen Klicken Sie auf OK um die Dialogbox Gruppendefinition zu schlie en Kopf der Gruppe Kunde f llen Der Kunden Kopfbereich wird aufgrund der aktivierten Option Kopf austau schen oben auf jeder Seite ausgegeben die mit einem neuen Kunden beginnt Aus diesem Grund ist es erforderlich sowohl in den Report selbst als auch den Kopfbereich der Gruppe einen Erl uterungstext einzuf gen Erstellen Sie ein Textausgabeobjekt mit dem Inhalt KONTOAUSZUG setzen Sie es in den Kunden Kopfbereich und richten Sie den Text mit der Men option AUSRICHTEN ZENTRIERT waagerecht mittig aus Ehe der Kunden Kopfbereich mit den restlichen Texten versehen wird mu die Bereichsgr e ver ndert werden Das k nnen Sie entweder mit der Maus ber die Gr enhenkel wie weiter oben beschrieben oder ber die Dialogbox Be
262. ns aktuelle Verzeichnis geschrieben Die Erweiterung am Dateinamen lautet CRS R ckgaben 1 Das Seiten Layout wurde erfolgreich gespeichert 0 Das Seiten Layout konnte nicht gespeichert wer den Das ist immer dann der Fall wenn die Datei bereits vorhanden ist report4titlePage Aufruf int report4titlePage REPORT4 repott int titlePage Beschreibung Mit dieser Funktion erzwingen Sie nach Ausgabe der Titelberei che des Reports einen Seitenumbruch Parameter report Ein Zeiger auf den Report f r den die Einstellung der Titelseite gelten soll titlePage Dieser Parameter legt fest ob nach dem Titelbe reich ein Seitenumbruch erfolgen soll oder nicht titlePage kann einen der folgenden Werte anneh men 1 Nach der Ausgabe der Titelbereiche erfolgt ein Seitenumbruch 0 Nach der Ausgabe der Titelbereiche erfolgt kein Seitenumbruch Wird diese Funktion nicht aufgerufen geht das Programm von diesem Wert aus 279 CodeReporter 2 0 API R ckgaben gt 0 Die vorhergehende Einstellung von titlePage wird zur ckgegeben lt 0 Fehler report oder titlePage sind ung ltig report4titleSummary Aufruf GROUPA4 report4titleSummary REPORT4 report Beschreibung Mit dieser Funktion wird ein GROUP4 Zeiger auf die Titel Schlu gruppe des Reports zur ckgegeben Parameter report Ein Zeiger auf den Report aus dem die Titel Schlu gruppe eingelesen werden soll R ckgaben Nicht Null Ein GROUP4 Zeiger auf die Titel Schlu gruppe
263. nsatzes aus In den meisten F llen ist dazu lediglich eine Zeile erforderlich Insbesondere bei langen Feldobjekten einschlie lich Memofelder reicht allerdings eine Zeile nicht aus In einem solchen Fall f hrt CodeReporter in dem f r das Ausgabeobjekt vor gesehenen Raum Zeilenumbr che aus Wenn also der Text f r ein Ausgabeobjekt nicht einzeilig in dem vorgesehenen Raum ausgegeben werden kann gibt CodeReporter bis zum Rand des Objekts so viele W rter durch Leerstellen getrennt wie m glich aus und setzt die restlichen soweit in der Senkrechten Platz vorhanden ist in die zweite Zeile des Objekts Hinweis Durch Zeilenumbr che vergr ert sich die Gr e eines Objekts nicht Kann der Text nicht innerhalb des zur Verf gung stehenden Raumes untergebracht werden wird der Rest abgeschnitten Per Voreinstellung erzeugt CodeReporter einzeilige Ausgabeobjekte Ben tigen Sie ein Objekt mit mehreren Zeilen sollten Sie dessen Gr e ber die Dialogbox Objektdefinition bzw die Gr enhenkel ver ndern Vorschau Die Vorschau Funktion gestattet es ein Objekt mit dem Wert im Gruppenkopf auszugeben den es bei Ausgabe im Gruppenfu erhalten h tte Im wesentlichen erh lt das Ausgabeobjekt auf diese Weise seinen Wert vom letzten Datensatz 106 Ausgabeobjekte bevor eine Gruppenr cksetzbedingung eintritt Einzelheiten zu den Unterschieden zwischen Gruppenkopf und Gruppenfu entnehmen Sie bitte dem Abschnitt
264. nzu Hinweis Soll eine Summe lediglich die Anzahl der Datens tze zwischen zwei Summenr cksetzbedingungen ermitteln gr nden Sie das Summenaus gabeobjekt auf eine Berechnung mit der Konstante eins 1 Eine Durchschnittssumme bildet den Mittelwert der ausgewerteten Berechnung Summe oder des numerischen Feldes Dieser Wert wird ermittelt indem die Summenwerte der Datens tze durch die Anzahl der betroffenen Datens tze divi diert wird Bei einer Maximalsumme wird der gr te Wert der ausgewerteten Berechnung Summe oder des numerischen Feldes ermittelt Bei einer Minimalsumme wird der kleinste Wert des ausgewerteten Berechnung Summe oder des numerischen Feldes ermittelt 130 Ausgabeobjekte R cksetzausdruck Mit dem Summenr cksetzausdruck werden Summen gebildet die Datenunter mengen innerhalb der zusammengesetzten Datendatei zusammenfassen Die Summe zum Beispiel die den Gesamtverkauf eines bestimmten Verk ufers be schreibt summiert die Verkaufsuntermenge eben dieses Verk ufers Im allgemeinen stimmt der Summenr cksetzausdruck mit dem R cksetzausdruck der Gruppe berein mit der die Summe logisch verbunden ist Ein Verkaufsreport kann nach Monaten sortiert und gegliedert werden F r die Verk ufe eines Monats w rde als Summenr cksetzausdruck DBF gt MoNAT verwendet der mit dem Monatsgruppenausdruck identisch ist Siehe Abb 5 15 Der Summenr cksetzausdruck mu f r die Gruppe in der er steht nicht mit dem
265. obei die Bedingung vom Wert der Berechnung soLL_HABEN abh ngt Klicken Sie die rechte Maustaste auf einer leeren Stelle im zweiten Fu bereich der Kunden Gruppe Sie haben gut an wird die Dialogbox Bereich bearbei ten aufgerufen Schreiben Sie den folgenden Ausdruck in das Editierfeld Unterdr ckungsbedingung und klicken Sie auf OK SOLL_HABEN lt 0 31 CodeReporter 2 0 Auf diese Weise wird dem Report angezeigt da der zweite Bereich Sie haben gut nicht ausgegeben werden soll wenn die Guthabensumme minus Schuld betrag kleiner oder gleich null ist der Kunde schuldet der Firma Geld Verf gt der Kunde ber ein Guthaben gibt die Berechnung soLL_HABEN einen positiven Wert zur ck so da der Reportbereich ausgegeben d h nicht unterdr ckt wird F r den dritten Bereich sollte folgende Unterdr ckungsbedingung verwendet werden SOLL_HABEN gt 0 Die letzte Aufgabe in diesem bungsreport besteht in der Bearbeitung des Zah lenformats der numerischen Ausgabeobjekte der Fu bereiche zwei Summen eine Berechnung und ein Ausdruck Rufen Sie das jeweilige Objektmen auf Objekt mit rechter Maustaste anklicken bzw Eingabetaste bet tigen wenn Ob jekt markiert ist und w hlen Sie die Men option OBJEKTDEFINITION an Bear beiten Sie folgende Einstellungen 1 Das Editierfeld Nachkommastellen Voreingestellt ist 0 Geben Sie statt dessen 2 ein 2 Die Optionsschaltfl ch
266. odeReporter 2 0 Einf gemodus Haben Sie einen Objekttyp zur Hinzuf gung zum Report ausgew hlt begibt sich CodeReporter in den Einf gemodus Die Statusanzeige gibt das Wort Einf ge modus und dahinter den ausgew hlten Objekttyp wieder Mit dem Mauscursor der sich in den entsprechenden Objektcursor verwandelt siehe Anhang C k n nen Sie die Ausgangsposition des neuen Objekts festlegen Ein Klick mit der linken Maustaste plaziert das ausgew hlte Objekt an der gew nschten Stelle Die Art und Weise der Objektdefinition ist von Typ zu Typ verschieden Bei einigen Objekte sind Grundwerte erforderlich w hrend andere sich voreinge stellter Werte bedienen Im folgenden beschreiben wir ganz allgemein wie man ein Ausgabeobjekt definiert Ausf hrliche Erl uterungen zu den einzelnen Ob jekttypen finden Sie weiter unten Einsatz der Tastenleiste ber die Tastenleiste lassen sich die verschiedenen Ausgabeobjekte am einfach sten einf gen Um CodeReporter f r den gew nschten Objekttyp in den Einf ge modus zu versetzen brauchen Sie lediglich auf die entsprechende Schaltfl che zu klicken Die Tastenleiste enth lt bis auf Grafikobjekte alle Objekttypen Grafikobjekte k nnen nur ber das Men eingef gt werden Einsatz des Men s Die Men option OBJEKT zeigt eine Liste aller Ausgabeobjekte an Versetzen Sie CodeReporter ber die Auswahl der entsprechenden Option in den Einf gemodus f r das gew nschte Objekt Mehrere
267. ombination verschiebt den Report Entwicklungs bildschirm so da der rechte Rand des Fensters zu sehen ist Sind alle Elemente des Reports auf dem aktuellen Bildschirm zu sehen geschieht beim Bet tigen dieser Tastenfolge nichts Diese Tastenkombination verschiebt den Report Entwicklungs bildschirm ein klein wenig nach links Sind alle Elemente des Reports auf dem aktuellen Bildschirm zu sehen geschieht beim Bet tigen dieser Tastenfolge nichts Diese Tastenkombination verschiebt den Report Entwicklungs bildschirm ein klein wenig nach rechts Sind alle Elemente des Reports auf dem aktuellen Bildschirm zu sehen geschieht beim Bet tigen dieser Tastenfolge nichts Bei Bet tigen dieser Taste wird das Objektmen f r das aktuelle Ausgabeobjekt aufgerufen Sind keine Objekte ausgew hlt ge schieht beim Bet tigen dieser Taste nichts Anhang C Cursorformen Anhang C Cursorformen Wird CodeReporter bei einem bestimmten Typ von Ausgabeobjekt in den Ein f gemodus versetzt ndert sich der Mauszeiger Er zeigt dann sowohl den Ein f gemodus als auch den Typ des Objekts an das hinzugef gt werden soll Im folgenden f hren wir die verschiedenen Cursorformen und die Objekte auf bei denen sie auftreten Jeder Cursor hat ein Fadenkreuz Der Schnittpunkt der beiden Linien bestimmt nach dem Einf gen die Position der oberen linken Ecke des neuen Ausgabeobjekts Hinweis m JC au Den Einf gemodus verlass
268. on lookAhead wird zu r ckgegeben lt 0 Fehler obj oder lookAhead sind ung ltig obj4numericType Aufruf Beschreibung Parameter 238 int obj4numericType OBJ4 obj int numericType Diese Funktion legt die Formatierung des angegebenen numeri schen Ausgabeobjekts fest obj numericType Ein Zeiger auf ein Ausgabeobjekt das als Ergeb nis einen Zahlenwert hat ber diesen Parameter wird die Formatierung des numerischen Ausgabeobjekts eingestellt numeric Type kann eine der folgenden vordefinierten Kon stanten sein obj4 numNumber Das Ausgabeobjekt wird nicht formatiert obj4numExponent Das Ausgabeobjekt wird in wissenschaftlicher Notation formatiert d h n nnnnn e xx wobei es sich bei n um die Mantisse und bei x um den Ex ponenten handelt obj4numCurrency Das mit report4currency ein gestellte W hrungssymbol wird dem Zahlenwert vorange stellt obj4numPercent Bei der Ausgabe wird dem mit hundert multiplizierten Zahlenwert unmittelbar das Prozentzeichen nachgestellt R ckgaben Siehe auch obj4style Aufruf Beschreibung Parameter R ckgaben Siehe auch Funktions bersicht gt 0 Die vorhergehende Einstellung von numericT ype wird zur ckgegeben lt 0 Fehler obj oder numericType sind ung ltig report4currency report4decimal obj4decimals int obj4style OBJ4 obj STYLE4 style Per Voreinstellung werden alle Ausgabeobjekte mit dem zur Zeit geladenen Styl
269. onierung erfolgt in der Reihenfolge in der die Felder in der Datendatei vorhanden sind Klicken Sie in der Listbox Feldobjekte auf Fertig um sie zu schlie en Um den Anforderungen des Reports gerecht zu werden m ssen Sie die Reihen folge der Feldausgabeobjekte ver ndern Ziehen Sie dazu das Feldobjekt EN TERDATE mit der Maus in die linke obere Ecke des Reportbereichs Auch die Felder CREDIT und DEBIT lassen sich wie in Abb 7 dargestellt versetzen 22 bungen Objektdefinition ver ndern Die vielen Standardvoreinstellungen von Ausgabeobjekten m ssen nicht in jedem Fall auch zutreffen wie das bei den Feldern ENTERDATE CREDIT und DEBIT der Fall ist ENTERDATE wird im Datumsformat MM DD YY ausgegeben w hrend es als DD MMM CCYY erscheinen sollte und sowohl CREDIT als auch DEBIT sollen nicht ausgegeben werden wenn sie gleich null sind Markieren Sie das Ausgabeobjekt ENTERDATE und bet tigen Sie die Eingabe taste um das Objektmen aufzurufen In diesem Men w hlen Sie die Option OBJEKTDEFINITION an die die Dialogbox Objektdefinition aufruft innerhalb derer das Datumsformat und die Gr e des Objekts ver ndert werden k nnen ffnen Sie die einzeilige Listbox Datumsformat und w hlen Sie darin das Format DD MMM CCJJ an oder geben Sie es per Hand ein Setzen Sie die Breite im Teilbereich Gr e auf 1 9 cm Wenn Sie nun auf OK klicken werden diese beiden Ver nderungen vor
270. ortdatei genannten Daten dateien ffnen soll Ist openFiles auf wahr gesetzt nicht Null werden die Datendateien ge ffnet falls sie noch nicht ge ffnet sind Ist openFiles falsch Null wird davon ausgegangen da die Datendateien bereits ge ffnet sind R ckgaben Bei Erfolg gibt diese Funktion einen g ltigen Zeiger auf eine REPORT4 Struktur zur ck Konnten die Datendateien f r die Relation nicht gefunden werden oder reichte der Speicher f r den Aufbau des Reports nicht aus wird Null zur ckgegeben Reportfunktionen einsetzen Mit Hilfe der Reportfunktionen k nnen Sie innerhalb und au erhalb von Wind ows komplexe Reports entwickeln In den meisten F llen ist es eine m hselige 182 Funktions bersicht Angelegenheit einen Report von Grund auf per Hand zu programmieren Als L sungsm glichkeit daf r bietet CodeReporter dem Entwickler zwei Optionen an entweder einen Report als variabel codierte Reportdatei Erweiterung REP abzulegen oder den Report als C Quellcode zu speichern Ein mit CodeReporter gespeicherter Report wird in einer Reportdatei abgelegt die unmittelbar in eine Anwendung geladen werden kann Mit nur wenigen Funktionsaufrufen l t sich ein Report laden und rasch ausf hren In den meisten F llen reicht das v llig aus In den F llen in denen Reportdateien sich als ungeeignet erweisen kann man den Report mit CodeReporter als C Quellcode speichern Die Programmzeilen lassen sich zeitsparend einse
271. orter 2 0 API obj4dateFormat Aufruf int obj4dateFormat OBJ4 obj char dateFormat Beschreibung Diese Funktion stellt das Format auch als Schablone oder Maske bekannt ein das das Datumsausgabeobjekt bei der Ausgabe benutzt Hat das Ausgabeobjekt als Ergebnis keinen Datumswert zeigt diese Funktion keine Wirkung Wenn die Funktion nicht aufgerufen wird und das Ausgabeobjekt als Ergebnis einen Datumswert aufweist wird das f r den Report voreingestellte Datumsformat verwendet siehe report4 dateFormat Parameter obj Ein Zeiger auf das Ausgabeobjekt f r das das Datumsformat eingerichtet wird dateFormat Ein null terminiertes Zeichenarray das das f r das Ausgabeobjekt geltende neue Datumsformat ent h lt Ist dateFormat Null wird das aktuelle Da tumsformat ignoriert und das voreingestellte For mat des Reports verwendet obj4dateFormat legt eine Kopie von dateFormat an R ckgaben 0 Das Datumsformat f r das Ausgabeobjekt wurde erfolgreich eingerichtet lt 0 Fehler Siehe auch report4dateFormat obj4decimals Aufruf int obj4decimals OBJ4 obj int numDecimals Beschreibung Diese Funktion legt die bei der Ausgabe von numerischen Aus gabeobjekten verwendete Anzahl von Dezimalstellen fest Un 224 Parameter R ckgaben Siehe auch obj4delete Aufruf Beschreibung Parameter Siehe auch Funktions bersicht genutzte Dezimalstellen werden mit Nullen aufgef llt Hat das Ausgabeobjekt als Ergebnis keine
272. owWindow hwnd nCmdShow UpdateWindow hwnd while GetMessage amp msg NULL 0 0 TranslateMessage amp msg DispatchMessage amp msg return msg wParam FAR PASCAL WndProc HWND hWnd UINT message WPARAM wParam LPARAM lParam static CODE4 cb static REPORT4 report switch message case WM_COMMAND switch wParam 185 case case case CodeReporter 2 0 API case IDM_DOREPORT report report4retrieve amp cb reportName 1 NULL if report report4parent report hWnd report4toScreen report 1 report4do report break break WM_CREATE d4init amp cb break CRM_REPORTCLOSED Von report4do gemeldet s API report4free report 1 1 break WM_DESTROY d4init_undo Schi PostQuitMessage 0 return 0 return DefWindowProc hWnd message wParam lParam Windows Resource Datei f r das Men WREPI RC MAINMENU MENU BEGIN MENUITEM amp Report anzeigen 101 END Windows Definitionsdatei WREP1 DEF DESCRIPTION EXETYPE STUB CODE DATA HEAPSIZE STACKSIZE 186 WREP1 CodeReporter Beispiel WINDOWS wINSTUB EXE PRELOAD MOVEABLE DISCARDABLE PRELOAD FIXED MULTIPLE 4096 15000 Funktions bersicht Generierten Code verwenden F r jede beliebige Reportdatei kann CodeReporter Quellcode generieren Der fest codierte Quellcode f r diese Reports wird in Dateien abgelegt die kompiliert und mit all
273. pStaticFree automatisch freigegeben Um sie innerhalb der angegebenen Koordinaten unterzubringen wird die Gr e der Bitmap ver ndert dabei bleiben ihre Propor tionen nicht unbedingt erhalten Das Bild des statischen Grafikobjekts wird in der Reportdatei abgelegt area Dieser AREA4 Zeiger bezeichnet den Reportbe reich in den das neue Grafikausgabeobjekt gesetzt werden soll 215 CodeReporter 2 0 API hDIB Ein Handle auf eine ger teunabh ngige Bitmap unter Windows x Die waagerechte Koordinate in tausendstel Zoll an der die linke Seite des Grafikobjekts steht y Die senkrechte Koordinate in tausendstel Zoll vom oberen Rand des Reportbereichs an der die Oberkante des Grafikobjekts steht width Die horizontale Ausdehnung des Grafikausgabe objekts in tausendstel Zoll height Die vertikale Ausdehnung des Grafikausgabeob jekts in tausendstel Zoll R ckgaben Nicht Null Bei Erfolg wird ein Zeiger auf das neue Grafik ausgabeobjekt zur ckgegeben 0 Fehler Das Grafikausgabeobjekt konnte nicht an gelegt werden Siehe auch obj4bitmapStaticFree obj4bitmapFileCreate A eege Atunuu KA obj4bitmapsStaticFree Aufruf void obj4bitmapStaticFree OBJ4 obj Beschreibung Diese Funktion l scht ein mit obj4bitmapStaticCreate ange legtes Grafikausgabeobjekt aus dem Report und gibt den mit der Bitmap und dem Ausgabeobjekt verbundenen Speicher frei Parameter obj Zeiger auf das zu l schende statische Grafik
274. pe mit dem Fu bereich area area Ein Zeiger auf den Fu bereich von dem aus der unmittelbar vorher angelegte Fu bereich lokali siert wird 205 CodeReporter 2 0 API R ckgaben Diese Funktion gibt einen AREA4 Zeiger auf den Fu bereich zur ck der vor dem Fu bereich area angelegt wurde Ist area der letzte f r die Gruppe angelegte Fu bereich oder ist area Null gibt group4footerPrev Null zur ck Achtung Es kann zu unerwarteten Ergebnissen kommen wenn der Para meter area kein g ltiger Fu bereich f r die Gruppe group ist Siehe auch area4firstFooter areadnumFooters group4free Aufruf void group4free GROUPA4 group Beschreibung Diese Funktion l scht die angegebene Gruppe aus dem Report und gibt den damit verbundenen Speicher frei Hat die Gruppe Kopf und oder Fu bereiche werden diese mit area4free Auf rufen entfernt Parameter group Der Zeiger auf die aus dem Report zu l schende Gruppe Siehe auch group4create area4free group4headerfFirst Aufruf AREAA4 group4headerFirst GROUPA4 group Beschreibung Diese Funktion gibt einen AREA4 Zeiger auf den ersten f r die Gruppe angelegten Kopfbereich zur ck Parameter group Ein GROUP4 Zeiger auf die Gruppe 206 R ckgaben Siehe auch Funktions bersicht group4headerfFirst gibt einen AREA4 Zeiger auf den ersten f r die Gruppe angelegten Kopfbereich zur ck Wenn die Gruppe keinen Kopfbereich hat gibt diese Funktion Null zur ck group4footerFirst
275. ppe betrachten da der Report wahrscheinlich die Ge samtsumme aller Abteilungen enth lt Die sortierte zusammengesetzte Datendatei aus Abb 3 1 legt die Entwicklung eines Reports mit f nf Gruppen nahe wie er in Abb 3 2 dargestellt wird Gruppenausdruck Beim Gruppenausdruck handelt es sich um einen dBASE Ausdruck der die Untermenge beschreibt mit der die Gruppe verbunden ist Dieser Ausdruck wird f r jeden zusammengesetzten Datensatz in der Datendatei ausgewertet ndert sich der ermittelte Wert werden die Funktionen der Gruppe ausgef hrt meistens Ausgabe von Gruppenkopf und fu f r den zusammengesetzten Datensatz Diesen Wechsel bezeichnen wir als R cksetzbedingung oder auch als Grup penwechsel Hat eine Gruppe keinen Gruppenausdruck d h das Editierfeld Gruppenaus druck bleibt leer besteht f r jeden Datensatz der zusammengesetzten Daten datei eine R cksetzbedingung Auf diese Weise werden im allgemeinen die genauen Einzelzeilen eines Reports erzeugt Achtung Gew hnlich enth lt ein Report lediglich eine Gruppe ohne Gruppen ausdruck Sind mehrere Gruppen ohne Gruppenausdruck vorhanden kann das bei der Ausgabe des Reports zu unerw nschten Nebeneffek ten f hren Die erste Untermenge in Abb 3 1 setzt sich aus allen Datens tzen zusammen die im Feld ABT den Eintrag TEC aufweisen Das Feld ABT entscheidet ber den Unterschied zwischen den Untermengen mit TEC und BHT 74 Gruppe
276. quemz ab Die Steuersequenzen f r den aktuellen Style k nnen Sie mit Hilfe der Men op tion STYLE DEFINITION FREMDFORMAT eingeben Die Option ruft die Dialogbox Informationen ber Fremdformat Non Windows Layout auf Abb 8 2 Informationen ber Fremdformat Non Windows Layout zu Normal Einleitungssequenz Ausleitungssequenz ZZ Abbrechen Abb 8 2 Dialogbox Informationen ber Fremdformat Non Windows Layout Im Editierfeld Einleitungssequenz geben Sie die Steuerzeichen an die eine bestimmte Druckerschrift aktivieren w hrend das Editierfeld Ausleitungsse quenz die Steuerzeichen aufnimmt die das Attribut deaktivieren Das Format der Steuersequenz richtet sich nach den Schaltfl chen unter Format Steuersequenz Ist die Schaltfl che Dez aktiv wird der in das Editierfeld ein gegebene Text als Dezimalwert interpretiert ist die Schaltfl che Hex aktiv 154 Styles mu der eingegebene Text hexadezimalen Werten entsprechen Zwischen den einzelnen Steuersequenzen mu jeweils ein Leerzeichen stehen Das Leerzeichen wird nicht an den Drucker geschickt sondern dient lediglich als Begrenzer der einzelnen Steuersequenzen Mehrfachattribute f r Non Windows Ausgabeobjekte z B fett und kursiv m s sen innerhalb einer Non Windows Styledefinition angegeben werden Setzen Sie dabei jeweils ein Leerzeichen zwischen Ende und Anfang der Steuersequenzen Ob bei Ihrem Drucker
277. r GROUPA4 group int repeatHeader Beschreibung Mit Hilfe dieser Funktion wird bestimmt ob der die Kopfberei ch e der angegebenen Gruppe oben auf einer neuen Seite aus gegeben werden soll en falls innere Gruppen sich ber einen Seitenumbruch hinweg erstrecken Die Funktion wirkt sich nicht auf den Seitenkopf aus Wird sie mit repeatHeader gleich 1 aufgerufen wird der Kopf unterhalb des Seitenkopfes und aller h herrangigen wiederholten 209 CodeReporter 2 0 API Kopfbereiche und vor dem ersten Kopfbereich einer untergeord neten Gruppe ausgegeben Parameter group Die Gruppe f r die die Option Kopf wieder holen eingerichtet wird repeatHeader Ist repeatHeader gleich 1 wird der Kopf auf der folgenden Seite wiederholt Enth lt er den Wert 0 Voreinstellung wird der Kopfbereich lediglich beim Eintreten einer R cksetzbedingung ausgegeben Hinweis Wird diese Funktion nicht aufgerufen wird der Kopf nicht wie derholt R ckgaben gt 0 Die vorhergehende Einstellung von repeatHeader wird zur ckgegeben lt 0 Fehler Siehe auch group4swapHeader group4resetExprSet Aufruf int group4resetExprSet GROUPA4 group char resetExpr Beschreibung Mit dieser Funktion l t sich der R cksetzausdruck der angege Parameter 210 benen Gruppe ver ndern group Die Gruppe f r die der R cksetzausdruck einge richtet wird resetExpr Ein null terminiertes Zeichenarray mit dem neuen dBASE
278. r tekontext wird von report4do nicht verwendet falls die Ausgabe mit report4toScreen auf dem Bildschirm erfolgt report Ein Zeiger auf den Report der f r den angegebe nen Druckerger tekontext konfiguriert ist hDC Ein Handle auf den Druckerger tekontext in den die Reportausgabe gestellt werden soll 269 Siehe auch CodeReporter 2 0 API report4toScreen report4printerSelect report4querySet Aufruf int report4querySet REPORT4 report char queryExpr Beschreibung Diese Funktion stellt eine Abfrage f r das Relationsset ein Achtung Parameter Hinweis R ckgaben Siehe auch 270 Dabei wird der Ausdruck queryExpr f r jeden zusammengesetz ten Datensatz ausgewertet Ist der Ausdruck wahr geht der Datensatz in den Report ein Ist das Ergebnis von queryExpr falsch wird der Datensatz ignoriert Diese Funktion berschreibt alle mit relate4query_set einge richteten Abfrageausdr cke report Ein Zeiger auf den Report f r den die Abfrage eingerichtet wird queryExpr Ein logischer dBASE Ausdruck der Datens tze der zusammengesetzten Datendatei filtert Ist queryExpr Null werden alle Datens tze der zu sammengesetzten Datendatei im Report verwen det Im Abfrageausdruck vorhandene Feldnamen m ssen mit Daten dateikennzeichner verwendet werden z B DBF gt NAME SCHMIDT 0 Die Abfrage wurde erfolgreich eingerichtet lt 0 Fehler relate4query_set relate4sort_set report4sortSet
279. r 2 0 Eine Gruppe bearbeiten Die Dialogbox Gruppendefinition wird auch dazu verwendet die Einstellungen einer bereits vorhandenen Gruppe zu ver ndern Nachdem die Gruppe angelegt worden ist k nnen Sie die Dialogbox entweder ber GRUPPE BEARBEITEN oder durch Klicken der rechten Maustaste auf das Gruppeninformationsfenster auf rufen Einzelheiten zu den Einstellungen der Dialogbox Gruppendefinition finden Sie weiter oben unter der berschrift Gruppen anlegen Eine Gruppe l schen Die aktuelle Gruppe sowie alle mit ihr verbundenen Bereiche und Ausgabeob jekte k nnen Sie mit Hilfe der Men option GRUPPE L SCHEN l schen Dabei wirkt sich dieser Vorgang nicht auf andere Gruppen innerhalb des Reports aus Eine Gruppe ausw hlen Eine Gruppe w hlen Sie aus indem Sie die linke Maustaste an einer beliebigen Stelle innerhalb des Gruppenbereichs bzw auf ein Objekt in einem Bereich klik ken Alternativ dazu k nnen Sie mit den Tasten Strg_ und Strg_9 eine neue Gruppe ausw hlen R cksetzbedingungen und Drucken von Gruppen ndert sich der Gruppenausdruck tritt eine R cksetzbedingung ein Diese Zur cksetzung bewirkt die Erstellung des Gruppenfu es die Zur cksetzung der Summen und schlie lich die Erstellung des Gruppenkopfes mit dem n chsten zusammengesetzten Datensatz ER Gruppen Bei einem Report in den viele Gruppen eingehen setzt eine R cksetzbedingung die Gruppe mit dem ge nderten Ausdruc
280. r Entwicklungsarbeit grundlegend ver ndert Die Ursache daf r ist eine unzureichende Planung vor der eigentlichen Reportdurchf hrung Das vorliegende Kapitel befa t sich mit den berlegungen die der Entwicklung eines Reports vorangestellt werden m ssen Zweck des Reports Wenn Sie einen Report entwickeln m ssen Sie genau wissen warum er erstellt wird Ohne eine klare Vorstellung dar ber zu haben warum der Report berhaupt erforderlich ist ist es relativ einfach einen ansehnlichen neuen klaren v llig nutzlosen Report vorzulegen Wenn die Lagerverwaltung z B wissen will wie viele XYZs sie nachbestellen mu und ihr ein Report mit dem XYZ Verbrauch vom letzten Jahr vorgelegt wird wird sie geringf gig aus der Fassung geraten und der Report mu berar beitet werden Bei der Zweckerkl rung handelt es sich um eine kurze Beschreibung der Erfor dernisse eines Reports In ein oder zwei Zeilen wird dabei kurz angegeben wer den Report angefordert hat welche Informationen er enthalten soll f r welche Eckdaten er gelten soll z B Zeitr ume Produkte rtlichkeiten usw wie er eventuell zu formatieren ist 35 CodeReporter 2 0 Diese Erfordernisse k nnen sich einfach z B Die Personalabteilung ben tigt eine Liste aller Personen in der Datendatei EMPLOYEE oder auch komplex gestalten z B Der Aufsichtsrat ben tigt f r jede einzelne Niederlassung jeder Firma innerhalb des Konzerns eine
281. r auf den Report f r den das Ziffern trennzeichen gelten soll separator Das als Trennzeichen verwendete Zeichen W n schen Sie kein Trennzeichen bergeben Sie f r separator eine Null 0 Wird diese Funktion nicht aufgerufen wird als voreingestelltes Trennzeichen das Komma be nutzt R ckgaben 0 Trennzeichen erfolgreich eingerichtet lt 0 Fehler report ist ung ltig Siehe auch obj4numericType report4sortSet Aufruf Beschreibung Achtung Parameter 274 int report4sortSet REPORTA4 report char sortExpr Diese Funktion legt die Sortierfolge fest in der die zusammen gesetzten Datens tze des Reports eingelesen werden Diese Funktion berschreibt alle mit relate4sort_set eingerich teten Sortierausdr cke report Ein Zeiger auf den Report f r den die Sortierfolge gelten soll Hinweis R ckgaben Siehe auch Funktions bersicht sortExpr Ein null terminiertes Zeichenarray das den dBASE Ausdruck enth lt nach dem die zusam mengesetzte Datendatei sortiert wird Dieser Aus druck kann als Ergebnis einen Zeichen Datums oder einen numerischen Wert haben Im Sortierausdruck vorhandene Feldnamen m ssen mit Daten dateikennzeichner verwendet werden DBF gt NAME ist ein Bei spiel f r einen g ltigen Sortierausdruck 0 Erfolg lt 0 Fehler oder report ist ung ltig relate4sort_set report4querySet report4styleFirst Aufruf STYLEA4 report4styleFirst REPORT4 report Beschr
282. r gibt die in Abb 8 angezeigte Warnung aus 23 CodeReporter 2 0 Bereichsfehler Diese Bereichsgr e beschneidet einige Objekte die dadurch gel scht werden Fortfahren Abb 8 Bereichsfehlermeldung Klicken Sie auf Nein Auf diese Weise wird CodeReporter veranla t den Bereich auf die kleinstm gliche Gr e einzustellen ohne da dabei ein Aus gabeobjekt beschnitten und gel scht wird Im Kapitel Bereiche finden Sie weitere Einzelheiten zur Gr e von Bereichen Lassen Sie sich den Report DATEI DRUCKBILD EINSEHEN noch einmal anzeigen die Leerzeilen sind verschwunden Die Gruppe Kunde hinzuf gen So wie der Report jetzt aussieht macht er f r einen unbeteiligten Leser nicht viel Sinn da lediglich einige Daten und Zahlenwerte aufgef hrt werden Ohne Kenntnis dar ber auf wen sich diese Zahlen beziehen und was sie bedeuten vermittelt der Report keine echten Informationen Die m glicherweise wichtigste Information die dem Report noch fehlt besteht in der Zuordnung der Soll und Habenwerte zu Personen Das geschieht ber das Anlegen einer zweiten Gruppe mit der Men option GRUPPE NEU in den Bereich dieser Gruppe werden dann die den einzelnen Kunden betreffenden Infor mationen gesetzt Nach dem Erzeugen der neuen Gruppe erscheint die Dialogbox Gruppendefini tion Abb 9 um dem Reportentwickler Gelegenheit zu geben einige der Gruppenvoreinstellungen zu abzu ndern Code
283. rbunden der nicht kursiv ist W hlen Sie die Men option STYLE ERSTELLEN an um einen neuen Kursiv Style zu erzeugen Wenn Sie zur Eingabe der Stylebezeichnung aufgefordert werden geben Sie einen sprechenden Namen z B Kursiv ein und klicken auf OK CodeReporter ruft nun die Dialogbox Schriftart auf Abb 8 1 wobei die aktuelle Schrift als Ausgangsschrift f r die neue benutzt wird Um die Schrift kursiv zu gestalten markieren Sie in der Listbox Schriftstil den Eintrag Kursiv und klicken auf OK Durch das Erstellen eines neuen Styles werden die Objekte innerhalb des Reports nicht ver ndert Deshalb m ssen die gew nschten Ausgabeobjekte markiert und ihre Styles neu eingestellt werden Klicken Sie das Textobjekt mit der Zeile Dieser Text IST kursiv an Der Style Schaltfl che k nnen Sie entnehmen da das Objekt mit dem Style Normal verbunden ist Klicken Sie auf die Schaltfl che Style um sich die Liste der verf gbaren Styles anzeigen zu lassen und doppelklicken Sie auf den neuen Style Kursiv um ihn mit dem markierten Ausgabeobjekt zu verbinden Lassen Sie sich den Report mit DATEI DRUCKBILD EINSEHEN anzeigen um zu berpr fen da das Textausgabeobjekt Dieser Text IST kursiv auch wirklich mit dem neuen Style verbunden ist Bei dem soeben erstellten Report wird die Ausgabe des kursiven bzw normalen Texts auf dem Bildschirm von Windows Bildschirmtreibe
284. rden Das hei t die Daten die ein Datensatz einer Datei enth lt m ssen logisch mit den Datens tzen der anderen Datendateien bereinstimmen Z B sollte die Rechnung f r den Kunden mit der Nr 2345 Jane Smith nicht an den Kunden mit der Nr 4321 Peter Rodriguez geschickt werden Um sicherzustellen da innerhalb des Reports die richtigen Daten aus allen Datendateien abgerufen werden mu die Art und Weise der Informationsbe schaffung beim Entwerfen des Reports klar beschrieben werden Ist diese Be schreibung vorhanden sind die Datendateien verbunden oder verkn pft Eine Relation besagt z B Benutzt der Report einen Datensatz aus dieser Datendatei soll diese Information daraus verwendet werden um einen Datensatz mit dersel ben Information in jener Datendatei zu lokalisieren Die Datendateien stehen in einem hierarchischen Master Slave Verh ltnis zuein ander Die steuernde Datendatei wird als Master die verkn pfte in der die Suchvorg nge durchgef hrt werden als Slave bezeichnet Zerlegen wir die oben angegebene Relation in ihre Bestandteile treten die ein zelnen Elemente klarer hervor Benutzt der Report einen Datensatz aus dieser Datendatei legt die Ma sterdatei fest soll diese Information daraus verwendet werden ist ein dBASE Ausdruck der f r jeden Datensatz der Masterdatei ausgewertet wird Dieser Ausdruck der sogenannte Masterausdruck dient als Suchschl ssel der den Slave Subi
285. rden kann Ausschneiden Kopieren und Einf gen ber die Men optionen BEARBEITEN AUSSCHNEIDEN BEARBEITEN KOPIEREN und BEARBEITEN EINF GEN lassen sich Objekte in andere Reportbereiche ver schieben oder kopieren Ausgeschnittene bzw kopierte Objekte werden in der Windows Zwischenablage gespeichert bis sie von dort abgerufen werden 100 Ausgabeobjekte Nach dem Aufruf der Men option BEARBEITEN EINF GEN ver ndert sich der Mauszeiger in ein Einf gesymbol Bewegen Sie das Symbol auf die gew nschte neue Position und klicken Sie die linke Maustaste Die Zwischenablage kann dazu verwendet werden mehrere Objekte auszuschnei den zu kopieren und einzuf gen Ist der Zielbereich allerdings zu klein um alle Ausgabeobjekte aufzunehmen werden lediglich die eingef gt die hineinpassen Da CodeReporter beim Ausschneiden Kopieren und Einf gen auf die Windows Zwischenablage zugreift k nnen auch die Daten anderer Anwendungen aus der Zwischenablage als Textobjekte in den Report eingef gt werden Grafiken aus anderen Anwendungen k nnen als statische Grafikobjekte in einen CodeReporter Report eingebettet werden Auch andere Anwendungen k nnen Text und statische Grafikobjekte von Code Reporter aus der Zwischenablage einlesen Da diese Ausgabeobjekte jedoch im CodeReporter eigenen Format vorliegen k nnen die anderen Anwendungen lediglich auf die Text und statischen Grafikobjekte f r die Ausgabeobjekte nicht aber auf die
286. re Inc is granting the right to use its software through this license agreement Sequiter Software Inc retains all ownership of its software including all copies of its software Definitions Software This is the Sequiter Software Inc computer programs contained in this CodeReporter software package License Sequiter Software Inc grants to you and you hereby accept a non exclusive License to use the Software on a single computer at a single location You may install the Software on a file server provided that you ensure that no one other than yourself will be able to use the Software Specifically under this license only one individual is allowed to use the Software If more than one individual uses the Software a license must be purchased for each individual Distribution You may distribute the Report Launcher Executable Program However you may not distribute any other form of the Software except as expressly provided herein Transfer Restrictions The Software is licensed to you and may not be trans ferred to anyone without the prior written consent of Sequiter Software Inc Any authorized transferee of the Software shall be bound by the terms of this agree ment Regardless you may not transfer assign rent lease sell or otherwise dispose of the Software except as expressly provided herein Disclaimer The Software and product items are provided as is without any kind of warranty It is your responsibility to de
287. rechts Wenn Sie die Maustaste loslassen wird das CEO Ausgabeobjekt auf seine neue Breite eingestellt Bei der Ausgabe wird der Inhalt des Feldes CEO nun vollst ndig angezeigt Kontoauszugsreport In der folgenden bung lernen Sie viele der komplexen Eigenschaften von CodeReporter 2 0 bei der Erstellung eines Kontoauszugsreports kennen Abb 7 zeigt den vollst ndigen Report Entwicklungsbildschirm 20 bungen Relation laden Bei dieser bung verwenden wir eine Relation die als Datei TUT3xxx REL gespeichert worden ist Die Relationsdatei enth lt die Verkn pfung der beiden in diesem Report verwendeten Datendateien INVOICES DBF und CUST DBF Beim Laden einer Relationsdatei werden alle offenen Datendateien geschlossen und die in der Relation angegebenen Dateien ge ffnet Das Laden einer vorhandenen Relation von der Platte bedeutet eine erhebliche Zeitersparnis gegen ber dem manuellen Aufbauen derselben Relation f r mehrere Reports Laden Sie die Relationsdatei ber die Men option DATEI RELATION LADEN Da Relationsdateien indexdateispezifisch angelegt werden laden Sie die entspre chende Datei wie in Tabelle 1 angegeben Wissen Sie nicht f r welche Index datei Kompatibilit t CodeReporter installiert wurde klicken Sie auf die Men option INFO Name der Relationsdatei Indexkompatibilit t TUT3FOX REL FoxPro TUT3MDX REL dBASE IV TUT3CLILREL Clipper TUT3NDX REL dBASE III Tabelle 1 Kompatibilit t der Relationsd
288. reich bearbeiten bewerkstelligen Die Dialogbox wird aufgerufen wenn Sie die rechte Maustaste auf einer leeren Stelle des Kunden Bereichs nicht im Gruppeninformationsfenster Klicken Geben Sie in das Editierfeld H he siehe Abb 10 den Wert 3 3 cm ein und klicken Sie auf OK Die Gr e des Kopfbereichs wird automatisch neu einge stellt Die Felder mit den Kundendaten werden ber die Listbox Feldobjekte in den neuen Bereich eingef gt Die Listbox rufen Sie mit der Taste Feld in der Tastenleiste auf Verschieben Sie die Bildlaufleiste bis folgende Felder zu sehen sind NAME der Name des Kunden ADDRESS die Anschrift des Kunden CITYSTZIP Ort Staat und Postleitzahl des Kunden Diese Felder k nnen jeweils einzeln markiert und an der entsprechenden Stelle im Report abgelegt siehe Abb 7 oder als Gruppe markiert und zusammen abgelegt werden 26 bungen Bereich bearbeiten Kunde Kopf Bereich 1 Unterdr ckungsbedingung Abbrechen Abb 10 Dialogbox Bereich bearbeiten Markieren Sie die obigen Felder als Ganzes setzen Sie den Mauszeiger in den Kunden Kopfbereich und klicken Sie die linke Maustaste Jetzt wird die Dialog box Feldgestaltung ge ffnet Klicken Sie nicht wie bei der Gruppe Body einfach auf OK sondern markieren Sie das Kontrollk stchen Senkrecht Wenn Sie nun auf OK klicken werden die drei markierten Felder automatisch linksb
289. report4groupFirst gibt einen Zeiger auf die innerste Gruppe zur ck diese Gruppe wurde als erste Gruppe des Report erzeugt In Verbindung mit report4groupNext dient diese Funktion dazu die Gruppen eines Reports zu durchlaufen Parameter report Ein Zeiger auf den Report aus dem die erste Gruppe abgerufen wird R ckgaben 0 F r den angegebenen Report wurde noch keine Siehe auch Gruppe erzeugt Nicht Null Ein Zeiger auf die innerste Gruppe des Reports report4groupNext report4numGroups report4groupLast Aufruf Beschreibung 254 GROUP4 report4groupLast REPORTA4 report report4groupLast gibt einen Zeiger auf die u erste Gruppe zur ck diese Gruppe wurde als letzte des Report erzeugt In Verbindung mit report4groupPrev dient diese Funktion dazu die Gruppen eines Reports zu durchlaufen Funktions bersicht Ein Zeiger auf den Report aus dem die letzte Gruppe abgerufen wird F r den angegebenen Report wurde noch keine Gruppe erzeugt Ein Zeiger auf die u erste Gruppe des Reports report4groupPrev report4numGroups GROUPA4 report4groupLookup REPORTA4 report char name Mit dieser Funktion erhalten sie einen GROUP4 Zeiger auf die Ein Zeiger auf den Report zu dem die Gruppe geh rt Ein null terminiertes Zeichenarray das den Na men der Gruppe enth lt f r die der GROUP4 Zeiger erforderlich ist Ein Zeiger auf die angegebene Gruppe wird zu r ckgegeben name stimmt mit keiner Gruppenbe
290. rer aktuellen Position nicht mehr in den verkleinerten Bereich passen Die gew nschte Gr e des Bereich kann manuell in das Editierfeld H he Dialogbox Bereich bearbeiten eingegeben werden Die angezeigte Ma einheit wird unter REPORT VORGABEN eingestellt Auch mit der Maus l t sich die H he des ausgew hlten Bereichs ver ndern indem Sie einen Henkel mit der linken Maustaste anklicken und ihn auf die gew nschte H he ziehen siehe Abb 4 1 Bereich bearbeiten Gruppe 1 Kopf Bereich 1 Unterdr ckungsbedingung Seitenumbruch ma Abbrechen 0 816 Abbrechen Abb 4 2 Dialogbox Bereich bearbeiten 88 Bereiche Seitenumbruch Ist die Option Seitenumbruch f r einen Bereich aktiviert Voreinstellung kann der Bereich auf der n chsten Seite fortgesetzt werden Wenn innerhalb eines Bereichs ein Seitenumbruch Ende der Seite ohne Seitenfu erforderlich ist wird der Bereich auf zwei Seiten verteilt CodeReporter bringt soviel wie m glich auf der Seite unter ohne dabei ein Objekt zu teilen Bei Rahmen Linien und Objekten mit Zeilenumbruch die ber die ganze H he des Bereichs gehen ist diese Einstellung nutzlos denn CodeReporter verteilt auf keinen Fall ein Objekt auf zwei Seiten Auch wenn die Schaltfl che Seitenum bruch aktiviert wurde wird der ganze Bereich desungeachtet auf die folgende Seite gesetzt Wenn ein Ausgabeobjekt nicht auf zwei Seiten verte
291. rgebnis lo gisch wahr erscheint der Datensatz im Report ansonsten wird er ignoriert Sollen zum Beispiel in die Relation in Abb 2 9 lediglich die Personen in Raum A994 eingeschlossen werden deren Namen mit einem S beginnen s he die abgefragte zusammengesetzte Datendatei in nat rlicher Reihenfolge aus wie in Abb 2 10 angegeben C424 678 678 Smith J MASTER C424 678 678 Hunter N RAUM IDNUM C424 678 C424 678 678 Gr ter T A994 123 A994 123 123 Shivji R A994 123 123 Smith A A994 123 123 O Brien M S Normale zusammengesetzte Datendatei Mas Slay ER SL VE VE an I IDNUM NAME E gt a 678 Smith J SS Shivji R A994 123 123 Shivji R 456 Alen P A994 123 a mm A 123 Smith A Abfrageausdruck 123 O Brien M 678 Hunter N Abgefragte zusammengesetzte Datendatei 678 Gr ter T Abb 2 10 Abgefragte Datendatei 65 CodeReporter 2 0 Der Abfrageausdruck wird in die Dialogbox Ausdruck eingeben eingegeben Die Box k nnen Sie ber die Men option REPORT ABFRAGEAUSDRUCK aufrufen Relationen auf Platte Das Relationsset eines Reports entspricht bzw hnelt h ufig dem anderer Re ports Die von CodeReporter angelegten Relationssets k nnen Sie auf der Pl
292. rgenommen werden Auf den Bildschirm Mit CodeReporter k nnen Sie sich einen Report ansehen ehe Sie ihn auf einem Drucker ausgeben Dabei k nnen Sie anhand der Bildschirmanzeige berpr fen ob das Layout des Reports so in Ordnung ist ohne Papier zu verbrauchen Die Men option DATEI DRUCKBILD EINSEHEN ffnet ein neues Fenster und gibt den Report seitenweise darin aus CodeReporter gibt das Fenster als Vollbild ber den ganzen Bildschirm aus Mittels der Schaltfl chen Symbol bzw Vollbild kann dieses Fenster verkleinert oder vergr ert werden und ber das Systemmen l t sich seine Gr e individuell ver ndern Mit der Men option N CHSTE springen Sie auf die n chste Seite w hrend Sie das Fenster mit SCHLIESSEN schlie en und zum CodeReporter Entwicklungsbild schirm zur ckkehren Hinweis Beim Einsehen eines Reports kann die Druckseite vor bergehend auf Bildschirmgr e reduziert werden Sie k nnen sich aber den Report von vornherein auch im Seitenformat des aktuellen Druckers anzeigen lassen Einzelheiten dazu entnehmen Sie bitte dem Abschnitt Seiten gr e einstellen im Kapitel CodeReporter Optionen Auf einen Drucker Nachdem Sie sich den Report auf dem Bildschirm kontrolliert und f r gut befunden haben wird es Zeit ihn mittels der Men option DATEI DRUCKEN auf dem ausgew hlten Drucker auszugeben Die Men option ruft die gemeinsame Dialogbox Drucken auf Abb 11 2
293. rhin alles in Schritten von 1 1000 Zoll gemessen wird Auf die gemeinsamen Dialogboxen z B Schriftart die CodeReporter nicht ver ndern kann und das Lineal wirkt sich die Einstellung der Ma einheiten nicht aus 159 CodeReporter 2 0 Das Lineal fungiert als optische Hilfe beim waagerechten Positionieren und Versetzen von Ausgabeobjekten So k nnte ein Report zum Beispiel auf spezielle Rechnungsformulare gedruckt werden bei denen eine Spalte f r bestimmte Zahlen vorgedruckt ist Anstatt lange herumzuprobieren kann man die tats ch lichen Ma e in einem solchen Fall mit einem Lineal ermitteln und das Objekt dann rasch durch bertragung der Ma e auf das CodeReporter Lineal plazieren Auch die Linealeinheiten werden in der Dialogbox Reportvorgaben eingestellt Die ausgew hlte Linealeinheit Zoll oder Zentimeter wird dann im Bild schirmlineal angezeigt Diese Einstellung kann sich durchaus von der Einstellung der Ma einheit unterscheiden Zoll Punkt Zentimeter 1 Zoll 1 Punkt 1 Zentimeter Tabelle 9 1 Umrechnungstabelle f r Ma einheiten Seitengr e einstellen ber die Men option DATEI DRUCKBILD EINSEHEN k nnen Sie sich vor dem Druckvorgang einen Report auf dem Bildschirm anzeigen lassen In den meisten F llen sollen dabei einfach die Daten eines Reports eingesehen bzw die Zur cksetzung der Seiten berpr ft werden Erleichtert wird das indem CodeReporter das Sei
294. rholen Reicht der Rest der aktuellen Seite nicht f r eine Untermenge der zusammenge setzten Datendatei von einer Gruppe dargestellt aus veranla t die aktivierte Schaltfl che Kopf wiederholen CodeReporter dazu auch ohne R cksetzbe dingung den Gruppenkopf Bereich oben auf der Seite unterhalb des Seitenkop fes auszugeben Das ist eine n tzliche Einrichtung um z B Spaltentitel auf den Folgeseiten zu wiederholen Seite zur cksetzen Die Schaltfl che Seite zur cksetzen generiert beim Eintreten einer Gruppen r cksetzbedingung eine neue Seite Dabei geschieht folgendes der Fu bereich der Gruppe sowie die Fu bereiche aller inneren Gruppen werden ausgegeben und eine neue Seite wird generiert Sowohl der Kopf der n chsten Seite als auch der Gruppenkopf werden an den Anfang der neuen Seite gestellt Seitenzahl zur cksetzen Seitenzahl zur cksetzen ist in der Funktion identisch mit der Option Seite zur cksetzen mit dem Unterschied allerdings da in diesem Fall die Seitenzahl der neuen Seite auf 1 zur ckgesetzt wird Flag Feste R cksetzung Das Verhalten der Option Seite zur cksetzen einschlie lich der Zur cksetzung bei Kopf austauschen und Seitenzahl zur cksetzen wird von der Einstellung der Option Flag Feste R cksetzung in der Dialogbox Reportvorgaben beeinflu t Einzelheiten hierzu finden Sie im Kapitel Reports gestalten 81 CodeReporte
295. rn gesteuert Der Re port l t sich aber auch mit einer Non Windows Anwendung ausgeben bei der keine Windows Treiber verf gbar sind Dazu m ssen Sie druckerspezifische Steuersequenzen in den neuen Style integrieren Aktivieren Sie bei ausgew hltem Style Kursiv die Men option STYLE DEFINI TION FREMDFORMAT um die Dialogbox Informationen ber Fremdformat Non Windows Layout aufzurufen Der Epson kompatible Code f r Kursivdruck lautet laut Angabe in den Drucker handb chern von Epson ESC 4 W rden Sie diese Zeichenkette so in das Editierfeld Einleitungssequenz eingeben und auf OK klicken w rde Code Reporter eine Fehlermeldung anzeigen Die einzigen unterst tzten Formate f r Steuersequenzen sind n mlich Dezimal bzw Hexadezimalwerte und nicht die ASCH Zeichen wie gedruckt 156 Styles Der Dezimalwert f r die Escape Taste ist 27 Die Vier wird als 52 dargestellt siehe Anhang D Klicken Sie auf die Schaltfl che Dez und geben Sie 27 52 ohne Anf hrungszeichen in das Editierfeld Einleitungssequenz ein Da der Kursivdruck nach der Ausgabe des Objekts zur ckgesetzt werden mu tun Sie das nicht werden auch Objekte mit normaler Schrift kursiv ausgegeben m ssen Sie ihn auch wieder deaktivieren Bei Epson kompatiblen Druckern wird dazu ESC 5 verwendet Geben Sie 27 53 in das Editierfeld Auslei tungssequenz ein und klicken Sie auf OK um
296. ro werden besonders dann wenn es sich um einen umfangreichen Report mit mehreren Schriftarten Grafiken usw handelt Zum anderen ist die Datei da sie alle Druckersteuerzeichen enth lt f r andere Anwendungen z B Textverarbeitungsprogramme nicht lesbar Um nicht alle druckerspezifischen Daten in die Datei bernehmen zu m ssen verf gt Windows ber einen speziellen Universaldruckertreiber der lediglich Text ausgibt Grafische Elemente Linien Rahmen Grafiken und Schriften wer den nicht mit ausgegeben Erfolgt das Drucken in eine Datei mit diesem Treiber wird die Datei nicht berm ig gro und sie kann auch mit anderen Anwendun gen verarbeitet werden 173 CodeReporter 2 0 Der Universaldruckertreiber ist ein Bestandteil von Windows und mu installiert sein damit CodeReporter ihn benutzen kann Die Installation erfolgt ber die Windows Systemsteuerung und zwar die Druckereinstellung Klicken Sie in der Dialogbox Drucker auf die Schaltfl che Drucker hinzu f gen W hlen Sie in der Listbox Druckerliste den Drucker Universal Nur Text aus und klicken Sie auf die Schaltfl che Installieren Danach k nnen Sie diesen neuen Drucker ausw hlen und Ihre Reports auf reine Textdrucker oder als A SCT Dateien ausgeben lassen Hinweis Wenn Sie einen Report mit dem Universaldruckertreiber in eine ASCH Datei schreiben sollte die H he der Reportbereiche auf 12 Punkt oder ein Vi
297. rucker ausw hlen Gruppen und in eine Datei in eine Datendatei Non Windows Styles Seitengr e anzeigen Standarddrucker Steuerzeichen DTOCO DTOSO 142 156 160 Index 51 62 113 113 114 292 144 140 141 144 140 142 292 293 293 110 166 170 173 172 171 170 172 174 171 170 153 293 Durchschnitt Dynamische Ausgabeobjekte siehe Ausgabeobjekte Einf gemodus siehe Ausgabeobjekte Einf gen siehe Ausgabeobjekte Einmal ausgeben Farbe siehe Styles Fehlende Datens tze Fehlerbehandlung bei Relationen mit ungef hrer bereinstimmung Datensatz berspringen einstellen Felder l schen Stop bei Fehler Feineinstellung Objektpositionierung und Felder 130 114 50 97 Ausdr cke innerhalb von Feldern verwenden einzelnes Feld hinzuf gen mehrere Felder hinzuf gen Memofelder zum Report hinzuf gen 141 123 123 124 92 108 123 136 Fenster Titelleiste bei der Ausgabe 168 Filterrelationen Master mit mehreren 56 mit Nicht Filterrelationen mischen 57 Flag Feste R cksetzung 81 84 167 Formatierung von Zahlen Dezimalstellen 110 113 Dezimalzeichen 166 einfache Zahl 111 Exponent 112 f hrende Null 112 negative Zahlen 112 337 CodeReporter 2 0 Null anzeigen Prozent Prozentwert Tausendertrennzeichen W hrung W hrungssymbol W hrungswert FoxPro CodeReporter Version Indexdateien Funktions bersicht Fu bereich Wert der Objekte be
298. s hei t gr ere Bitmap Bilder werden verkleinert und kleinere Bitmap Bilder werden vergr ert Diese Anpassung erfolgt auf jeder Achse Wird ein hohes schmales Bild in ein quadratisches Grafikobjekt eingepa t erhalten Sie ein niedriges breites Bild CodeReporter beh lt die Proportionen des Bildes nicht bei sondern bringt es auf die Gr e des Grafikobjekts Gr e und Proportionen eines Grafikobjekts werden in derselben Weise ver ndert wie bei normalen Ausgabeobjekten entweder in der Dialogbox Objektdefi nition oder mit den Gr enhenkeln E 14 15 1 HHHH HHHH Gruppe Titel Schlu Kopf Bereich 1 von 1 Wir f ttern Ihren Computer B Val Normal Titel Schlu Bereich 1 H he 3 410 cm Abb 5 12 Statisches Grafikobjekt Felder Feldobjekte spiegeln den Inhalt des zusammengesetzten Datensatzes im Augen blick der Gruppenr cksetzbedingung des Bereiches wider M ssen ein oder meh rere Felder bearbeitet oder zusammengefa t werden um eine passende Aus gabe zu erhalten zum Beispiel die Zusammenfassung von Feldern mit Vor und Nachnamen sollten Sie ein Ausdrucksausgabeobjekt verwenden 122 Ausgabeobjekte Plazierung Felder aus der zusammengesetzten Datei werden ber die einzeilige Listbox Feldobjekte in den Report eingef gt die mit der Men option OBJEKT FELD oder ber die Schaltfl che Feld aufgerufen wird Man kann Feldobjekte ein zeln a
299. s vorgenommen werden Die meisten anderen Operationen lassen sich sowohl per Maus als auch ber die Tastatur ausf hren Der vorliegende Anhang enth lt eine systematische bersicht ber die Tastenfolgen und die entsprechenden Befehle Men beschleunigungstasten Men beschleunigungstasten sind Tasten mit denen Men operationen schnell ausgef hrt werden k nnen Das verk rzt die Reaktionszeit bei der Ausf hrung zahlreicher CodeReporter Funktionen Strg A BEREICH NEUER KOPFBEREICH Diese Tastenfolge legt einen neuen Kopfbereich f r die ausgew hlte Gruppe an Strg C BEARBEITEN KOPIEREN Eine Kopie des gerade ausgew hlten Strg Einfg Ausgabeobjekts wird in der Windows Zwischenablage angelegt aus der sie aus CodeReporter mit BEARBEITEN EINF GEN wieder abgerufen werden kann Strg E AUSRICHTEN ZENTRIERT Diese Tastenfolge richtet das aus gew hlte Objekt so aus da es mittig im Report steht Sind mehrere Objekte ausgew hlt werden alle ausgew hlten Ausga beobjekte in bezug auf das erste mittig ausgerichtet Strg F BEREICH NEUER FUSSBEREICH Diese Tastenfolge legt einen neuen Fu bereich f r die ausgew hlte Gruppe an Strg G GRUPPE NEU Diese Tastenfolge ruft die Dialogbox Grup pendefinition auf und legt eine neue Gruppe mit Kopf und Fu bereich an Strg H FEINEINSTELLUNG WAAGERECHT AUSTREIBEN Diese Tastenfolge versetzt alle ausgew hlten Ausgabeobjekte so da die 297 Strg L Strg M Strg O
300. setzte Datendatei bernommen Aus diesem Grund ist es in der Reportentwurfsphase besonders wichtig die Zweckerkl rung zu ber cksichtigen Entscheiden Sie sich f r eine falsche Top Master Datendatei kann das tats chliche Ergebnis des Reports er heblich von dem gew nschten abweichen Das ist in der zusammengesetzten Datendatei in Abb 2 2 der Fall CUSTO MER DBE enth lt einen Eintrag f r Jim Sanders Kunden Nr 9199 Doch weil diese Kundennummer in der Masterdatei SALES DBF nicht vorkommt wird Jim Sanders nicht in die zusammengesetzte Datendatei bernommen Auch kann es vorkommen da die Slavedatei keinen der Masterdatei entspre chenden Datensatz aufweist Letztere fordert Daten aus der Slavedatei an doch diese kann die Informationen nicht zur Verf gung stellen Wenn eine solche Situation auftritt kann CodeReporter abh ngig davon wie die Relation gebildet wurde auf dreierlei Weise reagieren 1 Felder l schen CodeReporter f llt die Felder der Slavedatei mit Leerstellen auf numerische Felder erhalten den Wert Null Hierbei handelt es sich um die Voreinstellung 2 N chster Satz Der zusammengesetzte Datensatz wird ignoriert Sowohl Ma ster als auch Slavedatensatz werden bersprungen als seien sie nicht vor handen 50 Relationale Reports 3 Stop bei Fehler Der Report wird unterbrochen und es erscheint eine Fehler meldung Diese Fehlerbehandlung ist angebracht wenn Daten in der Slaveda tei lokalisier
301. speichert werden soll Eine Zeichenkette die den Namen einschlie lich Laufwerk und Verzeichnis der Relations datei enth lt Da stets die Erweiterung REL verwendet wird brauchen Sie keinen Dateityp einzugeben Wenn dieser Parameter einen wahren Wert 1 enth lt speichert relate4save die in der Rela tion verwendeten Dateinamen als vollst ndige Pfadnamen ab Ist der Wert von savePath Names falsch 0 wird lediglich der reine Dateiname gespeichert Relationsdatei erfolgreich gespeichert Die Relationsdatei konnte nicht angelegt wer den Die Ursache daf r besteht im allgemeinen darin da fileName bereits vorhanden ist oder die Anwendung keine Lese Schreibberechti gung f r das angegebene Laufwerk besitzt lt 0 Fehler relate4retrieve relate4topMaster Aufruf RELATE4 amp relate4topMaster RELATE4 amp Beschreibung Diese Funktion gibt einen Zeiger auf die RELATE4 Struktur des Top Masters im Relationsset zur ck Parameter 312 RELATE4 Ein Zeiger auf eine beliebige RELATE4 Struktur im Relationsset Anhang F CodeBasic API R ckgaben Nicht Null Ein Zeiger auf die RELATE4 Struktur der Top Master Relation 0 Fehler Siehe auch relate4master im CodeBasic 5 Referenzhandbuch report4caption Aufruf rc report4caption REPORT4 amp caption Beschreibung Mit dieser Funktion wird der Text in der Titelleiste des Report ausgabefensters bei der Bildschirmausgabe ver ndert Parameter REPOR
302. ssehen siehe n chste Seite 16 bungen CodeReporter 2 0 UNTITLED Datei Ausrichten Bearbeiten Ansicht Report Relation Gruppe Bereich Objekt Style Feld Ausdruck Summe U Berechnung Text H Linie J Y Linie Rahmen Kein Drucken Yorschau Gruppe Body Kopf Bereich 1 von1 pn COMPIT COMPNAME CEO Body Bereich 1 H he 0 333 Zoll Abb 4 Noch nicht fertiggestellter Report von bung Nr 3 Report einsehen Eigentlich k nnen wir den Report an dieser Stelle als fertiggestellt betrachten da er seinen Zweck die Ausgabe des Inhalts der Datendatei COMPANY DBE er f llt hat Mit der Men option DATEI DRUCKBILD EINSEHEN k nnen Sie sich den Report anzeigen lassen Wie Sie in Abb 5 sehen handelt es sich um einen ziemlich langweiligen und relativ nichtssagenden Report Ist ein Leser nicht mit dem Inhalt und Aufbau aller verf gbaren Datendateien vertraut kann er unm glich wissen was dieser Report darstellen soll Bereiche zur Erl uterung einf gen Ein geeigneter Zusatz zur Erl uterung des Reports w re ein Titel wie Inhalt von COMPANY DBF Es ist jedoch wenig sinnvoll diesen Titel in den Kopfbereich der Gruppe Body zu setzen da er dann bei jedem Datensatz der zusammenge setzten Datendatei wiederholt wird 17 CodeReporter 2 0 TEST F N chste Schlie en o E ATHAUL Athabasca Inc RS468100 H EUCLIL Euclid Enterprises Inc FCH01201 Haan Hamstrin
303. sw hlen Klicken Sie bei gedr ckter Gro Taste das Objekt ein zweites Mal an wird die Auswahl zu r ckgenommen Mit der Tastatur w hlt man mehrere Ausgabeobjekte aus indem man die Strg Taste gedr ckt h lt und die TAB Taste bet tigt ber die Tastatur lassen sich Objekte in verschiedenen Bereichen nicht gleichzeitig ausw hlen Objekte l schen Das ausgew hlte bzw die ausgew hlten Ausgabeobjekte lassen sich durch Bet tigen der Entf Taste oder ber die Men option OBJEKT L SCHEN aus dem Re port entfernen Wird ein Ausgabeobjekt gel scht das andere Objekte enth lt werden diese Objekte ebenfalls gel scht Achtung Die L schung eines Objekts l t sich nicht r ckg ngig machen Ent fernen Sie aus Versehen ein Objekt m ssen Sie mit dem Objekt noch einmal ganz von vorn beginnen Objekte verschieben Innerhalb seines Bereichs l t sich ein Ausgabeobjekt mit der Maus anklicken und an eine neue Position ziehen Auch mehrere ausgew hlte Objekte lassen sich so verschieben dazu halten Sie die Gro Taste w hrend des Verschiebevorgangs 96 Ausgabeobjekte gedr ckt Mit Hilfe der Editierfelder X und Y in der Dialogbox Objekt definition lassen sich Objekte genau positionieren Einzelheiten zu dieser Dialogbox finden Sie weiter unten unter Objekte bearbeiten Hinweis Ausgabeobjekte k nnen nicht aus ihrem Bereich herausgezogen und positioniert werden Die Bewegungsfreiheit mehrerer a
304. t Das Ausw hlen einer Option ohne H kchen be wirkt das genaue Gegenteil Die so gegebene M glichkeit Elemente des Entwicklungsbildschirms ein bzw auszublenden verleiht dem Reportentwickler ein H chstma an Flexibilit t bei der Gestaltung seiner Arbeitsumgebung Reportvorgaben ber die Dialogbox Reportvorgaben lassen sich weitere arbeitsspezifische Einstellungen vornehmen als da sind bevorzugte Ma einheit Ma einheit f r das Lineal falls aktiviert und Anzeigeh he f r den Report Ma einheiten f r die Anzeige Intern legt CodeReporter die Positionen und Ma e von Ausgabeobjekten und Reportbereichen in Schritten von 1 1000 Zoll fest Da in der Regel eine derartige Genauigkeit bei der Positionierung von Ausgabeobjekten nicht erforderlich ist stellt CodeReporter f r den Entwicklungsbildschirm austauschbare Ma einheiten zur Verf gung Als kanadisches Programm ist CodeReporter auf Zoll voreingestellt ber die Dialogbox Reportvorgaben l t sich im Bereich Ma einheiten rasch eine andere Schaltfl che aktivieren Auf diese Einheit wird dann bei jeder Operation mit Ma en zur ckgegriffen Dazu geh ren das Format des Reports und der Re portbereiche die Koordinaten und Ma e von Ausgabeobjekten die R nder usw Automatisch werden alle Teile des Reports auf die neu eingestellte Ma einheit umgestellt Dabei ver ndert CodeReporter weder Position noch Gr e der Re portelemente da intern weite
305. t Ent h lt die Datei keine Pfadangaben versucht relate4retrieve die Dateien im aktuellen Ver zeichnis zu ffnen Wenn Sie dataPathName angeben werden da durch die in der Relationsdatei gespeicherten Pfade au er Kraft gesetzt Die Relation wurde erfolgreich aus der ange gebenen Relationsdatei eingelesen Beim Lesen der Relationsdatei oder beim ff nen der Top Master Datendatei hat sich ein Fehler ereignet Fragen Sie CODEA4 error_ code ab um den genauen Fehler zu ermitteln relate4save relate4init relate4free relate4dsave Aufruf Beschreibung Parameter R ckgaben Siehe auch Funktions bersicht int relate4save RELATEA4 relate char fileName int savePathNames Mit dieser Funktion wird die angegebene Relation in einer Rela tionsdatei gespeichert relate fileName savePathNames 0 r4no_create Ein Zeiger auf die Relation die in einer Rela tionsdatei gespeichert werden soll Ein null terminiertes Zeichenarray das den Namen einschlie lich Laufwerk und Verzeich nis der Relationsdatei enth lt Da stets die Er weiterung REL verwendet wird brauchen Sie keinen Dateityp einzugeben Wenn dieser Parameter einen wahren Wert nicht Null enth lt speichert relate4save die in der Relation verwendeten Dateinamen als vollst ndige Pfadnamen ab Ist der Wert von savePathNames falsch Null wird lediglich der reine Dateiname gespeichert Relationsdatei erfolgreich gespeichert
306. t wird die gew nschte Indexversion von CR2CODE DLL im CodeReporter Verzeichnis abgelegt Wie man eine andere Indexversion instal liert entnehmen Sie bitte der Dokumentation des Programmpakets CodeReporter unterst tzt folgende Indexdateiformate dBASE IV Indexdateien MDX Wenn Sie dBASE IV Indexdateien verwen den k nnen Sie nicht gleichzeitig mit dBASE II PLUS Indizes NDX arbeiten auch wenn das mit dBASE IV m glich ist Kompakte Indexdateien CDX und IDX von FoxPro 2 0 oder h her Code Reporter unterst tzt die lteren nichtkompakten Indexdateien von FoxPro nicht Clipper Indexdateien NTX CodeReporter arbeitet sowohl mit Clipper Som mer 87 als auch mit Clipper 5 dBASE II PLUS Indexdateien NDX CodeReporter 2 0 CodeReporter aufrufen Da es sich bei CodeReporter um eine Windows Anwendung handelt mu Microsoft Windows 3 1 bzw eine h here Version ordnungsgem installiert und geladen sein ehe Sie CodeReporter aufrufen k nnen Sie k nnen CodeReporter von der DOS Befehlszeile aus aufrufen indem Sie w n und der Namen der CodeReporter Version eingeben die ausgef hrt werden soll Die FoxPro Version z B w rden Sie mit w n cREP2 vom CodeReporter Stamm verzeichnis C CODEREP aus aufrufen Da Windows Anwendungen im allgemei nen jedoch nicht von der DOS Befehlszeile aus aufgerufen werden sind folgende M glichkeiten vorzuziehen Datei Manager Rufen Sie nachdem Sie Windwos gestartet habe
307. t D Homan 8 Script j Small Fonts E Symbol E F Darstellung Muster oO Durchgestrichen C Unterstrichen AabbYyZzz Earbe BE Schwarz GI Dies ist eine Bildschirmschriftart Zum Drucken wird eine m glichst hnliche Druckerschriftart verwendet Abb 8 1 Dialogbox Schriftart Einen Style l schen Mit Hilfe der Men option STYLE L SCHEN lassen sich Styles entfernen Sind Styles vorhanden die gel scht werden k nnen wird ein Untermen mit einer Styles Liste angezeigt Die Styles die Sie hierin ausw hlen werden gel scht Hinweis Wenn Sie versuchen einen Style zu l schen der zur Zeit mit Aus gabeobjekten verbunden ist gibt CodeReporter eine Meldung aus Ausgabeobjekte deren Style gel scht worden ist werden neu mit dem ersten im Style Popup Men vorhandenen Style verbunden Einzelheiten zum Style Pop up Men finden Sie weiter unten Hinweis F r jeden Report mu zumindest ein Style definiert werden Infol gedessen kann der einzige Style eines Reports auch nicht gel scht werden 151 CodeReporter 2 0 Einen Style bearbeiten ber Auswahl der Men option STYLE BEARBEITEN k nnen Sie den aktuellen Style ver ndern Dazu wird die gemeinsame Dialogbox Schriftart aufgerufen in der die gew nschten nderungen vorgenommen werden Wird der aktuelle Style ver ndert werden alle Ausgabeobjekte aktualisiert die diesen Style verwenden Einzelheiten dar ber wie man einen Style aus
308. t werden m ssen fehlen diese Daten wird der Report abgebro chen Komplexe Relationen Im Prinzip reichen zwei Datendateien aus wenn sie alle f r den Report erforder lichen Daten enthalten Werden f r einen Report allerdings drei oder mehr Da tendateien gebraucht mu eine komplexe Relation mit darin enthaltenen Subrela tionen her Das hei t der Slave einer Datendatei fungiert als Master f r einen Slave auf einer niedrigeren Stufe Eine Masterdatei kann unbegrenzt viele Slavedateien haben und eine Slavedatei wiederum kann f r andere Slavedateien die Masterdatei sein um weitere Rela tionen herzustellen Dieses Ph nomen erlaubt die Bildung eines Relationsbau mes bei dem alle Relationen von einer Masterdatei ausgehen Hinweis An dieser Stelle kann unsere Begriffswahl leicht zu Verwirrungen f hren Der Begriff Top Master Datendatei bezieht sich per Defini tion auf die oberste Datendatei des Relationsbaumes die gleichzeitig die Prim rdatei des Reports ist Der Begriff Masterdatei dagegen bezieht sich auf die steuernde Datendatei derjenigen Relation mit der wir uns zur Zeit besch ftigen Alle Relationen die von der Top Master Datendatei ausgehen werden insgesamt als Relationsset bezeichnet Abb 2 3 stellt eine komplexe Relation dar die Datei STUDENT DBEF ist der Master der Datei ENROLL DBF die wiederum der Master der Datei COURSE DBE ist 51 STUDENT DBF CodeRepotter 2 0 654321
309. taldfree obj41ookAhead 241 CodeReporter 2 0 API obj4totalFree Aufruf void obj4totalFree OBJ4 obj Beschreibung Diese Funktion l scht das angegebene Summenausgabeobjekt aus dem Report und gibt den mit dem Objekt verbundenen Speicher frei Dar ber hinaus werden alle Ausgabeobjekte bzw Ausdr cke die die Summe benutzen ebenfalls gel scht Auch die Summe auf der das Objekt basiert wird freigegeben Achtung Diese Funktion kann bei der L schung von Objekten eine Ket tenreaktion ausl sen und so einen Report rasch zerst ren Parameter obj Das Summenausgabeobjekt das aus dem Report entfernt werden soll Siehe auch obj4totalCreate total4create total4free obj4delete report4 free 242 Funktions bersicht relate4 Funktionen Mit den beiden hier aufgef hrten relate4 Funktionen haben Sie die M glichkeit eine Relation auf der Platte abzulegen bzw von der Platte einzulesen Die Funk tionen beschr nken sich nicht auf CodeReporter und k nnen daher in jeder CodeBase 5 Anwendung eingesetzt werden relate4retrieve Aufruf RELATEA4 relate4retrieve CODE4 cb char fileName int openFiles char dataPathName Beschreibung Diese Funktion liest eine Relationsdatei ein und baut die mit relate4save gespeicherte Relation auf Beim Laden der Rela tionsdatei kann man gleichzeitig mit relate4retrieve die entspre chenden Datendateien ffnen Parameter cb Ein Zeiger auf die CODE4 Struktur der An wendung er dient der
310. tandard print oder in eine offene Datei zu schreiben Wird diese Funktion nicht aufgerufen erfolgt die Reportausgabe ber report4do auf dem standard out Bildschirm report4do vollzieht die Reportausgabe ber die Standard Funk tion write der C Bibliothek die ein System Handle zur Aus gabe von Text verwendet Dabei bergibt report4do output Handle an write Diese Funktion wird eingesetzt wenn ein Report in eine Datei ausgegeben wird report Der Report f r den ein Ausgabeziel eingerichtet wird outputHandle Ein Standard C System Handle wie es von den C Funktionen open und sopen zur ckgegeben wird Andere bei der Programmiersprache C vor definierte Handles sind 1 standard out per Voreinstellung ist das der Bildschirm 4 standard print Bei PCs handelt es sich dabei gew hnlich um den Drucker an LPT useStyles Mit diesem Parameter wird festgelegt ob die von report4do ausgegebenen Daten die Drucker steuersequenzen die in den Seiten Layouts defi niert sind enthalten sollen oder nicht useStyles kann einen der folgenden Werte annehmen 1 Die Ein und Ausleitungssequenzen des Druk kers werden in das angegebene Handle ausge geben 0 Die Druckersteuersequenzen werden ignoriert und es wird lediglich der Text f r die Ausga beobjekte ausgegeben Funktions bersicht R ckgaben 0 Einstellungen erfolgreich vorgenommen lt 0 Fehler report ist ung ltig Siehe auch report4do report4
311. tei f r jeden Datensatz der verkn pften Slavedatei wiederholt Ein Summenausgabeobjekt das von einem Feld in der Masterdatei abh ngt w rde nicht richtig aufsummiert da das Feld der Masterdatei mehrmals wiederholt wird Die Aktivierung der Schaltfl che Wertver nderung und die Verwendung der Summenbedingung die dem Wechsel des Datensatzes der Masterdatei entspricht bzw dem Masterausdruck in der Filterrelation sorgen daf r da die Summe richtig gebildet wird 134 Spaltenreport Utility 6 Spaltenreport Utility Mit der Dialogbox Spaltenreport Utility steht Ihnen in CodeReporter eine Option zur automatischen Entwicklung von Reports zur Verf gung Die in Abb 6 1 gezeigte Dialogbox gestattet Ihnen unter anderem das Einf gen von Feldern in das Relationsset das Erzeugen von Gruppenkopf und fu bereichen und das automatische Bilden von Summen und Zwischensummen bei numerischen Feldern Spaltenreport Utility Felder Hinzugef gte Felder INVOICES gt CUSTID Finzuf nen INVOICES gt CREDIT INVOICES gt DEBIT INVOICES gt ENTERDATE CUST gt CUSTID CUST gt NAME CUST gt ADDRESS Alle entfernen Gruppenr cksetzausdr cke f r Zwischensummen Sortierausdr Abfrageausdr Abbrechen Abb 6 1 Dialogbox Spaltenreport Utility Report Utility aufrufen Die Dialogbox Spaltenreport Utility wird mittels der Men option REPORT SPALTEN
312. tei zuzuordnen Diese Einstellung wird lediglich ver wendet wenn der Report mit report4output oder report4to Screen in eine Datendatei ausgegeben wird obj destField type Ein Zeiger auf das Ausgabeobjekt das in eine Datendatei umgeleitet werden soll Ein null terminiertes Zeichenarray das den Na men des Datendateifeldes enth lt in das der Inhalt des Objekts gesetzt werden soll Ein Gro buchstabe der den Typ des Feldes be schreibt in das der Inhalt des Ausgabeobjekts ge setzt werden soll type kann folgende Werte an nehmen C Zeichen D Datum L Lo gisch N Numerisch 221 CodeReporter 2 0 API length H chstanzahl der Zeichen des Inhalts des Ausga beobjekts die in die Ausgabedatendatei kopiert werden soll decimals Anzahl der Zeichen in length die als Dezimalstel len reserviert werden soll decimals wird lediglich verwendet wenn type N ist ansonsten wird der Parameter ignoriert R ckgaben 0 Ausgabeobjekt erfolgreich mit dem Zielfeld ver bunden lt 0 Fehler obj oder destField sind ung ltig Siehe auch report4dataFileSet report4dataGroup d4create von Code Base 5 obj4calcCreate Aufruf OBJ4 obj4calcCreate AREA4 area EXPRACALC calc long x long y long width long height Beschreibung Diese Funktion erzeugt ein Berechnungsausgabeobjekt die ver wendete Berechnung wurde mit der CodeBase 5 Funktion expr4calc_create erstellt Parameter area Dies
313. tellen kann die bei der Ausgabe des Reports unter dem anderen Betriebssystem jeweils geladen werden Je nach Druckertyp z B Laser drucker Nadeldrucker werden auf diese Weise die korrekten Steuersequenzen in die Styles eingebaut Den API Funktionen von CodeReporter sind die Steuerzeichen als solche oder das geladene Seiten Layout gleichg ltig Einzelheiten hierzu finden Sie weiter unten N here Einzelheiten zur Ausgabe von Reports in Non Windows Betriebssyste men entnehmen Sie bitte der Funktions bersicht 153 CodeReporter 2 0 Styles angeben Wie bereits erw hnt gibt es druckerspezifische Steuersequenzen aufgrund derer der Drucker Texte mit unterschiedlichen Attributen ausgibt z B in Fett Die meisten Drucker verwenden zur Steuerung der relevanten Funktionen oder Attribute zwei Steuersequenzen die eine um die Funktion einzuschalten die andere um sie wieder auszuschalten Die Aktivierung von Fettschrift k nnte ESC G sein w hrend der Drucker mit ESC G wieder auf seinen Standard modus zur ckgesetzt wird Die f r eine Schriftart oder ein Attribut erforderlichen Steuersequenzen h ngen von dem Drucker ab ber den die Reportausgabe unter dem Non Windows Betriebssystem erfolgen soll Sie finden sie blicherweise in Ihrem Druckerhandbuch Die API Funktionen von CodeReporter schicken die Einleitungssequenz vor dem Text der Ausgabeobjekte auf den Drucker und schlie en die Ausgabe mit der Ausleitungsse
314. tenformat auf das Bildschirmformat einstellt Dabei wird die Druckseite so weit verkleinert da sowohl Seitenkopf als auch Seitenfu gleichzeitig zu sehen sind Deaktivieren Sie das Kontrollk stchen Seitenformat entspricht beim Druckbild einsehen Bildschirmformat in der Dialogbox Reportvorgaben wird der Report eins zu eins angezeigt Schriftgr en und Seitenformat stimmen in diesem Fall mit der sp teren Druck seite berein Da die meisten Monitore allerdings nicht in der Lage sind eine volle Seite anzuzeigen erscheinen senkrechte Bildlaufleisten damit Sie sich auch den restlichen Inhalt der Seite ansehen k nnen 160 CodeReporter Optionen Hinweis Das Kontrollk stchen Seitenformat entspricht beim Druckbild ein sehen Bildschirmformat wirkt sich in keiner Weise auf den Ausdruck eines Reports aus sondern einzig und allein auf die Bildschirmanzeige ber die Men option DATEI DRUCKBILD EINSEHEN 161 CodeReporter 2 0 10 Reports gestalten Bei allen neuen Reports geht CodeReporter von bestimmten Annahmen aus Parameter wie Seitenformat Reportbreite R nder Zahlenformat usw werden bei der Erstellung eines neuen Reports auf die voreingestellten Werte zur ckgesetzt Aber nicht immer stimmen diese Voreinstellungen mit den Vorstellungen des Reportentwicklers oder dem Ziel des Reports berein Nicht alle Reports werden auf Papier derselben Gr e gedruckt und haben auch keine gleich gro en R nder Be
315. terCodes Beschreibung Diese Funktion erzeugt einen Non Windows Style der die druk kerspezifischen Steuerzeichen aufnimmt die eine bestimmte Druckerschrift beschreiben 283 Parameter R ckgaben style4delete Aufruf Beschreibung 284 report name beforeLen beforeCodes afterLen afterCodes Nicht Null CodeReporter 2 0 API Ein Zeiger auf den Report f r den der neue Style gelten soll Ein null terminiertes Zeichenarray das den Na men des neuen Styles enth lt name kann auf bis zu 19 Zeichen zeigen Die L nge des Zeichenarrays der Druckersteuer zeichen die vor dem Text des Ausgabeobjekts bermittelt werden Ein Zeichenarray das die Druckersteuerzeichen enth lt die vor dem Text des Ausgabeobjekts bermittelt werden Diese Steuerzeichen sollten ein bestimmtes Druckattribut oder eine Schriftart aktivieren Die L nge des Zeichenarrays der Druckersteuer zeichen die nach dem Text des Ausgabeobjekts bermittelt werden Ein Zeichenarray das die Druckersteuerzeichen enth lt die nach dem Text des Ausgabeobjekts bermittelt werden Diese Steuerzeichen sollten ein bestimmtes Druckattribut oder eine Schriftart deaktivieren Der neue Style wurde erfolgreich eingerichtet Der zur ckgegebene Zeiger darf als g ltig betrachtet und von anderen Funktionen des Reportmoduls verwendet werden Fehler Der Style wurde nicht angelegt int style4delete REPORTA4 report char styleName Di
316. termine whether the Software or product items are suitable for your purpose Miscellaneous This agreement is governed by the laws of the Province of Alber ta Canada The LICENSEE consents to jurisdiction in the province of Alberta Canada
317. tieren CodeReporter 2 0 Einen neuen Report anlegen Mit der Men option DATEI NEU k nnen Sie einen neuen Report erzeugen Der aktuelle Report wird geschlossen und der Dialog Datei ffnen wird aufgerufen damit Sie die Top Master Datendatei angeben k nnen Automatisch erzeugt CodeReporter eine neue Gruppe namens BODY und zeigt diese in dem neuen Report an Der Name des Reports wird beim Abspeichern der Datei angegeben Einen Report speichern Die Option DATEI SPEICHERN veranla t CodeReporter den ge nderten Report auf die Platte zu schreiben Wurde ein Report bislang noch nicht gesichert z B ein neuer ruft CodeReporter den Dialog Datei ffnen auf damit Sie einen Namen f r den Report eingeben Mit der Option DATEI SPEICHERN UNTER kann ein Report unter einem neuen Namen abgelegt werden Hierbei fordert CodeReporter Sie wie bei einem neuen Report zur Eingabe eines Dateinamens auf Drucktechnische Vereinbarungen Folgender Konventionen bedienen wir uns im vorliegenden Handbuch Die Men optionen werden in fettgedruckten Kapit lchen dargestellt ist ein Un termen vorhanden folgt dem Haupteintrag ein l sowie der entsprechende Name Dar ber hinaus leiten wir die Men bezeichnung im allgemeinen mit dem Begriff Men option bzw Option ein Beispiel W hlen Sie die Men option DATEI NEU an Die Bezeichnungen von Dialogboxen sind in doppelte Anf hrungszeichen einge schlossen
318. toScreen i report4pageFree k Aufruf int report4pageFree REPORT4 report Beschreibung Diese Low Level Funktion dient dazu den Speicher intern frei zugeben der mit der Darstellung einer Ausgabeseite verbunden ist Die Funktion wird am Ende des Reports automatisch von report4do aufgerufen Parameter report Ein Zeiger auf den Report dessen Ausgabeseite freigegeben wird R ckgaben 0 Seite erfolgreich freigegeben lt 0 Fehler Siehe auch report4free report4generatePage report4pageHeaderFooter Aufruf GROUP4 report4pageHeaderFooter REPORT4 report Beschreibung Diese Funktion gibt einen GROUP4 Zeiger auf die Seitenkopf und fu gruppe des Reports zur ck Die zur ckgegebene Gruppe die automatisch von report4init erzeugt wird kann nicht gel scht werden 263 CodeReporter 2 0 API Parameter report Ein Zeiger auf den Report der die gew nschte Seitenkopf fu gruppe enth lt R ckgaben Ein GROUP4 Zeiger auf die Seitenkopf fu gruppe Siehe auch area4create report4init report4pagelnit Aufruf int report4pagelnit REPORTA4 report Beschreibung Mit dieser Low Level Funktion wird ein interner Seitenpuffer f r die Ausgabe des Reports erzeugt Die Funktion wird automatisch von report4do aufgerufen Parameter report Ein Zeiger auf den Report f r den der interne Seitenpuffer erzeugt wird R ckgaben 0 Der Seitenpuffer wurde erfolgreich angelegt lt 0 Fehler Siehe auch report4pageFree report4do
319. ts ausgegeben wie in SALES DBF gespeichert als Code Dialogbox Report Utility Rufen Sie zun chst die Dialogbox Spaltenreport Utility ber die Men option REPORT SPALTENREPORT UTILITY auf Fast alle Felder der Datendatei SALES DBEF sollen in den Report eingehen Da es beim vorliegenden Report in erster Linie um die finanzielle Seite der L den und nicht die Verkaufsprodukte geht kann das Feld PRODCODE unber cksichtigt bleiben Die Felder von SALES DBF COMPID STOREID AMOUNT und PROD CODE werden in der Listbox Felder aufgef hrt Klicken Sie auf die Schalt fl che Alle hinzuf gen um alle in der Listbox Enthaltene Felder zu ber nehmen Markieren Sie das Feld PRODCODE das nicht in den Report eingehen soll und klicken Sie auf Entfernen das Feld wird in der Listbox Enthaltene Felder gel scht und erscheint wieder in der Listbox Felder Laut Reportzweckerkl rung sollen f r jedes Gesch ft Zwischensummen ausgege ben werden ber das Feld STOREID wird wie in Abb 3 1 ber das Feld ORT eine logische Untermenge der zusammengesetzten Datendatei gebildet Der Aus druck der diese Untermenge beschreibt lautet SALES gt STOREID Normalerweise w rde der Ausdruck auch die Hauptuntermenge von COMPID mit einschlie en aber da die Firmen mittels einer Abfrage auf ATHA be schr nkt werden sollen reicht der obige Ausdruck v llig aus Rufen Sie ber die Schaltfl che Hinz
320. twerfen ehe Sie sie mit CodeReporter herstellen Den Top Master angeben ber die Men option DATEI NEU k nnen Sie eine neue Relation erstellen Die Dialogbox Datendatei ausw hlen wird aufgerufen und erwartet die Eingabe der Top Master Datendatei Lokalisieren Sie den Top Master anhand der Verzeichnis und Dateiauswahlbox und klicken Sie auf OK um die Datei zu ffnen Per Voreinstellung speichert CodeReporter die Pfadnamen der in einem Report verwendeten Datendateien in der Reportdatei mit ab Beim Laden des Reports werden die entsprechenden Datendateien ebenfalls geladen Wurden diese in ein anderes Verzeichnis verschoben bzw gel scht kann CodeReporter die Dateien nat rlich nicht ffnen Deshalb sollten Sie in einem solchen Fall die Men option DATEI FFNEN MIT PFAD verwenden Nach der Auswahl einer Reportdatei bittet CodeReporter um die Eingabe des Verzeichnisses das die Datendateien f r den Report enth lt Dieses Verzeichnis wird sp ter zusammen mit dem Report gespeichert Hinweis Haben Sie einen Top Master f r den Report bestimmt Kann er nicht mehr gegen einen anderen ausgetauscht werden Wenn Sie einen neuen Top Master w nschen m ssen Sie mit dem Report noch einmal vollst ndig von vorn beginnen 57 CodeReporter 2 0 Bitoptimierte Abfragetechnik CodeReporter bedient sich der bitoptimierten Abfragetechnik BOA von Sequi ter um schnelle Abfragen in der zusammengesetzten Datendatei durchzuf hr
321. tzen da die f r die Erzeugung des Reports erforderlichen Funktionen nicht einzeln programmiert werden m ssen Es gibt einige wenige F lle in denen weder eine variabel codierte Reportdatei noch der von CodeReporter generierte Quellcode die Anforderungen an die Re porterstellung befriedigen Die Reportmodulfunktionen von CodeReporter sind dazu da einen Report zu modifizieren bzw ganz von vorn aufzubauen um den Anforderungen der Anwendung zu entsprechen Eine Reportdatei verwenden Um einen Report in einer Anwendung zu implementieren wird blicherweise eine variabel codierte Reportdatei geladen und ausgef hrt Das Programm REP1 C verwendet eine CodeReporter Reportdatei include d4all h ifdef __TURBOC__ extern unsigned _stklen 10000 endif void main int argc char argv CODE4 cb REPORT4 report if argc lt 2 return d4init amp cb report report4retrieve amp cb argv 1 1 NULL 183 CodeReporter 2 0 API if report report4do report report4free report 1 1 d4init_undo Schi return Die Funktion report4retrieve l dt die angegebene Reportdatei von der Platte erzeugt eine interne REPORT4 Struktur und gibt einen Zeiger auf die Struktur zur ck Dieser Zeiger wird verwendet um den Report mit der Funktion report4do auszuf hren Mit dem Code in REP1 C l t sich jede beliebige Reportdatei ausf hren da ihr Name als Befehlszeilenparameter bergeben wird Um
322. u vor report4do aufgerufen werden Ge schieht das nicht kann das zu unvorhersehbaren Ergebnissen f hren Siehe auch report4do report4free report4printerSelect Aufruf void report4printerSelect REPORT4 report 268 Beschreibung Parameter report4printerDC Aufruf Beschreibung Hinweis Parameter Funktions bersicht Diese Funktion ruft die Dialogbox Druckereinrichtung auf um einen Drucker f r den Report auszuw hlen Damit die Funktion einwandfrei arbeitet mu die Anwendung unter Microsoft Windows 3 1 oder h her laufen oder die dynamische Link Bibliothek COMMDLG DLL mu sich im Systempfad befinden report Ein Zeiger auf den Report der f r den ausge w hlten Drucker konfiguriert ist 2 Seren sususen KA HDC report4printerDC REPORT4 report HDC hDC Mit dieser Funktion wird ein Handle auf einen Druckerger te kontext angegeben an den die Reportausgabe erfolgt Diese Low Level Funktion ist dann n tzlich wenn das Handle auf den Druckerger tekontext ber Standard Windows Funk tionsaufrufe ermittelt wird Um das Reportausgabeger t interak tiv auszuw hlen ist die Funktion report4printerS elect vorge sehen Dieses Handle ist ein vorab definierter Ger tekontext falls eingerichtet oder null falls kein Ger tekontext eingerichtet wurde Es liegt in der Verantwortung des Programmierers den zur ckgegebenen Ger tekontext wieder freizugeben Der angegebene Druckerge
323. uelle Seitenformat des ausgew hlten Druckers verwendet Bei einer Non Windows Anwendung wird das voreingestellte Seitenformat von 25x 80 Zeichen verwendet REPORT4 Ein Zeiger auf den Report f r den das Seitenfor mat eingestellt wird height Die H he der Ausgabeseite in der angegebenen Ma einheit width Die Breite der Ausgabeseite in der angegebenen Ma einheit unitType Mit diesem Parameter wird die Ma einheit von height und width festgelegt unitType kann einen der folgenden Werte annehmen 1 height und width werden in Zeichen angege ben 319 R ckgaben Siehe auch report4parent Aufruf CodeReporter 2 0 O height und width werden in tausendstel Zoll angegeben 0 Das Seitenformat wurde erfolgreich eingerichtet lt 0 Fehler report4margins report4printerSelect rc report4parent REPORT4 amp Form hWnd Beschreibung Diese Funktion legt das f r die Reportausgabe zu verwendende Parameter R ckgaben Achtung 320 Elternfenster fest Form hWnd sollte die hWnd Eigenschaft des Formulars in Ihrer Visual Basic Anwendung sein an das der Fo kus nach dem Schlie en des Reportfensters zur ckgegeben wird REPORT4 Ein REPORT4 Zeiger auf den Report f r den das Elternfenster eingerichtet wird Form hWnd Ein Microsoft Windows Handle auf das Formular dessen Fokus nach der Reportausgabe eingestellt wird Wird die Ausgabe an ein Fenster geschickt wird dieses Formular bis zum Schlie en des R
324. uf gen im Bereich Gruppenr cksetz ausdr cke f r Zwischensummen die Dialogbox Gruppenausdruck eingeben auf und geben Sie diesen Ausdruck ein Der Ausdruck sollte in der Listbox Gruppenr cksetzausdr cke f r Zwischen summen angezeigt werden 138 Spaltenreport Utility H chstwahrscheinlich wurden die Datens tze in SALES DBF f r die einzelnen Gesch fte nicht sortiert eingegeben so da die Datendatei sortiert werden mu Das geschieht ber das Anklicken der Schaltfl che Sortierausdr und Eingabe desselben SALES gt STOREID Der Sortierausdruck kann das Feld COMPID die Hauptuntermenge der Daten datei SALES DBF gefahrlos vernachl ssigen da lediglich die Verk ufe der Firma ATHA in den Report eingehen sollen Die Begrenzung der zusammengesetzten Datendatei erfolgt ber den Abfrageaus druck sALES gt COMPID ATHA Klicken Sie auf Abfrageausdr und geben Sie den Ausdruck in die Dialogbox Abfrageausdruck eingeben ein Den Report einsehen Nach der Eingabe des Sortier bzw Abfrageausdrucks wird der Spaltenreport erzeugt indem Sie auf OK klicken Lassen Sie sich den Report mittels der Men option DATEI DRUCKBILD EINSEHEN anzeigen Die Felder und die Summen werden im Ausgabefenster korrekt ausge geben Ausfeilen Der vorliegende Schnellreport ist weit davon entfernt gedruckt zu werden Um ihn auszufeilen stehen Ihnen verschiedene M glichkeiten zur Verf g
325. uf den Kopfbereich von dem aus der unmittelbar vorher angelegte Kopfbereich lokali siert wird R ckgaben Diese Funktion gibt einen AREA4 Zeiger auf den Kopfbereich zur ck der vor dem Kopfbereich area angelegt wurde Ist area der letzte f r die Gruppe angelegte Kopfbereich oder ist area Null gibt group4headerPrev Null zur ck Achtung Es kann zu unerwarteten Ergebnissen kommen wenn der Para meter area kein g ltiger Kopfbereich f r die Gruppe group ist Siehe auch area4firstHeader areadnumHeaders group4numFooters Aufruf int group4numFooters GROUP4 group Beschreibung Diese Funktion gibt die aktuelle Anzahl der Fu bereiche f r die angegebene Gruppe zur ck Parameter group Dieser GROUP4 Zeiger identifiziert die Gruppe 208 R ckgaben Siehe auch Funktions bersicht 0 Die angegebene Gruppe enth lt keine Fu berei che Nicht Null Die Anzahl der f r die angegebene Gruppe ange legten Fu bereiche area4create area4free group4numHeaders Aufruf int groupdnumHeaders GROUP4 group Beschreibung Diese Funktion gibt die aktuelle Anzahl der Kopfbereiche f r die Parameter R ckgaben Siehe auch angegebene Gruppe zur ck group Dieser GROUP4 Zeiger identifiziert die Gruppe 0 Die angegebene Gruppe enth lt keine Kopfberei che Nicht Null Die Anzahl der f r die angegebene Gruppe ange legten Kopfbereiche area4create area4free group4repeatHeader Aufruf int group4repeatHeade
326. uf int totaldaddCondition TOTAL4 total char addConditionSrc int logical Beschreibung Mit dieser Funktion wird eine bedingte Summierung des Sum menausgabeobjekts angegeben Handelt es sich bei addConditionSrc um einen logischen dBASE Ausdruck und logical ist nicht Null wird die Summe immer dann gebildet wenn die Bedingung auf einen wahren Wert hinausl uft Handelt es sich bei addConditionSrc um einen anderen Aus druckstyp und logical ist null wird die Summe gebildet sobald sich der Wert der ausgewerteten Bedingung ndert Wird diese Funktion nicht aufgerufen wird die Summe f r jeden Datensatz der zusammengesetzten Datendatei gebildet Parameter total Ein Zeiger auf die Summe f r die die bedingte Summierung gelten soll addConditionSre Ein null terminiertes Zeichenarray das einen dBASE Ausdruck enth lt mit dem der Zeitpunkt der Summenbildung festgelegt wird Bei diesem Ausdruck kann es sich bis auf Memo um jeden beliebigen Typ handeln Hat der Ausdruck als Ergebnis einen wahren Wert und logical ist nicht 288 R ckgaben Siehe auch total4create Aufruf Beschreibung logical 0 lt 0 Funktions bersicht Null oder ndert sich der ausgewertete Ausdruck und logical ist null wird die Summe gebildet Mit diesem Flag wird bestimmt ob die Summe bei einer logischen Bedingung oder bei einer Wert nderung gebildet werden soll Enth lt logi cal einen wahren Wert nicht Null wird davon
327. ull anzeigen Per Voreinstellung zeigt CodeReporter numerische Ausgabeobjekte mit dem Wert Null an Deaktivieren Sie jedoch die Schaltfl che Null anzeigen in der Dialogbox Objektdefinition werden numerische Ausgabeobjekte mit dem Wert Null im Report nicht ausgegeben 112 Ausgabeobjekte Dezimalstellen Die Anzahl der Dezimalstellen bei numerischen Objekten wird ber das Editier feld Nachkommastellen in der Dialogbox Objektdefinition gesteuert Vor eingestellt sind keine Dezimalstellen bei Objekten mit numerischen Feldern allerdings werden die Dezimalstellen des Feldes verwendet Hat die auszugebende Zahl eine gr ere Genauigkeit mehr Dezimalstellen als definiert wird die ausgegebene Zahl gerundet Achtung Rundungen wirken sich bei Summen nicht auf den tats chlichen Zah lenwert aus Bei Rundungen kann es vorkommen da die Summe einer Zahlenspalte nicht zum Summenausgabeobjekt dieser Spalte aufsummiert wird Datum In einer Datenbank werden Datumsfelder so gespeichert da sie sich leicht sortieren lassen Der 2 Januar 1992 steht als 19920102 in der Datenbank der 3 Januar 1992 als 19920103 usw In gedruckten Reports l t sich jedoch 2 Januar 1992 bzw 2 1 1992 leichter verstehen als 19920102 Mit CodeReporter k nnen Sie flexibel bestimmen welche Formate bei der Aus gabe von Datumsobjekten verwendet werden sollen Datumsschablonen Das Ausgabeformat eines
328. und erscheinen in normaler Schrift Dar ber hinaus werden dem Namen der Dialogbox im allgemeinen die Begriffe Dialogbox oder Dialog vorangestellt Beispiel Verwenden Sie die Dialogbox Ausdruck eingeben f r die Eingabe von dBASE Ausdr cken Starten mit CodeReporter Bezeichnungen von Befehlsschaltfl chen in Dialogboxen oder auf dem Code Reporter Entwicklungsbildschirm sind in doppelte Anf hrungszeichen einge schlossen und erscheinen in normaler Schrift Dar ber hinaus wird der Typ der Schaltfl che im allgemeinen ihrer Bezeichnung vorangestellt Beispiel W hlen Sie einen Eintrag in der Listbox Felder an und klicken Sie auf OK dBASE Ausdr cke erscheinen in fetter Schreibmaschinenschrift und Gro buch staben die einzige Ausnahme dabei bildet der zu einen dBASE Ausdruck geh rende Text Die in einem solchen Ausdruck genannten Felder werden mit dem Namen der Datendatei zu der sie geh ren und einem gt bezeichnet Hinweise zu den dBASE Ausdr cken finden Sie im Kapitel Ausdr cke Beispiel Name DATA gt NAME Alter STR DATA gt ALTER 3 0 Bei allen in diesem Handbuch genannten Verzeichnissen gehen wir davon aus da es sich um Unterverzeichnisse des CodeReporter Verzeichnisses handelt Standard C CODEREPP Bei der Nennung von Unterverzeichnissen wird das CodeReporter Verzeichnis als aufgef hrt was so viel wie das aktuelle Ver zeichnis bedeutet EXAMP
329. und in verschiedenen Verzeichnissen befinden Zu diesem Zweck werden innerhalb des Reports die vollst ndigen Pfadnamen ge 166 Reports gestalten speichert M gliche Datenquellen lassen sich auf diese Weise zwar flexibel angeben doch d rfen die Datendateien in dem Verzeichnis in dem sie sich bei der Erstellung des Reports befunden haben nicht fehlen Das Kontrollk stchen Pfadnamen speichern in der Dialogbox Reportvorga ben bestimmt ob die vollst ndigen Pfadnamen der Datendateien zusammen mit dem Report gespeichert werden oder nicht Ist das Kontrollk stchen nicht aktiv sichert CodeReporter Laufwerk und Ver zeichnis der Datendatei nicht mit Beim n chsten Laden des Reports kann Code Reporter nicht auf die Ausgangspfade der Datendateien zugreifen da sie nicht gespeichert wurden und sucht sie im aktuellen Verzeichnis Feste Zur cksetzung Tritt eine Gruppenr cksetzbedingung f r eine Gruppe ein und die Option Seite zur cksetzen ist eingestellt siehe Kapitel Gruppen wird anhand des Kon trollk stchens Flag Feste R cksetzung die Zur cksetzungsmethode f r die Seite ermittelt Wenn das Flag Feste R cksetzung nicht aktiviert ist Voreinstellung wird keine neue Seite generiert falls die Gruppe mit der Option Seite zur cksetzen aufgrund einer Gruppenr cksetzung auf h herer Ebene zur ckgesetzt wurde Eine neue Seite wird lediglich dann generiert wenn der Gruppenausdruck der
330. ung als da sind unterschiedliche Styles und Schriften Erl uterungen zu den Summen Reporttitel usw Diese nderungen k nnen am Schnellreport genauso vorgenom men werden wie bei einem Report der standardm ig erstellt worden ist 139 CodeReporter 2 0 7 Ausdr cke Ein Gro teil der Kommunikation zwischen CodeReporter und dem Reportent wickler erfolgt ber den Einsatz von dBASE Ausdr cken Dabei handelt es sich vom Begriff her um eine Makrosprache mit der Vorg nge beschrieben bzw Daten identifiziert werden dBASE Ausdr cke verhalten sich in vielerlei Hinsicht wie mathematische Glei chungen Werte k nnen zusammengezogen Gleichungen k nnen auf Richtigkeit wahr oder falsch berpr ft werden usw Wie in der Mathematik gelten f r dBASE Ausdr cke bestimmte Regeln Im Gegensatz zur Mathematik bei der lediglich mit Zahlenwerten operiert wird k nnen dBASE Ausdr cke auch andere Werte annehmen z B alphanumerisch und Datum Leser denen dBASE bzw dBASE Ausdr cke bereits ein Begriff sind k nnen die n chsten Abschnitte berspringen und bei Kurz Ausdruck eingeben weiter lesen Allgemeine Hinweise zu dBASE Ausdr cken Alle dBASE Ausdr cke geben einen Wert eines bestimmten Typs zur ck Dieser Typ kann Numerisch Zeichen Datum oder Logisch sein Eine gel ufige Form eines dBASE Ausdrucks ist der Name eines Feldes In diesem Fall stimmt der Typ des dBASE Ausdrucks mit dem Typ des Fe
331. unktion liest eine Relationsdatei ein und baut die von CodeReporter erzeugte oder mit relate4save gespeicherte Rela tion auf Beim Laden der Relationsdatei mit relate4retrieve kann man gleichzeitig die entsprechenden Datendateien ffnen Hinweis Bei komplizierten Relationen sollten Sie CodeReporter mit der Men option DATEI RELATION SPEICHERN einsetzen um die Rela tion aufzubauen und auf der Platte abzulegen Diese Relation k nnen Sie dann sp ter mit relate4retrieve in Ihre Anwendung einlesen Parameter CODE4 Ein Zeiger auf die CODE4 Struktur der An wendung er dient der Speicherverwaltung und Fehlerbehandlung fileName Eine Zeichenkette die den Namen einschlie lich Laufwerk und Verzeichnis der Relations datei enth lt Da stets die Erweiterung REL verwendet wird brauchen Sie keinen Dateityp einzugeben openFiles Hat openFiles einen wahren Wert 1 versucht relate4retrieve die in der abgespeicherten Relationsdatei genannten Daten Index und Memodateien zu ffnen falls sie noch nicht ge ffnet sind Kann relate4retrieve eine in der Relationsdatei angegebene Datendatei nicht finden wird diese Datei sowie alle ihr zuge ordneten Slavedateien aus der Relation ausge klammert und der Versuch unternommen die n chste Datendatei zu lokalisieren 310 R ckgaben Siehe auch relate4dsave Aufruf Beschreibung Anhang F CodeBasic API dataPathName Nicht Null Null Hat openFiles einen falschen Wert 0
332. uppen Wird eine Gruppe innerhalb einer anderen Gruppe plaziert spricht man von Verschachtelung Beim bergang von der Untermenge ANNAME NUM SANDERS zur Untermenge SMITH tritt eine R cksetzbedingung ein die die Ausgabe der mit der Gruppe NNAME verbundenen Berei SANDERS 6 che einleitet 5 Die Bereiche die mit dem Kopf der Gruppe SANDERS NNAME verbunden sind geben diesen Da SMITH 1 tensatz aus Untermenge SMITH 2 SMITH SMITH 3 SMITH 4 i Die Bereiche die mit dem Fu der Gruppe SMITH 5 NNAME verbunden sind geben diesen Da tensatz aus THOMPSON 3 THOMPSON 4 Abb 3 3 Kopf und Fu bereiche Wenn eine neue Gruppe angelegt wird erscheint gleichzeitig ein neues Infor mationsfenster mit Angaben zu der Gruppe sowie zu Kopf und Fu bereich en Das Informationsfenster l t sich ber die Men option ANSICHT INFO FENSTER aus bzw wieder einblenden In den Kapiteln Starten mit CodeReporter und CodeReporter Optionen finden Sie Einzelheiten ber das Informationsfenster Mit Hilfe der Men option GRUPPE NEU rufen Sie die Dialogbox Gruppendefi nition auf Name Eine Gruppe sollte einen sprechenden Namen haben dem der Reportentwickler den Inhalt der Gruppe entnehmen kann Per Voreinstellung verwendet Code Reporter Body als Bezeichnung f r die erste Gruppe Gruppe 2 f r die zweite Gruppe 3 f r die dritte
333. usgabeobjekt gesetzt werden soll expr Ein EXPR4 Zeiger auf einen analysierten Aus druck X Die waagerechte Koordinate in tausendstel Zoll an der die linke Seite des Ausdrucksobjekts steht y Die senkrechte Koordinate in tausendstel Zoll vom oberen Rand des Reportbereichs an der die Oberkante des Ausdrucksobjekts steht 227 R ckgaben Siehe auch CodeReporter 2 0 API width Die horizontale Ausdehnung des Ausdrucksaus gabeobjekts in tausendstel Zoll height Die vertikale Ausdehnung des Ausdrucksausgabe objekts in tausendstel Zoll Nicht Null Bei Erfolg wird ein Zeiger auf das neue Aus drucksausgabeobjekt zur ckgegeben 0 Fehler Das Ausdrucksausgabeobjekt konnte nicht angelegt werden die CodeBase 5 Funktion expr4parse obj4dexprFree obj4exprFree Aufruf void obj4exprFree OBJ4 obj Beschreibung Diese Funktion l scht das angegebene Ausdrucksausgabeobjekt Parameter Siehe auch 228 aus dem Report und gibt den mit dem Objekt verbundenen Spei cher frei Die Funktion gibt durch einen Aufruf der CodeBase 5 Funktion expr4free automatisch den Ausdruck frei auf dem das Aus drucksausgabeobjekt basiert obj Zeiger auf das aus dem Report zu l schende Ausdrucksausgabeobjekt die CodeBase 5 Funktion expr4free obj4exprCreate obj4 delete report4free obj4fieldCreate Aufruf Funktions bersicht OBJ4 obj4fieldCreate AREA4 area FIELD4 field long x long y long width long height
334. usgegeben werden mu der Programmierer einen Spei cherger tekontext mit einer Bitmap erzeugen deren Gr e zum Speichern einer Reportseite ausreicht Parameter report Ein Zeiger auf den Report aus dem eine Seite eingelesen wird hDC Ein Handle auf einen g ltigen Microsoft Wind ows Ger tekontext in den die n chste Seite des Reports kopiert wird Der Programmierer ist daf r verantwortlich ADC freizugeben sobald es nicht mehr ben tigt wird R ckgaben 0 Neue Seite erfolgreich in hDC gespeichert 2 Der Report enth lt keine weiteren Seiten hDC ist unver ndert lt 0 Fehler report und oder hDC sind ung ltig Siehe auch report4init ET report4generatePage SL Aufruf int report4generatePage REPORT4 report Beschreibung Mit dieser Low Level Funktion wird eine interne Struktur er Parameter zeugt die Informationen ber die n chste Seite eines Reports enth lt Mit Hilfe der Funktionen report4pageObjFirst und report4pageObjNext lassen sich die Werte der Ausgabeobjekte auf der Reportseite abrufen report Ein Zeiger auf den Report f r den die n chste Seite eingelesen wird 253 R ckgaben Siehe auch CodeReporter 2 0 API 0 Die neue Seite wurde erfolgreich im internen Puf fer abgelegt Der Report enth lt keine weiteren Seiten lt 0 Fehler report ist ung ltig report4pageObjFirst report4pageObjNext report4init report4groupFirst Aufruf GROUP4 report4groupFirst REPORT4 report Beschreibung
335. usgew hlter Objekte in zwei und mehr Reportbereichen richtet sich nach dem kleinsten Bereich Feineinstellung CodeReporter ist in der Lage Ausgabeobjekte bis auf eine Windows Ger teein heit genau zu positionieren Diese extrem kleine und genaue Ma einheit ist oft zu klein um mit der Maus Objekte b ndig zu arrangieren Die Men option AUSRICHTEN FEINEINSTELLUNG ruft die Dialogbox Koordina ten Feineinstellung auf in der sich die horizontale bzw vertikale Feineinstel lung in der aktuellen Ma einheit angeben l t Auf diese Weise wird die Einheit bestimmt um die die Objekte versetzt werden Je gr er dieser Einheit desto kleiner ist die Anzahl der m glichen Koordinaten die ein Objekt bedecken kann Mit einer groben Feineinstellung lassen sich Objekte rascher positionieren Hinweis Eine Ver nderung der Feineinstellung wirkt sich nur auf neue Objekte aus die positioniert werden bzw auf zu verschiebende Objekte Ausgabeobjekte die sich innerhalb des Reports bereits an ihrem Platz befinden werden nicht ber hrt B ndigkeit Mit Hilfe der Men option AUSRICHTEN lassen sich mehrere Objekte rasch unter einander ausrichten Das erste ausgew hlte Objekt bestimmt den Stand aller nachfolgend ausgew hlten Objekte Um die Objekte anhand des ersten ausgew hlten links oder rechtsb ndig aus zurichten k nnen Sie die Men option AUSRICHTEN LINKSB NDIG bzw AUSRICH TEN RECHTSB NDIG einsetzen Auch Objekte in mehr
336. w hlt entnehmen Sie bitte dem folgenden Abschnitt Hinweis Verwenden Sie f r einen Style eine gr ere Schrift wirkt sich das nicht auf die Gr e der entsprechenden Ausgabeobjekte aus M gli cherweise wird der Text f r das Objekt nicht mehr vollst ndig an gezeigt Passen Sie das Ausgabeobjekt per Hand an die neue Gr e an Einen Style ausw hlen Einen Style k nnen Sie mit Hilfe der Schaltfl che Style ausw hlen Wo sich diese Schaltfl che befindet entnehmen Sie bitte dem Kapitel Starten mit Code Reporter Wenn Sie auf die Schaltfl che klicken wird Ihnen eine Popup Liste aller f r den Report erstellten Styles angezeigt Aus dieser Liste k nnen Sie einen Style per Einfach bzw Doppelklick ausw h len Im Falle eines Einfachklicks m ssen Sie die Schaltfl che noch einmal an klicken um das Style Popup Men zu schlie en W hlen Sie ein Ausgabeobjekt aus wird damit ebenfalls der mit diesem Objekt verbundene Style ausgew hlt F r ein Objekt Sind bei dieser Styleauswahl Ausgabeobjekte markiert werden Sie mit dem neuen Style verbunden Auf diese Weise l t sich der Style f r ein Ausgabeobjekt am schnellsten einstellen Dar ber hinaus l t sich ein Style ber die einzeilige Listbox Style in der Dialogbox Objektdefinition einstellen Einzelheiten zu dieser Dialogbox ent nehmen Sie bitte dem Abschnitt Objekte bearbeiten im Kapitel Objekte 152 Styles Non Windows Styl
337. werden die Standard Randeinstellungen des Hinweis Parameter Reports ver ndert Einige Ausgabeger te z B Laserdrucker haben einen hardware m ig eingestellten Randbereich der nicht bedruckbar ist report4margins pr ft diese Tatsache ab und l t es nicht zu da die physikalischen R nder des Ger ts nicht eingehalten werden report Ein Zeiger auf den Report bei dem die R nder eingestellt werden left Breite des linken Randes in den Schritten der eingestellten Ma einheit right Breite des rechten Randes in den Schritten der eingestellten Ma einheit top Breite des oberen Randes in den Schritten der eingestellten Ma einheit 259 CodeReporter 2 0 API bottom Breite des unteren Randes in den Schritten der eingestellten Ma einheit unitType Ma einheit f r die oben genannten Randeinstel lungen Bei graphischen Benutzerschnittstellen lassen sich dabei recht gut Angaben in tausendstel Zoll verwenden Bei zeichenbezogenen Schnitt stellen eignen sich Angaben in Zeichen oft besser unitT ype kann einen der folgenden Werte anneh men 1 Die Ma einheiten werden in Zeichen angege ben 0 Die Ma einheiten werden in tausendstel Zoll angegeben Hinweis Ist unitType auf Zeichen eingestellt geht diese Funktion von zehn Zeichen pro Zoll cpi und sechs Zeilen pro Zoll lpi aus R ckgaben 0 Die R nder wurden erfolgreich eingestellt lt 0 Fehler Siehe auch report4pageSize report4numGroups Aufruf
338. ws Anwendungen z B Paintbrush erlauben dem Benutzer das Erstellen eigener Bitmap Grafiken Nach der Fertigstellung kann das Bild bli cherweise mit dem Befehl Ausschneiden bzw Kopieren in die Windows Zwischenablage gestellt werden von wo es von CodeReporter abgerufen werden kann Das Bild kann dann ber die Men option BEARBEITEN EINF GEN als stati sches Grafikobjekt in den Report eingebettet werden Die Bitmaps eingef gter Grafikobjekte werden im Reportentwicklungsbildschirm angezeigt Hinweis In einen Report eingef gte Bitmaps werden in einer externen Bitmap Datei abgelegt Da diese Datei im allgemeinen ohne Zutun des Be nutzers angelegt wird erh lt sie einen eindeutigen und gew hnlich nicht verst ndlichen Namen Wurde die eingef gte Bitmap bereits von einer Anwendung in einer Datei gespeichert wird durch die Ver doppelung unn tig Plattenplatz verbraucht Im allgemeinen ist es g nstiger die Bitmap mit der Ausgangsanwen dung als Bitmap Datei BMP zu speichern und ber die Men option OBJEKT GRAFIK ein Grafikausgabeobjekt zu erzeugen das auf die Datei zugreift 120 Ausgabeobjekte Die Men option OBJEKT GRAFIK ruft die Dialogbox Typ des Grafikobjekts an geben auf in der Sie den entsprechenden Objekttyp angeben k nnen Aktivieren Sie das Kontrollk stchen Statische Grafik bittet CodeReporter Sie um die Eingabe des Namens der Bitmap Datei und zeigt die Abbildung im Cod
339. x Ausdruck eingeben Einzelheiten hierzu entnehmen Sie bitte dem Kapitel Ausdr cke Nachdem Sie einen Ausdruck eingegeben haben klicken Sie auf OK um die Erzeugung des Objekts abzuschlie en Berechnungen Eine Berechnung f hrt eine zahlen oder zeichenabh ngige Rechenoperation aus die im Report benutzt wird Diese Berechnungen erfolgen in Form von dBASE Ausdr cken In vielen F llen f gt eine Berechnung einfach mehrere Datenfelder zusammen doch kann sie sich auch weitaus komplexer gestalten und mit zusam mengesetzten Datenfeldern und oder dBASE Funktionen arbeiten Man kann die Berechnung als eine Art Kurzform f r die in ihr enthaltene Rechenoperation betrachten Eine Berechnung l t sich in keinem einem und vielen Berechnungsausgabeob jekten verwenden Dar ber hinaus kann sie nach ihrer Erstellung in jedem Aus druck innerhalb des gesamten Reports eingesetzt werden in Sortier Abfrage ausdr cken Ausdrucksausgabeobjekten Relationsausdr cken usw 125 CodeReporter 2 0 So k nnte eine Berechnung anhand der folgenden Formel den Gesamtlohn f r einen Angestellten ermitteln BEZ gt REG_STD ANG gt RATE BEZ gt OT_STD ANG gt RATE 1 5 Vor und Nachnamen eines Angestellten k nnte man mit der folgenden Formel formatieren TRIM ANG gt V_NAME ANG gt N_NAME Handelt es sich bei dem Report um eine einfache Lohnliste die die Namen und den Bruttolohn der Angestellten auff hrt mu m glic
340. xe Relationen aufzubauen die auf der Platte abgelegt werden k nnen Diese Relationen k nnen dann sp ter f r die Verwendung in einer CodeBasic Anwendung eingelesen werden Das folgende Programm REPTEST BAS testet eine BASIC Anwendung Sub ReportTest cb As Long Report As Form Dim lReport As Long Reportdatei TUT1 REP einlesen lReport report4retrieve cb App Path TUT1 1 App Path Auf Fehler berpr fen If lReport 0 Then rc code4errorCode cb 0 Exit Sub End If Einige Einstellungen des Reports ver ndern rc report4caption lReport Neuer Titel rc report4currency lReport DM Relationsset des Reports ver ndern rc report4querySet lReport STUDENT gt L_NAME gt R rc report4sortSet lReport STUDENT gt L_NAME nderungen in einer neuen Datei ablegen rc report4save lReport App Path STUDENT2 1 Eltern Handle des Reports vor der Anzeige einstellen rc report4parent lReport Report hWnd 308 Anhang F CodeBasic API Report auf dem Bildschirm ausgeben rc report4do lReport Drucker zur Ausgabe einstellen Call report4printerSelect lReport Druckerausgabe rc report4toScreen lReport 0 rc report4do lReport Speicher freigeben und Dateien schlie en Call report4free lReport 1 1 End Sub 309 CodeReporter 2 0 relate4retrieve Aufruf RELATE4 amp relate4retrieve CODE4 amp fileName openFiles dataPathName Beschreibung Diese F
341. yle Ein Zeiger auf den Style f r den die Farbe einge stellt wird color Bei diesem Parameter handelt es sich um einen COLORREF Wert der die Farbe f r den angege benen Style beschreibt R ckgaben 0 Die Farbe wurde erfolgreich eingestellt lt 0 Fehler style ist ung ltig style4create Aufruf STYLE4 style4create REPORT4 report RALOGFONT font char name RACOLORREEF color int pointSize Beschreibung Diese Funktion f gt einen neuen Style mit der angegebenen Windows Schrift in den Report ein 282 Parameter report font name color pointSize R ckgaben Nicht Null style4create Funktions bersicht Ein Zeiger auf den Report mit dem der neue Style verbunden werden soll Ein Zeiger auf eine Windows LOGFONT Struk tur die die f r den neuen Style verwendete Schriftart beschreibt Ein null terminiertes Zeichenarray das den Na men des neuen Styles enth lt name kann auf bis zu 19 Zeichen zeigen Bei diesem Parameter handelt es sich um einen COLORREF Wert der die Farbe f r den neuen Style beschreibt Die Gr e der f r den neuen Style verwendeten Schrift in Punkten Der neue Style wurde erfolgreich eingerichtet Der zur ckgegebene Zeiger darf als g ltig betrachtet und von anderen Funktionen des Reportmoduls verwendet werden Fehler Der Style wurde nicht angelegt Aufruf STYLE4 style4create REPORTA4 report char name int beforeLen char beforeCodes int afterLen char af
342. z f r jede installierte Code Reporter Version Je nach Report kann der Programmlauf zus tzliche Platten kapazit t erforderlich machen CodeReporter l uft auf nahezu jedem Computersystem auf dem Windows 3 1 installiert ist allerdings h ngt die Schnelligkeit der Reporterzeugung von der Leistungsf higkeit des Systems ab Registrierung Bitte nehmen Sie sich einen Augenblick Zeit um die CodeReporter Registrier karte auszuf llen und an uns zu senden Nur so stellen Sie f r sich rasche tech nische Unterst tzung und den Update Service sicher Starten mit CodeReporter Installation Haben Sie CodeReporter als Teil eines Sequiter Programmpakets erworben erfolgt die Installation ber das mitgelieferte Installationsprogramm Kaufen Sie CodeReporter getrennt wird die Installation ber die Datei INSTALL EXE auf Programmadiskette 1 ausgef hrt Versionen Aufgrund einer indexspezifischen CodeBase DLL kann CodeReporter mit jedem der vier unterst tzten Dateiformate eingesetzt werden Beim Aufruf sucht das Programm die Bibliothek CR 2CODE DLL um deren Indexdatei Kompatibilit t festzustellen Erwerben Sie CodeReporter getrennt von CodeBase legt das Installationspro gramm die entsprechende indexdateispezifische DLL im CodeReporter Verzeich nis ab W nschen Sie eine andere Indexversion m ssen Sie CodeReporter neu installieren Wird CodeReporter als Teil eines Programmpakets z B CodeBase 5 1 amp Code Reporter installier
343. zeichnung im angegebenen Report berein Parameter report R ckgaben 0 Nicht Null Siehe auch report4groupLookup Aufruf Beschreibung angegebene Gruppe Parameter report name R ckgaben Nicht Null 0 Siehe auch group4create 255 CodeReporter 2 0 API report4groupNext Aufruf GROUPA4 report4groupNext REPORTA4 report GROUPA4 group Beschreibung Mit dieser Funktion erh lt man einen GROUP4 Zeiger auf die unmittelbar nach der angegebenen Gruppe erzeugte Gruppe In Verbindung mit group4irst dient die Funktion dazu die Gruppen eines Reports zu durchlaufen Parameter report Ein Zeiger auf den Report zu dem die Gruppe geh rt group Ein Zeiger auf eine innere Gruppe ber die die n chste weiter au en gelegene Gruppe ermittelt wird R ckgaben 0 Der Report enth lt keine weiteren Gruppen group ist die u erste Gruppe Nicht Null Ein Zeiger auf die n chste Gruppe wird zur ck gegeben Siehe auch group4irst report4numGroups report4groupPrev Aufruf GROUP4 report4groupPrev REPORTA4 report GROUPA4 group Beschreibung Mit dieser Funktion erh lt man einen GROUP4 Zeiger auf die unmittelbar vor der angegebenen Gruppe erzeugte Gruppe In Verbindung mit report4groupLast dient die Funktion dazu die Gruppen eines Reports zu durchlaufen 256 Parameter R ckgaben Siehe auch report group Nicht Null Funktions bersicht Ein Zeiger auf den Report zu dem die Gruppe geh rt Ein Zeig
344. zeigt einen Reportentwurf f r folgende Zweckerkl rung Die F rde rergesellschaft ben tigt einen Report der die Spendensumme des laufenden Jah res und eine alphabetische Aufstellung aller Spender mit Anschrift Spender nummer und Betrag enth lt die in diesem Jahr 1 000 oder mehr gespendet haben 36 Einen Report entwerfen F rderergesellschaft Spenderliste 1 Januar 1993 bis 21 Mai 1993 Gesamtspenden der F rderer xxxxxxx Spender Spender Nr Summe Adams John 4321 34 1234 1 000 123 West 4th Street Ort ST 55212 Baker John 4321 34 1234 9 000 123 West 4th Street Ort ST 55212 Cramford John 4321 34 1234 6 000 123 West 4th Street Ort ST 55212 Denver John 4321 34 1234 6 000 123 West 4th Street Ort ST 55212 Evans John 4321 34 1234 3 000 123 West 4th Street Ort ST 55212 Finnigan John 4321 34 1234 15 000 123 West 4th Street Ort ST 55212 Goodbody John 4321 34 1234 2 000 123 West 4th Street Ort ST 55212 Hamilton John 4321 34 1234 1 000 123 West 4th Street Ort ST 55212 Il John 4321 34 1234 5 000 123 West 4th Street Ort ST 55212 Jorganson John 4321 34 1234 7 000 123 West 4th Street Ort ST 55212 Abb 1 1 Reportentwurf 37 CodeReporter 2 0 Der Reportentwurf in Abb 1 1 leistet der Zweckerkl rung voll Gen ge Auf gef hrt werden oben der Urheber die Spendengesamtsumme und Name An schrift und Spender Nr in alphabetischer Reihenfol
345. zieren Sie die beiden Felder aus LOOKAHD DBE in den Kopfbereich von Body Klicken Sie dazu auf die Schaltfl che Feld im Entwicklungsbild schirm w hlen Sie das Feld NAME aus bewegen Sie den Cursor in den Kopf bereich von Body und klicken Sie die linke Maustaste um das Feld zu posi tionieren Wiederholen Sie diese Schritte f r das Feld TOTSALES Einzelheiten zur Plazierung von Datendateifeldern in einem Report finden Sie im Abschnitt Felder weiter unten 108 Ausgabeobjekte Zur Verdeutlichung sollen in den Titelbereich der Reporttitel und die Spaltentitel f r die Verk ufer eingef gt werden Klicken Sie im Entwicklungsbildschirm auf die Schaltfl che Text setzen Sie den Cursor in den Titelbereich und klicken Sie die linke Maustaste Es erscheint die Dialogbox Text f r Textobjekt ein geben Geben Sie xYZ Verkaufs GmbH ein und klicken Sie auf OK Geben Sie anschlie end in gleicher Weise die Texte Verkaufs bersicht Gesamtverkauf Verk ufername Verk ufe und Prozentanteil am Gesamtverkauf ein Summen werden aufgrund numerischer Berechnungen und numerischer Daten felder gebildet Da die Verkaufssummen im Feld TOTSALES bereits vorliegen ist keine Berechnung erforderlich Aktivieren Sie OBJEKT SUMME um die Dialogbox Summenberechnungen auf zurufen W hlen Sie das Feld TOTSALES aus und setzen Sie das Summenaus gabeobjekt in den Titelbereich siehe Ab
Download Pdf Manuals
Related Search
Related Contents
FM/MW/LW Cassette Car Stereo [封じ込めPPEキット] 取扱説明書 - 松本船舶電機製作所 Haier Washer XPB62-0613D User's Manual Mitsubishi Electronics MUY-GE12NA Air Conditioner User Manual V7 Wireless Keyboard and Mouse Combo, French FR Tutti i messaggi relativi alla sicurezza specificano il potenziale di Copyright © All rights reserved.
Failed to retrieve file