home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1998 #3 / amigamamagazinepolishissue1998.iso / bazy / adm / arexx / adm-arexxmakros.lha / Sonstiges / TeleSuch.rexx < prev    next >
OS/2 REXX Batch file  |  1996-08-07  |  3KB  |  111 lines

  1. /*  $VER: TeleSuch.rexx 1.2 (06.08.96)
  2.  *
  3.  *  Beschreibung:
  4.  *
  5.  *  Es werden alle Telefonnummern mit dem ersten Parameter
  6.  *  als Vorname, oder falls keiner gefunden, als Nachname
  7.  *  in der Shell ausgegeben.
  8.  *
  9.  *  Es ist auch moeglich, ein bestimmtest Feld durchsuchen
  10.  *  zu lassen, indem man den Feldnamen angibt und dann mit
  11.  *  == den Suchbegriff trennt.
  12.  *  Damit kann man z.B. schnell alle Personen aus einem PLZ-
  13.  *  Bereich suchen lassen oder auch nach einer bestimmten ID
  14.  *  z.B. ID==gali durchsucht somit das ID-Feld nach #?gali#?
  15.  *  und gibt dann Telefonnummer und Namen aus.
  16.  *
  17.  *  Als zweiten Parameter kann man den Portnamen angeben.
  18.  *  Bei einstelligem Namen wird der Name zu ADM.x ergänzt, d.h.
  19.  *        Parameter = AddressMaster => Portname = AddressMaster
  20.  *        Parameter = 2             => Portname = ADM.2
  21.  *  Falls keiner angegeben, wird ADM.1 verwendet.
  22.  *
  23.  *
  24.  * Parameter:      Suchname Portname
  25.  *
  26.  *                      Suchname = Vor- oder Zuname (auch teilweisse) oder
  27.  *                                 Feld==Suchbegriff
  28.  *
  29.  *  Autor:          Michael Hettenbach, 2:2468/6020, 09.07.1994
  30.  *
  31.  *  Aenderungen:       Michael Hettenbach, 2:2468/6020, 31.03.1995
  32.  *                         Wenn der Suchbegriff mit 'ID=' beginnt wird nur
  33.  *                         nach der passenden ID gesucht
  34.  *
  35.  *                1.0  Michael Hettenbach, 2:2468/9701, 10.09.1995
  36.  *                         Es kann jetzt das Suchfeld mit == angegeben werden
  37.  *                         Dann wird nur dieses Feld durchsucht.
  38.  *                         Z.B. ID==gali durchsucht das ID-Feld nach dem String
  39.  *                                       #?gali#?
  40.  *                1.1  Jan Geissler
  41.  *                         Zweiter Parameter = Portname
  42.  *
  43.  *                1.2  André Schenk
  44.  *                         Generierung des Portnamens bei nur einem Parameter
  45.  *                         korrigiert
  46.  */
  47.  
  48. OPTIONS RESULTS
  49.  
  50. PARSE ARG Suchname Port
  51.  
  52. portname = STRIP(Port)
  53. IF LENGTH(portname) = 0 THEN DO
  54.   portname = "1"
  55. END
  56. IF LENGTH(portname) = 1 THEN DO
  57.   portname = "ADM." || portname
  58. END
  59.  
  60. IF ~SHOW('P',portname) THEN
  61. DO
  62.     SAY 'ADM laeuft nicht!'
  63.     EXIT 10
  64. END
  65.  
  66. IF INDEX(Suchname,'==')~=0 THEN
  67. DO
  68.     Multi=0
  69.     SFeld=LEFT(Suchname,INDEX(Suchname,'==')-1)
  70.     SCode='#?'SUBSTR(Suchname,INDEX(Suchname,'==')+2)'#?'
  71.     INTERPRET 'S1Addr.'SFeld'=SCode'
  72. END
  73. ELSE
  74. DO
  75.     S1Addr.LASTNAME=Suchname'#?'
  76.     S2Addr.FIRSTNAME=Suchname'#?'
  77.     Multi=1
  78. END
  79. address (portname)
  80.  
  81. Found=0
  82. Res=1
  83. DO UNTIL Res<0
  84.     SEARCH Res S1Addr
  85.     Res=RESULT
  86.     IF Res > 0 THEN
  87.     DO
  88.         GETADDRESS ADaten
  89.         SAY OVERLAY(ADaten.TELEPHONE,ADaten.LASTNAME', 'ADaten.FIRSTNAME,30)
  90.         Res=Res+1
  91.         Found=1
  92.     END
  93. END
  94.  
  95. IF ((Found=0)&(Multi=1)) THEN
  96. DO
  97.     Res=1
  98.     DO UNTIL Res<0
  99.         SEARCH Res S2Addr
  100.         Res=RESULT
  101.         IF Res > 0 THEN
  102.         DO
  103.             GETADDRESS ADaten
  104.             SAY OVERLAY(ADaten.TELEPHONE,ADaten.LASTNAME', 'ADaten.FIRSTNAME,30)
  105.             Res=Res+1
  106.         END
  107.     END
  108. END
  109.  
  110. EXIT
  111.