home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / cobol / library / cobolwi / hilfe.txt next >
Encoding:
Text File  |  1993-07-28  |  43.4 KB  |  1,232 lines

  1. ****************************************************************
  2. *                                                              *
  3. *                C O B O L  -   W I N D O W                    *
  4. *                                                              *
  5. *                   Maskengenerator für                        *                                                              
  6. *                                                              *
  7. *        MS Cobol, VS Cobol, Professional Cobol, Cobol/2       *
  8. *                                                              *
  9. ****************************************************************
  10.  
  11.  
  12.  
  13.  
  14.  
  15.                         Version    4.0
  16.  
  17.  
  18.                   (c) 1989-1992, Ebnet Software
  19.  
  20.  
  21.       D - 8000 München 70 , Passauerstrasse 2 b, Tel. 089/7698755
  22.  
  23.  
  24.  
  25. 1 Sharewarekonzept
  26. -------------------
  27.  
  28. Das Programm COBOL-WINDOW ist urheberrechtlich geschützt. Zu 
  29. Prüfzwecken darf die vorliegende Programmversion jedoch frei 
  30. verwendet, kopiert und weitergegeben werden.
  31.  
  32. Bitte machen Sie Gebrauch davon und geben Sie das Programm an 
  33. Freunde, Bekannte etc. weiter.
  34.  
  35. Falls Sie nach Prüfung von COBOL-WINDOW weiterhin damit arbeiten 
  36. möchten, bitte ich Sie sich als registrierter Anwender eintragen
  37. zu lassen. Für eine Registrierungsgebühr von DM 85.-- erhalten 
  38. Sie die folgenden Leistungen  
  39.  
  40.   - Nutzungsrecht für COBOL-WINDOW
  41.   - Zusendung der Vollversion von COBOL-WINDOW 
  42.   - Anwenderunterstützung 
  43.   - Updateservice für künftige Programmversionen zum Vorzugs-
  44.     preis von nur DM 45,-- 
  45.   - ein umfangreiches Benutzerhandbuch
  46.   - eine steuerlich abzugsfähige Rechnung
  47.  
  48. Nur durch Ihr faires Verhalten wird es möglich sein COBOL-WINDOW
  49. nach Ihren Wünschen weiterzuentwickeln.
  50.  
  51. Es wird Ihnen die Möglichkeit gegeben, das Programm zu testen
  52. und auf seine Verwendungsmöglichkeit hin zu prüfen, bevor Sie 
  53. sich bei Gefallen als registrierter Anwender eintragen lassen. 
  54.  
  55. Das Registrierungsformular ist in der Datei REGIST.FOR enthalten
  56. und kann per DOS-Befehl PRINT ausgedruckt werden.
  57.  
  58. Die Prüfversion ist eine vollständige Programmversion und keine 
  59. Demoversion. COBOL-WINDOW steht im vollen Funktionsumfang 
  60. zur Verfügung.
  61.  
  62. In der Ihnen vorliegenden Sharewareversion wird bei Ausgabe eines
  63. jeden Formates ein Copyrighthinweis ausgegeben.
  64.  
  65.  
  66. 2 Formatgenerator UniForm
  67. -------------------------
  68.  
  69. Für die interaktive Generierung der Bildschirmformate für den Einsatz
  70. mit COBOL-WINDOW wird der universelle Formatgenerator UniForm V4.0
  71. mit ausgeliefert.
  72.  
  73. UniForm ist ein universelles Formatgenerierungssystem für den Einsatz in 
  74. allen gängigen Compilern. Das Gesamtpaket mit Treiberprogrammen für alle
  75. genannten Compiler erhalten Sie zum Preis von DM 169.--.
  76.  
  77. Die unten genannten Produkte sind Teilkomponenten von UniForm. 
  78. Jedes der Teilprodukte erhalten Sie zum Preis von DM 85.--.
  79.  
  80.   C-WINDOW           MS C, MS Quick C, Turbo C, Turbo C++
  81.  
  82.   BASIC-WINDOW       MS Basic, MS Quick Basic, Turbo Basic, Power Basic
  83.  
  84.   PASCAL-WINDOW      MS PASCAL, MS Quick PASCAL, Turbo PASCAL
  85.  
  86.   COBOL-WINDOW       MS Cobol, MF VS Cobol, MF Professional Cobol,
  87.                      MF Cobol/2
  88.  
  89.   ASSEMBLER-WINDOW   MS Assembler, MS Quick Assembler, Turbo Assembler
  90.  
  91.   FORTRAN-WINDOW     MS Fortran
  92.  
  93.   CLIPPER-WINDOW     Clipper V5.01
  94.  
  95. Im folgenden werden nur die Komponenten von COBOL-WINDOW beschreiben.
  96.  
  97.  
  98.  
  99. Inhaltsverzeichnis
  100.  
  101. 1       Warum UniForm
  102. 2       Und so wirds gemacht
  103. 3       Ein einfaches Beispiel
  104. 4       Inbetriebnahme
  105. 4.1     Systemanforderungen
  106. 4.2     Disketteninhalt
  107. 4.3     Installation
  108. 5       Formatgenerierung (nur in Vollversion)
  109. 6       Formataufruf
  110. 6.1     Ablaufschema
  111. 6.1.1   Programmsource
  112. 6.1.1.1 Bereitstellen Standard-Include-Datei
  113. 6.1.1.2 Bereitstellen Include-Datei für variable Felder
  114. 6.1.1.3 Maussteuerung
  115. 6.1.1.4 Bereitstellen Include-Datei für Formatlayout
  116. 6.1.1.5 Versorgen Übergabeparameter
  117. 6.1.1.6 Aufruf Treiberprogramm UNIF
  118. 6.1.1.7 Auswerten Returnfeld
  119. 6.1.2   Compilieren/ Linken
  120. 6.1.3   Programmausführung
  121. 6.1.4   Schattenfunktion
  122. 6.1.5   Dynamische Attributmodifikation
  123. 6.2     Ablauf Compilerspezifisch
  124. 6.2.1   Ablauf in MS Cobol/ Cobol2
  125. 6.2.2   Ablauf in Professional Cobol/ VS Cobol
  126. 7       Ablauf im Beispiel
  127. 8       Beispiel für "dynamische Attributmodifikation"
  128. 9       Beispiel für "Menüauswahl"
  129. A1      Cursorsteuerung
  130.  
  131.  
  132. 1 Warum UniForm
  133.  
  134. Komfortabele Benutzeroberflächen sind heutzutage schlichtweg zum
  135. MUSS geworden.  Doch die  Programmierung von Masken, Menüs, Fen-
  136. stern und dergleichen ist relativ kompliziert und zeitaufwendig.
  137. Zudem  sollten   solche  zeitkritischen  Routinen  in schnellem 
  138. Assemblercoding  realisiert   werden.  Kurzum   - viele  Gründe 
  139. sprechen dafür geignete Hilfsmittel zu verwenden.
  140.  
  141. Die  Softwareindustrie   bietet  für   jeden  Compiler  dutzende
  142. sogenannter Toolboxen  an. Der  Programmierer  hat  es  bei  der
  143. Auswahl schwer.  Das letztendlich  gewählte Produkt  stellt sich
  144. nicht selten  als schwierig in der Handhabung heraus oder bietet
  145. nicht den Funktionsumfang, der für eine schnelle und komfortable
  146. Formatintegration in  sein Programm  unabdingbar ist.  In  jedem
  147. Fall aber ist die Anwendung auf eine Programmiersprache, oft gar
  148. auf einen bestimmten Compiler begrenzt.
  149.  
  150. UniForm als  universelles  Formatierungssystem  macht  endgültig
  151. Schluß mit  diesem Dilemna.  Das System  ist sehr leistungsfähig
  152. aber dennoch praktisch ohne Einarbeitung bedienbar.
  153.  
  154. UniForm generiert  für jedes  generierte Format  automatisch ein
  155. einfaches Sourcebeispiel  für den  Einsatz in der augenblicklich
  156. gewählten Programmiersprache. Selbst Programmierneulinge erreichen 
  157. somit  innerhalb weniger  Minuten erste beeindruckende Ergebnisse!
  158.  
  159. Durch   seine    universelle   Programmschnittstelle   ist   der
  160. Formateinsatz in  allen gängigen Compilern  realisiert. Das sind
  161. im einzelnen...
  162.  
  163.    - Microsoft C              - Microsoft COBOL
  164.    - Microsoft Quick C        - Microsoft Quick COBOL
  165.    - Turbo C                  - Turbo COBOL
  166.    - Turbo C++                - Microsoft Assembler
  167.    - Microsoft Basic          - Microsoft Quick Assembler
  168.    - Microsoft Quick Basic    - Turbo Assembler
  169.    - Turbo Basic              - Microsoft Cobol
  170.    - Power Basic              - VS Cobol
  171.    - Microsoft Fortran        - Cobol/2
  172.    - Clipper                  - Professional Cobol
  173.  
  174. Bei einem  eventuellen Umstieg  auf einen  anderen Compiler oder
  175. gar auf  eine andere  Programmiersprache sind vorhandene Formate
  176. sofort wieder verfügbar.
  177.  
  178. UniForm   bietet    eine    vollständige    Lösung    von    der
  179. Formatgenerierung  bis   zum  Formateinsatz  und  zeichnet  sich
  180. darüberhinaus durch  ein breites  Funktionsspektrum  aus,  deren
  181. wesentliche Aspekte   an dieser Stelle in einer kurzen Übersicht
  182. einen ersten  Eindruck über  die  Leistungsfähigkeit  vermitteln
  183. soll.
  184.  
  185.   Formatgenerierung
  186.  
  187.    - Interaktive maskengesteuerte Formatgenerierung
  188.    - Mausunterstützung bei der Formaterstellung
  189.    - Umfangreiche Editierfunktionen
  190.    - Alphanumerische-, Ganzzahl- und Dezimalfelder
  191.    - Ein-und Ausgabefelder (nur dem Programm zugänglich)
  192.    - Menüfelder(als"Menu-Items" in Funktions-Auswahlmenüs)
  193.    - Frei wählbare Feld-, Text-, Schatten- und Rahmenattribute
  194.    - Umfangreiche Formatverwaltungsfunktionen
  195.    - Integriertes Hilfesystem
  196.  
  197.   Formataufruf im Programm
  198.  
  199.    - Formataufruf mit nur einem Funktionsaufruf
  200.    - Formateinsatz in allen gängigen Programmiersprachen
  201.    - Automatische Generierung eines Sourcebeispieles
  202.    - Fenstertechnik, Menüs, Popups, Pulldowns ...
  203.    - Dynamische Attribute für Felder, Text, Rahmen und Schatten
  204.    - Mausunterstützung im Programm
  205.    - Funktionsauswahl über Maus, Funktionstasten und Buchstaben
  206.    - Unterstützung aller gängigen Grafikkarten
  207.  
  208.  
  209. 2 Und So wirds gemacht
  210.  
  211. Das Konzept  von UniForm ist in zwei Verarbeitungsschrittenreali-
  212. siert. Im ersten Schritt erstellen Sie Ihre Formate interaktiv
  213. mit dem  UniForm-Formatgenerator. Im  zweiten Verarbeitungsschritt
  214. bringen Sie  die automatisch  generierten INCLUDE-Dateien  für
  215. das Formatlayout und  die variablen Felder in Ihren Sourcecode ein
  216. und binden  das   Programm  zusammen   mit  dem   entsprechenden
  217. (vom eingesetzten Compiler abhängig) UniForm-Treibermodul.
  218.  
  219.  
  220. 2.1  Formate generieren
  221.  
  222. Optionen einstellen
  223.   - Compiler, mit dem Sie arbeiten möchten
  224.   - Verzeichnis, in dem UniForm alle Dateien ablegen soll
  225.   - Feldkennzeichen für die Definition variabler Felder
  226.   - Standardattribute für variable Felder, Text und  Rahmen
  227.   - Formatkennzeichen einstellen
  228.   - Formatname
  229.   - Formatdimension
  230.  
  231. Formatlayout editieren
  232.   - fester Text im Format
  233.   - wahlweise einen einfachen oder dicken Rahmen
  234.   - wahlweise variable Eingabefelder oder Ausgabefelder
  235.  
  236. Format- und Feldattribute und Feldnamen modifizieren
  237.   - wahlweise verändern der Standardfeldnamen für variable Felder
  238.   - wahlweise verändern der Feldfarben
  239.   - wahlweise verändern der Text- und/oder Rahmenfarbe
  240.  
  241.  
  242. 2.2  Programme mit Formaten erstellen
  243.  
  244. Anpassen Programmsource
  245.   - mit Standard-Include Datei für Ihren Compiler
  246.   - mit Include-Datei für variable Felder (von UniFormgeneriert)
  247.   - mit Include-Datei für das Formatlayout (von UniFormgeneriert)
  248.   - mit UniForm-Funktionsaufruf mit entsprechender
  249.     Parameterübergabe
  250.  
  251. Programmegenerierung
  252.   - übersetzen Sourcecode wie gehabt
  253.   - Linken mit dem entsprechenden UniForm-Treibermodul
  254.  
  255.  
  256. 3 Ein einfaches Beispiel
  257.  
  258. Frau Mary  Mustermann bekommt  den Auftrag eintreffende Waren in
  259. einer kleinen  Datenbank zu verwalten. Frau Mustermann verwendet
  260. UniForm für die Generierung und Einbindung einer Eingabemaske in
  261. Ihr Projekt,  das Sie  mit dem Cobol Compiler von Microsoft
  262. realisieren will.
  263.  
  264. Formatgenerierung
  265.  
  266. Als erstes definiert Sie im Menü <Optionen> die gewünschte
  267. Voreinstellung...
  268.   - Compiler                              MS Cobol
  269.   - Verzeichnis                           C:\muster
  270.   - Feldkennzeichen
  271.         für Eingabefeld alphanumerisch    !
  272.         für Eingabefeld numerisch         "
  273.   - Standardattribute
  274.         für Eingabefeld alphanumerisch    Hellweiss auf Schwarz
  275.         für Eingabefeld numerisch         Hellweiss auf Schwarz
  276.         für Text                          Schwarz auf Weiss
  277.         für Rahmen                        Schwarz auf Weiss
  278.  
  279. Als nächstes wählt Sie im Menü <Bearbeiten> die Funktion <Format
  280. neu> und  definiert in  den Folgemasken  den  Formatnamen mit
  281. "order" und die Formatgröße mit Zeile 3 - 18 und Spalte 5 - 70.
  282. Frau Mustermann  sieht sich einem leeren Format in den gewählten
  283. Attributeinstellungen  für   Text  und   Rahmen  gegenüber.  Sie
  284. editiert das  Formatlayout  durch  Tastatureingabe,  den  Cursor
  285. positioniert Sie  über die  Maus oder die entsprechenden Cursor-
  286. Richtungstasten.  Funktionen   wie  Linien   ziehen,   Rechtecke
  287. zeichnen, Zeilen  bzw. Spalten löschen oder den Rahmen wahlweise
  288. ein-  oder   auszuschalten  beschleunigen  die  Formaterstellung
  289. erheblich. Die  variablen Felder definiert Sie durch Eingabe der
  290. festgelegten Feldkennzeichen  in der  gewünschten Feldlänge oder
  291. alternativ durch  Die Funktion  <Felddefinition> (F5).  Die Edi-
  292. tierfunktionen blendet Sie im Bedarfsfall mit F9 ein um sich mit
  293. den wichtigsten Editierfunktionen vertraut zu machen.
  294.  
  295. Frau Mustermann  sichert Ihr  Format duch  Eingabe von  <F1>. Im
  296. Verarbeitungsschritt  <Feldnamen/   Attribute>  modifiziert  Sie
  297. schließlich die  von UniForm  automatisch  vergebenen  Standard-
  298. Feldnamen (fld0  bis  fld5)  in  "product",  "orderdate",  "nr",
  299. "quantity" und  "price. Von  der Möglichkeit die Farben für Ihre
  300. Felder oder für Text und Rahmen zu modifizieren macht Sie keinen
  301. Gebrauch. Sie sichert das Format mit <F1>.
  302.  
  303. Der Formatgenerator zeigt im Format <Generierung> die erstellten
  304. Dateien an,  die im  eingestellten Verzeichnis abgelegtwerden.und
  305. im Menü <Ansicht> angezeigt werden können...
  306.  
  307.   - order.bld       enthält Formatdatei für Formatgenerator
  308.   - order.cbl       enthält die variablen Felder
  309.   - orde1.cbl       enthält das Formatlayout
  310.   - order.smp       enthält ein Sourcebeispiel
  311.   - order.att       enthält Informationen über Attribute
  312.  
  313. Programmgenerierung
  314.  
  315. Frau Mustermann  ergänzt das  von UniForm automatisch generierte
  316. Sourcebeispiel  um   einige   wenige   Programmanweisungen   und
  317. Kommentare, und schon steht ihr erstes Programm mit UniForm kurz 
  318. vor der Vollendung.
  319.  
  320.        identification division.
  321.        program-id. order.
  322.        environment division.
  323.        data division.
  324.        working-storage section.
  325.            COPY UFCO03.
  326.            COPY order.
  327.        procedure division.
  328.        anf-section.
  329.        anf-001.
  330.            call "MOUSEON"
  331.            move 2 to FKZ.
  332.            move 0 to SM.
  333.            move "order   " to FMT.
  334.        anf-002.
  335.            COPY orde1.
  336.            CALL "UNIF" using FKZ FMT product RET SM Daten.
  337.            DB-VERARBEITUNG
  338.            move 3 to FKZ
  339.            if ret not equal 110 go to anf-002. 
  340.        anf-009.
  341.            call "MOUSEOFF"
  342.            stop run.
  343.  
  344. Anschließend compiliert und linkt er sein Programm mit 
  345. dem COBOL-WINDOW Schnittstellenmodul und stellt dabei die Include-
  346. Dateien UFCO03.CBL, ORDER.CBL und ORDE1.CBL bereit.
  347.  
  348. Frau Mustermann ruft das generierte Programm "ORDER.EXE" auf und
  349. schon sieht  sie sich  dem Format <order> gegenüber - bereit zur
  350. Eingabe von Daten.
  351.  
  352.  
  353. 4 Inbetriebnahme
  354.  
  355. 4.1 Systemanforderungen
  356.  
  357. Für den  Einsatz von  UniForm wird folgende Minimalkonfiguration
  358. vorausgesetzt
  359.  
  360.  - IBM Personal Computer oder 100 % kompatibel
  361.  - 1 Diskettenlaufwerk/ Festplatte empfohlen
  362.  - PC-DOS, MS-DOS Version 2.1 und höher oder DR-DOS
  363.  - VGA-, EGA-, MDA- oder Hercules-Grafikkarte
  364.  - wahlweise eine Microsoft-kompatible Maus
  365.  
  366.  
  367. 4.2 Disketteninhalt
  368.  
  369. Komponenten für Formatgenerator
  370.   UNIFORM.EXE Formatgenerierungsprogramm
  371.   UNIFORM.CFG Konfigurationsdatei
  372.   UNIFORM.HLP Hilfedatei
  373.  
  374. Komponenten für Professional Cobol/ VS Cobol
  375.   UFCO02.BIN  Treibermodul
  376.   MSON.BIN    Treibermodul für Mausinitialisierung
  377.   MSOFF.BIN   Treibermodul für Mauselimninierung
  378.   UFCO02.CBL  Standard Include Datei
  379.   UFCO022.CBL Sourcebeispiel "menu"
  380.   UFCO023.CBL Sourcebeispiel "order"
  381.   UFCO024.CBL Sourcebeispiel "easy"
  382.   UFCO025.CBL Sourcebeispiel "dynamic"
  383.  
  384. Komponenten für MS Cobol, Cobol/2
  385.   UFCO03.OBJ  Treibermodul
  386.   UFCO03.CBL  Standard Include Datei
  387.   UFCO032.CBL Sourcebeispiel "menu"
  388.   UFCO033.CBL Sourcebeispiel "order"
  389.   UFCO034.CBL Sourcebeispiel "easy"
  390.   UFCO035.CBL Sourcebeispiel "dynamic"
  391.  
  392. Formatdateien für Sourcebeispiele
  393.   MENU01.BLD  Formatdatei "menu01"
  394.   MENU02.BLD  Formatdatei "menu02"
  395.   MENU03.BLD  Formatdatei "menu03"
  396.   ORDER.BLD   Formatdatei "order"
  397.   MESSAGE.BLD Formatdatei "message"
  398.   TESTFMT.BLD Formatdatei "testfmt"
  399.  
  400. Dokumentation
  401.   HILFE.TXT   Dokumentation
  402.   REGIST.FOR  Registrierungsformualar
  403.  
  404.  
  405. 4.3 Installation
  406.  
  407. Der UniForm Formatgenerator ist auf einem beliebigen Verzeichnis
  408. auf Festplatte oder Diskettenlaufwerk ablauffähig. Wir empfehlen
  409. die Einrichtung  des  Verzeichnisses  <UNIFORM>  (MD \UNIFORM).
  410. Kopieren   Sie   die   Dateien   UNIFORM.EXE   und UNIFORM.CFG
  411. (Konfigurationsdatei) in das Verzeichnis Ihrer Wahl. Die Hilfedatei  
  412. UNIFORM.HLP wird  im Aufrufverzeichnis  oder  im Hauptverzeichnis 
  413. des aktuellen Laufwerkes erwartet.
  414.  
  415. Die Treibermodule  und die Standard-Include Dateien kopieren Sie
  416. in Ihre Compilerverzeichnisse.
  417.  
  418.  
  419. 5 Formatgenerierung
  420.  
  421. Die Formatgenerierung mit all seinen Formaten und den Funktionen
  422. zu den Formaten ist im Handbuch der Vollversion ausführlich be-
  423. schrieben.
  424.  
  425. An dieser Stelle nur ein Tip. Rechtecke (beim Erstellen des For-
  426. matlayouts) zeichnen Sie wie folgt:
  427.  
  428.   definieren 1. Koordinate mit ALT-Y
  429.   definieren 2. Koordinate mit ALT-Z
  430.  
  431. Das Rechteck wird mit dem aktuell eingestellten Linienzeichen
  432. dargestellt.
  433.  
  434.  
  435. 6 Formataufruf
  436.  
  437. Der Aufruf  eines  mit  dem  UniForm  Formatgenerator  erzeugten
  438. Formates wird  durch Aufruf  nur einer  einzigen Funktion (UNIF)
  439. realisiert.  Das  Treibermodul  ist  für  die  unterschiedlichen
  440. Compiler in unterschiedlicher Ausprägung vorhanden und übernimmt
  441. sämtliche bei  einer Formatverarbeitung anfallenden Aufgaben wie
  442. Ausgabeformatierung,     Bildschirmausgabe,     Cursorsteuerung,
  443. Maussteuerung,  Eingabeformatierung   und  liefert   Ihnen   den
  444. Returncode der  gedrückten Funktionstaste oder Tastenkombination
  445. am Ende  der Verarbeitung.  Die Treibermodule  sind im schnellem
  446. Assemblercode geschrieben  und zeichnen  sich  demzufolge  durch
  447. eine extrem kurze Laufzeit aus.
  448.  
  449. Alle Dateien  die für  den Ablauf  erforderlich sind, werden von
  450. UniForm bei  der  Formatgenerierung  automatisch  zur Verfügung
  451. gestellt. Sie  sind  als  INCLUDE-  bzw.  COPY-Elemente  in  der
  452. Programmsource bereitzustellen
  453.  
  454.  
  455. 6.1 Ablaufschema
  456.  
  457. Für den  Aufruf eines  mit UniForm  generierten Formates stellen
  458. Sie in  Ihrer  Programmsource  die  von  UniForm  zur  Verfügung
  459. gestellten     Include-Dateien     bereit,     versorgen     die
  460. Übergabeparameter und  rufen das  entsprechende  Treiberprogramm
  461. UNIF auf. Anschließend compilieren Sie wie gehabt und Linken Ihr
  462. Programm mit dem entsprechenden UniForm Treibermodul zusammen.
  463.  
  464.  
  465. 6.1.1 Programmsource
  466.  
  467.   -  Bereitstellen Standard-Include-Datei
  468.   -  Bereitstellen Include-Datei für variable Felder
  469.   -  Bereitstellen Include-Datei für Formatlayout
  470.   -  Aufruf Maussteuerung
  471.   -  Versorgen Übergabeparameter
  472.   -  Aufruf Treiberprogramm UNIF
  473.   -  Auswerten Returncode
  474.  
  475.  
  476. 6.1.1.1 Bereitstellen Standard-Include-Datei
  477.  
  478. Die Standard Include Datei ist je Compiler vorhanden und enthält
  479. Felddefinitionen für die Übergabeparameter des Treiberprogrammes
  480. sowie    -    im    Bedarfsfall    -    die    Definition    des
  481. Maschinenspracheunterprogrammes UNIF selbst.
  482.  
  483. Die    Standard-Include-Dateien    finden    Sie    auf    Ihren
  484. Produktdisketten. Detailinformationen  entnehmen Sie bitte
  485. Punkt 6.2.
  486.  
  487.  
  488. 6.1.1.2 Bereitstellen Include-Datei für variable Felder
  489.  
  490. Die Include-Datei  für variable Felder beinhaltet die Definition
  491. der variablen  Felder für  ein Format  im Dialekt  des gewählten
  492. Compilers.   Die    Include-Datei    wird    Ihnen    bei    der
  493. Formatgenerierung mit  dem UniForm  Formatgenerator  automatisch
  494. zur Verfügung  gestellt. Detailinformationen entnehmen Sie bitte
  495. Punkt 6.2.
  496.  
  497.  
  498. 6.1.1.3 Aufruf Maussteuerung
  499.  
  500. Wenn Sie  Ihre Formate  mit Mausunterstützung zum Ablauf bringen
  501. wollen, muß  am Programmanfang  die Maus  initialisiert  und  am
  502. Programmende  die   Maus  wieder   ausgeschaltet  werden.  Diese
  503. Funktionen werden jeweils durch einen einmaligen Funktionsaufruf
  504. realisiert.  Der   Aufruf  ist  compilerspezifisch  und  in  6.2
  505. beschrieben.
  506.  
  507.  
  508. 6.1.1.4 Bereitstellen Include-Datei für Formatlayout
  509.  
  510. Die Include-Datei für das Formatlayout beinhaltet die Definition
  511. des Formatlayouts für ein Format im Dialekt des gewählten Compi-
  512. lers. Die  Layoutdatei wird  Ihnen bei der Formatgenerierung mit
  513. dem UniForm  Formatgenerator automatisch zur Verfügung gestellt.
  514. Detailinformationen entnehmen Sie bitte Punkt 6.2.
  515.  
  516.  
  517. 6.1.1.5 Versorgen Übergabeparameter
  518.  
  519. Der  Aufruf  des  Treiberprogrammes  UNIF  setzt  die  sinnvolle
  520. Versorgung der  Übergabeparameter  voraus.  Die  Definition  der
  521. Übergabeparameter erfolgt in den o. g. Standard-Include-Dateien.
  522. In der  hier angegebenen  Reihenfolge sind im jeweiligen Dialekt
  523. des gewählten Compilers die folgenden Parameter zu übergeben.
  524.  
  525.   Funktionskennzeichen FKZ
  526.   Formatname           FMT
  527.   Feldname             1. variables Feld
  528.   Returnfeld           RET
  529.   Schreibmarke         SM
  530.   Formatlayout         Daten
  531.  
  532. Funktionskennzeichen FKZ
  533.  
  534. Über  das   Funktionskennzeichen  FKZ   wird  die  auszuführende
  535. Funktion an  das Treiberprogramm  UNIF übergeben.  Das Feld  FKZ
  536. wird in  der Standard-Include-Datei  als 2 Byte langes Binärfeld
  537. zur Verfügung  gestellt. In  Clipper wird  FKZ als 1 Byte langes
  538. Characterfeld bereitgestellt.
  539.  
  540. Folgende Funktionen stehen zur Verfügung.
  541.  
  542.       0  + Sichern aktuellen Bildschirminhalt
  543.          + Rückkehr zum aufrufenden Programm
  544.  
  545.       1  + Löschen Bildschirm
  546.          + Ausgeben Formatlayout
  547.          + Ausgeben variable Felder mit den aktuellen
  548.            Feldinhalten
  549.          + Warten auf Tastatureingabe(n)
  550.          + Rückkehr zum aufrufenden Programm nach ENTER/ ESC/
  551.            Funktionstaste
  552.  
  553.       2  + Ausgeben Formatlayout
  554.          + Ausgeben variable Felder mit den aktuellen
  555.            Feldinhalten
  556.          + Warten auf Tastatureingabe(n)
  557.          + Rückkehr zum aufrufenden Programm nach ENTER/ ESC/
  558.            Funktionstaste
  559.  
  560.       3  + Ausgeben variable Felder mit den aktuellen
  561.            Feldinhalten
  562.          + Warten auf Tastatureingabe(n)
  563.          + Rückkehr zum aufrufenden Programm nach ENTER/ ESC/
  564.            Funktionstaste
  565.  
  566.       4  + Ausgeben Formatlayout eines leeren Formates
  567.          + Warten auf Tastatureingabe(n)
  568.          + Rückkehr zum aufrufenden Programm nach ENTER/ ESC/
  569.            Funktionstaste
  570.  
  571.       5  + Ausgeben gesicherten Bildschirminhalt
  572.  
  573.       6  + Ausgeben Formatlayout
  574.          + Ausgeben variable Felder mit den aktuellen
  575.            Feldinhalten
  576.          + Rückkehr zum aufrufenden Programm
  577.  
  578.       7  + Ausgeben variable Felder mit den aktuellen
  579.            Feldinhalten
  580.          + Rückkehr zum aufrufenden Programm    
  581.  
  582.     20*) + Dynamisches Ändern Feldattribut
  583.          + Rückkehr zum aufrufenden Programm
  584.  
  585.     21*) + Dynamisches Ändern Textattribut
  586.          + Rückkehr zum aufrufenden Programm
  587.  
  588.     22*) + Dynamisches Ändern Rahmenattribut
  589.          + Rückkehr zum aufrufenden Programm
  590.  
  591. Bei  der   dynamischen   Änderung   von   Text-,   Rahmen-   und
  592. Feldattributen (Funktionen  20 bis 22) wird das neue Attribut im
  593. Parameter RET  übergeben. Das  zu modifizierende  variable  Feld
  594. wird im  Übergabeparameter SM als fortlaufende Nummer (beginnend
  595. mit 0) übergeben.
  596.  
  597.     Beispiel (Attributeinstellung "Rot auf Weiss" für 5.
  598.     variables Feld)
  599.  
  600.       FKZ = 20     FKZ für dynamisches Ändern Feldattribut
  601.       SM = 4       5. variables Feld
  602.       RET = 244    Code für Attributeinstellung "Rot auf Weiss"
  603.  
  604.     Beispiel (Attributeinstellung "Schwarz auf Grün" für
  605.     Textbereich)
  606.  
  607.       FKZ = 21     FKZ für dynamisches Ändern Textattribut
  608.       RET = 32     Code für Attributeinstellung "Schwarz auf Grün"
  609.  
  610.     Beispiel (Attributeinstellung "Blau auf Rot" für
  611.     Rahmenbereich)
  612.  
  613.       FKZ = 22     FKZ für dynamisches Ändern Rahmenattribut
  614.       RET = 65     Code für Attributeinstellung "Blau auf Rot"
  615.  
  616. *) Eine weitere Möglichkeit der dynamischen Attributmodifikation
  617. ist im Kapitel 6.1.5 beschrieben.
  618.  
  619. Formatname FMT
  620.  
  621. Im  Übergabeparameter   FMT   wird   der   Formatname   an   das
  622. Treiberprogramm  UNIF  übergeben.  Das  Feld  FMT  wird  in  der
  623. Standard-Include-Datei  als  8  Byte  langes  Characterfeld  zur
  624. Verfügung gestellt.  Der Formatname  ist ggf.  rechtsbündig  mit
  625. Leerzeichen aufzufüllen.  Unterscheidungen  zwischen  Groß-  und
  626. Kleinbuchstaben werden nicht gemacht.
  627.  
  628. Feldname des ersten variablen Feldes
  629.  
  630. In diesem  Übergabeparameter ist  das erste  variable Feld  bzw.
  631. dessen Adresse an das Treiberprogramm UNIF zu übergeben. Bei den
  632. Funktion 0, 4 und 5 ist der Übergabeparameter irrelevant und mit
  633. FMT  zu   versorgen.  Etwaige  compilerspezifische  Abweichungen
  634. entnehmen Sie bitte aus Punkt 6.2 ff.
  635.  
  636. Returnfeld RET
  637.  
  638. Im  Übergabeparameter  RET  wird  der  Tastenreturncode  an  das
  639. aufrufende Programm von UNIF zurückgegeben. Das Feld RET wird in
  640. der Standard-Include-Datei  als  2  Byte  langes  Binärfeld  zur
  641. Verfügung gestellt.  In Clipper  wird FKZ als 1 Byte langes Cha-
  642. racterfeld bereitgestellt.
  643. Der Parameter RET dient auch zur Übergabe des
  644. Schattenattributes(siehe 6.1.4).
  645.  
  646. Der Parameter  wird weiterhin bei den Funktionen der dynamischen
  647. Attributmodifikation  für  Text,  Rahmen  oder  variable  Felder
  648. (Funktionen  20  bis  22)  als  Übergabeparameter  für  den
  649. neueinzustellenden Attributcode verwendet.
  650.  
  651. Schreibmarke SM
  652.  
  653. Im Übergabeparameter  SM wird  die Schreibmarkenposition  an das
  654. Treiberprogramm UNIF  als fortlaufende  Nummer (beginnend mit 0)
  655. übergeben. Nur zugängliche Felder (Eingabefleder und Menüfelder)
  656. sind  dabei   zu   berücksichtigen.   Die   Positionierung   der
  657. Schreibmarke auf Ausgabefelder ist nicht möglich.
  658.  
  659. Weiterhin wird  nach Rückkehr  vom Treiberprogramm  die aktuelle
  660. Schreibmarkenposition zurückgegeben.
  661.  
  662. Das Feld SM wird in der Standard-Include-Datei als 2 Byte langes
  663. Binärfeld zur  Verfügung gestellt. In Clipper wird SM als 1 Byte
  664. langes Characterfeld bereitgestellt.
  665.  
  666.     Beispiel (Schreibmarke auf 1. zugängliches Feld)
  667.  
  668.       SM = 0
  669.  
  670.     Beispiel (Schreibmarke auf 5. zugängliches Feld)
  671.  
  672.       SM = 4
  673.  
  674. Der  Parameter   wird  darüberhinaus   bei  der   Funktion   der
  675. dynamischen Attributmodifikation  für variable  Felder (Funktion
  676. 22) als Übergabeparameter (fortlaufende Nummer, beginnend mit 0)
  677. für  das  zu  bearbeitende  Feld  verwendet.  Im  Gegensatz  zur
  678. Schreibmarkenpositionierung   sind    hier   Ausgabefelder    zu
  679. berücksichtigen.
  680.  
  681. Formatlayout Daten
  682.  
  683. Im  Übergabeparameter   Daten  wird   das  Formatlayout  an  das
  684. Unterprogramm UNIF  übergeben. UniForm stellt für die Versorgung
  685. des Bereiches  ein entsprechendes INCLUDE- bzw. COPY-Element zur
  686. Verfügung. Das Feld Daten wird in der Standard-Include-Datei als 
  687. 3 Kilobyte langes Characterfeld zur Verfügung gestellt.
  688.  
  689.  
  690. 6.1.1.6 Aufruf Treiberprogramm UNIF
  691.  
  692. Der Unterprogrammaufruf   ist nach erfolgter Parameterversorgung
  693. in Notation des gewählten Compilers vorzunehmen.
  694.  
  695. Detailinformationen entnehmen Sie bitte Punkt 6.2.
  696.  
  697.  
  698. 6.1.1.7 Auswerten Returnfeld
  699.  
  700. Im  Übergabeparameter  RET  wird  nach  jedem  Formataufruf der
  701. Tastenreturncode hinterlegt.  D. h. nach Betätigung einer der u.
  702. g. Tasten(kombinationen)  erhalten Sie  die Steuerung  in Ihrem
  703. Programm zurück.
  704.  
  705. - Tastenretuncodes
  706.  
  707.   ESC      99         |           ENTER  100
  708.                       |
  709.   F1       101        |           SH - F1     111
  710.   F2       102        |           SH - F2     112
  711.   F3       103        |           SH - F3     113
  712.   F4       104        |           SH - F4     114
  713.   F5       105        |           SH - F5     115
  714.   F6       106        |           SH - F6     116
  715.   F7       107        |           SH - F7     117
  716.   F8       108        |           SH - F8     118
  717.   F9       109        |           SH - F9     119
  718.   F10      110        |           SH - F10    120
  719.                       |
  720.   ^ - F1   121        |           ALT - F1    131
  721.   ^ - F2   122        |           ALT - F2    132
  722.   ^ - F3   123        |           ALT - F3    133
  723.   ^ - F4   124        |           ALT - F4    134
  724.   ^ - F5   125        |           ALT - F5    135
  725.   ^ - F6   126        |           ALT - F6    136
  726.   ^ - F7   127        |           ALT - F7    137
  727.   ^ - F8   128        |           ALT - F8    138
  728.   ^ - F9   129        |           ALT - F9    139
  729.   ^ - F10  130        |           ALT - F10   140
  730.                       |
  731.   ALT - 1  141        |           ALT - 6     146
  732.   ALT - 2  142        |           ALT - 7     147
  733.   ALT - 3  143        |           ALT - 8     148
  734.   ALT - 4  144        |           ALT - 9     149
  735.   ALT - 5  145        |           ALT - 10    150
  736.                       |
  737.   ALT - A  151        |           ^ - A       177
  738.   ALT - B  152        |           ^ - B       178
  739.   ALT - C  153        |           ^ - C       179
  740.   ALT - D  154        |           ^ - D       180
  741.   ALT - E  155        |           ^ - E       181
  742.   ALT - F  156        |           ^ - F       182
  743.   ALT - G  157        |           ^ - G       183
  744.   ALT - H  158        |           ^ - H       184
  745.   ALT - I  159        |           ^ - I       185
  746.   ALT - J  160        |           ^ - J       186
  747.   ALT - K  161        |           ^ - K       187
  748.   ALT - L  162        |           ^ - L       188
  749.   ALT - M  163        |           ^ - M       189
  750.   ALT - N  164        |           ^ - N       190
  751.   ALT - O  165        |           ^ - O       191
  752.  
  753.   ALT - P  166        |           ^ - P       192
  754.   ALT - Q  167        |           ^ - Q       193
  755.   ALT - R  168        |           ^ - R       194
  756.   ALT - S  169        |           ^ - S       195
  757.   ALT - T  170        |           ^ - T       196
  758.   ALT - U  171        |           ^ - U       197
  759.   ALT - V  172        |           ^ - V       198
  760.   ALT - W  173        |           ^ - W       199
  761.   ALT - X  174        |
  762.   ALT - Y  175        |
  763.   ALT - Z  176        |
  764.  
  765. Bei Tastenreturncode  99 (ESC)  werden eventuelle Modifikationen
  766. variabler Felder verworfen.
  767.  
  768. Für die  Realisierung sog.  Balkenmenüs über Menüfelder beachten
  769. Sie bitte  folgendes. Bei  Betätigung der Tasten ENTER von einem
  770. Menüfeld aus  (Cursor zeigt  auf Menüfeld)  wird der  Returncode
  771. n+200 zurückgegeben  (n =  Nummer  des  ungeschützten  variablen
  772. Feldes (Eingabefelder  und  markierbare  Felder)  innerhalb  des
  773. aktuellen  Formates).   Bei  der  Betätigung  einer  der  o.  g.
  774. Tasten(Kombinationen)  auf  einem  markierbaren  Feld  wird  der
  775. Tastenreturncode  der  Funktionstaste  zurückgemeldet.  Bei  der
  776. Eingabe von ESC wird 99 zurückgemeldet.
  777.  
  778.  
  779. 6.1.2 Compilieren/ Linken
  780.  
  781. Für das  Compilieren  Ihres  Programmes  stellen  Sie  die  Std-
  782. Include-Datei, die  Include-Dateien für die variablen Felder und
  783. das Formatlayout  bereit. Das  entsprechende Treibermodul ist in
  784. das  Programm   einzubinden.  Detaillierte   Informationen  über
  785. Compiler- und  Linkvorschriften entnehmen  Sie bitte  aus  Ihren
  786. Programmierhandbüchern.
  787.  
  788.  
  789. 6.1.3 Programmausführung
  790.  
  791. Für die Ausführung Ihrer Programme sind neben der eigentlichen
  792. EXE-Datei keine weiteren Komponenten erforderlich.
  793.  
  794.  
  795. 6.1.4 Schattenfunktion
  796.  
  797. Neben der  Rückgabe der  Tastenreturncodes  wird  das  Feld  RET
  798. benutzt um  das Schattenattribut  für die  Ausgabe von
  799. Formatenmit Schatten zu übergeben.
  800.  
  801. Beachten Sie bitte die folgenden Regeln...
  802.  
  803.  Bei RET=0 wird das Format ohne Schatten ausgegeben.
  804.  Bei RET  !=0 wird  das Format mit Schatten mit dem Attributwert
  805.  in RET ausgegeben.
  806.  
  807.  Die Attributwerte  für Monochrom-  bzw. Farbmodus finden Sie im
  808.  Anhang A3 (Vollversion).
  809.  
  810.  Die Schattenfunktion  ist für  Differenzausgaben (FKZ=3)  nicht
  811.  relevant.
  812.  
  813.  Der Schatten  wird am  rechten und  unteren Rand  des  Formates
  814.  angezeigt.
  815.  
  816.  
  817. 6.1.5 Dynamische Attributmodifikation
  818.  
  819. Jedes  Elenent   eines  Formates  ist  in  dem  Bereich  <Daten>
  820. hinterlegt. So sind u. a. die Farbattribute für Text, für Rahmen
  821. und für  alle variablen  Felder in einem Byte im Bereich <Daten>
  822. dargestellt. Das  gleiche gilt für den Feldtyp. Durch Modifizie-
  823. rung dieses  Bytes kann  das entsprechende  Attribut durch einen
  824. einzigen MOVE-Befehl geändert werden.
  825.  
  826. In der  Attribut-Distanzdatei (format.ATT)  werden die Distanzen
  827. zu  den   jeweiligen   Elementen   hinterlegt.   Die   Attribut-
  828. Distanzdatei wird  bei  der  Formatgenerierung  automatisch
  829. fürjedes Format erzeugt.
  830.  
  831. Folgende Distanzen im Bereich <Daten> werden angezeigt...
  832.  
  833.    Text-Farbattribut
  834.    Rahmen-Farbattribut
  835.    Feld-Farbattribut
  836.    Feld-Typ
  837.  
  838. Die Farbattribute  können durch  Veränderung des  Bytewertes mit
  839. den  Werten  0  bis  255  (siehe  Attributwerte  im  Anhang  A3)
  840. modifiziert werden.
  841.  
  842. Der Feldtyp  kann die  Werte <a>  für Ausgabefeld  bzw. <e>  für
  843. Eingabefeld enthalten.  Alle anderen  Zuweisungen sind  ungültig
  844. und führen zu unvorhergesehenen Ergebnissen.
  845.  
  846. Ein Beispiel finden Sie in Kapitel 8.
  847.  
  848.  
  849. 6.2 Ablauf Compilerspezifisch
  850.  
  851. Im folgenden  werden compilerspezifische  Hinweise für  den For-
  852. mataufruf  mit   UniForm   übersichtlich   zusammengefaßt.   Die
  853. Übersicht  zeigt   insbesondere  alle   INCLUDE   Dateien,   die
  854. syntaktischen  Vorschriften  für  den  Aufruf  des  universellen
  855. Treiberprogrammes UNIF sowie Übersetzungs- und Linkvorschriften.
  856.  
  857. Ein  einfaches   Sourcebeispiel  verdeutlicht   schließlich  den
  858. Formateinsatz mit UniForm. In dem Sourcebeispiel wird das Format
  859. "order" am  Bildschirm angezeigt  und das  Programm  nach einer
  860. beliebigen Tasten(kombinations)eingabe  beendet (die Formatdatei
  861. ORDER.BLD finden  Sie auf  Ihren  Produktdisketten).  Das  Sour-
  862. cebeispiel  können   Sie   vom   UniForm-Formatgenerator   durch
  863. Generierung des  Formates ORDER  automatisch generieren lassen.
  864. UniForm erzeugt die Sourcedatei ORDER.SMP (SMP für sample).
  865.  
  866.  
  867. 6.2.1 Ablauf in MS Cobol/ Cobol2
  868.  
  869. Standard-Include-Datei
  870.  
  871.   UFCO03.CBL
  872.  
  873. Formatspezifische Include-Dateien
  874.  
  875.   <format>.CBL    Include-Datei für variable Felder
  876.   <forma1>.CBL    Include-Datei für Formatlayout
  877.  
  878.   Das letzte Zeichen des Dateinamens der Include-Datei für
  879.   Formatlayout wird <1>!
  880.  
  881. UNIF-Unterprogrammaufruf
  882.   COPY <forma1>.
  883.   CALL "UNIF" USING FKZ FMT feldname RET SM Daten.
  884.  
  885. Maussteuerung
  886.  
  887.   CALL "MOUSEON"  Maus initialisieren
  888.   CALL "MOUSEOFF" Maus wieder ausschalten
  889.  
  890. Compilieren
  891.  
  892.   Bereitstellen der o. g. COPY-Dateien
  893.   COBOL programmname /LITLINK
  894.  
  895. Linken
  896.  
  897.   einbinden UFCO03.OBJ
  898.  
  899. Sourcebeispiel "ORDER.COB" - Ausgeben Format ORDER
  900.  
  901. Übersetzen:  cobol order /LITLINK
  902. Linken:      link order ufco03
  903. Programmaufruf:    order
  904.  
  905.        identification division.
  906.        program-identification. test.
  907.        environment division.
  908.        data division.
  909.        working-storage section.
  910.       *  Standard-Include-Datei
  911.            COPY UFCO03.
  912.       *  Definieren variable Felder aus <order>
  913.            COPY order.
  914.        procedure division.
  915.        anf-section.
  916.        anf-001.
  917.       *  Maus initialisieren
  918.            call "MOUSEON".
  919.       *  Funktionskennzeichen
  920.            move 2 to FKZ.
  921.       *  Cursorposition
  922.            move 0 to SM.
  923.       *  Schattenattribut
  924.            move 112 to RET.
  925.       * Formatname
  926.          move "order    " to FMT.
  927.       * Formatlayout in Daten (letzter Buchstabe ist <1>)
  928.            COPY testfm1.
  929.       * call UNIF
  930.            CALL "UNIF" using FKZ FMT fld0 RET SM Daten.
  931.       *  Maus ausschalten
  932.            call "MOUSEOFF".
  933.        anf-009.
  934.            stop run.
  935.  
  936. Include-Datei für variable Felder ORDER.CBL
  937.  
  938.        01 order.
  939.         05 product PIC X(20).
  940.         05 r-product redefines product PIC X(1) occurs 20.
  941.         05 orderdate PIC X(8).
  942.         05 r-orderdate redefines orderdate PIC X(1) occurs 8.
  943.         05 nr PIC X(20).
  944.         05 r-nr redefines nr PIC X(1) occurs 20.
  945.         05 quantity PIC S999 value 0.
  946.         05 price PIC S99999V99 value 0.0.
  947.  
  948. Hinweise
  949.  
  950. MS Cobol < Version 3.0 wird nicht unterstützt.
  951.  
  952. Die Zeichen  ALT 0,  ALT 26,  ALT 34 und ALT 227 bis 251 bis 255
  953. sind in der Formatgenerierung nicht zugelassen.
  954.  
  955.  
  956. 6.2.2 Ablauf in MF Professional Cobol, MF VS Cobol
  957.  
  958. Standard-Include-Datei
  959.  
  960.   UFCO02.CBL
  961.  
  962. Formatspezifische Include-Dateien
  963.  
  964.   <format>.CBL    Include-Datei für variable Felder
  965.   <forma1>.CBL    Include-Datei für Formatlayout
  966.  
  967.   Das letzte Zeichen des Dateinamens der Include-Datei für
  968.   Formatlayout wird <1>!
  969.  
  970. UNIF-Unterprogrammaufruf
  971.  
  972.   COPY <forma1>.
  973.   CALL "UNIF" USING FKZ FMT feldname RET SM Daten.
  974.  
  975. Maussteuerung
  976.  
  977.   CALL "MSON"     Maus initialisieren
  978.   CALL "MSOFF"    Maus wieder ausschalten
  979.  
  980. Compilieren
  981.  
  982.   Bereitstellen der o. g. COPY-Dateien
  983.   
  984. Linken
  985.  
  986.   einbinden UFCO02.BIN
  987.   einbinden MSON.BIN/ MSOFF.BIN (Maussteuerung)
  988.  
  989. Sourcebeispiel "ORDER.COB" - Ausgeben Format ORDER
  990.  
  991. Übersetzen:  cobol check order/ cobol compile order
  992. Linken:      cobol build order unif.bin mson.bin msoff.bin
  993.              cobol com2exe order
  994. Programmaufruf:    order
  995.  
  996.        identification division.
  997.        program-id. test.
  998.        environment division.
  999.        data division.
  1000.        working-storage section.
  1001.       *  Standard-Include-Datei
  1002.            COPY UFCO02.
  1003.       *  Definieren variable Felder aus <order>
  1004.            COPY order.
  1005.        procedure division.
  1006.        anf-section.
  1007.        anf-001.
  1008.       *  Maus initialisieren
  1009.            call "MSON".
  1010.       *  Funktionskennzeichen
  1011.            move 1 to FKZ.
  1012.       *  Cursorposition
  1013.            move 0 to SM.
  1014.       *  Schattenattribut
  1015.            move 112 to RET.
  1016.       *  Frmatname
  1017.            move "order " to FMT.
  1018.       *  Formatlayout in Daten (letzter Buchstabe = <1>)
  1019.            COPY orde1.
  1020.       * call UNIF
  1021.            CALL "UNIF" using FKZ FMT fld0 RET SM Daten.
  1022.       *  Maus ausschalten
  1023.            call "MSOFF".
  1024.        anf-009.
  1025.            stop run.
  1026.  
  1027. Include-Datei für variable Felder ORDER.CBL
  1028.  
  1029.       01 order.
  1030.        05 product PIC X(20).
  1031.        05 r-product redefines product PIC X(1) occurs 20.
  1032.        05 orderdate PIC X(8).
  1033.        05 r-orderdate redefines orderdate PIC X(1) occurs 8.
  1034.        05 nr PIC X(20).
  1035.        05 r-nr redefines nr PIC X(1) occurs 20.
  1036.        05 quantity PIC S999 value 0.
  1037.        05 price PIC S99999V99 value 0.0.
  1038.  
  1039. Hinweise
  1040.  
  1041. Die Zeichen  ALT 0,  ALT 26, ALT 34  und ALT 227 bis 255 sind in
  1042. der Formatgenerierung nicht zugelassen.
  1043.  
  1044.  
  1045. 7 Ablauf im Beispiel
  1046.  
  1047. Der Formateinsatz  mit UniForm  wird im  folgenden durch weitere
  1048. Beispiele verdeutlicht.
  1049.  
  1050. Zunächst soll  das einfache  Anwendungsbeispiel  aus  Kapitel  3
  1051. geringfügig erweitert werden.
  1052.  
  1053. Nach der  Erfassung eines  Artikels im  Menü <order> soll in dem
  1054. überlappenden  leeren  Format  <message>  die  Aufnahme  in die
  1055. Datenbank bildlich bestätigt werden. Nach Programmbeendigung mit
  1056. der Funktionstaste  <F10> soll  der gesicherte  Bildschirminhalt
  1057. vor Programmaufruf wieder angezeigt werden.
  1058.  
  1059. Die  Generierung   des  Formates   <order>  ist   in  Kapitel  3
  1060. nachzulesen. Zur  Generierung des  Formates <message> ist einzig
  1061. zu bemerken,  daß es sich hier um ein sog. leeres Format (Format
  1062. ohne variable  Felder) handelt.  Somit  entfällt  der  Verarbei-
  1063. tungsschritt "Feldnamen/ Attribute" bei der Formaterstellung mit
  1064. dem  UniForm   Formatgenerator;   der   Formataufruf   muß   mit
  1065. Funktionskennzeichen FKZ = 4 erfolgen.
  1066.  
  1067. Das o.  g. Beispiel  ist in  diesem Kapitel in allen von UniForm
  1068. unterstützten Compilern  realisiert. Der Dialekt des Sourcecodes
  1069. in den  Listings bezieht  sich jeweils auf eine bestimme Version
  1070. des jeweiligen  Compilers. Etwaige  geringfügige Abweichungen in
  1071. älteren oder  neueren Versionen  entnehmen Sie  bitte aus
  1072. IhrenProgrammierhandbüchern.
  1073.  
  1074. Aus Gründen  der besseren  Lesbarkeit des Sourcecodings wurde in
  1075. den   Beispielen    weitgehend   auf    die    Prinzipien    der
  1076. wohlstrukturierten Programmierung verzichtet.
  1077.  
  1078. Das Sourcecodebeispiel  und die  beiden Formatdateien ORDER.BLD
  1079. und   MESSAGE.BLD   finden   Sie   übrigens   auch   auf   Ihren
  1080. Produktdisketten (siehe  Punkt 4.2,  Programmbeispiel  "order").
  1081. Compiler- und  Linkeranweisungen entnehmen Sie bitte aus Kapitel 6
  1082.  
  1083. Sie können  also das Programmbeispiel auf einfache Art und Weise
  1084. ausprobieren!
  1085.  
  1086. In  der   Vollversion  ist   das  Programmbeispiel  im  Handbuch
  1087. abgedruckt.
  1088.  
  1089.  
  1090. 8 Beispiel für "dynamische Attributmodifikation"
  1091.  
  1092. Durch  Modifiziern   des  Bereiches   <Daten>  haben   Sie   die
  1093. Möglichkeit die  Attribute für  Text, Rahmen und variable Felder
  1094. dynamisch, d. h. während des Programmablaufes zu modifizieren.
  1095. In einem  einfachen Beispiel  wird das  Ablaufprinzip der  o. g.
  1096. Funktion deutlich gemacht.
  1097.  
  1098. Das Format <TESTFMT> wird zunächst in den generierten Attributen
  1099. für Text,  Rahmen und  die beiden  variablen Felder  <fld0>  und
  1100. <fld1>  angezeigt.
  1101.  
  1102. Bei der  zweiten Ausgabe  werden die  Farben der  beiden  Felder
  1103. <fld0> und <fld1> modifiziert.
  1104.  
  1105. Bei der  dritten Ausgabe  wird der  Feldtyp  der  beiden  Felder
  1106. <fld0> und  <fld1> auf <Ausgabefeld> modifiziert. D. h. Sie sind
  1107. für den Benutzer nicht mehr zugänglich.
  1108.  
  1109. Bei der  vierten Ausgabe  werden die  Farben von Text und Rahmen
  1110. modifiziert.
  1111.  
  1112. Bei der  fünften und  letzten Ausgabe  wird das Schattenattribut
  1113. modifiziert.
  1114.  
  1115. Das Sourcecodebeispiel und die Formatdatei <TESTFMT.BLD> finden
  1116. Sie  wiederum  auf  Ihren  Produktdisketten  (siehe  Punkt  4.2,
  1117. Programmbeispiel  "dynamic").   Sie  können   also  auch  dieses
  1118. Programmbeispiel sofort  testen. Compiler- und Linkeranweisungen
  1119. entnehmen Sie bitte aus Kapitel 6.
  1120.  
  1121. In  der   Vollversion  ist   das  Programmbeispiel  im  Handbuch
  1122. abgedruckt.
  1123.  
  1124.  
  1125. 9 Beispiel für "Menüauswahl"
  1126.  
  1127. In  diesem   Beispiel   wird   der   Einsatz   von   Menüfeldern
  1128. demonstriert. Im  Ersten Format  <menu01> werden  die Menüpunkte
  1129. <Functions>  und   <Programend>  zur   Auswahl  angeboten.   Die
  1130. Funktionen   können    ausgewählt   werden   über   Cursor/Maus-
  1131. Positionierung und  Enter oder  durch die  Rechte Maustaste oder
  1132. durch Eingabe  der hervorgehobenen Buchstaben. Im zweiten Format
  1133. <menu02> wird  ein Pull-Down Format angezeigt mit den Funktionen
  1134. <file new,  file  open,  feile  delete  und  program  end>.  Die
  1135. Funktionsauswahl  kann   hier  neben   den  oben   beschriebenen
  1136. Möglichkeiten über  die entsprechende  Funktionstaste ausgewählt
  1137. werden. Im  letzten Format <menu03> wird lediglich eine Funktion
  1138. angedeutet, die durch Auswahl einer der Menüpunkte denkbar wäre.
  1139. Sie kehren mit jeder Eingabe zum ersten Format zurück.
  1140.  
  1141. Das Sourcecodebeispiel  und die  oben beschriebenen Formatdateien
  1142. finden Sie wiederum auf Ihren Produktdisketten (siehe Punkt 4.2,
  1143. Programmbeispiel "menu").
  1144.  
  1145.  
  1146. Anhang A1 - Cursorsteuerung
  1147.  
  1148. Die Cursor- und Maustasten werden im UniForm-Formatgenerator und
  1149. in mit UniForm eingesetzten Formaten wie fogt ausgewertet:
  1150.  
  1151. - Pfeil links   Cursor um 1 Spalte nach links. Bei Feldanfang
  1152.                 springen zu Feldende des vorherigen Feldes.
  1153. - Pfeil rechst  Cursor um 1 Spalte nach rechts. Bei Feldende
  1154.                 springen zu Feldanfang des nächsten Feldes.
  1155.  
  1156. - Home          Cursor auf Feldanfang des aktuellen Feldes.
  1157. - End           Cursor auf Feldende des aktuellen Feldes.
  1158.  
  1159. - Pfeil unten   Cursor auf Feldanfang des nächsten Feldes.
  1160. - Pfeil oben    Cursor auf Feldanfang des vorherigen Feldes.
  1161. - Page Down     Cursor auf Feldanfang des nächsten Feldes
  1162. - Page Up       Cursor auf Feldanfang des vorherigen Feldes.
  1163. - Back Slash    Löschen aktuelle Spalte und Cursor um 1 Zeichen
  1164.                 nach links.
  1165. - Del           Löschen Zeichen an Cursorposition. Das
  1166.                 Füllzeichen am Feldende ist Space. bzw. Null.
  1167.  
  1168. - Ins (Modus)   Einfügen Zeichen an Cursorposition. Das letzte
  1169.                 Zeichen geht verloren.
  1170.  
  1171.  
  1172. - Maustaste links  Cursor an Mausposition.
  1173.  
  1174. - Maustaste rechts Cursor an Mausposition und Rückkehr zum
  1175.                    aufrufenden Programm (Rückgabe ENTER (RET = 100)).
  1176.  
  1177.  
  1178. - Zeichen an Feldende   Cursor auf Feldanfang des nächsten
  1179.                         Feldes.
  1180.  
  1181. - SPACE (NUM-Felder)    Im Vorkammabereich wird SPACE
  1182.                         akzeptiert. Im Nachkommabereich wird SPACE
  1183.                         durch 0 ersetzt.
  1184. An
  1185. Ebnet Software
  1186.  
  1187. D-8000 München 70
  1188. Passauerstrasse 2 b
  1189.  
  1190.  
  1191. REGISTRIERUNG/ BESTELLUNG Softwareprodukt COBOL-WINDOW
  1192. ------------------------------------------------------
  1193.  
  1194. Hiermit bestelle(n) ich(wir) das Softwareprodukt COBOL-WINDOW
  1195. zum Preis von DM 85.-- zzgl. Versand (DM 4.--).
  1196.  
  1197. Die Bezahlung soll erfolgen:
  1198.  
  1199.    (  ) durch beigefügten Verrechnungsscheck
  1200.    (  ) durch Vorauszahlung auf das nachfolgendes  Konto:
  1201.         Postgiroamt München      
  1202.         BLZ. 700 100 80
  1203.         Konto 418194-800
  1204.    (  ) durch Postnachnahme zuzüglich Versandkosten
  1205.         (  ) in der BRD                 DM  3,--
  1206.         (  ) im Ausland                 DM 10,--
  1207.  
  1208. Die Lieferung soll erfolgen:
  1209.    (  ) im 5.25 Zoll Disketten-Format
  1210.    (  ) im 3.5  Zoll Disketten-Format  
  1211.  
  1212. Die genannten Preise verstehen sich inklusive Mehrwertsteuer.
  1213.  
  1214. Als registrierter Anwender werden Sie über künftige Programm-
  1215. versionen automatisch benachrichtigt. Neue Programm-Versionen
  1216. können im Updateservice zum Vorzugspreis von DM 45.-- bestellt
  1217. werden.
  1218.  
  1219. Anwenderunterstützung (telefonisch/schriftlich) wird ausnahmslos
  1220. für registrierte Anwender geleistet.
  1221.  
  1222. Absender:
  1223.  
  1224.  
  1225.  
  1226.  
  1227.  
  1228. Datum/Unterschrift:
  1229.  
  1230.  
  1231. .............................
  1232.