home *** CD-ROM | disk | FTP | other *** search
- /* $VER InsertAddress.ttx 1.1 (10.02.93)
-
- Makro für TurboText.
-
- Fügt die zum unter dem Cursor befindlichen Nachnamen zugehörige
- Adresse in den Text ein. Fragt nach, ob Adresse eingefügt werden
- soll - wenn nicht, dann wird weitergesucht.
-
- Es könnten auch Patterns benutzt werden, doch leider liefert die
- GETWORD-Funktion von TTX keine Patterns wie #? zurück.
-
- Written by Jan Geißler. */
-
-
- OPTIONS RESULTS
-
- GETWORD /* Wort unter Cursor holen */
- WORT = RESULT
-
- ADDRESS 'ADM.1'
-
- fst = 1 /* Anfangsposition = 1 (= erste Adresse) */
- res = 0
-
- DO FOREVER /* Endlosschleife */
-
- ADM.LASTNAME = WORT
- SEARCH fst ADM /* Eintrag suchen */
- res = RESULT
-
- IF res >-1 THEN DO /* Rückgabewert = Nummer der gefundenen
- Adresse */
-
- GETADDRESS RESAD /* Adresse holen in Stemvariable RESAD */
-
- ADDRESS
-
- /* Abfrage, ob richtige Adresse gefunden */
- req = RESAD.FIRSTNAME || "_" || RESAD.LASTNAME
- "REQUESTBOOL" "Diese_Adresse_nehmen?" req
-
- IF RESULT=Yes THEN DO /* Wenn Adresse übernommen werden soll */
-
- MOVELEFT
- GETCHAR /* Zeichen unter Cursor */
- IF DATATYPE(RESULT,ALPHANUMERIC)=0 THEN MOVERIGHT
- ELSE DO
- MOVERIGHT
- MOVEPREVWORD
- END;
-
- GETCURSORPOS FOLDS /* X/Y-Position holen */
- PARSE VAR RESULT ver hor dum
- SAY hor
-
- DELETEEOW /* Wort löschen */
- INSERT RESAD.FIRSTNAME RESAD.LASTNAME /* Name einfügen */
-
- ver = ver+1 /* Y-Wert erhoehen */
- INSERTLINE NOBREAK INDENT /* Neue Zeile */
- MOVE FOLDS ver hor /* Cursor bewegen */
- TEXT RESAD.ADDRESS1 /* Adreßfeld 1 */
-
- IF RESAD.ADDRESS2~="" THEN DO
- ver = ver+1 /* Y-Wert erhoehen */
- INSERTLINE NOBREAK /* Neue Zeile */
- MOVE FOLDS ver hor /* Cursor bewegen */
- TEXT RESAD.ADDRESS2 /* Adreßfeld 2 */
- END;
-
- ver = ver+1 /* Y-Wert erhoehen */
- INSERTLINE NOBREAK /* Neue Zeile */
- MOVE FOLDS ver hor /* Cursor bewegen */
- TEXT RESAD.POSTCODE RESAD.CITY /* PLZ Ort */
-
- IF RESAD.COUNTRY~="" THEN DO
- ver = ver+1 /* Y-Wert erhoehen */
- INSERTLINE NOBREAK /* Neue Zeile */
- MOVE FOLDS ver hor /* Cursor bewegen */
- TEXT RESAD.COUNTRY /* Land */
- END;
-
- EXIT /* ... und Programm verlassen */
- END
- ELSE /* Sonst: nächsten Eintrag suchen */
- ADDRESS
- fst = res + 1
- END
- ELSE /* Fehler aufgetreten */
- ADDRESS
- IF res=-1 THEN BEEPSCREEN
- ELSE
- IF res=-2 THEN msg="AdressSpeicher_leer!"
- IF res=-3 THEN msg="Nicht_genug_Speicher!"
- IF res=-4 THEN msg="Aufruf_v.SEARCH_falsch!"
- IF res=-5 THEN msg="Interner_Fehler_in_Search"
- IF res=-6 THEN msg="Kein_Suchparam.in_Stem!"
- IF res=-7 THEN msg="SearchPos_ungültig!"
- REQUESTBOOL "Fehler!" msg
- END
-
- EXIT
-
- END /* IF */
- END /* DO */
-