home *** CD-ROM | disk | FTP | other *** search
/ Best of German Only 1 / romside_best_of_german_only_1.iso / anwender / zephyr / zephyr4s.2 / BEISPIEL.EXE / lha / SUCHE.PRG < prev    next >
Text File  |  1991-02-07  |  3KB  |  68 lines

  1.  
  2.  
  3.                                 *** SUCHE.PRG ***
  4.  
  5.           *** Such-Eingabe nach einem zuvor definierten Begriff ***
  6.           *********************************************************
  7.  
  8. ********************************************************************************
  9. *- Ohne folgende Variablen funktioniert das Programm nicht !!
  10. *- Folgende Variablen müssen zuvor festgelegt worden sein:
  11.  
  12. *- Mbegriff  = Das Such-Wort, das der Anwender auf dem Schirm liest
  13. *- Meingabe  = Das eigentliche Eingabe-GET-Feld
  14. *- Msuchtyp  = der Feld-Typ des Eingabe-Feldes (Charakter,Numerisch,Datum etc.)
  15. *- Mzahlfeld = Feld, nach dem die Datensätze der Datei nummeriert werden
  16. ********************************************************************************
  17.  
  18. PUBLIC Mrec                && "Mrec" wird die Nummer des gefundenen Records
  19.   IF Msuchtyp = "N"        && Wenn gesuchtes Feld ein Nummern-Feld ist...
  20.      Meingabe = SPACE(5)   && ist die Eingabe ein 5 Zeichen langes Leerfeld
  21.   ENDIF
  22. MPlatz = len(Meingabe) + len(Mbegriff) + 14     && die Breite des Window wird
  23. Meldlang = len(Mbegriff) + 34                   && errechnet
  24. Mplatz = IIF(Mplatz < Meldlang,Meldlang,Mplatz)
  25. Mpos = 40 - (Mplatz/2)                          && Schirm-Mitte errechnen!
  26. SET EXACT OFF
  27. DO WHILE .T.                          && Schleife erst verlassen, wenn gefunden!
  28.    DEFINE WINDOW Suche FROM 5,Mpos-1 TO 9,Mpos + Mplatz DOUBLE COLOR GR+/N
  29.    ACTIVATE WINDOW Suche              && Such-Window definieren + aktivieren !
  30.    CLEAR                                          && Window leer!
  31.    @ 1,2 SAY Mbegriff + " eingeben:" GET Meingabe MESSAGE "Liste(Return) - Abbruch(Esc)"
  32.    READ                                           && eigentliche Eingabe
  33.      IF READKEY() = 12 .OR. READKEY() = 127       && Bei "Esc" aussteigen!
  34.         DEACTIVATE WINDOW Suche
  35.         RETURN TO MASTER                          && ganz zurück z. Hauptprog.
  36.      ENDIF
  37.    Xeingabe = LTRIM(TRIM(Meingabe))
  38.      IF Msuchtyp = "N"                && wenn Eingabe eine Zahl, dann Zeichen-
  39.         Xeingabe = VAL(Xeingabe)      && Feld in Zahl umwandeln!
  40.      ENDIF
  41.    SET MESSAGE TO "Blättern:(" + CHR(24) + CHR(25) + ") - Bestätigen:(Esc)"
  42.    SET ORDER TO &Msuch                && Sortier-Ordnung wie gewünscht einstell.
  43.      IF LEN(TRIM(Meingabe)) = 0       && Wenn Eingabe leer, dann Liste zeigen!
  44.         DEACTIVATE WINDOW Suche
  45.         DEFINE WINDOW Liste FROM 1,10 TO 20,79 COLOR GR+/N
  46.         ACTIVATE WINDOW Liste
  47.         GO TOP
  48.         BROWSE NOEDIT NOAPPEND NOMENU
  49.         DEACTIVATE WINDOW Liste
  50.      ELSE                            && - wenn Eingabe gemacht,
  51.         SEEK Xeingabe                && suche Eingabe!
  52.      ENDIF
  53.      IF .NOT. FOUND()                && Wenn nicht gefunden, Meldung!
  54.         CLEAR
  55.         Meldpos = IIF(Mplatz = Meldlang,1,(Mplatz-Meldlang)/2)
  56.         @ 1,Meldpos SAY Mbegriff + " NICHT gefunden. - eine TASTE!"
  57.         DO Taste                     && Tastendruck abwarten!
  58.      ELSE
  59.         Mrec = RECNO()               && wenn gefunden, merke dir die Nummer
  60.         EXIT                         && des Datensatzes mit "Mrec"
  61.      ENDIF
  62. ENDDO
  63. DEACTIVATE WINDOW Suche
  64. RETURN                               && jetzt gehe zurück - von dort aus
  65.                                      && zum eigentlichen Bearbeitungsprogramm
  66. * EOF(Suche.PRG)
  67.  
  68.