home *** CD-ROM | disk | FTP | other *** search
/ Amiga MA Magazine 1998 #3 / amigamamagazinepolishissue1998.iso / bazy / adm / arexx / adm-arexxmakros.lha / Sonstiges / MarkiertAdr_GruppeZuweisen.adm < prev    next >
Text File  |  1996-02-19  |  3KB  |  130 lines

  1. /* $VER: MarkiertAdr_GruppeZuweisen.adm 1.0 (19.2.96)
  2.  
  3.    von Jan Geißler
  4.  
  5.    Setzt bei allen markierten Einträge die per Requester auszuwählende
  6.    Gruppenmarkierung.
  7.  
  8.    1.0  [jan]  19.2.96   - Erste Version
  9. */
  10.  
  11. OPTIONS RESULTS
  12.  
  13.  
  14. /* ---- Variablendefinition */
  15.  
  16. NL      = "0a"x
  17. purpose = "Dieses Makro weist markierte Einträge" NL ||,
  18.           "einer Gruppe zu." NL NL
  19. hinwtxt = "Hinweis"
  20.  
  21. /* ---- Library für Requester öffnen */
  22.  
  23. Reqname = "rexxreqtools.library"
  24.  
  25. if ~show("L", reqname) then do
  26.   if ~addlib(reqname, 0, -30, 0) then do
  27.     say reqname "not found!"
  28.   end
  29. end
  30.  
  31.  
  32. /* ---- Betriebssystemversion prüfen */
  33.  
  34. ADDRESS COMMAND "version exec.library 39 >NIL:"
  35. IF RC >= 5 THEN DO
  36.    text = purpose ||,
  37.           "Die Markierung von Einträgen ist erst ab" NL ||,
  38.           "Betriebssystemversion 3.0 verfügbar." NL ||,
  39.           "Daher kann das Makro nicht ausgeführt werden."
  40.    CALL RTEZREQUEST(text,OK,hinwtxt,,"rtez_defaultresponse=1")
  41.    EXIT
  42. END
  43.  
  44.  
  45. /* ---- Überprüfen, ob überhaupt Einträge markiert sind */
  46.  
  47. NUMSELECTED
  48. numsel = RESULT
  49.  
  50. IF numsel<1 THEN DO
  51.    text = purpose ||,
  52.           "Es sind jedoch keine Einträge markiert." NL NL ||,
  53.           "Dies geschieht durch Betätigung der Leertaste" NL ||,
  54.           "Im Hauptfenster."
  55.    CALL RTEZREQUEST(text,OK,hinwtxt,,"rtez_defaultresponse=1")
  56.    EXIT
  57. END
  58.  
  59.  
  60. /* ---- Gruppennamen holen */
  61.  
  62. GETGROUPNAMES groupname
  63.  
  64.  
  65. /* ---- Abfrage, welche Gruppe */
  66.  
  67. text   = purpose ||,
  68.          "Es sind" numsel" Adressen markiert." NL NL ||,
  69.          "Welchen Gruppen sollen die Adressen" NL ||,
  70.          "zugewiesen werden? (ESC=Abbruch)"
  71. button = ""
  72. grp    = ""
  73.  
  74. DO i=1 FOR 10
  75.    IF groupname.i ~= "" THEN DO
  76.       grp = WORD(groupname.i,1)
  77.       IF LENGTH(grp) > 5 THEN grp = LEFT(grp,5)
  78.       button = button || grp
  79.  
  80.    END; ELSE button = button || i
  81.    button = button || "|"
  82. END
  83. button = button || "Abbruch"
  84.  
  85. ans = RTEZREQUEST(text,button,hinwtxt,,"rtez_defaultresponse=0")
  86. IF ans=0 THEN EXIT
  87.  
  88.  
  89. /* ---- Gruppenkürzel feststellen */
  90.  
  91. SELECT
  92.   WHEN ans=1  THEN group = "A"
  93.   WHEN ans=2  THEN group = "B"
  94.   WHEN ans=3  THEN group = "C"
  95.   WHEN ans=4  THEN group = "D"
  96.   WHEN ans=5  THEN group = "E"
  97.   WHEN ans=6  THEN group = "F"
  98.   WHEN ans=7  THEN group = "G"
  99.   WHEN ans=8  THEN group = "H"
  100.   WHEN ans=9  THEN group = "I"
  101.   WHEN ans=10 THEN group = "J"
  102.   OTHERWISE EXIT
  103. END
  104.  
  105.  
  106. /* ---- Gruppen zuweisen */
  107.  
  108. ACTIVATEFIRST
  109. ADDRINMEM
  110. numaddr = RESULT
  111. numzuge = 0
  112.  
  113. DO i=1 FOR numaddr
  114.    ISSELECTED
  115.  
  116.    IF RESULT=1 THEN DO
  117.       /* ---- Wenn Adresse markiert -> Adressdaten holen */
  118.       GETADDRESS ADM
  119.       ADM.flags = ADM.flags || group
  120.       numzuge = numzuge + 1
  121.       /* ---- Adresse zuweisen */
  122.       CHANGEADDRESS ADM
  123.    END
  124.  
  125.    IF i<numaddr THEN ACTIVATENEXT
  126. END
  127.  
  128. EXIT
  129. QUIT
  130.