/* $VER: TeleSuch.rexx 1.2 (06.08.96) * * Beschreibung: * * Es werden alle Telefonnummern mit dem ersten Parameter * als Vorname, oder falls keiner gefunden, als Nachname * in der Shell ausgegeben. * * Es ist auch moeglich, ein bestimmtest Feld durchsuchen * zu lassen, indem man den Feldnamen angibt und dann mit * == den Suchbegriff trennt. * Damit kann man z.B. schnell alle Personen aus einem PLZ- * Bereich suchen lassen oder auch nach einer bestimmten ID * z.B. ID==gali durchsucht somit das ID-Feld nach #?gali#? * und gibt dann Telefonnummer und Namen aus. * * Als zweiten Parameter kann man den Portnamen angeben. * Bei einstelligem Namen wird der Name zu ADM.x ergänzt, d.h. * Parameter = AddressMaster => Portname = AddressMaster * Parameter = 2 => Portname = ADM.2 * Falls keiner angegeben, wird ADM.1 verwendet. * * * Parameter: Suchname Portname * * Suchname = Vor- oder Zuname (auch teilweisse) oder * Feld==Suchbegriff * * Autor: Michael Hettenbach, 2:2468/6020, 09.07.1994 * * Aenderungen: Michael Hettenbach, 2:2468/6020, 31.03.1995 * Wenn der Suchbegriff mit 'ID=' beginnt wird nur * nach der passenden ID gesucht * * 1.0 Michael Hettenbach, 2:2468/9701, 10.09.1995 * Es kann jetzt das Suchfeld mit == angegeben werden * Dann wird nur dieses Feld durchsucht. * Z.B. ID==gali durchsucht das ID-Feld nach dem String * #?gali#? * 1.1 Jan Geissler * Zweiter Parameter = Portname * * 1.2 André Schenk * Generierung des Portnamens bei nur einem Parameter * korrigiert */ OPTIONS RESULTS PARSE ARG Suchname Port portname = STRIP(Port) IF LENGTH(portname) = 0 THEN DO portname = "1" END IF LENGTH(portname) = 1 THEN DO portname = "ADM." || portname END IF ~SHOW('P',portname) THEN DO SAY 'ADM laeuft nicht!' EXIT 10 END IF INDEX(Suchname,'==')~=0 THEN DO Multi=0 SFeld=LEFT(Suchname,INDEX(Suchname,'==')-1) SCode='#?'SUBSTR(Suchname,INDEX(Suchname,'==')+2)'#?' INTERPRET 'S1Addr.'SFeld'=SCode' END ELSE DO S1Addr.LASTNAME=Suchname'#?' S2Addr.FIRSTNAME=Suchname'#?' Multi=1 END address (portname) Found=0 Res=1 DO UNTIL Res<0 SEARCH Res S1Addr Res=RESULT IF Res > 0 THEN DO GETADDRESS ADaten SAY OVERLAY(ADaten.TELEPHONE,ADaten.LASTNAME', 'ADaten.FIRSTNAME,30) Res=Res+1 Found=1 END END IF ((Found=0)&(Multi=1)) THEN DO Res=1 DO UNTIL Res<0 SEARCH Res S2Addr Res=RESULT IF Res > 0 THEN DO GETADDRESS ADaten SAY OVERLAY(ADaten.TELEPHONE,ADaten.LASTNAME', 'ADaten.FIRSTNAME,30) Res=Res+1 END END END EXIT