home *** CD-ROM | disk | FTP | other *** search
/ Turbo Toolbox / Turbo_Toolbox.iso / 1989 / 11 / anwendg / adr_such.prg next >
Encoding:
Text File  |  1989-08-24  |  5.4 KB  |  210 lines

  1. * -------------------------------------------------------- *
  2. *                    ADR_SUCH.PRG                          *
  3. *          (c) 1989 H. Dohrmann & TOOLBOX                  *
  4. * -------------------------------------------------------- *
  5. CLEAR
  6. CLEAR ALL
  7.  
  8. * Wichtige Einstellungen:
  9.  
  10. LOAD CURSOFF
  11. CALL CURSOFF
  12. LOAD CURSON
  13. SET STATUS OFF
  14. SET SAFE   ON
  15. SET INTE   ON
  16. SET TALK   OFF
  17. SET CONF   ON
  18. SET SCORE  ON
  19. SET ESCAPE OFF
  20.  
  21. * Bildschirm-Aufbau:
  22.  
  23. @ 1,0 TO 22,79 DOUBLE
  24.  
  25. * Variablen-Definition und Eingabeschleife:
  26.  
  27. VARTEXT = "SUCHNAME"
  28. VARNR = 1
  29. ZÄHLER = 1
  30. VAR_EIN = .T.
  31. DO WHILE VAR_EIN                 &&=========================
  32.  VARZAHL = IIF(VARNR <= 9,"0"-STR(VARNR,1,0),STR(VARNR,2,0))
  33.  EING_VAR = TRIM(VARTEXT-VARZAHL)
  34.  &EING_VAR = SPACE(30)
  35.  
  36.  DO WHILE .T.                    &&-------------------------
  37.   @ 3,8 SAY "Geben Sie den Namen Nr. " + VARZAHL + " ein: ";
  38.   GET &EING_VAR
  39.   CALL CURSON
  40.   READ
  41.   CALL CURSOFF
  42.   SET COLOR TO W/N+
  43.   @ 5,12 SAY "Richtig? <ESC> für Korrektur/ Weiter mit ;
  44.   beliebiger Taste"
  45.   I = 0
  46.   DO WHILE I = 0
  47.     I = INKEY()
  48.   ENDDO
  49.   IF I = 27                         && falls Korrektur nötig
  50.     SET COLOR TO W/N
  51.     @ 3,5 CLEAR TO 21,78
  52.     LOOP
  53.   ELSE
  54.     SET COLOR TO W/N
  55.     IF LEN(TRIM(LTRIM(&EING_VAR))) = 0
  56.       LOOP                                && bei Leereingabe
  57.     ELSE
  58.       EXIT
  59.     ENDIF
  60.   ENDIF
  61.  ENDDO                           && .T. --------------------
  62.  
  63.   * Weitere Eingaben?
  64.  
  65.   WEITER = .T.
  66.   @ 23,24 SAY "Weitere Eingaben ? < J / N > " GET WEITER;
  67.   PICT "Y"
  68.   READ
  69.   @ 23,0
  70.   @ 3,1 CLEAR TO 21,78
  71.   IF WEITER
  72.     VARNR = VARNR + 1            && Variablen-Zähler erhöhen
  73.     IF VARNR = 100             && wenn Maximum überschritten
  74.       CLEAR
  75.       SET COLOR TO W/N+
  76.       @ 22,10 SAY "Keine weiteren Eingaben möglich!;
  77.       Weiter mit beliebiger Taste"
  78.       WAIT ""
  79.       SET COLOR TO W/N
  80.       VAR_EIN = .F.
  81.       EXIT
  82.     ELSE
  83.       ZÄHLER = ZÄHLER + 1            && Gesamtzähler erhöhen
  84.       LOOP                            && und neuer Durchlauf
  85.     ENDIF
  86.  
  87.   ELSE
  88.     VAR_EIN = .F.
  89.     EXIT                                  && Eingabe beendet
  90.   ENDIF
  91. ENDDO                            && VAR_EIN = .T. ==========
  92. CLEAR
  93.  
  94. * Speicher-Variablen anzeigen:
  95.  
  96. DISP MEMO
  97. WAIT
  98. CLEAR
  99.  
  100. * Eingegebene Namen als Liste ausgeben in normaler Schrift:
  101.  
  102. VARNR = 1
  103. ZEILE = 3
  104. SPALTE = 5
  105. DO WHILE VARNR <= ZÄHLER         &&=========================
  106.  VARZAHL = IIF(VARNR <= 9,"0"-STR(VARNR,1,0),STR(VARNR,2,0))
  107.  EING_VAR = TRIM(VARTEXT-VARZAHL)
  108.  &EING_VAR = TRIM(LTRIM(&EING_VAR))
  109.  @ ZEILE,SPALTE SAY UPPER(SUBSTR(&EING_VAR,1,1));
  110.  -LOWER(SUBSTR(&EING_VAR,2,(LEN(TRIM(LTRIM(&EING_VAR)))-1)))
  111.  ZEILE = ZEILE + 1
  112.  IF ZEILE = 21
  113.    ZEILE = 3
  114.    IF SPALTE = 55
  115.      SPALTE = 5
  116.      @ 23,0 TO 23,79
  117.      WAIT SPACE(25) + "<Weiter mit beliebiger Taste>"
  118.      CLEAR
  119.    ELSE
  120.      SPALTE = SPALTE + 25
  121.    ENDIF
  122.  ENDIF
  123.  VARNR = VARNR + 1
  124. ENDDO                            &&=========================
  125. @ 22,0 TO 22,79
  126. WAIT SPACE(25) + "<Weiter mit beliebiger Taste>"
  127. CLEAR
  128.  
  129. * -------------------------------------------------------- *
  130. * EVTL. ZWISCHENSPEICHERUNG (.MEM) ...
  131. * DANN RESTORE ...
  132. * VARTEXT = "SUCHNAME" ...
  133. * EVTL. ZÄHLER REKONSTRUIEREN ...
  134. * -------------------------------------------------------- *
  135.  
  136. * SUCHEN DER EINGEGEBENEN NAMEN IN ADRESSEN.DBF:
  137.  
  138. ZEILE = 3
  139. SPALTE = 5
  140. VARNR = 1
  141. USE ADRESSEN
  142. IF .NOT. FILE("UP_HNAME.NDX")
  143.   INDEX ON UPPER(TRIM(LTRIM(NAME)) TO UP_HNAME
  144. ENDIF
  145. SET INDEX TO UP_HNAME
  146. DO WHILE VARNR <= ZÄHLER         &&========================
  147.  VARZAHL = IIF(VARNR <= 9,"0"-STR(VARNR,1,0),STR(VARNR,2,0))
  148.  EING_VAR = TRIM(VARTEXT-VARZAHL)
  149.  &EING_VAR = UPPER(TRIM(LTRIM(&EING_VAR)))
  150.  SEEK &EING_VAR
  151.  
  152.  * Screen-Ausgabe in 8 Adreßblöcken pro Bildschirm:
  153.  IF FOUND()                      && ++++++++++++++++++++++++
  154.    GLEICHNAM = .T.
  155.    DO WHILE GLEICHNAM            &&-------------------------
  156.      @ ZEILE,SPALTE SAY TRIM(LTRIM(VORNAME)) + " " + ;
  157.      TRIM(LTRIM(NAME))
  158.      @ ZEILE+1,SPALTE SAY TRIM(LTRIM(STRASSE))
  159.      @ ZEILE+2,SPALTE SAY TRIM(LTRIM(ORT))
  160.      @ ZEILE+3,SPALTE SAY TRIM(LTRIM(TELEFON))
  161.      ZEILE = ZEILE+5
  162.      IF ZEILE > 18
  163.        ZEILE = 3
  164.        IF SPALTE = 45
  165.          SPALTE = 5
  166.          @ 22,0 TO 22,79
  167.          WAIT SPACE(18) + "<Weiter mit beliebiger;
  168.          Taste für mehr...>"
  169.          CLEAR
  170.        ELSE
  171.          SPALTE = SPALTE + 40
  172.        ENDIF
  173.      ENDIF
  174.      SKIP
  175.      SET EXACT ON
  176.      IF &EING_VAR = UPPER(TRIM(LTRIM(NAME)))
  177.        LOOP
  178.      ELSE
  179.        GLEICHNAM = .F.
  180.        EXIT
  181.      ENDIF
  182.      SET EXACT OFF
  183.    ENDDO                         && GLEICHNAM=.T.-----------
  184.  ELSE                            && + + + + + + + + + + + +
  185.    @ 22,0 TO 22,79
  186.    WAIT SPACE(25) + "Name <" + &EING_VAR + "> nicht ;
  187.    gefunden! "
  188.    @ 22,0 CLEAR TO 24,79
  189.  ENDIF                           && ++++++++++++++++++++++++
  190.  VARNR = VARNR + 1
  191. ENDDO                            &&=========================
  192. @ 22,0 TO 22,79
  193. WAIT SPACE(26) + "<ENDE mit beliebiger Taste>"
  194. CLEAR
  195.  
  196. * -------------------------------------------------------- *
  197. * EVTL. WEITERE VERARBEITUNG.....(Drucken, Labels, etc..)
  198. * -------------------------------------------------------- *
  199.  
  200. * Set-Schalter zurücksetzen:
  201.  
  202. SET ESCAPE ON
  203. SET TALK ON
  204. CALL CURSOFF
  205. CALL CURSON
  206. CLEAR ALL
  207. CLEAR
  208. RETURN
  209. * -------------- Ende von ADR_SUCH.PRG ------------------- *
  210.