home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
OS/2 Shareware BBS: OtherApp
/
OtherApp.zip
/
aurum4op.zip
/
report.doc
< prev
next >
Wrap
Text File
|
1997-03-01
|
11KB
|
284 lines
XIV. Der Formulargestalter
Druckausgaben des Auftragswesens laufen über den Reportgenerator. Reports
sind Druckvorgaben für Listen und Formulare. Reports sind Textdateien und
haben in AURUM die Endung RPT. Diese Dateien können vom Benutzer individuell
an Drucker und Formularvorgaben angepasst werden. Dafür gehen Sie im Hauptmenü
in das Menü STAMMDATEN und wählen unter dem Punkt VORGABEN, den Unterpunkt
DRUCKVORGABEN bearbeiten. Es erscheint eine Dateiauswahlbox.
Wählen Sie den entsprechenden Report. Es wird der Reporteditor geladen.
Für die Bearbeitung von Reports müssen Sie folgende Regeln kennen :
Ein Report besteht aus folgenden Teilen :
1. Dem Definitionsteil
Er beginnt mit .DEF und endet mit .TOP. Dabei ist zu beachten, daß diese
Markierer direkt am Anfang einer Zeile stehen, und keine weiteren Angaben
in der Zeile vorhanden sein dürfen.
Im Definitionsteil können folgende Variablen genutzt werden :
Beispiel : ART_LI.RPT Artikelliste
.def
Drucker = 'Epson.drv' (0)
ausgabe = 'screen' (1)
rand = 5 (2)
vorschub = 2 (3)
seitenlen = 66 (4)
seitenvorschub = 'nein' (5)
masterdb = '' (6)
slavedb = 'daten\artikel' (7)
index = 'tag1' (8)
index_feld = 1 (9)
startkey = '100 ' (10)
endkey = '9999999999' (11)
body_leerzeilen = 'nein' (12)
body_trennzeile = 'ja' (13)
aufsteigend = 'ja' (14)
#1=27,15 (15)
#2=27,18 (16)
!b14 = "rset","dez2" (17)
!b15 = "rset","dez2" (18)
!b16 = "rset","dez2" (19)
!b20 = "rset" (20)
!_total1 = "rset","dez2" (21)
!_total2 = "rset","dez2" (22)
$_total1 = _slave14-_slave15-_slave16 (23)
$_total2 = _total2+(_slave14*_slave17) (24)
$_var1 = 'Listenausgabe' (25)
.top
Der Bereich von 1 bis 14 und 25 werden programmgesteuert verändert.
Dies geschieht über eine Datei mit den Namen : REPORT.DTE und DATEI.DTE.
In der Datei REPORT.DTE können die Werte von 1 bis 13 übergeben werden.
Dabei ist zu beachten, daß den Variablen ein Unterstrich vorangestellt wird.
Dateiauschnitt REPORT.DTE :
_ausgabe = 'datei.tmp'
_startkey= '300'
_var1='LISTE'
importend
In der Datei DATEI.DTE wird nur der Dateiname der Reportdatei übergeben.
Dateiauschnitt DATEI.DTE :
_datei='art_li.rpt'
importend
Für den normalen Anwender sind die Informationen über die Dateien REPORT.DTE
und DATEI.DTE unrelevant. Diese Dateien werden von AURUM automatisch erstellt.
Zu 0.
Hier geben Sie eine externe Datei an, die die Druckersteuerzeichen verwaltet.
Der Aufbau der Datei entspricht den Positionen 15 und 16.
( Beispiel : #breit_an = 27,18 )
Zu 1.
Hier geben Sie an, wohin die Ausgabe erfolgen soll. 'screen' steht für eine
Ausgabe am Bildschirm. Sie können hier auch einen Dateinamen oder Druckerport
angeben.
Zu 2.
Hier wird der linke Rand definiert.
Zu 3.
Hier wird der Kopfvorschub definiert.
Zu 4.
Definition der Seitenlänge
Zu 5.
Hier geben Sie an, ob ein Seitenvorschub am Ende der Ausgabe gemacht werden
soll.
Zu 6.
Hier wird die Masterdatenbank angegeben. Beispiel : Beim Druck eines Auftrags
ist die Masterdatenbank AUFTRAG.DBF und die Slavedatenbank POS.DBF.
In der Masterdatenbank werden die Kopfdaten eines Auftrags gespeichert und
in der Slavedatenbank die entsprechenden Positionen. Handelt es sich um eine
Liste, mit den Zugriff auf nur eine Datenbank, wird keine Masterdatenbank
angegeben.
Zu 7.
Hier geben Sie die Slavedatenbank an.
Zu 8.
Hier geben Sie den Indexnamen der Master- und Slave-Datenbank an.
Typ und Name muß in beiden Datenbanken identisch sein.
Zu 9.
Hier geben Sie die Index-Feldposition in der Slavedatenbank ank an.
D.h. Index 'tag1' bezieht sich auf die Belegnummer. Die Belegnummer ist das
erste Feld in der Slave-Datenbank.
Zu 10.
Hier bestimmen Sie den ersten Wert nach dem in der Master und Slave-Datenbank
gesucht wird. Wichtig ! Die Formatierung muß identisch zum Feldinhalt in der
Datenbank.
Zu 11.
Hier bestimmen Sie den Wert des letzten Datensatzes der bearbeitet wird.
Dieser wird nur bei Listen angegeben. Die Formatierung muß identisch zum
Feldinhalt in der Datenbank sein.
Zu 12.
Hier geben Sie an ob Leerzeilen im Body-Teil ausgedruckt werden.
Beispiel : Es sollen mehrere Bemerkungsfelder für einen Artikel gedruckt
werden. Die Hälfte der Felder enthalten keine Eingabe.
Sie können nun bestimmen, ob diese Felder gedruckt werden.
Zu 13.
Hier bestimmen Sie , ob nach jeder Wiederholung des BODY-Teils eine Leerzeile
eingefügt wird.
Zu 14.
Hier geben Sie an, ob der angegebene Index unter Punkt 8 aufsteigend oder
absteigend sortiert ist. Der Wert : AUFSTEIGEND = ' JA' gilt als
Grundeinstellung
Zu 15
Es wird eine Variable #1 definiert, die beim Druck die zugewiesenen
Druckersteuercodes an das Ausgabegerät weiterleitet.
#1 und #2 wurden willkürlich gewählt. Sie können auch andere Variablennamen
benutzen, wie #fett_an oder #fett_aus.
Zu 16
siehe Punkt 15.
Zu 17-22
Hier definieren Sie die Formatierung der Felder. Eine Formatierungsanweisung
beginnt mit einen Ausrufezeichen und der Feldnummer Die Angaben erfolgen mit
Komma getrennt. Folgende Formatanweisungen sind möglich :
'rset' rechtsbündig
'lset' linksbündig (default)
'ucase' Umwandeln in Großbuchstaben
'lcase' Umwandeln in Kleinbuchstaben
'dez1' Auf eine Stelle nach den Komma formatieren
'dez2' Auf zwei Stellen nach den Komma formatieren
'dez3' Auf drei Stellen nach den Komma formatieren
Zu 23-24
Im Reportgenerator gibt es die Möglichkeit Berechnungen durchzuführen.
$_total1 = _slave14-_slave15-_slave16
$_total2 = _total2+(_slave14*_slave17)
Um Berechnungen durchzuführen braucht man Kenntnis über die Struktur der
Datenbank. Die Felder der Slavedatenbank werden mit als _slave1,_slave2,
_slave3,... angesprochen, die Felder der Masterdatenbank mit _master1,
_master2,... Eine Berechnungszeile beginnt mit dem Dollarsymbol.
Es gibt 30 Variablen um Berechnungen durchzuführen. Die Namen der Variablen
sind von _total1 bist _total30 fest vordefiniert.
Zu 25.
Es gibt die Möglichkeit, Stringvariablen in Reports zu verwenden.
Dafür Variablen vom Namen _VAR1 bis _VAR30 vordefiniert.
2. Basiswissen
Ausgabe von Datenbankfeldern in einem Report steuert man über die
Buchstaben 'a' und 'b'. Mit 'a' werden die Masterdatenbankfelder und
mit 'b' die Slavedatenbankfelder gekennzeichnet. 'a1' bedeutet also,
benutze das erste Feld aus der Masterdatenbank. Datenbankfelder und
Berechnungsfelder müssen mit zwei Sternsymbolen '*' abgegrenzt werden.
(Beispiel : *a1* oder *b3*). Möchten Sie ein Feld auf eine bestimmte
Ausgabelänge formatieren, geben Sie Minuszeichen mit an.
(Beispiel : *a1---* Formatierung erfolgt auf 7 Zeichen.) Bei der Ausgabe
von Berechnungsvariablen gibt es drei Möglichkeiten.
Erstens, eine Berechnug laut Definitionsteil erfolgt und das Ergebnis wird
sofort ausgegeben. In diesem Fall wird ein Pluszeichen '+' dem Variablennamen
vorangestellt.
Zweitens, eine Berechnung erfolgt und das Ergbnis soll nicht angezeigt werden,
dann wird dem Variablennamen ein kaufmännisches UND '&' vorangestellt.
Die dritte Möglichkeit ist, der Inhalt der Variable wird angezeigt ohne das
gerechnet wird. In diesem Fall erfolgt die Angabe wie bei den
Datenbankfeldern : *_total1*
Für die Seitennummerierung und dem aktuellen Tagesdatum gibt es die
Variablen *seite* und die Variable *datum*.
Für die Ausgabe von Druckersteuerzeichen, wird dem Variablennamen das Zeichen
# vorangestellt. Die Definiton erfolgt im Definitionsteil.
(Beispiel : *#fett_an* oder *#1*) Als Programmierer hat man das Bedürfnis
weitere Texte , die außerhalb des Reports generiert wurden, in einen Report
zu integrieren. Dafür stehen die Variablen _var1 bis _var30 zur Verfügung.
Es handelt sich um Stringvariablen, die vom Programmierer genutzt werden
können um über die Datei REPORT.DTE externe Strings einzufügen.
3. Der Kopfteil
Er beginnt mit .TOP und endet mit .BODY. Dabei ist zu beachten, daß diese
Markierer direkt am Anfang einer Zeile stehen, und keine weiteren Angaben in
der Zeile vorhanden sein dürfen. Der Kopfteil wird je Seite nur einmal
ausgegeben.
3. Der Body-Teil
Er beginnt mit .BODY und endet mit .BOTTOM. Dabei ist zu beachten, daß diese
Markierer direkt am Anfang einer Zeile stehen, und keine weiteren Angaben in
der Zeile vorhanden sein dürfen. Der Bodyteil wird so oft ausgeführt bis
folgende Bedingung eintritt. Der aktuelle Datensatz ist ungleich dem
STARTKEY oder/und größer dem ENDKEY.
4. Der Bottom-Teil
Er beginnt mit .BOTTOM und endet mit .END. Dabei ist zu beachten, daß diese
Markierer direkt am Anfang einer Zeile stehen, und keine weiteren Angaben
in der Zeile vorhanden sein dürfen. Der Bottom-Teil wird je Seite nur
einmal ausgegeben.
5. Der End-Teil
Er beginnt mit .END. Dabei ist zu beachten, daß dieser Markierer direkt
am Anfang einer Zeile stehen muß, und keine weiteren Angaben in der Zeile
vorhanden sein dürfen. Der End-Teil wird am Schluß der Ausgabe nur einmal
gedruckt.
6. Beispiel :
.top
*#1*Repcom Datentechnik *#2*
Hauptstr. 139, 63110 Rodgau
*_var1*
------------ Seite : *seite*
Datum : *datum*
ArtNr. VK1 Bestand Reserv. Min. Differenz
-----------------------------------------------------------
.body
*b1----* *b20---* *b14-* *b16-* *b15--* *+_total1-*
*b3--------------------------------*
*b4--------------------------------*
*b5--------------------------------*
*b6--------------------------------*
*b7--------------------------------*
*b8--------------------------------*
*&_total2*
.bottom
Lagerwert : DM *_total2------*
.end
Ende der Liste
-----------------------------------------------------------------------------
D A T E I E N D E
-----------------------------------------------------------------------------