home *** CD-ROM | disk | FTP | other *** search
/ OS/2 Shareware BBS: 18 REXX / 18-REXX.zip / birth10.zip / BIRTHDAY.DOK < prev   
Text File  |  1994-03-07  |  14KB  |  381 lines

  1.  
  2.      ***************************************************************
  3.  
  4.  *** an english documentation is in then file BIRTHDAY.DOC contained***
  5.  
  6.      ***************************************************************
  7.  
  8.  
  9.  
  10.                                          Birthday Reminder V1.0
  11.  
  12.                                          geschrieben März 1994 von
  13.                                          Wolfram Koerner
  14.  
  15.  
  16.  
  17. Kontakt:
  18. --------
  19.  
  20.           Internet: koerner@cip.informatik.uni-wuerzburg.de
  21.  
  22.           Fido    : Wolfram Koerner@2:2490/5100.8
  23.  
  24.           Sackpost: Wolfram Koerner
  25.                     Friedenstrasse 5a
  26.                     97072 Wuerzburg
  27.                     GERMANY
  28.  
  29. Inhalt:
  30. -------
  31.  
  32.       * Wofür ?
  33.  
  34.       * Wie geht's ?
  35.  
  36.       * Geburtstags-Test bei jedem Systemstart !
  37.  
  38.       * Format der Datenbank
  39.  
  40.       * Rechtliches
  41.  
  42.  
  43.  
  44.  
  45. Wofür ?
  46. -------
  47.  
  48. BIRTHDAY.CMD ist ein  REXX-Programm,  mit  dem vergessliche Typen
  49. (wie  z.B.   ich...)  automatisch  an  Geburtstage  oder  andere,
  50. jährlich wiederkehrende Ereignisse erinnert werden können.
  51.  
  52. Zu jedem Ereigniss kann eine Vorwarnzeit  von  maximal  28  Tagen
  53. eingestellt  werden.  Z.B.  um für eine Erbtante noch in Ruhe ein
  54. Geschenk besorgen und abschicken zu können.
  55. Das Programm hat also zwei Arten von Meldungen:
  56.  
  57.     * Warnmeldung nach dem Motto:
  58.       WARNING: 22. Birthday in 5 day(s) !
  59.       Also Achtung die folgende Person hat in 5 Tagen ihren
  60.       22. Geburtstag
  61.  
  62.     * Geburtstagsmeldungen nach dem Motto:
  63.       A HAPPY 22. BIRTHDAY TO:
  64.       Also Achtung die folgende Person hat HEUTE ihren 22. Geburtstag
  65.  
  66. Bei  jeder  Vorwarnung  und  bei  jeder  Geburtstagsmeldung  wird
  67. anschließend abgefragt,  ob  nochmal  gewarnt  werden soll.  Wird
  68. also die Frage:
  69.  
  70.     Keep event active (Y/N) <enter>=YES ?
  71.  
  72. mit Druck  auf  "Enter"  oder  "y"  beantwortet,  so  bleibt  das
  73. Ereignis aktiv und wird beim nächsten Test auf Geburtstage wieder
  74. angezeigt (wenn der Geburtstag nicht schon vorbei ist !!).
  75. Wird   hier  hingegen  mit  "n"  geantwortet,  so  wird  für  den
  76. entsprechenden  Geburtstag  in  diesem  Jahr  keine  Warnung mehr
  77. ausgegeben.   Das  Ereignis  wird  bis  zum  nächsten  Geburtstag
  78. "Passiv" geschaltet.
  79. Passive Ereignisse können auch  nachträglich  noch  "reaktiviert"
  80. werden. Siehe Punkt "R" im Hauptmenü.
  81.  
  82. Damit das Programm an die Geburtstage erinnern kann,  braucht  es
  83. eine  Datenbank,  in  der  die Namen mit den entsprechenden Daten
  84. gespeichert  sind   (diese   Datenbank   heißt   in   der  Regel:
  85. "C:\BIRTHDAY.DAT).  Wird ein anderer Dateiname gewünscht, so kann
  86. er im REXX-Script in Zeile 28 editiert werden.
  87.  
  88. Wegen der Datenbank hat BIRTHDAY.CMD auch im wesentlichen 2
  89. Betriebsarten:
  90.     * Datenbankmodus (hier kann die Datenbank gepflegt werden)
  91.       BIRTHDAY.CMD
  92.     * Checkmodus     (hier wird nur auf Geburtstage getestet)
  93.       BIRTHDAY.CMD /c
  94.  
  95.  
  96.  
  97. Wie geht's ?
  98. ------------
  99.  
  100. Soll das Programm zu erstenmal aufgerufen werden, einfach nur eingeben:
  101.  
  102.     BIRTHDAY.CMD<enter>
  103.  
  104. Es sollte darauf der folgende Bildschirm erscheinen :
  105.  
  106. ┌────────────────────────────────────────────────────────────────────────────┐
  107. │                          Birthday Reminder V1.0                            │
  108. │                                                                            │
  109. │                              Today:03/06/94                                │
  110. │                     Database:  0 Recs - DATE sorted                        │
  111. ├────────────────────────────────────────────────────────────────────────────┤
  112. │                                                                            │
  113. │                                                                            │
  114. │                     L ..... List complete database                         │
  115. │                     P ..... Print database                                 │
  116. │                     R ..... Reactivate passive events                      │
  117. │                     S ..... Sort database by: NAME                         │
  118. │                     C ..... Check for birthdays                            │
  119. │                                                                            │
  120. │                     A ..... Add a record                                   │
  121. │                     E ..... Edit a record                                  │
  122. │                     D ..... Delete a record                                │
  123. │                                                                            │
  124. │                     Q ..... Quit program (and save data)                   │
  125. │                                                                            │
  126. │                     _ ----> YOUR CHOICE                                    │
  127. │                                                                            │
  128. └──────────────────────────────────────────────────────────────────(C)'94 WOK┘
  129.  
  130. Unter der Titelzeile wird  das  aktuelle Datum im Format MM/TT/JJ
  131. angezeigt.  Der Zeile darunter ist zu entnehmen,  daß  im  Moment
  132. keine  (0)  Einträge  (Records)  in der Datenbank enthalten sind.
  133. Die Datenbank wird nach Datum  sortiert (DATE sorted) es ist auch
  134. möglich sie nach Namen der Geburtstagskinder zu  sortieren  (NAME
  135. sorted  - siehe Punkt"S")
  136.  
  137. Darunter ist das Hauptmenü zu sehen.
  138.  
  139.  
  140. HAUPTMENÜ:
  141. L ..... List complete database
  142.   Listet  den  kompletten Inhalt der Datenbank auf.  Nach jeweils
  143.   20 Zeilen wird auf die Taste <enter> gewartet.
  144.  
  145.   Das Format ist:
  146.   No.  Name                      Memo                  mm/dd/yy (PW) :NE #D
  147.   -------------------------------------------------------------------------
  148.  
  149.   No.        - Nummer des Datensatzes.
  150.                Ein Datensatz kann  seine  Nummer ändern, wenn die
  151.                Sortierreihenfolge geändert word, oder wenn  davor
  152.                ein neuer Datensatz eingefügt wird.
  153.                Diese   Nummer  muss  für  das  Löschen  oder  das
  154.                Editieren eines  bestehenden Datensatzes angegeben
  155.                werden.
  156.   Name       - Der Name des Geburtstagskindes.
  157.                Er darf maximal 25 Zeichen betragen.  Werden beim
  158.                Anlegen des Datensatzes  mehr  Zeichen  eingegeben
  159.                werden    ab   dem   25   Zeichen   alle   Zeichen
  160.                abgeschnitten.
  161.                Nach diesem  Datenfeld  kann  die Datenbank anstatt
  162.                nach  dem  Geburtstagsdatenfeld  sortiert  werden.
  163.                ("s" aus dem Hauptmenü)
  164.   Memo       - Hier  kann  zusätzlich  zum  Namen noch ein maxi-
  165.                mal 20 Zeichen langes Memo-Feld eingegeben werden.
  166.   mm/dd/yy   - Hier steht das Geburtstagsdatum im Format
  167.                MM = Zwei Ziffern für den Monat (00 bis 12)
  168.                DD = Zwei Ziffern für  den  Tag des Monats (00 bis
  169.                     max. 31)
  170.                YY = Das Jahr der Geburt (00 bis 99)
  171.                     Im   Jahr    2000    wird    mein    Programm
  172.                     wahrscheinlich Probleme bekommen  :-(
  173.   (PW)       - Die Vorwarntage (0 - 28)
  174.                ab  dem  PW-ten  Tag vor dem Geburtstag wird schon
  175.                eine Warnung ausgegeben.
  176.   :NE        - Das Jahr des nächsten Ereignisses.
  177.                Beim Geburtstag in  DIESEM  Jahr wird das Programm
  178.                das nächste mal aktiv.  Dieses Jahr  wird  erhöht,
  179.                wenn  der  Geburtstag  entweder  dieses Jahr schon
  180.                vorbei ist,oder wenn  das  Ereigniss  für ein Jahr
  181.                auf "PASSIV" geschaltet wurde, also wenn die Frage:
  182.  
  183.                Keep event active (Y/N) <enter>=YES ?
  184.  
  185.                mit "n" beantwortet wurde.
  186.                Alle Jahreszahlen, die  größer  als  das  aktuelle
  187.                Jahr  sind  können  mit  dem  Punkt  "R"  aus  dem
  188.                Hauptmenü  wieder  reaktiviert werden.  Dabei wird
  189.                das aktuelle Jahr dort eingesetzt.
  190.   #D         - Anzahl der Tage bis zum nächsten Geburtstag.
  191.                Steht  hier  eine  "-1"  so  wird  momentan  keine
  192.                Warnung ausgegeben.
  193.  
  194.  
  195.  
  196. HAUPTMENÜ:
  197. P ..... Print database
  198.  
  199.   Hiermit kann der  Inhalt  der  Datenbank  auf  dem Drucker, auf
  200.   einer Datei oder auch nochmal  auf  dem  Bildschirm  ausgegeben
  201.   werden.  Dazu muss ein Einheitenname eingegeben werden, auf dem
  202.   die Liste ausgegeben werden soll.
  203.  
  204.   z.B.: PRN           Drucker
  205.         CON           Bildschirm
  206.         c:\daten.txt  für eine Datei
  207.  
  208.  
  209. HAUPTMENÜ:
  210. R ..... Reactivate passive events
  211.  
  212.   Hiermit  können  Ereignisse,  die "ausversehen" für dieses Jahr
  213.   auf "PASSIV" gesetzt wurden wieder reaktiviert werden.
  214.   Wurde also bei der Frage
  215.  
  216.                Keep event active (Y/N) <enter>=YES ?
  217.  
  218.    Aus Versehen  "n"  eingegeben,  so  werden  mit  dem Punkt "R"
  219.    wieder alle Ereignisse, die noch nicht vorbei sind als Warnung
  220.    angezeigt.
  221.  
  222.  
  223. HAUPTMENÜ:
  224. S ..... Sort database by: NAME/DATE
  225.  
  226.   Normalerweise  ist  die  Datenbank  nach  den  Geburtstagsdaten
  227.   sortiert.  Dies ist sinnvoll, weil man dann auch unabhängig von
  228.   den Warnungen sehen kann in welcher Reihnefolge die Geburtstage
  229.   über das Jahr verteilt sind.
  230.   Sucht man jedoch nach dem Geburtstag einer bestimmten Person in
  231.   einer großen Datenbank, so kann es sinnvol sein, die  Datenbank
  232.   nach  NAMEN sortieren.  Ein Druck auf "S" sortiert jeweils nach
  233.   dem anderen Datenbankfeld. Entweder also NAME oder DATE.
  234.   Die Datenbank wird  auch  in  der  Reihenfolge  des bei Beenden
  235.   gültigen Sortiermodus abgespeichert.
  236.  
  237.  
  238. HAUPTMENÜ:
  239. C ..... Check for birthdays
  240.  
  241.   Testet die Datenbank nach anstehenden Geburtstagen durch.
  242.   Eventuell  nötige  Warnungen  und  Geburtstagsmeldungen  werden
  243.   ausgegeben.
  244.   Dieser Menüpunkt kann auch  direkt  von  der  Kommandozeile  aus
  245.   aufgerufen werden in dem man den Schalter /C benutzt:
  246.  
  247.       BIRTHDAY.CMD  /c
  248.  
  249.   Bei   einer   Warnung   werden  zusätzlich  zwei  Piepstöne  im
  250.   PC-Lautsprecher erzeugt und  bei  einer Geburtstagsmeldung wird
  251.   kurz die Melodie "Happy  Birthday  to  you"  angespielt.   Wenn
  252.   diese   Töne   nerven,  so  können  sie  mit  dem  Schalter  /Q
  253.   abgeschaltet werden. Also enweder:
  254.  
  255.       BIRTHDAY.CMD /q
  256.       oder:
  257.       BIRTHDAY.CMD /c /q
  258.  
  259.  
  260. HAUPTMENÜ:
  261. A ..... Add a record
  262.  
  263.   Fügt einen Datensatz in die Datenbank ein.
  264.   Die entsprechenden Felder müssen sinnvoll ausgefüllt werden.
  265.   Speziell Geburtsdatum  un  Vorwarnzeit  sollten  erlaubte Werte
  266.   beinhalten, da zwar einige Fehleingaben abgefangen werden, aber
  267.   sicherlich nicht ALLE !
  268.   Also ERST DENKEN DANN TIPPEN !
  269.  
  270.  
  271. HAUPTMENÜ:
  272. E ..... Edit a record
  273.  
  274.   Nach  Abfrage  der  Datensatznummer  können  alle  Angaben  des
  275.   Datensatzes erneut bearbeitet werden.
  276.   Mit "E"-Exit verläßt man den Bearbeitungsmodus,  der  Datensatz
  277.   wird  dann an neuer Stelle in die Datenbank einsortiert und hat
  278.   somit   eventuell    nach    der    Bearbeitung    eine  ANDERE
  279.   Datensatznummer.
  280.  
  281.  
  282. HAUPTMENÜ:
  283. D ..... Delete a record
  284.  
  285.   Hiermit kann ein Datensatz gelöscht werden.
  286.   Zuerst muß die Datensatznummer eingegeben werden.
  287.   Es  folgt  eine  Sicherheitsabfrage,  worauf  bei   "positiver"
  288.   Antwort der Datensatz gelöscht wird.
  289.  
  290.  
  291. HAUPTMENÜ:
  292. Q ..... Quit program (and save data)
  293.  
  294.   Hiermit kann das Programm verlassen werden.
  295.   Vorher  wird  die  aktuelle Datenbank gespeichert.  In  welcher
  296.   Datei dies geschieht  steht  am  Anfang  des REXX-Programmes in
  297.   Zeile 28 (ungefähr!) hinter der Variable:
  298.  
  299.       DBFile="c:\birthday.dat"
  300.  
  301.   Wenn ein anderer Datenbankname gewünscht  wird,  dann  muss  er
  302.   hier eingetragen werden.
  303.  
  304.   Wenn  die  Datenbank  einmal  vollständig ist, kann man jeweils
  305.   mit :
  306.  
  307.       BIRTHDAY.CMD /c
  308.  
  309.   einen  Datenbankcheck  veranlassen,  bei  dem  nicht  das ganze
  310.   Scipt, sondern nur die Testroutine angesprungen wird.
  311.  
  312.  
  313.  
  314.  
  315. Geburtstags-Test bei jedem Systemstart
  316. --------------------------------------
  317.  
  318. Will  man  bei  jedem  Systemstart  von  OS/2  die Datenbank nach
  319. aktuellen  Geburtstagen  durchsucht  haben,   so  sollte  man  im
  320. Wurzelverzeichniss des OS/2-Bootlaufwerkes (meistens: "C:\") eine
  321. Datei mit dem Namen
  322.  
  323.     STARTUP.CMD
  324.  
  325. anlegen.   Diese  Datei  wird  bei  jedem  Systemstart  von  OS/2
  326. abgearbeitet.   In diese Datei schreibe man nun noch einen Aufruf
  327. für BIRTHDAY.CMD
  328. Zum Beispiel:
  329.  
  330.     call c:\cmd\birthday.cmd /c
  331.  
  332.  
  333.  
  334.  
  335.  
  336. Format der Datenbank
  337. --------------------
  338.  
  339. Birthday Database 1.0              (Dies MUSS in der 1.Zeile stehen !!!)
  340. SortIndex=n                        (2.Zeile MUSS lauten: n=1 oder n=3)
  341.                                    (3.Zeile MUSS eine Leerzeile sein !)
  342. Name # 1                           (Beginn 1. Datensatz)
  343. Memo # 1
  344. mm/dd/yy                           (Geburtstag # 1)
  345. nn                                 (Vorwarntage von 0 bis 28)
  346. 95                                 (Jahr des nächsten Ereignisses)
  347.                                    (Nach JEDEM Record eine Leerzeile !!!)
  348. Name # 2                           (Beginn 2. Datensatz)
  349. Memo # 2
  350. 02/03/71
  351. 3
  352. 95
  353.                                    (Leerzeile auch nach dem LETZTEN Record)
  354.  
  355.  
  356. Rechtliches
  357. -----------
  358.  
  359. Speziell bei  Programmen,  die  Daten  bewegen  besteht immer die
  360. Gefahr, dass durch Programmierfehler Daten verloren  gehen.   Ich
  361. möchte  an  dieser  Stelle  auf  mögliche  Gefahren hinweisen und
  362. betonen,  dass  ich  keinerlei  Haftung  für  irgendeinen Schaden
  363. übernehmen werde, den  das  Programm  anrichten sollte.  Ich habe
  364. zwar nach bestem Können Fehler beseitigt.   Aber  auszuschliessen
  365. sind  sie  nie  !   Sollten  Sie  mit  diesen  Bedingungen  nicht
  366. einverstanden sein, so ist das Programm nicht zu starten, sondern
  367. zu löschen.
  368.  
  369. Das Copyright liegt  bei  mir.   Das  Programm ist FREEWARE.  Ich
  370. erlaube  also   kostenlose   Verbreitung,   soweit  alle  Dateien
  371. (Programm und  Dokumentation)  zusammen unverändert weitergegeben
  372. werden.  Speziell das REXX-Script darf vor der  Weitergabe  nicht
  373. verändert  werden.  Sollte Grund zu Veränderungen bestehen, bitte
  374. mit   mir   Kontakt   aufnehmen.    Wir   können   dann  zusammen
  375. Verbesserungen einbauen oder Fehler beheben.   Denn  nur  so  ist
  376. gewährleistet, dass kein Versions-Chaos entsteht.
  377.  
  378.  
  379. --------------------------------------------Würzburg im März 1994
  380.  
  381.