home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: OtherApp / OtherApp.zip / aurum4op.zip / report.doc < prev    next >
Text File  |  1997-03-01  |  11KB  |  284 lines

  1.  
  2. XIV. Der Formulargestalter
  3.  
  4. Druckausgaben des Auftragswesens laufen über den Reportgenerator. Reports
  5. sind Druckvorgaben für Listen und Formulare. Reports sind Textdateien und
  6. haben in AURUM die Endung RPT. Diese Dateien können vom Benutzer individuell
  7. an Drucker und Formularvorgaben angepasst werden. Dafür gehen Sie im Hauptmenü
  8. in das Menü STAMMDATEN und wählen unter dem Punkt VORGABEN, den Unterpunkt
  9. DRUCKVORGABEN  bearbeiten. Es erscheint eine Dateiauswahlbox.
  10. Wählen Sie den entsprechenden Report. Es wird der Reporteditor geladen.
  11.  
  12. Für die Bearbeitung von Reports müssen Sie folgende Regeln kennen :
  13. Ein Report besteht aus folgenden Teilen :
  14.  
  15.  
  16. 1. Dem Definitionsteil
  17.  
  18. Er beginnt mit .DEF und endet mit  .TOP. Dabei ist zu beachten, daß diese
  19. Markierer direkt am Anfang einer Zeile stehen, und keine weiteren Angaben
  20. in der Zeile vorhanden sein dürfen.
  21. Im Definitionsteil können folgende Variablen genutzt werden :
  22.  
  23.  
  24. Beispiel : ART_LI.RPT        Artikelliste
  25.  
  26. .def
  27. Drucker         = 'Epson.drv'                   (0)
  28. ausgabe         = 'screen'                      (1)
  29. rand            = 5                             (2)
  30. vorschub        = 2                             (3)
  31. seitenlen       = 66                            (4)
  32. seitenvorschub  = 'nein'                        (5)
  33. masterdb        = ''                            (6)
  34. slavedb         = 'daten\artikel'               (7)
  35. index           = 'tag1'                        (8)
  36. index_feld      = 1                             (9)
  37. startkey        = '100       '                  (10)
  38. endkey          = '9999999999'                  (11)
  39. body_leerzeilen = 'nein'                        (12)
  40. body_trennzeile = 'ja'                          (13)
  41. aufsteigend     = 'ja'                          (14)
  42. #1=27,15                                        (15)
  43. #2=27,18                                        (16)
  44. !b14            = "rset","dez2"                 (17)
  45. !b15            = "rset","dez2"                 (18)
  46. !b16            = "rset","dez2"                 (19)
  47. !b20            = "rset"                        (20)
  48.  
  49.  
  50. !_total1        = "rset","dez2"                 (21)
  51. !_total2        = "rset","dez2"                 (22)
  52.  
  53.  
  54. $_total1        = _slave14-_slave15-_slave16    (23)
  55. $_total2        = _total2+(_slave14*_slave17)   (24)
  56. $_var1          = 'Listenausgabe'               (25)
  57.  
  58.  
  59. .top
  60.  
  61. Der Bereich von 1 bis 14 und 25 werden programmgesteuert verändert.
  62. Dies geschieht über eine Datei mit den Namen : REPORT.DTE und DATEI.DTE.
  63. In der Datei REPORT.DTE können die Werte von 1 bis 13 übergeben werden.
  64. Dabei ist zu beachten, daß den Variablen ein Unterstrich vorangestellt wird.
  65.  
  66.  
  67. Dateiauschnitt  REPORT.DTE :
  68. _ausgabe = 'datei.tmp'
  69. _startkey= '300'
  70. _var1='LISTE'
  71. importend
  72.  
  73.  
  74. In der Datei DATEI.DTE wird nur der Dateiname der Reportdatei übergeben.
  75. Dateiauschnitt DATEI.DTE :
  76. _datei='art_li.rpt'
  77. importend
  78.  
  79.  
  80. Für den normalen Anwender sind die Informationen über die Dateien REPORT.DTE
  81. und DATEI.DTE unrelevant. Diese Dateien werden von AURUM automatisch erstellt.
  82.  
  83. Zu 0.
  84. Hier geben Sie eine externe Datei an, die die Druckersteuerzeichen verwaltet.
  85. Der Aufbau der Datei entspricht den Positionen 15 und 16.
  86. ( Beispiel : #breit_an = 27,18 )
  87.  
  88. Zu 1.
  89. Hier geben Sie an, wohin die Ausgabe erfolgen soll. 'screen' steht für eine
  90. Ausgabe am Bildschirm. Sie können hier auch einen Dateinamen oder Druckerport
  91. angeben.
  92.  
  93. Zu 2.
  94. Hier wird der linke Rand definiert.
  95.  
  96. Zu 3.
  97. Hier wird der Kopfvorschub definiert.
  98.  
  99. Zu 4.
  100. Definition der Seitenlänge
  101.  
  102. Zu 5.
  103. Hier geben Sie an, ob ein Seitenvorschub am Ende der Ausgabe gemacht werden
  104. soll.
  105.  
  106. Zu 6.
  107. Hier wird die Masterdatenbank angegeben. Beispiel : Beim Druck eines Auftrags
  108. ist die Masterdatenbank AUFTRAG.DBF und die Slavedatenbank POS.DBF.
  109. In der Masterdatenbank werden die Kopfdaten eines Auftrags gespeichert und
  110. in der Slavedatenbank die entsprechenden Positionen. Handelt es sich um eine
  111. Liste, mit den Zugriff auf nur eine Datenbank, wird keine Masterdatenbank
  112. angegeben.
  113.  
  114. Zu 7.
  115. Hier geben Sie die Slavedatenbank an.
  116.  
  117. Zu 8.
  118. Hier geben Sie den Indexnamen der Master- und Slave-Datenbank an.
  119. Typ und Name  muß in beiden Datenbanken identisch sein.
  120.  
  121. Zu 9.
  122. Hier geben Sie die Index-Feldposition in der Slavedatenbank ank an.
  123. D.h. Index 'tag1' bezieht sich auf die Belegnummer. Die Belegnummer ist das
  124. erste Feld in der Slave-Datenbank.
  125.  
  126. Zu 10.
  127. Hier bestimmen Sie den ersten Wert nach dem in der Master und Slave-Datenbank
  128. gesucht wird. Wichtig ! Die Formatierung muß identisch zum Feldinhalt in der
  129. Datenbank.
  130.  
  131. Zu 11.
  132. Hier bestimmen Sie den Wert des letzten Datensatzes der bearbeitet wird.
  133. Dieser wird nur bei Listen angegeben. Die Formatierung muß identisch zum
  134. Feldinhalt in der Datenbank sein.
  135.  
  136. Zu 12.
  137. Hier geben Sie an ob Leerzeilen im Body-Teil  ausgedruckt werden.
  138. Beispiel : Es sollen mehrere Bemerkungsfelder für einen Artikel gedruckt
  139. werden. Die Hälfte der Felder enthalten keine Eingabe.
  140. Sie können nun bestimmen, ob diese Felder gedruckt werden.
  141.  
  142. Zu 13.
  143. Hier bestimmen Sie , ob nach jeder Wiederholung des BODY-Teils eine Leerzeile
  144. eingefügt wird.
  145.  
  146. Zu 14.
  147. Hier geben Sie an, ob der angegebene Index unter Punkt  8 aufsteigend oder
  148. absteigend sortiert ist. Der Wert : AUFSTEIGEND = ' JA' gilt als
  149. Grundeinstellung
  150.  
  151. Zu 15
  152. Es wird eine Variable #1 definiert, die beim Druck die zugewiesenen
  153. Druckersteuercodes an das Ausgabegerät weiterleitet.
  154. #1 und #2 wurden willkürlich gewählt. Sie können auch andere Variablennamen
  155. benutzen, wie #fett_an oder #fett_aus.
  156.  
  157. Zu 16
  158. siehe Punkt 15.
  159.  
  160. Zu 17-22
  161. Hier definieren Sie die Formatierung der Felder. Eine Formatierungsanweisung
  162. beginnt mit einen Ausrufezeichen und der Feldnummer Die Angaben erfolgen mit
  163. Komma getrennt. Folgende Formatanweisungen sind möglich :
  164.  
  165. 'rset'  rechtsbündig
  166. 'lset'  linksbündig (default)
  167. 'ucase' Umwandeln in Großbuchstaben
  168. 'lcase' Umwandeln in Kleinbuchstaben
  169. 'dez1'  Auf eine Stelle nach den Komma formatieren
  170. 'dez2'  Auf zwei Stellen nach den Komma formatieren
  171. 'dez3'  Auf drei Stellen nach den Komma formatieren
  172.  
  173. Zu 23-24
  174. Im Reportgenerator gibt es die Möglichkeit Berechnungen durchzuführen.
  175. $_total1        = _slave14-_slave15-_slave16
  176. $_total2        = _total2+(_slave14*_slave17)
  177.  
  178. Um Berechnungen durchzuführen braucht man Kenntnis über die Struktur der
  179. Datenbank. Die Felder der Slavedatenbank werden mit als _slave1,_slave2,
  180. _slave3,... angesprochen, die Felder der Masterdatenbank mit _master1,
  181. _master2,... Eine Berechnungszeile beginnt mit dem Dollarsymbol.
  182. Es gibt 30 Variablen um Berechnungen durchzuführen. Die Namen der Variablen
  183. sind von _total1 bist _total30 fest vordefiniert.
  184.  
  185. Zu 25.
  186. Es gibt die Möglichkeit, Stringvariablen in Reports zu verwenden.
  187. Dafür  Variablen vom Namen _VAR1 bis _VAR30 vordefiniert.
  188.  
  189. 2. Basiswissen
  190. Ausgabe von Datenbankfeldern in einem Report steuert man über die
  191. Buchstaben 'a' und 'b'. Mit 'a' werden die Masterdatenbankfelder und
  192. mit 'b' die Slavedatenbankfelder gekennzeichnet. 'a1' bedeutet also,
  193. benutze das erste Feld aus der Masterdatenbank. Datenbankfelder und
  194. Berechnungsfelder müssen mit zwei Sternsymbolen '*' abgegrenzt werden.
  195. (Beispiel : *a1* oder *b3*). Möchten Sie ein Feld auf eine bestimmte
  196. Ausgabelänge formatieren, geben Sie Minuszeichen mit an.
  197. (Beispiel : *a1---* Formatierung erfolgt auf 7 Zeichen.) Bei der Ausgabe
  198. von Berechnungsvariablen gibt es drei Möglichkeiten.
  199. Erstens, eine Berechnug laut Definitionsteil erfolgt und das Ergebnis wird
  200. sofort ausgegeben. In diesem Fall wird ein Pluszeichen '+' dem Variablennamen
  201. vorangestellt.
  202.  
  203. Zweitens, eine Berechnung erfolgt und das Ergbnis soll nicht angezeigt werden,
  204. dann wird dem  Variablennamen ein kaufmännisches UND '&' vorangestellt.
  205. Die dritte Möglichkeit ist, der Inhalt der Variable wird angezeigt ohne das
  206. gerechnet wird. In diesem Fall erfolgt die Angabe wie bei den
  207. Datenbankfeldern : *_total1*
  208. Für die Seitennummerierung und dem aktuellen Tagesdatum gibt es die
  209. Variablen *seite* und die Variable *datum*.
  210. Für die Ausgabe von Druckersteuerzeichen, wird dem Variablennamen das Zeichen
  211. # vorangestellt. Die Definiton erfolgt im Definitionsteil.
  212. (Beispiel : *#fett_an* oder *#1*) Als Programmierer hat man das Bedürfnis
  213. weitere Texte , die außerhalb des Reports generiert wurden, in einen Report
  214. zu integrieren. Dafür stehen die Variablen _var1 bis _var30 zur Verfügung.
  215. Es handelt sich um Stringvariablen, die vom Programmierer genutzt werden
  216. können um über die Datei REPORT.DTE externe Strings einzufügen.
  217.  
  218.  
  219. 3. Der Kopfteil
  220.  
  221. Er beginnt mit .TOP und endet mit  .BODY. Dabei ist zu beachten, daß diese
  222. Markierer direkt am Anfang einer Zeile stehen, und keine weiteren Angaben in
  223. der Zeile vorhanden sein dürfen. Der Kopfteil wird je Seite nur einmal
  224. ausgegeben.
  225.  
  226.  
  227. 3. Der Body-Teil
  228.  
  229. Er beginnt mit .BODY und endet mit  .BOTTOM. Dabei ist zu beachten, daß diese
  230. Markierer direkt am Anfang einer Zeile stehen, und keine weiteren Angaben in
  231. der Zeile vorhanden sein dürfen. Der Bodyteil wird so oft ausgeführt bis
  232. folgende Bedingung eintritt. Der aktuelle Datensatz ist ungleich dem
  233. STARTKEY oder/und größer dem ENDKEY.
  234.  
  235.  
  236. 4. Der Bottom-Teil
  237.  
  238. Er beginnt mit .BOTTOM und endet mit  .END. Dabei ist zu beachten, daß diese
  239. Markierer direkt am Anfang einer Zeile stehen, und keine weiteren Angaben
  240. in der Zeile vorhanden sein dürfen. Der Bottom-Teil wird je Seite nur
  241. einmal ausgegeben.
  242.  
  243.  
  244. 5. Der End-Teil
  245.  
  246. Er beginnt mit  .END. Dabei ist zu beachten, daß dieser Markierer direkt
  247. am Anfang einer Zeile stehen muß, und keine weiteren Angaben in der Zeile
  248. vorhanden sein dürfen. Der End-Teil wird am Schluß  der Ausgabe nur einmal
  249. gedruckt.
  250.  
  251.  
  252. 6. Beispiel :
  253.  
  254. .top
  255. *#1*Repcom Datentechnik *#2*
  256. Hauptstr. 139, 63110 Rodgau
  257.  
  258. *_var1*
  259. ------------                                 Seite : *seite*
  260.                          Datum : *datum*
  261.  
  262. ArtNr.    VK1      Bestand Reserv.  Min.      Differenz
  263. -----------------------------------------------------------
  264. .body
  265. *b1----*  *b20---* *b14-* *b16-*    *b15--*  *+_total1-*
  266.     *b3--------------------------------*
  267.     *b4--------------------------------*
  268.     *b5--------------------------------*
  269.     *b6--------------------------------*
  270.     *b7--------------------------------*
  271.     *b8--------------------------------*
  272. *&_total2*
  273.  
  274. .bottom
  275.  
  276. Lagerwert : DM *_total2------*
  277.  
  278. .end
  279.  
  280. Ende der Liste
  281. -----------------------------------------------------------------------------
  282.                         D A T E I E N D E
  283. -----------------------------------------------------------------------------
  284.