home *** CD-ROM | disk | FTP | other *** search
/ Power-Programmierung / CD1.mdf / xbase / tools / dbt / dbt.doc next >
Text File  |  1993-07-28  |  77KB  |  1,429 lines

  1. U1EG
  2.      ┌─────────────────────────────────────────────────────────────────────────┐
  3.      │           IF                 DO CASE                                    │
  4.      │        ELSE                     CASE                                    │
  5.      │         DO WHILE                  DO WHILE                              │
  6.      │               EXIT                   RETURN                             │
  7.      │        ENDIF                    CASE                                    │
  8.      │         ENDDO                     ENDDO                                 │
  9.      │                              ENDDO                                      │
  10.      │                                                                         │
  11.      │  Chaos  ERROR  Fehler  Nichts geht mehr !  WARUM ???  WO ???            │
  12.      └─────────────────────────────────────────────────────────────────────────┘
  13.  
  14.  
  15.              ╔═════════════╗     ╔═════════════╗    ╔═══════════════╗
  16.              ║ ╔═════════╗ ╚═╗   ║ ╔═════════╗ ╚╗   ╚══════╗ ╔══════╝
  17.              ║ ║         ╚═╗ ║   ║ ║         ╚╗ ║          ║ ║
  18.              ║ ║           ║ ║   ║ ║          ║ ║          ║ ║
  19.              ║ ║           ║ ║   ║ ║         ╔╝ ║          ║ ║
  20.              ║ ║           ║ ║   ║ ║       ╔═╝ ╔╝          ║ ║
  21.              ║ ║           ║ ║   ║ ╚═══════╝ ╔═╝           ║ ║
  22.              ║ ║           ║ ║   ║ ╔═══════╗ ╚═╗           ║ ║
  23.              ║ ║           ║ ║   ║ ║       ╚═╗ ╚╗          ║ ║
  24.              ║ ║           ║ ║   ║ ║         ╚╗ ║          ║ ║
  25.              ║ ║           ║ ║   ║ ║          ║ ║          ║ ║
  26.              ║ ║         ╔═╝ ║   ║ ║         ╔╝ ║          ║ ║
  27.              ║ ╚═════════╝ ╔═╝   ║ ╚═════════╝ ╔╝          ║ ║
  28.              ╚═════════════╝     ╚═════════════╝           ╚═╝
  29.  
  30.      ┌─────────────────────────────────────────────────────────────────────────┐
  31.      │                                                                         │
  32.      │  ┌─IF       ┌─DO CASE       ┌─DO WHILE     ┌─PROCEDURE   ┌─FUNCTION     │
  33.      │  ├──ELSE    ├───CASE        ├──LOOP        ┼───RETURN    │              │
  34.      │  └─ENDIF    ├──OTHERWISE    ┼──EXIT        └─RETURN      └─RETURN       │
  35.      │             └─ENDCASE       └─ENDDO                                     │
  36.      │                                                                         │
  37.      │                                                                         │
  38.      │      ┌─DO WHILE             HAUPT──┬──STADAVER─┬──KUNMOD                │
  39.      │      │  ┌─DO CASE                  │           ├──ARTMOD                │
  40.      │      │  ├─CASE                     │           ├──TEXMOD                │
  41.      │      │  │  ┌─IF                    │           ├──PARMOD                │
  42.      │      │  │  ├──ELSE                 │           └──OPOMOD                │
  43.      │      │  │  └─ENDIF                 ├──STADAANZ─┬──KUNANZ                │
  44.      │      │  ├─CASE                     │           ├──ARTANZ                │
  45.      │      │  │  ┌─IF                    │           ├──TEXANZ                │
  46.      │      │  │  ├──ELSE                 │           └──PARANZ                │
  47.      │      ┼──┼──┼──EXIT                 ├──FAKTURA──┬──ERFASS───┬──SUCHEN    │
  48.      │      │  │  └─ENDIF                 │           │           ├──SUCHEN    │
  49.      │      │  ├─OTHERWISE                │           │           └──SUCHEN    │
  50.      │      │  │  ┌─IF                    │           ├──DRUCK                 │
  51.      │      ├──┼──┼──LOOP                 │           └──AKTUAL                │
  52.      │      │  │  └─ENDIF                 ├──OFFPOS                            │
  53.      │      ┼──┼──────RETURN              ├  LAGER                             │
  54.      │      │  └─ENDCASE                  └──SICHERN                           │
  55.      │      └─ENDDO                                                            │
  56.      └─────────────────────────────────────────────────────────────────────────┘
  57.  
  58.      ╔═════════════════════════════════════════════════════════════════════════╗
  59.      ║  ╔═══════════════════════════════════════════════════════════════════╗  ║
  60.      ║  ║      d B a s e I I I  /  C L I P P E R  -  P r o g r a m m -      ║  ║
  61.      ║  ║                 S t r u k t u r - T e s t e r                     ║  ║
  62.      ║  ║        + D o k u m e n t a t i o n s  -  P r o g r a m m          ║  ║
  63.      ║  ╚═══════════════════════════════════════════════════════════════════╝  ║
  64.      ║              DBT-Version 3.0   Copyright 1989-  VoG                     ║
  65.      ║                      DBT-Small-Version                                  ║
  66.      ╚═════════════════════════════════════════════════════════════════════════╝
  67.      ╔═════════════════════════════════════════════════════════════════════════╗
  68.      ║ G ╔═══════════════════════════════════════════════════════════════════╗ H ║
  69.      ║ G ║      d B a s e I I I  /  C L I P P E R  -  P r o g r a m m -      ║ H ║
  70.      ║ G ║                 S t r u k t u r - T e s t e r                     ║ H ║
  71.      ║ G ║        + D o k u m e n t a t i o n s  -  P r o g r a m m          ║ H ║
  72.      ║ G ╚═══════════════════════════════════════════════════════════════════╝ H ║
  73.      ║              DBT-Version 3.0   Copyright 1989-  VoG                     ║
  74.      ║ G                    DBT-Small-Version                              H     ║
  75.      ╠═════════════════════════════════════════════════════════════════════════╣
  76.      ║                                                                         ║
  77.      ║   GDBTH untersucht Ihr GdBase/Clipper-ProgrammH auf GStruktur-Fehler.H        ║
  78.      ║                                                                         ║
  79.      ║   Jeder GStruktur-BlockH beginnt mit einer GStruktur-EröffnendenH           ║
  80.      ║   Anweisung und GmussH mit der entsprechenden GStruktur-SchließendenH       ║
  81.      ║   Anweisung enden. GInnerhalb eines Struktur-BlockesH sind nur die        ║
  82.      ║   zu Gdiesem Struktur-Block gehörenden AnweisungH und Gneue Struktur-H      ║
  83.      ║   GEröffnende und Struktur-Schließende AnweisungenH zulässig.             ║
  84.      ║                                                                         ║
  85.      ║   Die in Klammern stehenden Struktur-Anweisungen sind wahlweise:        ║
  86.      ║                                                                         ║
  87.      ║ G  ┌─IF        ┌─DO WHILE    ┌─DO CASE       ┌─PROCEDURE   ┌─FUNCTION  H  ║
  88.      ║ G  ├──(ELSE)   ├──(LOOP)     ├───CASE        ┼───RETURN    │           H  ║
  89.      ║ G  └─ENDIF     ┼──(EXIT)     ├──(OTHERWISE)  └─RETURN      └─RETURN    H  ║
  90.      ║ G              └─ENDDO       └─ENDCASE                                 H  ║
  91.      ║                                                                         ║
  92.      ║   GFehlerH in einer Struktur werden mit der GStruktur-EröffnendenH          ║
  93.      ║   Anweisung und Gder AnweisungH ausgewiesen, bei der der GStruktur-H        ║
  94.      ║   GverstoßH erkannt wurde.                                                ║
  95.      ║                                                                         ║
  96.      ║   Aufruf DBT                                                            ║
  97.      ║                                                                         ║
  98.      ║   GDBT (name.ext) (/param) H                                              ║
  99.      ║                                                                         ║
  100.      ║   Gname.ext:H Name des zu testenden Programms.                            ║
  101.      ║             wildcard's (* / ?) in name führt zum Test aller             ║
  102.      ║             zutreffenden Programme.                                     ║
  103.      ║                                                                         ║
  104.      ║   G/param :H  über Parameter kann der Struktur-Test und die weitere       ║
  105.      ║             Verarbeitung beeinflusst werden.                            ║
  106.      ║                                                                         ║
  107.      ║   G R H    =  RETURN innerhalb von Strukturen werden nicht ausgewertet.   ║
  108.      ║             Ein RETURN führt sonst zur Überprüfung von offenen          ║
  109.      ║             Strukturen.                                                 ║
  110.      ║                                                                         ║
  111.      ║                                                                         ║
  112.      ║                                                                         ║
  113.      ║   G P H    =  Struktuierte Druckausgabe (CTRL-P oder >filename)           ║
  114.      ║      N     =  ohne Ausgabe der Satznummer                               ║
  115.      ║                                                                         ║
  116.      ║   G C H    =  Ausgabe nur der Struktur-Blöcke                             ║
  117.      ║                                                                         ║
  118.      ║   G E H    =  Ausgabe der Verarbeitungs-Zeiten                            ║
  119.      ║                                                                         ║
  120.      ║   G T H    = T ist der 1. Parameter des Autoren gewesen, weil er          ║
  121.      ║                  nicht glaubte, daß sein Struktur-Analyse-Programm      ║
  122.      ║                  so schnell ist.                                        ║
  123.      ║                                                                         ║
  124.      ║                                                                         ║
  125.      ║                                                                         ║
  126.      ║                                                                         ║
  127.      ╠═════════════════════════════════════════════════════════════════════════╣
  128.      ║                                                                         ║
  129.      ║ G  DBT benötigt zur Analyse von   1.000 Zeilen   5    Sekunden.     H     ║
  130.      ║ G           ( 200 Zeilen pro Sekunde auf einem IBM/XT)              H     ║
  131.      ║                                                                         ║
  132.      ╚═════════════════════════════════════════════════════════════════════════╝
  133.  
  134.  
  135.  
  136.  
  137.  
  138.  
  139.  
  140.         EG  Inhaltsverzeichnis:
  141.           -------------------
  142.  
  143.  
  144.  
  145.  
  146.              Struktuierte Programmiermethode                    1
  147.  
  148.              DBT, die kleine schnelle Hilfe                     3
  149.  
  150.              DBT als Struktur-Tester                            5
  151.  
  152.         *    DBT als Dokumentations-System                      6
  153.  
  154.         *    Erläuterunge zu den Ausgaben                       7
  155.  
  156.         *    Test- und Dokumentations-Lauf                      9
  157.  
  158.  
  159.  
  160.  
  161.  
  162.  
  163.  
  164.  
  165.  
  166.  
  167.  
  168.  
  169.  
  170.  
  171.          *    Die XREF - Funktionen sind nur in der
  172.               erweiterten DBT-Version erhalten.
  173.  
  174.               Informationen über die DBT-full-Version können beim
  175.               Autoren angefordert werden.
  176.  
  177.  
  178.  
  179.  
  180.          dBase und Clipper sind geschützte Produktnamen.
  181.  
  182.  
  183.  
  184.  
  185.          DBT ist ein Produkt von VoG
  186.  
  187.  
  188.          DBT ist unter DOS > Version 2.0 ablauffähig und mit
  189.          Sourcen der dBase IV Plus und Clipper 86 getestet.
  190.  
  191.  
  192.  
  193.  
  194.  
  195. U1A
  196.         ──────────────────────────────────────────────────────
  197.        ──────────────────────────────────────────────────────
  198.       ──────────────────────────────────────────────────────
  199.      ┌─────────────────────────────────────────────────────
  200. U1A
  201.  
  202.      │ GV.Gülke, Gieseckenkamp 6a, D-3012 Langenhagen 1  H
  203. U1A     └─────────────────────────────────────────────────────
  204. U1A
  205.  
  206. U1
  207.  
  208. H
  209.                                                                          1.
  210.  
  211.  
  212.      EGStruktuierte Programmier-Methoden.
  213.      EG----------------------------------H
  214.  
  215.  
  216.      Die Struktuierten Programmier-Methoden bieten Sprachelemente, mit denen
  217.      ein Programmierer sein Programm in Funktions-Blöcke aufteilen kann.
  218.  
  219.  
  220.      In  den   Sprachelementen  für   logische  Entscheidungen   oder  Fall-
  221.      unterscheidungen  werden  per  Funktionsaufruf  oder  Verzweigung   mit
  222.      Rückkehr hinter die Verzweigung der Funktions-Block aufgerufen.
  223.  
  224.  
  225.      Weitere Sprachelemente erlauben eine Wiederholung von Funktionsaufrufen
  226.      begrenzt durch eine Anzahl oder durch eine logische Entscheidung.
  227.  
  228.  
  229.      Der Beginn  eines Funktions-Blocks  ist immer  durch einen  eindeutigen
  230.      Namen  gekennzeichenet.   Der  Funktions-Block  kann ein Programm, eine
  231.      Procedure oder eine Function sein.  Das Ende eines Funktions-Blocks ist
  232.      durch ein Return, eine andere  Procedure oder Funktion, oder durch  das
  233.      Ende des Programms gekennzeichenet.
  234.  
  235.  
  236.      Bei den logischen Entscheidungen, Fallunterscheidungen,  Wiederholungen
  237.      wird der Beginn  der Struktur durch  Struktur-eröffnende Sprachelemente
  238.      und  das  Ende  der  Struktur durch Struktur-schließende Sprachelemente
  239.      eindeutig gekennzeichenet und ergibt einen Struktur-Block.
  240.  
  241.  
  242. G
  243.     ┌─────────────────────────────────────────────────────────────────────┐
  244.     │                                                                     │
  245.     │ ┌─IF       ┌─DO CASE       ┌─DO WHILE     ┌─PROCEDURE   ┌─FUNCTION  │
  246.     │ ├──ELSE    ├──CASE         ├──LOOP        ┼───RETURN    │           │
  247.     │ └─ENDIF    ├──OTHERWISE    ┼──EXIT        └─RETURN      └─RETURN    │
  248.     │            └─ENDCASE       └─ENDDO                                  │
  249.     └─────────────────────────────────────────────────────────────────────┘
  250.      Tabelle der in dBase / Clipper geltenden Sprachelemente
  251.      für Struktur-Blöcke. H
  252.  
  253.  
  254.      Innerhalb von logischen  Entscheidungen oder Fallunterscheidungen  gibt
  255.      es noch den Gültigkeitsbereich der Entscheidung.
  256.  
  257.      Beim IF-Struktur-Block (logische  Entscheidung) liegt der  Gültigkeits-
  258.      bereich für  die WAHR-Entscheidung  zwischen IF  und ELSE,  die FALSCH-
  259.      Entscheidung  zwischen  ELSE  und  ENDIF.   Beim DO CASE-Struktur-Block
  260.      (Fallunterscheidung)   liegt   der   Gültigkeitsbereich   zwischen  dem
  261.      zutreffenden CASE und  dem nächsten CASE  oder OTHERWISE oder  ENDCASE,
  262.      oder  dem  zutreffenden  OTHERWISE   und  dem  ENDCASE.   Bei   der  DO
  263.      CASE-Struktur  ist  noch  zu  berücksichtigen,  daß  immer  nur  der 1.
  264.      zutreffende CASE ausgeführt wird.
  265.  
  266.                                                                          2.
  267.  
  268.  
  269.  
  270.  
  271.  
  272.      Beim  DO  WHILE-Struktur-Block  führt  die ENDDO-und LOOP-Anweisung zum
  273.      Beginn der  Struktur, der  DO WHILE-Anweisung.   Der DO WHILE-Struktur-
  274.      Block wird sooft durchlaufen,  bis die DO WHILE-Bedingung  erfüllt ist,
  275.      oder die DO WHILE-Schleife durch eine EXIT-Anweisung beendet wird.
  276.  
  277.  
  278.      Der RETURN  innerhalb von  Struktur-Blöcken beendet  immer rigoros  den
  279.      Funktions-Block.
  280.  
  281.  
  282.      Innerhalb  der  Struktur-Blöcke  und  Gültigkeitsbereiche können weiter
  283.      Struktur-Blöcke  aufgerufen  werden.    So  kann  z.B.   innerhalb  des
  284.      WAHR-Zweiges   einer   IF-Struktur   ein   weiterer  IF-Struktur-Block,
  285.      innerhalb  eines  OTHERWISE-Falls  ein  weiterer DO CASE-Struktur-Block
  286.      aufgerufen werden.
  287.  
  288.  
  289.      Eine  Verschachtelung  aller  Struktur-Blöcke  untereinander  ist somit
  290.      möglich.
  291.  
  292.  
  293.      Nun  ergibt  sich  allerdings  das  Problem,  daß  bei  verschachtelten
  294.      Struktur- Blöcken zwar der Beginn eines Struktur-Blocks eindeutig  ist,
  295.      daß  aber  oft  das  dazugehörende  Ende  des  Struktur-Blocks nicht so
  296.      eindeutig zu identifizieren ist.  Bei verschachtelten IF-Strukturen ist
  297.      oft das dazugehörende ELSE und ENDIF nicht so leicht zu bestimmen.  Ein
  298.      an einer falschen  Stelle gesetztes ELSE  verändert sofort die  gesamte
  299.      logische   Struktur.     Ebenso   führen    fehlende   oder    doppelte
  300.      Struktur-Ende-Anweisungen zur Veränderung der logischen Struktur.   Oft
  301.      erkennen  die  programmausführenden  Produkte  diese  Struktur-Verstöße
  302.      nicht oder melden sie nicht bei der Programmausführung.  Solche  Fehler
  303.      werden  meistens  erst  nach  langwierigen  Testen aufgedeckt oder nach
  304.      zeitaufwendigen Kompilierungen gemeldet.
  305.  
  306.  
  307.      Die   optimale   Lösung   wäre   ein   Editor,   der   solche einfachen
  308.      Struktur-Teste  durchführen  kann  und  die  Struktur-Verstöße   sofort
  309.      anzeigt.
  310.  
  311.  
  312.                                                                          3.
  313.  
  314.      EG
  315.      EGD B T , die kleine schnelle Hilfe !
  316.      EG-----------------------------------H
  317.  
  318.  
  319.  
  320.      DBT  ist   als  Hilfsmittel   für  die   Programmierung  als  schneller
  321.      Struktur-Tester entwickelt worden.
  322.  
  323.      Sie schreiben oder ändern ihr Programm mit einem herkömmlichen  Editor.
  324.      Vor dem Struktur-Test schreiben Sie  Ihr Programm zurück und rufen  DBT
  325.      über  die  DOS-Schnittstelle  oder  direkt  im DOS auf.  DBT untersucht
  326.      jetzt Ihr  Programm blitzartig  nach Struktur-Fehlern  und meldet jeden
  327.      Verstoß   mit   der   Struktur-Eröffnenden   Zeile/Zeilen-Nr.   und der
  328.      Zeile/Zeilen-Nr.,   bei   dem   der   Struktur-Verstoß   erkannt wurde.
  329.      Gleichfalls können  aber auch  Hinweise auf  unlogische Anwendungen  in
  330.      Struktur-Blöcken gemeldet werden.
  331.  
  332.  
  333. ┌────────────────────────────────────────────────────────────────────────────┐
  334. │ Source filename: dbterr.prg                                                │
  335. │                                                                            │
  336. │ Line:    8     Struktur-Beginn.                                            │
  337. │ do case Auswahl                                                            │
  338. │ Line:    9  >> OTHERWISE nach DO CASE                                      │
  339. │    otherwise                                                               │
  340. │ Line:    8     Struktur-Beginn.                                            │
  341. │ do case Auswahl                                                            │
  342. │ Line:   11  >> ENDCASE ohne CASE                                           │
  343. │ endcase                                                                    │
  344. │ Line:   14     Struktur-Beginn.                                            │
  345. │    If                                                                      │
  346. │ Line:   17  >> ELSE doppelt                                                │
  347. │     else                                                                   │
  348. │ Line:   14     Struktur-Beginn.                                            │
  349. │    If                                                                      │
  350. │ Line:   18  >> ELSE doppelt                                                │
  351. │   else                                                                     │
  352. │ Line:    7     Struktur-Beginn.                                            │
  353. │ do while                                                                   │
  354. │ Line:   21  >> ENDDO fehlt                                                 │
  355. │                                                                            │
  356. │Source filename: dbterr.prg       5       Struktur-Fehler erkannt !!!       │
  357. └────────────────────────────────────────────────────────────────────────────┘
  358.  
  359.      GBeispiel: Struktur-Analyse:H
  360.      ---------------------------
  361.  
  362.      Der  Struktur-Fehler  kann  somit  aufgrund  der Zeilen-Nr. sofort nach
  363.      Rückkehr in den Editor behoben werden.
  364.  
  365.      Die  Ausgabe  des  Fehlerprotokolls  kann  per  CTL-P  auf  den Drucker
  366.      geleitet oder per DOS-Umleitung > in eine Datei geschrieben werden.
  367.  
  368.      Weiter bietet DBT  die Möglichkeit die  Struktur-Blöcke oder das  ganze
  369.      Programm struktuiert aufbereitet auszugeben.
  370.  
  371.                                                                          4.
  372. ╔══════════════════════════════════════════════════════╦══VoG═════════════════╗
  373. ║ dbterr.prg     1990.07.22 - 19:47                    ║   Datum: 1990.07.22  ║
  374. ╟──────────────────────────────────────────────────────╢   Zeit :   16:47:47  ║
  375. ║ dbterr.prg                                           ║                      ║
  376. ╚══════════════════════════════════════════════════════╩══D-B-T══(C)-VoG═1989═╝
  377.                                          dbterr.prg              Seite:      1
  378.    1  ***********************************************************************
  379.    2  * Programm    : DBTERR.PRG
  380.    3  * Titel       : DBT-Test- und Demo-Programm
  381.    4  * Version     : 2.1
  382.    5  *             : ein paar alltägliche Probleme
  383.    6  ***********************************************************************
  384.    7  ┌─do while
  385.    8  │ ┌─do case Auswahl
  386.    9  │ ├─otherwise
  387. >> OTHERWISE nach DO CASE
  388.   10  ┼─│─exit
  389.   11  │ └─endcase
  390. >> ENDCASE ohne CASE
  391.   12  │ ┌─do while
  392.   13  │ │ ┌─if
  393.   14  │ │ │ ┌─If
  394.   15  │ │ │ ├─else
  395.   16  │ │ │ │ lf
  396.   17  │ │ │ ├─else
  397. >> ELSE doppelt
  398.   18  │ │ │ ├─else
  399. >> ELSE doppelt
  400.   19  │ │ │ └─endif
  401.   20  │ │ └─endif
  402.   21  │ └─enddo
  403. >> ENDDO fehlt
  404.  
  405. └────────────────────────────────────────────────────────────────────────────┘
  406.      GBeispiel: Struktur-Analyse mit struktuierter Ausgabe:H
  407.      -----------------------------------------------------
  408.  
  409. ┌────────────────────────────────────────────────────────────────────────────┐
  410. │>> THEN / ELSE / ENDIF ohne IF   >> CASE / OTHERWISE / ENDCASE ohne DO CASE │
  411. │>> THEN doppelt                  >> CASE nach OTHERWISE                     │
  412. │>> THEN nach ELSE                >> CASE nach ENDCASE                       │
  413. │>> THEN nach ENDIF               >> OTHERWISE nach DO CASE                  │
  414. │>> ELSE nach IF                  >> OTHERWISE doppelt                       │
  415. │>> ELSE doppelt                  >> OTHERWISE nach ENDCASE                  │
  416. │>> ELSE nach ENDIF               >> ENDCASE ohne CASE                       │
  417. │>> ENDIF ohne THEN               >> ENDCASE doppelt                         │
  418. │>> ENDIF fehlt                   >> ENDCASE fehlt                           │
  419. │>> ENDDO ohne DO WHILE                                                      │
  420. │>> LOOP / EXIT ohne DO WHILE                                                │
  421. │>> ENDDO doppelt                                                            │
  422. │>> ENDDO fehlt                                                              │
  423. │                                                                            │
  424. │>> Mehr als 128 Struktur-Ebenen eroeffnet.                                  │
  425. │>> PROCEDURE und noch offnene Strukturen                                    │
  426. │>> PARAMETER und noch offnene Strukturen                                    │
  427. │>> FUNCTION/RETURN  und noch offnene Strukturen                             │
  428. │>> RETURN und noch offnene Strukturen                                       │
  429. │>> Ende Programm und noch offnene Strukturen                                │
  430. └────────────────────────────────────────────────────────────────────────────┘
  431.      GMeldungen des Struktur-Tester DBT: H
  432.      ----------------------------------
  433.  
  434.      Der erfolgreiche Test wird mit:G   K e i n e  Struktur-Fehler erkannt !!H
  435.      gemeldet.
  436.  
  437.  
  438.  
  439.                                                                          5.
  440.      EGDBT als Struktur-Tester.
  441.      EG------------------------H
  442.  
  443.      DBT wird  mit dem  Namen des  zu testenden  Programms aufgerufen.  Über
  444.      Zusatz-Parameter, die mit einem / beginnen und hinter dem Programmnamen
  445.      stehen müssen, können gesonderte Programmfunktionen ausgewählt  werden.
  446.      Hinter den Parametern können weiter die DOS-Umleitungs- Symbole  <name,
  447.      >name verwendet werden.
  448.  
  449.      Format des Aufrufes:
  450.  
  451.      GDBT (name.ext) (/parameter) (<name >name)H
  452.  
  453.  
  454.        Gname.extH    Der Name des Programms wird vollqualifiziert mit .ext
  455.                    angegeben.
  456.                    Wildcard's (* oder ?) im Namen führt zum Testen aller
  457.                    zutreffenden Programme.
  458.  
  459.        G/parameterH  über Parameter kann der Struktur-Test beeinflußt werden.
  460.  
  461.  
  462.            GRH     = der RETURN innerhalb von Strukturen führt zur Fehler-
  463.                    meldung: RETURN und noch  offene Strukturen.  Mit R  wird
  464.                    der Test auf offene Strukturen bei RETURN  ausgeschaltet.
  465.                    Unabhängig von RETURN wird immer bei Programm-Ende, neuer
  466.                    Funktion  und  neuer  Procedure  immer  ein Test auf noch
  467.                    offene Strukturen durchgeführt.
  468.  
  469.            GPH     = Struktuierte Ausgabe des Programms.
  470.                    Die struktuierte Ausgabe des Programms dient dem besseren
  471.                    und    schnelleren    Erkennen    von    Strukturen   und
  472.                    Struktur-Ebenen.  Logische Fehler können somit  erheblich
  473.                    schneller gefunden  werden.  Die  Ausgabe kann  per CTL-P
  474.                    oder >filename umgeleitet werden.
  475.  
  476.                N = Ausgabe ohne Satznummer.
  477.  
  478.            GCH     = Ausgabe nur der Struktur-Blöcke.
  479.                    Die Ausgabe nur der Struktur-Anweisungen macht ein großes
  480.                    Programm  mit  vielen  logischen  Entscheidungen zu einem
  481.                    kleinen übersichtlichen Struktogramm.
  482.  
  483.            GEH     = Ausgabe der Zeit-Statistik.
  484.                    die Zeitstatistik beinhaltet 3 Messpunkte.
  485.                    1. Beginn Laden des Programms.
  486.                    2. Beginn Struktur-Test
  487.                    3. Ende   Struktur-Test
  488.  
  489.                    Die Zeitstatistik weist alle 3 Messzeiten in der Form
  490.                    Stunde/Minuten/Sekunde/1/100-Sekunde aus.
  491.                    Die 2.Zeile weist die jeweiligen Differenzen zwischen
  492.                    1 + 2 und 2 + 3 aus.
  493.  
  494.            GTH     = T ist der 1. Parameter des Autoren gewesen, weil er
  495.                    nicht glaubte, daß sein Programm wirklich so schnell ist.
  496.  
  497.  
  498.                                                                          6.
  499.      EGDBT als Dokumentations-System.
  500.      EG------------------------------H
  501.  
  502.      DBT  ist,  aufgrund  der  hohen  Verarbeitungsgeschwindigkeit, zu einem
  503.      Programm-Dokumentations-System erweitert worden.
  504.  
  505.      Über Parameter beim Aufruf von DBT können verschiedene  Dokumentations-
  506.      Funktionen aufgerufen werden.
  507.  
  508.      1. Test und Dokumentation eines gesamten Programm-Systems.
  509.         Beim Aufruf wird nur der Name des Haupt-Programmes angegeben.
  510.  
  511.      2. Cross-reference über die in einem Programm verwendeten Namen
  512.         mit Ausgabe in sortierter Reihenfolge.
  513.  
  514.      3. Cross-reference über alle Programme, DO-Aufrufe und Proceduren.
  515.         sowohl vorwärts:
  516.                in Programm abc wird per DO die Procedure xyz aufgerufen.
  517.         als auch rückwärts:
  518.                Procedure xyz wird aus Programm abc per DO aufgerufen.
  519.  
  520.      4. Cross-reference über alle Datenbank-Aufruf und SET INDEX-Aufrufe.
  521.  
  522.      5. Graphische Aufbereitung der Programm-Struktur über die DO-Aufrufe.
  523.  
  524.      6. Ausgabe der Datenbank-Definitionen.
  525.  
  526.  
  527.      Format des Aufrufes:
  528.  
  529.      GDBT (name.ext) (/parameter) (<name >name)H
  530.  
  531.  
  532.        Gname.extH    Vollqualifizierter Programm-Name vom Hauptprogramm
  533.                        des zu dokumentierenden Programm-Systems.
  534.  
  535.        G/parameterH  über Parameter kann die Dokumentation beeinflußt werden.
  536.  
  537.            GDH     = automatisches Dokumentieren aller Programme, die über
  538.                    DO, SET KEY oder SET PROCEDURE TO aufgerufen werden.
  539.  
  540.            GFH     = Ausgabe der XREF über die im Programm verwendeten
  541.                    Namen. Über die DBTELIM.TAB können Namen von der XREF
  542.                    ausgeschlossen werden. Hauptsächlich sollten die dBase-
  543.                    Befehle und Anweisungen eliminiert werden.
  544.  
  545.                L = ausschalten des Vergleiches: Upper = Lower
  546.  
  547.                U = die Feld-XREF erfolgt unsortiert.
  548.  
  549.            GBH     = Ausgabe der XREF über die im Programm-System verwendeten
  550.                    USE databases INDEX. Gleichzeitig werden auch in der
  551.                    Programm-XREF die SET INDEX TO  mitgezeichent
  552.                    Bei der Feld-XREF werden zusätzlich auch die Datenbank-
  553.                    Definitionen ausgedruckt.
  554.  
  555.            GOH     = Ausgabe der gesamten Dokumentation in eine File.
  556.                    Der Filename der Dokumetations-Datei wird angefordert.
  557.            GO=H    = Die Ausgabedatei wird mit name.DBT gebildet.
  558.  
  559.            GXH     = Ausgabe nur der XREF / ZREF / GREF.
  560.  
  561.            GGH     = Ausgabe nur der GREF.
  562.  
  563.            GAH     = Ausgabe der Source struktuiert.
  564.                        Das Programm wird vorher unter name.SAV gesichert.
  565.                                                                         7.
  566. EGErläuterungen zu den Ausgaben:H
  567. EG------------------------------H
  568. :%&<<Ç %&;;Ç<Z%&>>Ç @ @ 
  569.  
  570. EGProgramm-Kopf:H
  571.  
  572.   Programm-      Programm                               Datum der Dokumentation
  573.   < Name         < Datum      < Zeit                    Zeit      <
  574. ╔══════════════════════════════════════════════════════╦══VoG═════════════════╗
  575. ║ STADAANZ.PRG   1980.01.01 - 04:34                    ║   Datum: 1990.08.06  ║
  576. ╟──────────────────────────────────────────────────────╢   Zeit :   16:01:13  ║
  577. ║ STADAANZ.PRG                                         ║                      ║
  578. ╚══════════════════════════════════════════════════════╩══D-B-T══(C)-VoG═1989═╝
  579.   > Haupt-
  580.   Programm
  581.  
  582.  
  583. EGSortierte Feld-XREF:H
  584.  
  585.       < Feldname         :   < Zeilen-Nr., in der der Name auftritt
  586.  
  587.       FILE               :   45,  52,  59,  66
  588.  
  589.       Die Feld-XREF ist alpha-numerisch aufsteigend sortiert, wobei die
  590.       kleinen und großen Buchstaben gleich betrachtet werden.
  591.  
  592.  
  593. EGCross-reference: Vorwärts-VerweiseH
  594.  
  595.              < Aufruf-Parameter
  596. ╔══════════════════════════════════════════════════════╦══VoG═════════════════╗
  597. ║ HAUPT.PRG /drfbeo                                    ║   Datum: 1990.08.06  ║
  598. ╟──────────────────────────────────────────────────────╢   Zeit :   16:02:13  ║
  599. ║                   X-R-E-F                            ║                      ║
  600. ╚══════════════════════════════════════════════════════╩══D-B-T══(C)-VoG═1989═╝
  601.                                                                  Seite:      1
  602.   XREF zeigt die
  603.     1. im Programm definierten Procedure (PR) und Function (FC)
  604.     2. vom Programm auszuführenden DO- und SET KEY (SK)-Aufrufe mit
  605.            Name und (in)-Programm-Name, zu dem verzweigt wird.
  606.  
  607.                                                             Kein Fehler : N
  608.                                                                  Fehler : Y
  609.                                                            Datei-Fehler : E
  610. ┌────────────┬──────────┬──────┬────┬────────────┬──────────────┬──────┬─────┐
  611.  Programm      Datum      Zeit  Typ  Name in / aus Programm      Zeilen Error
  612. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  613.  HAUPT        1980.01.01 07:28  PG                                 130    N
  614.                                           Anzahl Zeilen im Programm  >    >
  615.                                           Keine Strukturfehler im Programm>
  616.  
  617.                                   DO   STADAVER     STADAVER        92
  618.                     DO-Name ist gleich (in)-Programmname   >
  619.                                           Aufruf erfolgt in Zeile    >
  620.  
  621.                                   DO   STADAANZ     STADAANZ        99
  622.                                   DO   LAGER                       120    E
  623.                                        Programm LAGER.PRG nicht gefunden  >
  624.  
  625. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  626.  ERFASS       1987.10.25 14:11  PG                                 433    N
  627.                                   DB   ARTIKEL                      13
  628.         use ARTIKEL index ARTIKEL <>
  629.                                   SX   ARTIKEL                      13
  630. └────────────┴──────────┴──────┴────┴────────────┴──────────────┴──────┴─────┘
  631. %
  632.                                                                          8.
  633.  
  634. EGCross-reference: Rückwärts-VerweiseH
  635. :%&<<Ç %&;;Ç<Z%&>>Ç @ @ 
  636.  
  637. ╔══════════════════════════════════════════════════════╦══VoG═════════════════╗
  638. ║ HAUPT.PRG /drfbeo                                    ║   Datum: 1990.08.06  ║
  639. ╟──────────────────────────────────────────────────────╢   Zeit :   16:02:14  ║
  640. ║                   Z-R-E-F                            ║                      ║
  641. ╚══════════════════════════════════════════════════════╩══D-B-T══(C)-VoG═1989═╝
  642.                                                                  Seite:      1
  643.   ZREF zeigt,
  644.        von welchem (aus)-Programm
  645.            das Programm, die Procedure (PR), die Function (FC)
  646.            mit DO- oder SET KEY (SK)-Aufruf und Namen
  647.        aufgerufen wird.
  648.  
  649. ┌────────────┬──────────┬──────┬────┬────────────┬──────────────┬──────┬─────┐
  650.  Programm      Datum      Zeit  Typ  Name in / aus Programm      Zeilen Error
  651. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  652.  STADAVER     1980.01.01 01:46  PG                                  78    N
  653.                                   DO   STADAVER     HAUPT           92
  654.  >                                >    >            >                >
  655.  Das Programm STADAVER wird per   DO   STADAVER     aus dem Programm
  656.                                                     HAUPT in Zeile  92
  657.  aufgerufen.
  658. └────────────┴──────────┴──────┴────┴────────────┴──────────────┴──────┴─────┘
  659.  
  660.  
  661. EGCross-reference: Datenbanken:H
  662.  
  663. ╔══════════════════════════════════════════════════════╦══VoG═════════════════╗
  664. ║ HAUPT.PRG /drfbeo                                    ║   Datum: 1990.08.06  ║
  665. ╟──────────────────────────────────────────────────────╢   Zeit :   16:02:15  ║
  666. ║                   D-R-E-F                            ║                      ║
  667. ╚══════════════════════════════════════════════════════╩══D-B-T══(C)-VoG═1989═╝
  668.                                                                  Seite:      1
  669. ┌────────────┬──────────┬──────┬────┬────────────┬──────────────┬──────┬─────┐
  670.  Datenbank                      Typ  Name   in     Programm      Zeile
  671. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  672.  OFFPOS                         DB     OFFPOS       OFFPOS          15
  673.                                 DB     OFFPOS       OPOMOD          13
  674.                                 DB     OFFPOS       AKTUAL          84
  675.                                 DB     OFFPOS       AKTUAL          91
  676.  >                                                  >               >
  677.  die Datenbank OFFPOS wird               im Programm        in Zeile
  678.  aufgerufen.
  679. └────────────┴──────────┴──────┴────┴────────────┴──────────────┴──────┴─────┘
  680.  
  681.  
  682. EGGraphische Darstellung:H
  683.  
  684. ╔══════════════════════════════════════════════════════╦══VoG═════════════════╗
  685. ║ HAUPT.PRG /drfbeo                                    ║   Datum: 1990.08.06  ║
  686. ╟──────────────────────────────────────────────────────╢   Zeit :   16:02:15  ║
  687. ║                   G-R-E-F                            ║                      ║
  688. ╚══════════════════════════════════════════════════════╩══D-B-T══(C)-VoG═1989═╝
  689.                                                                  Seite:      1
  690. HAUPT ruft  <
  691.             <
  692.             <  STADAVER ruft
  693.             <              <
  694. HAUPT───────┬──STADAVER────┬──KUNMOD
  695.             │              ├──ARTMOD
  696.             │              └──OPOMOD
  697.             ├──OFFPOS
  698.             ├  LAGER  ;; LAGER.PRG wurde nicht gefunden (file-error)
  699.             └──SICHERN
  700. %
  701.                                                                          9.
  702.      EGTest- und Dokumentations-Lauf
  703.      EG-----------------------------H
  704.  
  705.      Ausgaben  aus  einem  Test-  und  Dokumentations-Lauf  Programm-System:
  706.      Auftrags-Verwaltung von Herrn Jürgen Pilz.
  707.  
  708.      Aufruf: dbt HAUPT.PRG /derfboa
  709.                             d = DO und Funktionen nachziehen
  710.                             e = Time-Statistik
  711.                             r = RETURN ohne Test auf offene Strukturen
  712.                             f = mit Feld-cross-reference
  713.                             b = mit Daten-Bank-cross-reference
  714.                             o = schreiben Dokumentation in Datei
  715.                                 o= schreibt in name.DBT
  716.                             a = Ausgabe der struktuierten Source
  717.  
  718.  
  719.        Im Programm-System Auftrags-Verwaltung wurden
  720.  
  721.         20 Programm mit 2522 Lines in  67 Sekunden
  722.  
  723.       zu einer vollständigen Dokumentation aufbereitet.
  724.  
  725.  
  726.                                                                           10.
  727. EGSYSLOG mit Zeit-Statistik auf Terminal:H
  728. EG---------------------------------------H
  729.  
  730.   Name der DBTELIM.TAB oder <RETURN> : \user\asm\dbtelim.tab
  731.   Path für DBF-File(s) :
  732.   EXT (.DBF) für DBF-File(s) :
  733.   Filename für Out-File : haupt.dbt
  734.   Source filename: HAUPT.PRG    K e i n e Struktur-Fehler erkannt !
  735.   load/ run/ endtime hh:mm:ss.n/100 = 16:01:07.48  / 16:01:07.75  / 16:01:09.46
  736.   loadtime / runtime hh:mm:ss.n/100 = 00:00:00.27  / 00:00:01.71  / Lines   130
  737.  
  738.   Source filename: STADAVER.PRG   K e i n e Struktur-Fehler erkannt !
  739.   load/ run/ endtime hh:mm:ss.n/100 = 16:01:10.72  / 16:01:11.05  / 16:01:11.87
  740.   loadtime / runtime hh:mm:ss.n/100 = 00:00:00.33  / 00:00:00.82  / Lines    78
  741.  
  742.   Source filename: STADAANZ.PRG   K e i n e Struktur-Fehler erkannt !
  743.   load/ run/ endtime hh:mm:ss.n/100 = 16:01:12.81  / 16:01:13.03  / 16:01:13.80
  744.   loadtime / runtime hh:mm:ss.n/100 = 00:00:00.22  / 00:00:00.77  / Lines    74
  745.  
  746.   Source filename: FAKTURA.PRG   K e i n e Struktur-Fehler erkannt !
  747.   load/ run/ endtime hh:mm:ss.n/100 = 16:01:14.73  / 16:01:15.22  / 16:01:17.09
  748.   loadtime / runtime hh:mm:ss.n/100 = 00:00:00.49  / 00:00:01.87  / Lines    99
  749.  
  750.   Source filename: OFFPOS.PRG   K e i n e Struktur-Fehler erkannt !
  751.   load/ run/ endtime hh:mm:ss.n/100 = 16:01:19.51  / 16:01:19.73  / 16:01:20.00
  752.   loadtime / runtime hh:mm:ss.n/100 = 00:00:00.22  / 00:00:00.27  / Lines    28
  753.  
  754.   Source filename: LAGER.PRG > File problem.
  755.   load/ run/ endtime hh:mm:ss.n/100 = 16:01:20.99  / 16:01:21.10  / 16:01:21.10
  756.   loadtime / runtime hh:mm:ss.n/100 = 00:00:00.11  / 00:00:00.00  / Lines     0
  757.  
  758.   Source filename: SICHERN.PRG   K e i n e Struktur-Fehler erkannt !
  759.   load/ run/ endtime hh:mm:ss.n/100 = 16:01:21.76  / 16:01:21.98  / 16:01:22.20
  760.   loadtime / runtime hh:mm:ss.n/100 = 00:00:00.22  / 00:00:00.22  / Lines    23
  761.  
  762.   Source filename: KUNMOD.PRG   K e i n e Struktur-Fehler erkannt !
  763.   load/ run/ endtime hh:mm:ss.n/100 = 16:01:23.02  / 16:01:23.30  / 16:01:25.93
  764.   loadtime / runtime hh:mm:ss.n/100 = 00:00:00.28  / 00:00:02.63  / Lines   207
  765.  
  766.   Source filename: ARTMOD.PRG   K e i n e Struktur-Fehler erkannt !
  767.   load/ run/ endtime hh:mm:ss.n/100 = 16:01:27.31  / 16:01:27.58  / 16:01:30.38
  768.   loadtime / runtime hh:mm:ss.n/100 = 00:00:00.27  / 00:00:02.80  / Lines   203
  769.  
  770.   Source filename: TEXMOD.PRG   K e i n e Struktur-Fehler erkannt !
  771.   load/ run/ endtime hh:mm:ss.n/100 = 16:01:31.87  / 16:01:32.09  / 16:01:34.12
  772.   loadtime / runtime hh:mm:ss.n/100 = 00:00:00.22  / 00:00:02.03  / Lines   147
  773.  
  774.   Source filename: PARMOD.PRG   K e i n e Struktur-Fehler erkannt !
  775.   load/ run/ endtime hh:mm:ss.n/100 = 16:01:35.16  / 16:01:35.38  / 16:01:36.81
  776.   loadtime / runtime hh:mm:ss.n/100 = 00:00:00.22  / 00:00:01.43  / Lines    83
  777.  
  778.   Source filename: OPOMOD.PRG   K e i n e Struktur-Fehler erkannt !
  779.   load/ run/ endtime hh:mm:ss.n/100 = 16:01:38.18  / 16:01:38.40  / 16:01:39.94
  780.   loadtime / runtime hh:mm:ss.n/100 = 00:00:00.22  / 00:00:01.54  / Lines   143
  781.  
  782.   Source filename: KUNANZ.PRG   K e i n e Struktur-Fehler erkannt !
  783.   load/ run/ endtime hh:mm:ss.n/100 = 16:01:41.04  / 16:01:41.42  / 16:01:43.07
  784.   loadtime / runtime hh:mm:ss.n/100 = 00:00:00.38  / 00:00:01.65  / Lines   156
  785.  
  786.   Source filename: ARTANZ.PRG   K e i n e Struktur-Fehler erkannt !
  787.   load/ run/ endtime hh:mm:ss.n/100 = 16:01:44.55  / 16:01:44.77  / 16:01:45.93
  788.   loadtime / runtime hh:mm:ss.n/100 = 00:00:00.22  / 00:00:01.16  / Lines   107
  789.  
  790.   Source filename: TEXANZ.PRG   K e i n e Struktur-Fehler erkannt !
  791.   load/ run/ endtime hh:mm:ss.n/100 = 16:01:46.97  / 16:01:47.24  / 16:01:48.29
  792.   loadtime / runtime hh:mm:ss.n/100 = 00:00:00.27  / 00:00:01.05  / Lines    98
  793.  
  794.   Source filename: PARANZ.PRG   K e i n e Struktur-Fehler erkannt !
  795.   load/ run/ endtime hh:mm:ss.n/100 = 16:01:49.39  / 16:01:49.77  / 16:01:50.21
  796.   loadtime / runtime hh:mm:ss.n/100 = 00:00:00.38  / 00:00:00.44  / Lines    55
  797.  
  798.   Source filename: ERFASS.PRG   K e i n e Struktur-Fehler erkannt !
  799.   load/ run/ endtime hh:mm:ss.n/100 = 16:01:51.09  / 16:01:51.31  / 16:01:56.75
  800.   loadtime / runtime hh:mm:ss.n/100 = 00:00:00.22  / 00:00:05.44  / Lines   433
  801.  
  802.   Source filename: DRUCK.PRG   K e i n e Struktur-Fehler erkannt !
  803.   load/ run/ endtime hh:mm:ss.n/100 = 16:01:59.11  / 16:01:59.60  / 16:02:04.66
  804.   loadtime / runtime hh:mm:ss.n/100 = 00:00:00.49  / 00:00:05.06  / Lines   289
  805.  
  806.   Source filename: AKTUAL.PRG   K e i n e Struktur-Fehler erkannt !
  807.   load/ run/ endtime hh:mm:ss.n/100 = 16:02:06.58  / 16:02:07.24  / 16:02:09.16
  808.   loadtime / runtime hh:mm:ss.n/100 = 00:00:00.66  / 00:00:01.92  / Lines   108
  809.  
  810.   Source filename: SUCHEN.PRG   K e i n e Struktur-Fehler erkannt !
  811.   load/ run/ endtime hh:mm:ss.n/100 = 16:02:11.19  / 16:02:11.58  / 16:02:12.13
  812.   loadtime / runtime hh:mm:ss.n/100 = 00:00:00.39  / 00:00:00.55  / Lines    67
  813.  
  814.  
  815.                                                                          11.
  816. EGStruktuierte Dokumentation mit Feld-cross-reference:H
  817. EG----------------------------------------------------H
  818.  
  819. ╔══════════════════════════════════════════════════════╦══VoG═════════════════╗
  820. ║ STADAANZ.PRG   1980.01.01 - 04:34                    ║   Datum: 1990.08.06  ║
  821. ╟──────────────────────────────────────────────────────╢   Zeit :   16:01:13  ║
  822. ║ STADAANZ.PRG                                         ║                      ║
  823. ╚══════════════════════════════════════════════════════╩══D-B-T══(C)-VoG═1989═╝
  824.  
  825.                                          STADAANZ.PRG            Seite:      1
  826.    1  * Programm.: STADAANZ.PRG
  827.    2  * Autor....: Jürgen Pilz
  828.    3  * Datum....: 28. Juli 1987
  829.    4  * Zweck....: Auswahlmenü zur Verwaltung der Stammdaten
  830.    5  *
  831.    6  * Variablendeklaration
  832.    7  *
  833.    8  PRIVATE wahl
  834.    9  *
  835.   10  * Aufbau Auswahlmenü
  836.   11  *
  837.   12  ┌─DO WHILE .T.
  838.   13  │ clear
  839.   14  │ @  1, 0 SAY "S T A M M D A T E N A N Z E I G E  - - -"
  840.   15  │ @  1,40 SAY "  A U S W A H L M E N Ü"
  841.   16  │ @  3, 0 SAY "========================================"
  842.   17  │ @  3,40 SAY "========================================"
  843.   18  │ @ 21, 0 SAY "========================================"
  844.   19  │ @ 21,40 SAY "========================================"
  845.   20  │ @  1,72 SAY datum
  846.   21  │ @  6,20 SAY "(A) Kundendaten"
  847.   22  │ @  8,20 SAY "(B) Artikeldaten"
  848.   23  │ @ 10,20 SAY "(C) Textdaten"
  849.   24  │ @ 12,20 SAY "(D) Parameterdaten"
  850.   25  │ @ 18,20 SAY "<RETURN> für vorheriges Menü"
  851.   26  │ @ 23,24 SAY "Bitte treffen Sie ihre Auswahl"
  852.   27  │ *
  853.   28  │ * Einlesen Auswahl und Aufrufen des entsprechenden Unterprogramms
  854.   29  │ *
  855.   30  │ wahl = ""
  856.   31  │ SET CONSOLE OFF
  857.   32  │ WAIT TO wahl
  858.   33  │ SET CONSOLE ON
  859.   34  │ ┌─DO CASE
  860.   35  │ │ *
  861.   36  │ │ * Fall : Rücksprung auf Hauptmenü
  862.   37  │ │ *
  863.   38  │ ├─CASE LEN(wahl) = 0
  864.   39  │ │ CLEAR
  865.   40  ┼─│─RETURN
  866.   41  │ │ *
  867.   42  │ │ * Fall : Test und Sprung auf Unterprogramm Kundendatei
  868.   43  │ │ *
  869.   44  │ ├─CASE UPPER(wahl) = "A"
  870.   45  │ │ ┌─IF FILE ("kunanz.prg")
  871.   46 »│ │ │ DO kunanz
  872.   47  │ │ └─ENDIF
  873.   48  │ │ *
  874.   49  │ │ * Fall : Test und Sprung auf Unterprogramm Artikeldatei
  875.   50  │ │ *
  876.   51  │ ├─CASE UPPER(wahl) = "B"
  877.   52  │ │ ┌─IF FILE ("artanz.prg")
  878.   53 »│ │ │ DO artanz
  879.   54  │ │ └─ENDIF
  880.       │ │
  881.                                                                          12.
  882.                                          STADAANZ.PRG            Seite:      2
  883.       │ │
  884.   55  │ │ *
  885.   56  │ │ * Fall : Test und Sprung auf Unterprogramm Textdatei
  886.   57  │ │ *
  887.   58  │ ├─CASE UPPER(wahl) = "C"
  888.   59  │ │ ┌─IF FILE ("texanz.prg")
  889.   60 »│ │ │ DO texanz
  890.   61  │ │ └─ENDIF
  891.   62  │ │ *
  892.   63  │ │ * Fall : Test und Sprung auf Unterprogramm Parameterdatei
  893.   64  │ │ *
  894.   65  │ ├─CASE UPPER(wahl) = "D"
  895.   66  │ │ ┌─IF FILE ("paranz.prg")
  896.   67 »│ │ │ DO paranz
  897.   68  │ │ └─ENDIF
  898.   69  │ │ *
  899.   70  │ │ * Fall : Abfangen von Fehleingaben
  900.   71  │ ├─OTHERWISE
  901.   72  │─│─LOOP
  902.   73  │ └─ENDCASE
  903.   74  └─ENDDO
  904.  
  905.  
  906.  
  907.       .T.                :   12
  908.       artanz             :   53
  909.       CONSOLE            :   31,  33
  910.       datum              :   20
  911.       FILE               :   45,  52,  59,  66
  912.       kunanz             :   46
  913.       LEN                :   38
  914.       LOOP               :   72
  915.       paranz             :   67
  916.       PRIVATE            :    8
  917.       RETURN             :   40
  918.       texanz             :   60
  919.       UPPER              :   44,  51,  58,  65
  920.       wahl               :    8,  30,  32,  38,  44,  51,  58,  65
  921.       WAIT               :   32
  922.  
  923.  
  924.                                                                          13.
  925. EGCross-reference: Vorwärts-VerweiseH
  926. EG----------------------------------H
  927.  
  928. ╔══════════════════════════════════════════════════════╦══VoG═════════════════╗
  929. ║ HAUPT.PRG /drfbeo                                    ║   Datum: 1990.08.06  ║
  930. ╟──────────────────────────────────────────────────────╢   Zeit :   16:02:13  ║
  931. ║                   X-R-E-F                            ║                      ║
  932. ╚══════════════════════════════════════════════════════╩══D-B-T══(C)-VoG═1989═╝
  933.  
  934.                                                                  Seite:      1
  935. ┌────────────┬──────────┬──────┬────┬────────────┬──────────────┬──────┬─────┐
  936.  Programm      Datum      Zeit  Typ  Name in / aus Programm      Zeilen Error
  937. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  938.  HAUPT        1980.01.01 07:28  PG                                 130    N
  939.                                   DO   STADAVER     STADAVER        92
  940.                                   DO   STADAANZ     STADAANZ        99
  941.                                   DO   FAKTURA      FAKTURA        106
  942.                                   DO   OFFPOS       OFFPOS         113
  943.                                   DO   LAGER                       120    E
  944.                                   DO   SICHERN      SICHERN        127
  945. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  946.  STADAVER     1980.01.01 01:46  PG                                  78    N
  947.                                   DO   KUNMOD       KUNMOD          47
  948.                                   DO   ARTMOD       ARTMOD          54
  949.                                   DO   TEXMOD       TEXMOD          61
  950.                                   DO   PARMOD       PARMOD          68
  951.                                   DO   OPOMOD       OPOMOD          75
  952. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  953.  STADAANZ     1980.01.01 04:34  PG                                  74    N
  954.                                   DO   KUNANZ       KUNANZ          46
  955.                                   DO   ARTANZ       ARTANZ          53
  956.                                   DO   TEXANZ       TEXANZ          60
  957.                                   DO   PARANZ       PARANZ          67
  958. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  959.  FAKTURA      1980.01.01 00:49  PG                                  99    N
  960.                                   DO   ERFASS       ERFASS          70
  961.                                   DO   DRUCK        DRUCK           74
  962.                                   DO   AKTUAL       AKTUAL          78
  963. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  964.  OFFPOS       1980.01.01 01:14  PG                                  28    N
  965.                                   DB   OFFPOS                       15
  966.                                   SX   OFFPOS                       15
  967. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  968.  SICHERN      1980.01.01 01:16  PG                                  23    N
  969. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  970.  KUNMOD       1980.01.01 01:52  PG                                 207    N
  971.                                   DB   KUNDEN                       15
  972.                                   SX   KUNDEN                       22
  973.                                   SX   KUNDEN2                      22
  974. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  975.  ARTMOD       1980.01.01 00:09  PG                                 203    N
  976.                                   DB   ARTIKEL                      15
  977.                                   SX   ARTIKEL                      15
  978.                                   DB   ARTIKEL                      17
  979.                                   SX   ARTIKEL                      19
  980. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  981.  TEXMOD       1980.01.01 03:59  PG                                 147    N
  982.                                   DB   TEXTE                        13
  983.                                   SX   TEXTE                        13
  984.                                   DB   TEXTE                        15
  985.                                   SX   TEXTE                        17
  986. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  987.  PARMOD       1980.01.01 02:59  PG                                  83    N
  988.                                   DB   PARAM                        13
  989. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  990.                                                                         14.
  991.  
  992.                                                                  Seite:      2
  993. ┌────────────┬──────────┬──────┬────┬────────────┬──────────────┬──────┬─────┐
  994.  Programm      Datum      Zeit  Typ  Name in / aus Programm      Zeilen Error
  995. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  996.  OPOMOD       1980.01.01 00:28  PG                                 143    N
  997.                                   DB   OFFPOS                       13
  998.                                   SX   OFFPOS                       52
  999.                                   SX   OFFPOS1                      52
  1000.                                   SX   OFFPOS1                     100
  1001.                                   SX   OFFPOS                      100
  1002. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  1003.  KUNANZ       1980.01.01 01:57  PG                                 156    N
  1004.                                   DB   KUNDEN                       13
  1005.                                   DB   KUNDEN                       21
  1006.                                   SX   KUNDEN                       21
  1007.                                   SX   KUNDEN2                      21
  1008.                                   SX   KUNDEN2                     102
  1009.                                   SX   KUNDEN                      102
  1010.                                   SX   KUNDEN                      133
  1011.                                   SX   KUNDEN2                     133
  1012. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  1013.  ARTANZ       1980.01.01 00:09  PG                                 107    N
  1014.                                   DB   ARTIKEL                      18
  1015.                                   SX   ARTIKEL                      18
  1016. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  1017.  TEXANZ       1980.01.01 02:45  PG                                  98    N
  1018.                                   DB   TEXTE                        19
  1019.                                   SX   TEXTE                        19
  1020. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  1021.  PARANZ       1980.01.01 02:08  PG                                  55    N
  1022.                                   DB   PARAM                         8
  1023.                                   DB   PARAM                        18
  1024. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  1025.  ERFASS       1987.10.25 14:11  PG                                 433    N
  1026.                                   DB   ARTIKEL                      13
  1027.                                   SX   ARTIKEL                      13
  1028.                                   DB   KUNDEN                       15
  1029.                                   SX   KUNDEN                       15
  1030.                                   SX   KUNDEN2                      15
  1031.                                   DB   TEXTE                        17
  1032.                                   SX   TEXTE                        17
  1033.                                   DO   SUCHEN       SUCHEN         191
  1034.                                   DO   SUCHEN       SUCHEN         213
  1035.                                   DO   SUCHEN       SUCHEN         226
  1036.                                   DO   SUCHEN       SUCHEN         239
  1037.                                   DO   SUCHEN       SUCHEN         252
  1038.                                   DO   SUCHEN       SUCHEN         265
  1039.                                   DO   SUCHEN       SUCHEN         278
  1040.                                   DO   SUCHEN       SUCHEN         291
  1041.                                   DO   SUCHEN       SUCHEN         304
  1042.                                   DO   SUCHEN       SUCHEN         317
  1043. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  1044.  DRUCK        1980.01.01 00:48  PG                                 289    N
  1045.                                   DB   PARAM                        13
  1046.                                   DB   TEXTE                       246
  1047.                                   SX   TEXTE                       246
  1048. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  1049.                                                                          15.
  1050.  
  1051.                                                                  Seite:      3
  1052. ┌────────────┬──────────┬──────┬────┬────────────┬──────────────┬──────┬─────┐
  1053.  Programm      Datum      Zeit  Typ  Name in / aus Programm      Zeilen Error
  1054. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  1055.  AKTUAL       1980.01.01 01:03  PG                                 108    N
  1056.                                   DB   KUNDEN                       14
  1057.                                   SX   KUNDEN                       14
  1058.                                   SX   KUNDEN2                      14
  1059.                                   DB   ARTIKEL                      23
  1060.                                   SX   ARTIKEL                      23
  1061.                                   DB   PARAM                        78
  1062.                                   DB   OFFPOS                       84
  1063.                                   DB   OFFPOS                       91
  1064.                                   SX   OFFPOS                       91
  1065.                                   SX   OFFPOS1                      91
  1066. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  1067.  SUCHEN       1987.10.25 20:53  PG                                  67    N
  1068.                                   DB   ARTIKEL                      12
  1069.                                   SX   ARTIKEL                      12
  1070. └────────────┴──────────┴──────┴────┴────────────┴──────────────┴──────┴─────┘
  1071.                                                                          16.
  1072. EGCross-reference: Rückwärts-VerweiseH
  1073. EG-----------------------------------H
  1074.  
  1075. ╔══════════════════════════════════════════════════════╦══VoG═════════════════╗
  1076. ║ HAUPT.PRG /drfbeo                                    ║   Datum: 1990.08.06  ║
  1077. ╟──────────────────────────────────────────────────────╢   Zeit :   16:02:14  ║
  1078. ║                   Z-R-E-F                            ║                      ║
  1079. ╚══════════════════════════════════════════════════════╩══D-B-T══(C)-VoG═1989═╝
  1080.  
  1081.                                                                  Seite:      1
  1082. ┌────────────┬──────────┬──────┬────┬────────────┬──────────────┬──────┬─────┐
  1083.  Programm      Datum      Zeit  Typ  Name in / aus Programm      Zeilen Error
  1084. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  1085.  HAUPT        1980.01.01 07:28  PG                                 130    N
  1086. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  1087.  STADAVER     1980.01.01 01:46  PG                                  78    N
  1088.                                   DO   STADAVER     HAUPT           92
  1089. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  1090.  STADAANZ     1980.01.01 04:34  PG                                  74    N
  1091.                                   DO   STADAANZ     HAUPT           99
  1092. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  1093.  FAKTURA      1980.01.01 00:49  PG                                  99    N
  1094.                                   DO   FAKTURA      HAUPT          106
  1095. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  1096.  OFFPOS       1980.01.01 01:14  PG                                  28    N
  1097.                                   DO   OFFPOS       HAUPT          113
  1098. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  1099.  SICHERN      1980.01.01 01:16  PG                                  23    N
  1100.                                   DO   SICHERN      HAUPT          127
  1101. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  1102.  KUNMOD       1980.01.01 01:52  PG                                 207    N
  1103.                                   DO   KUNMOD       STADAVER        47
  1104. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  1105.  ARTMOD       1980.01.01 00:09  PG                                 203    N
  1106.                                   DO   ARTMOD       STADAVER        54
  1107. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  1108.  TEXMOD       1980.01.01 03:59  PG                                 147    N
  1109.                                   DO   TEXMOD       STADAVER        61
  1110. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  1111.  PARMOD       1980.01.01 02:59  PG                                  83    N
  1112.                                   DO   PARMOD       STADAVER        68
  1113. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  1114.  OPOMOD       1980.01.01 00:28  PG                                 143    N
  1115.                                   DO   OPOMOD       STADAVER        75
  1116. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  1117.  KUNANZ       1980.01.01 01:57  PG                                 156    N
  1118.                                   DO   KUNANZ       STADAANZ        46
  1119. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  1120.  ARTANZ       1980.01.01 00:09  PG                                 107    N
  1121.                                   DO   ARTANZ       STADAANZ        53
  1122. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  1123.  TEXANZ       1980.01.01 02:45  PG                                  98    N
  1124.                                   DO   TEXANZ       STADAANZ        60
  1125. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  1126.  PARANZ       1980.01.01 02:08  PG                                  55    N
  1127.                                   DO   PARANZ       STADAANZ        67
  1128. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  1129.  ERFASS       1987.10.25 14:11  PG                                 433    N
  1130.                                   DO   ERFASS       FAKTURA         70
  1131. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  1132.  DRUCK        1980.01.01 00:48  PG                                 289    N
  1133.                                   DO   DRUCK        FAKTURA         74
  1134. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  1135.  AKTUAL       1980.01.01 01:03  PG                                 108    N
  1136.                                   DO   AKTUAL       FAKTURA         78
  1137. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  1138.                                                                          17.
  1139.  
  1140.                                                                  Seite:      2
  1141. ┌────────────┬──────────┬──────┬────┬────────────┬──────────────┬──────┬─────┐
  1142.  Programm      Datum      Zeit  Typ  Name in / aus Programm      Zeilen Error
  1143. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  1144.  SUCHEN       1987.10.25 20:53  PG                                  67    N
  1145.                                   DO   SUCHEN       ERFASS         191
  1146.                                   DO   SUCHEN       ERFASS         213
  1147.                                   DO   SUCHEN       ERFASS         226
  1148.                                   DO   SUCHEN       ERFASS         239
  1149.                                   DO   SUCHEN       ERFASS         252
  1150.                                   DO   SUCHEN       ERFASS         265
  1151.                                   DO   SUCHEN       ERFASS         278
  1152.                                   DO   SUCHEN       ERFASS         291
  1153.                                   DO   SUCHEN       ERFASS         304
  1154.                                   DO   SUCHEN       ERFASS         317
  1155. └────────────┴──────────┴──────┴────┴────────────┴──────────────┴──────┴─────┘
  1156.  
  1157.  
  1158.  
  1159.  
  1160. EGCross-reference: DatenbankenH
  1161. EG----------------------------H
  1162.  
  1163. ╔══════════════════════════════════════════════════════╦══VoG═════════════════╗
  1164. ║ HAUPT.PRG /drfbeo                                    ║   Datum: 1990.08.06  ║
  1165. ╟──────────────────────────────────────────────────────╢   Zeit :   16:02:15  ║
  1166. ║                   D-R-E-F                            ║                      ║
  1167. ╚══════════════════════════════════════════════════════╩══D-B-T══(C)-VoG═1989═╝
  1168.  
  1169.                                                                  Seite:      1
  1170. ┌────────────┬──────────┬──────┬────┬────────────┬──────────────┬──────┬─────┐
  1171.  Datenbank                      Typ  Name   in     Programm      Zeile
  1172. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  1173.  OFFPOS                         DB     OFFPOS       OFFPOS          15
  1174.                                 DB     OFFPOS       OPOMOD          13
  1175.                                 DB     OFFPOS       AKTUAL          84
  1176.                                 DB     OFFPOS       AKTUAL          91
  1177. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  1178.  KUNDEN                         DB     KUNDEN       KUNMOD          15
  1179.                                 DB     KUNDEN       KUNANZ          13
  1180.                                 DB     KUNDEN       KUNANZ          21
  1181.                                 DB     KUNDEN       ERFASS          15
  1182.                                 DB     KUNDEN       AKTUAL          14
  1183. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  1184.  ARTIKEL                        DB     ARTIKEL      ARTMOD          15
  1185.                                 DB     ARTIKEL      ARTMOD          17
  1186.                                 DB     ARTIKEL      ARTANZ          18
  1187.                                 DB     ARTIKEL      ERFASS          13
  1188.                                 DB     ARTIKEL      AKTUAL          23
  1189.                                 DB     ARTIKEL      SUCHEN          12
  1190. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  1191.  TEXTE                          DB     TEXTE        TEXMOD          13
  1192.                                 DB     TEXTE        TEXMOD          15
  1193.                                 DB     TEXTE        TEXANZ          19
  1194.                                 DB     TEXTE        ERFASS          17
  1195.                                 DB     TEXTE        DRUCK          246
  1196. ├────────────┼──────────┼──────┼────┼────────────┼──────────────┼──────┼─────┤
  1197.  PARAM                          DB     PARAM        PARMOD          13
  1198.                                 DB     PARAM        PARANZ           8
  1199.                                 DB     PARAM        PARANZ          18
  1200.                                 DB     PARAM        DRUCK           13
  1201.                                 DB     PARAM        AKTUAL          78
  1202. └────────────┴──────────┴──────┴────┴────────────┴──────────────┴──────┴─────┘
  1203.  
  1204.  
  1205.                                                                          18.
  1206. EGGraphische Darstellung:H
  1207. EG-----------------------H
  1208.  
  1209. ╔══════════════════════════════════════════════════════╦══VoG═════════════════╗
  1210. ║ HAUPT.PRG /drfbeo                                    ║   Datum: 1990.08.06  ║
  1211. ╟──────────────────────────────────────────────────────╢   Zeit :   16:02:15  ║
  1212. ║                   G-R-E-F                            ║                      ║
  1213. ╚══════════════════════════════════════════════════════╩══D-B-T══(C)-VoG═1989═╝
  1214.  
  1215.                                                                  Seite:      1
  1216.  
  1217. HAUPT───────┬──STADAVER────┬──KUNMOD
  1218.             │              ├──ARTMOD
  1219.             │              ├──TEXMOD
  1220.             │              ├──PARMOD
  1221.             │              └──OPOMOD
  1222.             ├──STADAANZ────┬──KUNANZ
  1223.             │              ├──ARTANZ
  1224.             │              ├──TEXANZ
  1225.             │              └──PARANZ
  1226.             ├──FAKTURA─────┬──ERFASS──────┬──SUCHEN
  1227.             │              │              ├──SUCHEN
  1228.             │              │              ├──SUCHEN
  1229.             │              │              ├──SUCHEN
  1230.             │              │              ├──SUCHEN
  1231.             │              │              ├──SUCHEN
  1232.             │              │              ├──SUCHEN
  1233.             │              │              ├──SUCHEN
  1234.             │              │              ├──SUCHEN
  1235.             │              │              └──SUCHEN
  1236.             │              ├──DRUCK
  1237.             │              └──AKTUAL
  1238.             ├──OFFPOS
  1239.             ├  LAGER
  1240.             └──SICHERN
  1241.  
  1242.  
  1243.                                                                          19.
  1244. EGDaten-Bank-Definitionen:H
  1245. EG------------------------H
  1246.  
  1247. ╔══════════════════════════════════════════════════════╦══VoG═════════════════╗
  1248. ║ OFFPOS.DBF     1987.10.25 - 21:41                    ║   Datum: 1990.08.06  ║
  1249. ╟──────────────────────────────────────────────────────╢   Zeit :   16:02:15  ║
  1250. ║ OFFPOS.DBF                                           ║                      ║
  1251. ╚══════════════════════════════════════════════════════╩══D-B-T══(C)-VoG═1989═╝
  1252.  
  1253.                                          OFFPOS.DBF              Seite:      1
  1254.       Feldname     Typ       Länge  Dez
  1255.       ═════════════════════════════════
  1256.    1  OPRECHNR     Numerisch     6   0
  1257.    2  OPDATUM      Zeichen       8
  1258.    3  OPKUNR       Zeichen       6
  1259.    4  OPKUNAME     Zeichen      30
  1260.    5  OPREBETR     Numerisch    10   2
  1261.    6  OPMWST1      Numerisch    10   2
  1262.    7  OPMWST2      Numerisch    10   2
  1263.    8  OPBEMERK     Zeichen      50
  1264.  
  1265.  
  1266. ╔══════════════════════════════════════════════════════╦══VoG═════════════════╗
  1267. ║ KUNDEN.DBF     1987.10.25 - 21:40                    ║   Datum: 1990.08.06  ║
  1268. ╟──────────────────────────────────────────────────────╢   Zeit :   16:02:16  ║
  1269. ║ KUNDEN.DBF                                           ║                      ║
  1270. ╚══════════════════════════════════════════════════════╩══D-B-T══(C)-VoG═1989═╝
  1271.  
  1272.                                          KUNDEN.DBF              Seite:      1
  1273.       Feldname     Typ       Länge  Dez
  1274.       ═════════════════════════════════
  1275.    1  KUNDNR       Zeichen       6
  1276.    2  KUNDNAME     Zeichen      30
  1277.    3  KUNDNAME2    Zeichen      30
  1278.    4  KUNDSTPF     Zeichen      30
  1279.    5  KUNDPLZORT   Zeichen      30
  1280.    6  KUNDTELEF    Zeichen      15
  1281.    7  KUNDTELEX    Zeichen      15
  1282.    8  KUNDKREDW    Zeichen       1
  1283.    9  KUNDUMSATZ   Numerisch    10   2
  1284.  
  1285.  
  1286. ╔══════════════════════════════════════════════════════╦══VoG═════════════════╗
  1287. ║ ARTIKEL.DBF    1987.10.25 - 21:40                    ║   Datum: 1990.08.06  ║
  1288. ╟──────────────────────────────────────────────────────╢   Zeit :   16:02:16  ║
  1289. ║ ARTIKEL.DBF                                          ║                      ║
  1290. ╚══════════════════════════════════════════════════════╩══D-B-T══(C)-VoG═1989═╝
  1291.  
  1292.                                          ARTIKEL.DBF             Seite:      1
  1293.       Feldname     Typ       Länge  Dez
  1294.       ═════════════════════════════════
  1295.    1  ARTNR        Zeichen       6
  1296.    2  ARTBEZ       Zeichen      25
  1297.    3  ARTEINH      Zeichen       5
  1298.    4  ARTPREIS1    Numerisch     9   3
  1299.    5  ARTPREIS2    Numerisch     9   3
  1300.    6  ARTPREIS3    Numerisch     9   3
  1301.    7  ARTMWST      Numerisch     1   0
  1302.    8  ARTEKPR      Numerisch     9   3
  1303.    9  ARTUMSATZ    Numerisch    10   2
  1304.   10  ARTABSATZ    Numerisch    10   2
  1305.  
  1306.                                                                          20.
  1307. :%&>>Ç ~<
  1308.  
  1309. EGDBT - Elimtab:H
  1310. EG-------------H
  1311.  
  1312.       Die DBT-Eliminierungs-Tabelle wird bei der Feld-XREF benötigt. In ihr
  1313.      stehen die Namen, die von der Feld-XREF ausgeschlossen werden sollen.
  1314.      Es handelt sich größtenteils um dBase/Clipper-Anweisungen.
  1315.  
  1316.      Bei der Erweiterung der DBTELIM.TAB muß vor dem Namen ein Blank (SPACE)
  1317.      stehen.
  1318.  
  1319.      Steht an 2.Stelle der Elimination ein G>H hex(10), so wird eine globale
  1320.      Sonderbehandlung durchgeführt.
  1321.  
  1322.  G>HN      eliminieren alle numerischen Werte
  1323.  G>HI&&    eliminieren alle Kommentare
  1324.  G>HI@     eliminieren alle @-Zeilen (@ nn,nn SAY-Zeilen)
  1325.  
  1326.  append
  1327.  case
  1328.  clear
  1329.  close
  1330.  do
  1331.  else
  1332.  endcase
  1333.  enddo
  1334.  endif
  1335.  if
  1336.  off
  1337.  on
  1338.  order
  1339.  otherwise
  1340.  prompt
  1341.  replace
  1342.  say
  1343.  select
  1344.  set
  1345.  set alternate
  1346.  set concole
  1347.  set echo
  1348.  set index
  1349.  set order
  1350.  set printer
  1351.  set talk
  1352.  store
  1353.  to
  1354.  use
  1355.  wbox
  1356.  wclose
  1357.  while
  1358.  wopen
  1359. %
  1360. U1
  1361.      ╔═════════════════════════════════════════════════════════════════════════╗
  1362.      ║ G ╔═══════════════════════════════════════════════════════════════════╗ H ║
  1363.      ║ G ║      d B a s e I I I  /  C L I P P E R  -  P r o g r a m m -      ║ H ║
  1364.      ║ G ║                 S t r u k t u r - T e s t e r                     ║ H ║
  1365.      ║ G ║        + D o k u m e n t a t i o n s  -  P r o g r a m m          ║ H ║
  1366.      ║ G ╚═══════════════════════════════════════════════════════════════════╝ H ║
  1367.      ║              DBT-Version 3.0   Copyright 1989-  VoG                     ║
  1368.      ║ G                    DBT-Small-Version                              H     ║
  1369.      ╠═════════════════════════════════════════════════════════════════════════╣
  1370.      ║                                                                         ║
  1371.      ║   GDBTH untersucht Ihr GdBase/Clipper-ProgrammH auf GStruktur-Fehler.H        ║
  1372.      ║                                                                         ║
  1373.      ║   Jeder GStruktur-BlockH beginnt mit einer GStruktur-EröffnendenH           ║
  1374.      ║   Anweisung und GmussH mit der entsprechenden GStruktur-SchließendenH       ║
  1375.      ║   Anweisung enden. GInnerhalb eines Struktur-BlockesH sind nur die        ║
  1376.      ║   zu Gdiesem Struktur-Block gehörenden AnweisungH und Gneue Struktur-H      ║
  1377.      ║   GEröffnende und Struktur-Schließende AnweisungenH zulässig.             ║
  1378.      ║                                                                         ║
  1379.      ║   Die in Klammern stehenden Struktur-Anweisungen sind wahlweise:        ║
  1380.      ║                                                                         ║
  1381.      ║ G  ┌─IF        ┌─DO WHILE    ┌─DO CASE       ┌─PROCEDURE   ┌─FUNCTION  H  ║
  1382.      ║ G  ├──(ELSE)   ├──(LOOP)     ├───CASE        ┼───RETURN    │           H  ║
  1383.      ║ G  └─ENDIF     ┼──(EXIT)     ├──(OTHERWISE)  └─RETURN      └─RETURN    H  ║
  1384.      ║ G              └─ENDDO       └─ENDCASE                                 H  ║
  1385.      ║                                                                         ║
  1386.      ║   GFehlerH in einer Struktur werden mit der GStruktur-EröffnendenH          ║
  1387.      ║   Anweisung und Gder AnweisungH ausgewiesen, bei der der GStruktur-H        ║
  1388.      ║   GverstoßH erkannt wurde.                                                ║
  1389.      ║                                                                         ║
  1390.      ║   Aufruf DBT                                                            ║
  1391.      ║                                                                         ║
  1392.      ║   GDBT (name.ext) (/param) H                                              ║
  1393.      ║                                                                         ║
  1394.      ║   Gname.ext:H Name des zu testenden Programms.                            ║
  1395.      ║             wildcard's (* / ?) in name führt zum Test aller             ║
  1396.      ║             zutreffenden Programme.                                     ║
  1397.      ║                                                                         ║
  1398.      ║   G/param :H  über Parameter kann der Struktur-Test und die weitere       ║
  1399.      ║             Verarbeitung beeinflusst werden.                            ║
  1400.      ║                                                                         ║
  1401.      ║   G R H    =  RETURN innerhalb von Strukturen werden nicht ausgewertet.   ║
  1402.      ║             Ein RETURN führt sonst zur Überprüfung von offenen          ║
  1403.      ║             Strukturen.                                                 ║
  1404.      ║                                                                         ║
  1405.      ║                                                                         ║
  1406.      ║                                                                         ║
  1407.      ║   G P H    =  Struktuierte Druckausgabe (CTRL-P oder >filename)           ║
  1408.      ║      N     =  ohne Ausgabe der Satznummer                               ║
  1409.      ║                                                                         ║
  1410.      ║   G C H    =  Ausgabe nur der Struktur-Blöcke                             ║
  1411.      ║                                                                         ║
  1412.      ║   G E H    =  Ausgabe der Verarbeitungs-Zeiten                            ║
  1413.      ║                                                                         ║
  1414.      ║   G T H    = T ist der 1. Parameter des Autoren gewesen, weil er          ║
  1415.      ║                  nicht glaubte, daß sein Struktur-Analyse-Programm      ║
  1416.      ║                  so schnell ist.                                        ║
  1417.      ║                                                                         ║
  1418.      ║                                                                         ║
  1419.      ║                                                                         ║
  1420.      ║                                                                         ║
  1421.      ╠═════════════════════════════════════════════════════════════════════════╣
  1422.      ║                                                                         ║
  1423.      ║ G  DBT benötigt zur Analyse von   1.000 Zeilen   5    Sekunden.     H     ║
  1424.      ║ G           ( 200 Zeilen pro Sekunde auf einem IBM/XT)              H     ║
  1425.      ║                                                                         ║
  1426.      ╚═════════════════════════════════════════════════════════════════════════╝
  1427.