home *** CD-ROM | disk | FTP | other *** search
/ Amiga ISO Collection / AmigaUtilCD1.iso / Database / adm30.lha / ADM / TerminTool / TerminTool.lha / WBStartup / ADMGebStart < prev   
Encoding:
Text File  |  1996-03-01  |  10.4 KB  |  342 lines

  1. /* $VER: ADMGebStart V 1.9 (7.2.96) © Bernd Stange
  2.  
  3. Erinnert an fällige Geburtstage aus einer Geburtstagsliste
  4. im ASCII Format, welche durch ADMGebList erstellt wurde    */
  5.  
  6. /****************************************************************************/
  7.  
  8. Textedit = 'C:CED'
  9. Textview = 'Multiview'
  10. SETTINGS = 'ENVARC:AddressMaster.cfg'
  11.  
  12. /****************************************************************************/
  13.  
  14. Ver = 'V 1.9'
  15.  
  16. IF EXISTS('ENVARC:ADMscPrefs') THEN PfadVariable = 'ENVARC:'
  17. ELSE 
  18. PfadVariable = 'S:'
  19.  
  20. IF ~SHOW(LIBRARIES,'rexxsupport.library') THEN
  21.    IF ~ADDLIB('rexxsupport.library',0,-30,0) THEN
  22.       EXIT 10
  23. IF ~SHOW(LIBRARIES,'rexxreqtools.library') THEN
  24.    IF ~ADDLIB('rexxreqtools.library',0,-30,0) THEN
  25.       EXIT 10
  26. IF EXISTS(PfadVariable'ADMscPrefs/ADMcheck') THEN DO
  27.    CALL OPEN(check,PfadVariable'ADMscPrefs/ADMcheck',R)
  28.    contr  = READLn(check)
  29.    contrD = date()
  30.    CALL CLOSE(check)
  31.    IF contrD = contr THEN EXIT
  32.     ELSE DO
  33.       ADDRESS COMMAND
  34.       'Delete >NIL:' PfadVariable'ADMscPrefs/ADMcheck'
  35.     END
  36. END
  37.  
  38. IF ~EXISTS(PfadVariable'ADMscPrefs') THEN CALL Fehler1
  39. IF ~EXISTS(PfadVariable'ADMscPrefs/PfadADM') THEN CALL Fehler2
  40. IF ~EXISTS(PfadVariable'ADMscPrefs/PfadADMDaten') THEN CALL Fehler3
  41. IF ~EXISTS(PfadVariable'ADMscPrefs/PfadADMGebliste') THEN CALL Fehler4
  42. IF ~EXISTS(PfadVariable'ADMscPrefs/Vorwarnung') THEN CALL Fehler5
  43. IF ~EXISTS(PfadVariable'ADMscPrefs/VLOG') THEN CALL Fehler6
  44. IF ~EXISTS(PfadVariable'ADMscPrefs/CheckAktuell') THEN CALL Fehler8
  45. CALL OPEN(ADM,PfadVariable'ADMscPrefs/PfadADM',R)
  46. CALL OPEN(ADMDaten,PfadVariable'ADMscPrefs/PfadADMDaten',R)
  47. CALL OPEN(ADMGebliste,PfadVariable'ADMscPrefs/PfadADMGebliste',R)
  48. CALL OPEN(ADMVorwarnung,PfadVariable'ADMscPrefs/Vorwarnung',R)
  49. CALL OPEN(ADMVLog,PfadVariable'ADMscPrefs/VLOG',R)
  50. CALL OPEN(CheckAktuell,PfadVariable'ADMscPrefs/CheckAktuell',R)
  51. Adressmaster = ReadLn(ADM)
  52. ADMGebliste = ReadLn(ADMGebliste)
  53. ADMDaten = ReadLn(ADMDaten)
  54. Warnung = ReadLn(ADMVorwarnung)
  55. Voicepfad = Readln(ADMVLog)
  56. CheckAktuell = ReadLn(CheckAktuell)
  57. IF Adressmaster = 'nicht gesetzt' THEN CALL Fehler2
  58. IF ADMDaten = 'nicht gesetzt' THEN CALL Fehler3
  59. IF ADMGebliste = 'nicht gesetzt' THEN CALL Fehler4
  60. IF Warnung = 'nicht gesetzt' THEN CALL Fehler5
  61. IF Voicepfad = 'nicht gesetzt' THEN CALL Fehler6
  62. IF ~EXISTS(ADMGebliste) THEN CALL Fehler7
  63. IF CheckAktuell = 'nicht gesetzt' THEN CALL Fehler8
  64. IF Voicepfad = 'Nein' THEN Voicelog  = nein 
  65. ELSE Voicelog  = ja
  66. CALL CLOSE(ADM)
  67. CALL CLOSE(ADMDaten)
  68. CALL CLOSE(ADMGebliste)
  69. CALL CLOSE(ADMVorwarnung)
  70. CALL CLOSE(ADMVLog)
  71. CALL CLOSE(CheckAktuell)
  72. IF CheckAktuell ~= 'NEIN' & CheckAktuell ~= 'nicht gesetzt' THEN CALL CheckAktuell
  73. Datum =  DATE()
  74. Tag = WORD(datum,1)
  75. Month = WORD(datum,2)
  76. Jahr = WORD(datum,3)
  77. Zeit  = DATE(I)
  78. Tagejahr = DATE(D, Zeit,I)
  79. CALL OPEN(sti,ADMGebliste,'r')
  80. Linie = READLN(sti)
  81.  
  82. /* Schleife beginnt */
  83. DO WHILE ~EOF(sti)
  84.    Datentag = WORD(linie,1)
  85.    Datenmonat = WORD(linie,2)
  86.    Datenjahr  = WORD(linie,3)
  87.    Datendatum = jahr || datenmonat || datentag
  88.    DatenTagejahr = DATE("d",Datendatum,"s")
  89.    Diff = DatenTagejahr - Tagejahr
  90.     /* Bedingung beginnt */
  91.     IF diff >= 0 & diff <= Warnung THEN DO
  92.       Name = UPPER(WORD(linie,6)) UPPER(WORD(linie,7))
  93.       TERMINTEXT = UPPER(SUBWORD(linie,6,WORDS(linie)-6))
  94.       Ter = WORD(linie,4)    
  95.       IF Datenjahr = '????' THEN ALter = '?'
  96.       ELSE Alter = Jahr - Datenjahr 
  97.       IF Linie = '' THEN Telefon = ' '
  98.       ELSE Telefon = WORD(linie,WORDS(linie))
  99.       SELECT
  100.         WHEN diff = 0 THEN Text = "HEUTE"
  101.         WHEN diff = 1 THEN Text = "MORGEN"
  102.         WHEN diff = 2 THEN Text = "ÜBERMORGEN"
  103.        OTHERWISE Text = "am" datentag || ". " || datenmonat'.'
  104.       END
  105.       Geschlecht = WORD(linie,5)
  106.       IF Geschlecht = 'H' THEN Anrede = "seinen"
  107.       IF Geschlecht = 'F' THEN Anrede = "ihren"
  108.       IF Geschlecht   = 'X' THEN DO
  109.        Anrede = "das"
  110.        Geburtstag = '. Jubiläum !'
  111.       END
  112.       ELSE Geburtstag = '. Geburtstag !'
  113.       Flags  = 'rtez_flags = ezreqf_centertext'
  114.       
  115.       ANFANG:
  116.       IF Ter = 'Termin:' THEN CALL Termin       /*Nach Termin suchen*/
  117.       ELSE CALL Geburtstag                      /*Nach Geburtstag suchen*/
  118.       IF Auswahl = 2 THEN CALL Verschieben      /*bei Auswahl "Verschieben"*/
  119.       IF Auswahl = 3 THEN CALL Liste            /*bei Auswahl "Liste"*/
  120.       IF Auswahl = 0 THEN DO                    /*letzte Button*/
  121.         IF Ter = 'Termin:' THEN CALL Loeschen   /*bei Auswahl Termin löschen*/
  122.         ELSE CALL Anwaehlen                     /*bei Auswahl Anwählen */
  123.       END                                       /*letzte Button ENDE*/
  124.  
  125.   END /* Vorwarnbedingung Ende */
  126.   Linie = READLN(sti)
  127. END /*Schleife Ende */
  128.  
  129. /* Aufräumen*/
  130. ENDE:
  131. CALL CLOSE(STI)
  132. CALL CLOSE(sort1)
  133. CALL CLOSE(sort)
  134. IF EXISTS('T:.tmp1') THEN DO
  135.    ADDRESS COMMAND
  136.    'copy' 'T:.tmp2' ADMGebliste
  137.    "delete T:.tmp1 T:.tmp2 >NIL:"
  138. END
  139.  
  140. EXIT
  141.  
  142. /************************* Sprungadressen *********************************/
  143.  
  144.  
  145. CheckAktuell:
  146. ADDRESS COMMAND
  147. 'list' ADMDaten 'LFormat="%d %t" >t:dat'  
  148. CALL OPEN(datum,'t:dat',R)
  149. 'list' ADMGebliste 'LFormat="%d %t" >t:dat1'
  150. CALL OPEN(datum1,'t:dat1',R)
  151. Da = READLN(datum)
  152. Da1 = READLN(datum1)
  153. CALL CLOSE(datum)
  154. CALL CLOSE(datum1)
  155. ADDRESS COMMAND
  156. 'Delete t:dat t:dat1 >NIL:'
  157. IF DA ~= DA1 THEN DO 
  158.     Flags  = 'rtez_flags = ezreqf_centertext'
  159.     Titel  = Ver 'DatumCheck:'
  160.     Gadget  = '_Ja|_Nein, jetzt nicht'
  161.     Reqtext = 'A C H T U N G:    Die Geburtstagsliste' ||'0A'x||,
  162.     '"' || ADMGebliste ||  '"' ,
  163.     ||'0A'x|| 'scheint nicht aktuell zu sein !',
  164.     ||'0A'x|| 'Soll ich die Liste gleich erneuern ?'
  165.     Auswahl = rtezrequest(Reqtext,Gadget,Titel,Flags)
  166.     IF Auswahl = 1 THEN DO 
  167.        ADDRESS COMMAND
  168.        'SYS:Rexxc/rx' CheckAktuell
  169.     END
  170. END
  171. RETURN
  172.  
  173. /*Nach Termin suchen*/
  174. Termin:   
  175. Reqtext  = 'Achtung Termin :'||'0A'x|| '' ||'0A'x|| '==> ' || Text '!' || ' <==' ||'0A'x||''||'0A'x|| TERMINTEXT
  176. Gadget   = '_OK|_Verschieben|_Liste|_Nachricht löschen'
  177. Titel    = Ver 'Terminhinweis :'    datum
  178. Auswahl = rtezrequest(Reqtext,Gadget,Titel,Flags)
  179. RETURN
  180.  
  181. /*Nach Geburtstag suchen*/
  182. Geburtstag:
  183. Titel  = Ver 'Geburtstagshinweis :'    datum
  184. Gadget = '_OK|_Verschieben|_Liste|_Anwählen'
  185. ReqText = Name ||'0A'x|| 'hat' text Anrede Alter || Geburtstag ||'0A'x|| 'Tel.:' Telefon
  186. Auswahl = rtezrequest(Reqtext,Gadget,Titel,Flags)
  187. Return
  188.  
  189. /*bei Auswahl "Verschieben"*/
  190. Verschieben:
  191. ADDRESS COMMAND
  192. 'echo >' || PfadVariable || 'ADMscPrefs/ADMcheck' datum
  193. CALL ENDE
  194. RETURN
  195.  
  196. /*bei Auswahl "Liste"*/
  197. Liste:
  198. sortwahl = rtezrequest('Die Liste nach Datum oder Namen sortieren und zeigen ?' ||'0A'x||,
  199.                        'Oder Editieren ?',
  200.                         ,'nach _Datum|nach _Namen|_Editieren|_Abbruch','Anfrage:',Flags)
  201. CALL OPEN(SORTliste,ADMGebliste,R)
  202. CALL OPEN(sort,'t:.tmp5',w)
  203. zeile = READLN(SORTliste)
  204. DO WHILE ~EOF(SORTliste)
  205.     Datentag = WORD(zeile,1)
  206.     Datenmonat = WORD(zeile,2)
  207.     Datenjahr  = WORD(zeile,3)
  208.     VorName = WORD(zeile,6) 
  209.     Name =WORD(zeile,7)
  210.     Ter = WORD(zeile,4)
  211.     Telefon = WORD(zeile,WORDS(zeile))
  212.     TERMINTEXT = SUBWORD(linie,6,WORDS(linie)-6)
  213.     Data = Datentag || '.' || Datenmonat  || '.' || Datenjahr
  214.     IF sortwahl = '2' THEN DO    
  215.         Sortzeile = name || ',' vorname
  216.         Sortzeile = INSERT(Data,Sortzeile,28)
  217.         Sortzeile = INSERT('('Ter')',Sortzeile,40)
  218.         Sortzeile = INSERT(Telefon,Sortzeile,46)
  219.     END
  220.     IF sortwahl = '1' THEN DO
  221.          Sortzeile = data vorname name 
  222.          Sortzeile = INSERT('('Ter')',Sortzeile,34)
  223.          Sortzeile = INSERT(Telefon,Sortzeile,41)
  224.     END
  225.     IF 'Termin:' ~=  WORD(zeile,4) THEN CALL WRITELN(sort,Sortzeile)
  226.     zeile = READLN(SORTliste)
  227. END
  228. CALL CLOSE(sort)
  229. CALL CLOSE(SORTliste)
  230. IF sortwahl = '2' THEN DO
  231.     ADDRESS COMMAND 
  232.     'sort t:.tmp5 t:.tmp6'
  233.     Textview 't:.tmp6'
  234.     'Delete t:.tmp5 t:.tmp6 >NIL:' 
  235. CALL LISTE
  236. END
  237. IF sortwahl = '1' THEN DO
  238.     ADDRESS COMMAND
  239.     Textview 't:.tmp5'
  240.     'Delete t:.tmp5 >NIL:'
  241. CALL LISTE
  242. END
  243. IF sortwahl = '3' THEN DO
  244.     ADDRESS COMMAND
  245.     Textedit ADMGebliste
  246.     'Delete t:.tmp5 >NIL:' 
  247. CALL LISTE
  248. END
  249. RETURN
  250.  
  251. /*bei Auswahl Termin löschen*/
  252. loeschen:
  253. ADDRESS COMMAND
  254. 'Copy' ADMGebliste 'T:.tmp1'
  255. 'Copy' ADMGebliste ADMGebliste'.bak'
  256. CAll OPEN(sort,'T:.tmp1',r)
  257. CAll OPEN(sort1,'T:.tmp2',w)
  258. DO while ~EOF(sort)
  259.    Sortlinie = Readln(sort)
  260.    IF Sortlinie ~= Linie THEN DO
  261.       IF Sortlinie ~= '' THEN CALL WRITELN(sort1,Sortlinie)
  262.    END
  263. END
  264. RETURN
  265.  
  266.  
  267. /*bei Auswahl Anwählen */
  268. Anwaehlen:
  269. IF ~SHOW('PORTS','ADM.1') THEN DO
  270.     IF EXISTS('c:wbrun') THEN DO
  271.       ADDRESS COMMAND
  272.       'WBrun >NIL:' AdressMaster
  273.     END
  274.     ELSE DO
  275.     PRAGMA(STACK,20000)
  276.     ADDRESS COMMAND
  277.     'run >NIL:' AdressMaster 'FROM' ADMDaten 'SETTINGS=' || SETTINGS 
  278.     END 
  279.     DO 2 WHILE ~SHOW('PORTS','ADM.1')
  280.     'sys:rexxc/WaitForPort ADM.1'
  281.     END
  282. END
  283. ADDRESS 'ADM.1'
  284. OPTIONS RESULTS
  285. ACTIVATEFIRST
  286. DO UNTIL Nm = Telefon
  287.      GETADDRESS ADM
  288.      Nm = COMPRESS(ADM.TELEPHONE)
  289.      IF NM = Telefon THEN DO
  290.         IF Voicelog = 'JA' THEN DO
  291.            cmd = 'RUN >NIL:' Voicepfad '"' || ADM.FULLNAME || '"' '"' || ADM.telephone || '"'
  292.            ADDRESS COMMAND CMD
  293.         END
  294.         ELSE DO
  295.            ADDRESS 'ADM.1'
  296.            DIAL
  297.         END
  298.      END
  299.      ACTIVATENEXT
  300. END
  301. RETURN
  302.  
  303.  
  304.  
  305. Fehler1:
  306. Reqtext = 'Achtung Fehler1:'||'0A'x|| '' ||'0A'x|| 'Bitte erst mit ADMscPrefs alle notwendigen Variablen einstellen !'
  307. CALL Requester
  308.  
  309. Fehler2:
  310. Reqtext = 'Achtung Fehler2:'||'0A'x|| '' ||'0A'x|| 'Bitte erst mit ADMscPrefs den Pfad vom AdressMaster einstellen !'
  311. CALL Requester
  312.  
  313. Fehler3:
  314. Reqtext = 'Achtung Fehler3:'||'0A'x|| '' ||'0A'x|| 'Bitte erst mit ADMscPrefs den Pfad des ADMDatensatzes' ||'0A'x|| 'von ADM anwählen !'
  315. CALL Requester
  316.  
  317. Fehler4:
  318. Reqtext = 'Achtung Fehler4:'||'0A'x|| '' ||'0A'x|| 'Bitte erst mit ADMscPrefs den Pfad für die Gebdatei anwählen ! '
  319. CALL Requester
  320. Fehler5:
  321. Reqtext = 'Achtung Fehler5:'||'0A'x|| '' ||'0A'x|| 'Bitte erst mit ADMscPrefs die Anzahl der Vorwarntage einstellen !'
  322. CALL Requester
  323.  
  324. Fehler6: 
  325. Reqtext = 'Achtung Fehler6:'||'0A'x|| '' ||'0A'x|| 'Bitte erst mit ADMscPrefs die Variable ====> VLog setzen !'
  326. CALL Requester
  327.  
  328. Fehler7:
  329. Reqtext = 'Achtung Fehler7:'||'0A'x|| '' ||'0A'x|| 'Es existiert keine ADMGebliste !' ||'0A'x|| 'Bitte erst mit dem Script ADMGebList.adm erstellen !'
  330. CALL Requester
  331.  
  332. Fehler8:
  333. Reqtext = 'Achtung Fehler8:'||'0A'x|| '' ||'0A'x|| 'Bitte erst mit ADMscPrefs die Variable Checkaktuell setzen !'
  334. CALL Requester
  335.  
  336. Requester:
  337. Flags  = 'rtez_flags = ezreqf_centertext'
  338. Titel  = Ver 'Fehlermelung:'
  339. Gadget  = '_OK'
  340. Auswahl = rtezrequest(Reqtext,Gadget,Titel,Flags)
  341. EXIT
  342.