home *** CD-ROM | disk | FTP | other *** search
/ Powerdrive 1998 September / POWERDRIVE0998.ISO / VOLLVERS / ADRESS / ADRESSEN.MOD < prev    next >
Text File  |  1997-03-14  |  11KB  |  358 lines

  1. ..    Modul fⁿr Tabelle ADRESSEN
  2.  
  3. Procedure OnOpenProject
  4. ..    wird ausgefⁿhrt beim starten des projekts und setzt zugriff auf name, vorname, ort
  5. ..
  6.     ReadRec(SYSTEM, 1);
  7.     ..Message(SYSTEM.StartFormular);
  8.     IF SYSTEM.StartFormular <> ""
  9.      ActivateForm(SYSTEM.StartFormular);
  10.      IF SYSTEM.StartFormular = "ADRESSEN.Adresverwaltung"
  11.        SetSortOrder("ADRNAME.IND");
  12.       END
  13. ..    AnfangDerTabelle;Refresh;
  14.     END
  15.  
  16. Endproc
  17.  
  18. Procedure EndeBearbeiten(nDummy : Real)
  19. ..    setzt bearbeitungsmodus auf betrachten
  20.  
  21.     ?GetMode = 1/DatensΣtzeΣndern
  22.     ?GetMode = 2/NeueDatensΣtzeEingeben
  23.  
  24. Endproc
  25.  
  26. Procedure FormularVerlassen(nDummy : Real)
  27. ..    hier noch was finden fⁿr den fall das einen satz geΣndert wurde. getmode ist zu global und kann nicht feststellen
  28. ..    ob eine datensatz geΣndert wurde. ablauf k÷nnte so sein:
  29. ..    original datensatz zwischenspeichern
  30. ..    satz ggf Σndern
  31. ..    wenn geΣndertersatz<>originaldatensatz dann setzte datum neu
  32.  
  33. ..    If GetMode = 2 
  34. ..        $ADRESSEN.Aufnahme := Today; Refresh;
  35. ..    End
  36.  
  37. Endproc
  38.  
  39. Procedure SuchName(nDummy : Real)
  40. ..    ÷ffnet ein fenster zur eingabe eines suchnamens.
  41. ..    wird im hauptformular unter *-makro (suchen) ausgefⁿhrt.
  42. ..    20.10.96: m÷glichkeit disabled, Li
  43.  
  44.     Vardef    nRT : Real;
  45.     T-Eingabe := "*";
  46.     Falls Input("Name?","Suchen") = 1
  47.         Suchen("ADRNAME.IND", T-Eingabe);
  48.         Refresh;
  49.     Ende
  50. Endproc
  51.  
  52. Procedure SucheBuchstabe(sBuchstabe : String)
  53.  
  54.     Suchen("adrname.ind", sBuchstabe);
  55.     SetSortOrder("ADRNAME.IND");
  56.     Refresh;
  57.  
  58. Endproc
  59.  
  60. Procedure NamenKontrolle(nDummy : Real)
  61.  
  62.     ReadRec(ADRESSEN, RecNo(ADRESSEN));
  63.     If Length(ADRESSEN.Name) = 0
  64.         Message("Feld Name darf nicht leer bleiben...");
  65.     End
  66.  
  67. Endproc
  68.  
  69. Procedure Zur_Zwischenablage_E-Mail
  70. ..    kopiert den firmenfax zum clipboard
  71.  
  72.     CopyStrToClipboard(ADRESSEN.E-Mail);
  73.  
  74. Endproc
  75.  
  76. Procedure Zur_Zwischenablage_Firmenfax
  77. ..    kopiert den firmenfax zum clipboard
  78.  
  79.     $ADRESSEN.Fax-Geschaeft := Exchange(Exchange($ADRESSEN.Fax-Geschaeft,"-",""),"/","");
  80.     CopyStrToClipboard(ADRESSEN.Fax-Geschaeft);
  81.  
  82. Endproc
  83.  
  84. Procedure Zur_Zwischenablage_Adresse
  85. ..    kopiert die aktuelle adresse zum clipboard
  86.     Var    CRLF = Chr(13) + Chr(10)
  87.     Var    sAdr = "";
  88.  
  89.     ?Vorname/sAdr := sAdr + Vorname + " ";
  90.     ?Name/sAdr := sAdr + Name + CRLF;
  91.     ?Name2/sAdr := sAdr + Name2 + CRLF;
  92.     If Postfach
  93.         sAdr := sAdr +"Postfach " + Postfach + CRLF;
  94.         sAdr := sAdr + Land + "-" + Plz + " " + Ort + CRLF;
  95.     Else
  96.         sAdr := sAdr + Strasse + CRLF;
  97.         sAdr := sAdr + Land + "-" + Plz + " " + Ort + CRLF;
  98.     End
  99.     CopyStrToClipboard(sAdr);
  100.     Message(sAdr,"Zum Clipboard",1);
  101. Endproc
  102.  
  103. Procedure IsNameInTabelle(nDummy : Real)
  104.     ..    checked ob der neue name schon in der tabelle vorhanden ist
  105.     .. datensatz schon vorhanden
  106.     If GetMode = 1 And $Aufnahme = 0
  107.         $ADRESSEN.Aufnahme := Today;
  108.         $ADRESSEN.Aenderung := Today;
  109.         Refresh;
  110.     End
  111.     .. neuen datensatz
  112.     If GetMode = 2 
  113.         ?FindRec(ADRESSEN, $ADRESSEN.Name, "ADRNAME.IND", 1) > 0/Message("Datensatz ist schon in der Tabelle vorhanden!")
  114.         $ADRESSEN.Aufnahme := Today;
  115.         $ADRESSEN.Aenderung := Today;
  116.         Refresh;
  117.     End
  118. Endproc
  119.  
  120. Procedure DatenSichern(nDummy : Real)
  121. ..    sichert die adressenverwaltung auf diskette
  122. ..    noch bearbeiten, das problem ist die sperrung der tabelle etc.
  123.  
  124.     Message("Punkt ist noch offen...");
  125.  
  126. Endproc
  127.  
  128. Procedure Terminverwaltung
  129. ..    in der tabelle termlist werden termine verwaltet
  130.  
  131.     Vardef sMsg : String;
  132.     Vardef nCount : Real;
  133.  
  134.     If GetMode <> 0
  135.         Message("Datensatz wird noch bearbeitet. Erst Bearbeitung beenden!");
  136.         Return
  137.     Ende
  138.     EndeBearbeiten(0);
  139.     If RecNo(ADRESSEN) = 0
  140.         Message("Keine Adresse ausgewΣhlt...");
  141.         Return
  142.     End
  143.     ..    anzahl eintrΣge ermitteln
  144.     nCount := Link(TERMLIST.Adresse = ADRESSEN.Nummer) * Count(TERMLIST); 
  145.     ..    welche gefunden, noch eine hinzufⁿgen
  146.     If  nCount > 0
  147.         ?nCount = 1/sMsg := "Neuer Termin mit " + Name + " (" + Ort + ")" + " festlegen?" + Chr(13) + Chr(10) + "(" + Str(nCount) + " Eintrag bereits vorhanden.)";    
  148.         ?nCount > 1/sMsg := "Neuer Termin mit " + Name + " (" + Ort + ")" + " festlegen?" + Chr(13) + Chr(10) + "(" + Str(nCount) + " EintrΣge bereits vorhanden.)";
  149.     ElsIf    ..    keine gefunden, nue hinzufⁿgen
  150.         sMsg := "Neuer Termin mit " + Name + " (" + Ort + ") festlegen?"
  151.     End
  152.     ..    frage ob neuer termin, wenn ja, dann neuer terminfestlegen
  153.     If Message(sMsg, "Terminverwaltung", 3) = 6
  154.         ReadRec(TERMLIST, 0);
  155.         ..    setzte vorgaben
  156.         TERMLIST.Adresse := ADRESSEN.Nummer;
  157.         TERMLIST.TerminDatumBeginn := ToDay;                        .. noch ueberlegen ob vorbelegung weg soll
  158.         TERMLIST.TerminDatumEnde := ToDay;
  159.         TERMLIST.TerminZeitBeginn := Now;                        
  160.         TERMLIST.TerminZeitEnde := Now;
  161.         TERMLIST.PrioritΣt := 3;
  162.         WriteRec(TERMLIST, 1 + FileSize(TERMLIST));
  163.         ..    rufe formular wieder auf
  164.         ActivateForm("TERMLIST.Terminverwaltung");
  165.         SetView(1);
  166.         ShowRec(FileSize(TERMLIST));
  167.         DatensΣtze─ndern;
  168.     ElsIf
  169.         ..    keine eintrΣge, dann rufe terminverwaltungsformular direkt auf
  170.         ?nCount = 0/ActivateForm("TERMLIST.Terminverwaltung");
  171.         ..    wenn termine da sind, zeige liste der termine fⁿr adresse
  172.         ..    ?nCount > 0/ViewLinkedRecs("TERMLIST", 2, "Termine mit " + ADRESSEN.Name + " (" + ADRESSEN.Ort + ")" );
  173.         ..    viewlinkedrecs gefΣllt mir nicht. besser ist direkt das adressenformular aufzurufen und dann direkt zum eintrag
  174.         ..    hier funktioniert findrec nicht FindRec(TERMLIST, Str(ADRESSEN.Nummer), "TERMLIST.ID", 1)
  175.         If nCount > 0
  176.             ..    suche recno
  177.             Vardef        nRNo : Real;
  178.             nRNo := FirstRec(TERMLIST) ;
  179.             While nRNo > 0
  180.                 ReadRec(TERMLIST, nRNo);
  181.                 If TERMLIST.Adresse = ADRESSEN.Nummer
  182.                     ActivateForm("TERMLIST.Terminverwaltung");
  183.                     SetView(1);
  184.                     ShowRec(nRNo);
  185.                     Return
  186.                 End
  187.                 nRNo := NextRec(TERMLIST);
  188.             End
  189.         End
  190.     End
  191. Endproc
  192.  
  193. Procedure Korrespondenz
  194. ..    in der tabelle korrespd
  195. ..    erwarten
  196.  
  197.     Vardef sMsg : String;
  198.     Vardef nCount : Real;
  199.  
  200.     If RecNo(ADRESSEN) = 0
  201.         Message("Keine Adresse ausgewΣhlt...");
  202.         Return
  203.     End
  204.     ReadRec(ADRESSEN, RecNo(ADRESSEN) );
  205.  
  206.     sMsg := "Neuer Korrespondenz mit " + Name + " erstellen?"
  207.     If Message(sMsg, "Korrespondenzverwaltung", 3) = 6
  208.         ReadRec(KORRESP, 0);
  209.         ..    setzte vorgaben
  210.         ..    Message(Str(KORRESPO));
  211.         SetField(KORRESP,3,DateStr(ToDay));
  212.         WriteRec(KORRESP, 1 + FileSize(KORRESP));
  213.         ..    zweiter schritt
  214.         ReadRec(KORRESP, FileSize(KORRESP) );
  215.         ..
  216.         ReadRec(KORRESPO, 0);
  217.         KORRESPO.1 := KORRESP.Nummer;
  218.         KORRESPO.2 := ADRESSEN.Nummer;
  219.         WriteRec(KORRESPO, 1 + FileSize(KORRESPO) );
  220.         ..    rufe form wieder auf
  221.         ActivateForm("KORRESP.Korrespondenz");
  222.         ShowRec(FileSize(KORRESP));
  223.         DatensΣtze─ndern;
  224.     ElsIf
  225.         ActivateForm("KORRESP.Korrespondenz");
  226.         .. wenn eintrag vorhanden ist, zeige den eintrag
  227.     End
  228. Endproc
  229.  
  230. Procedure Einzelbrief_mit_Adressenⁿbergabe
  231. ..    startet die definierete textverarbeitung (systemeinstellungen)
  232.  
  233.     ReadRec(SYSTEM, 1);
  234.     ..Message("Starte " + $SYSTEM.TVPfad + " " + $SYSTEM.TVVorlagenPfad);
  235.     ..    sind angaben vorhanden
  236.     IF $SYSTEM.TVPfad = "" OR $SYSTEM.TVVorlagenPfad = ""
  237.         Message("Textverarbeitung oder Vorlagenpfad unter Systemeinstellungen eintragen.", "Fehler");
  238.         Return
  239.     END
  240.     ..    sind vorlagen und tv vorhanden
  241.     IF IsFile($SYSTEM.TVPfad) = 0 OR IsFile($SYSTEM.TVVorlagenPfad) = 0
  242.         Message("Textverarbeitung oder Vorlagenpfad nicht gefunden. Unter Systemeinstellungen eintragen.", "Fehler");
  243.         Return
  244.     END
  245.     ActivateForm("SYSTEM.Systemeinstellungen");
  246.     ActivateForm("ADRESSEN.Adresverwaltung");
  247.     Execute($SYSTEM.TVPfad + " " + $SYSTEM.TVVorlagenPfad);
  248.         
  249. EndProc
  250.  
  251. Procedure SetzeTelFaxVorgaben(nDummy : Real)
  252. ..    anhand von der eingabe im feld land, werden aus der tabelle tellndvw
  253. ..    die vorwahlnummern fuer tel und fax gesetzt
  254. ..    lokale proc der via execmakro beim verlassen des feldes Land ausgefⁿhrt wird
  255.  
  256.     Vardef    nRNo : REAL;
  257.     Vardef    sVorwahl : STRING;
  258.  
  259.     ReadRec(SYSTEM, 1);
  260.     IF $SYSTEM.AdressenSetzeTelFaxVorgaben = 1 AND GetMode = 2
  261.         ..    suche Land
  262.         nRNo := FindRec(TELLNDVW, $Land, "TELKENN.IND", 1);
  263.         ..    nichts gefunden, dann verlassen proc
  264.         IF nRNo = 0
  265.             Return
  266.         END
  267.         ReadRec(TELLNDVW, nRNo);
  268.         ..    vorwahl setzen. prΣfix leer dann lasse wie es ist
  269.         ?$SYSTEM.AdressenVorwahlPrΣfix = "" / sVorwahl := "" + $TELLNDVW.Vorwahl + " "
  270.         ?$SYSTEM.AdressenVorwahlPrΣfix <> "" / sVorwahl := $SYSTEM.AdressenVorwahlPrΣfix + $TELLNDVW.Vorwahl[3, Length($TELLNDVW.Vorwahl) - 2] + " "
  271.         ..    abhΣngig von der sparte tel und fax setzen
  272.         IF $ADRESSEN.Sparte = 6 
  273.             $ADRESSEN.Tel-Privat := sVorwahl
  274.             $ADRESSEN.Fax-Privat := sVorwahl
  275.         END
  276.         IF $ADRESSEN.Sparte = 3
  277.             $ADRESSEN.Tel-Geschaeft := sVorwahl
  278.             $ADRESSEN.Fax-Geschaeft := sVorwahl
  279.         END
  280.         Refresh
  281.     END
  282.  
  283. EndProc
  284.  
  285. PROCEDURE TestVorname (nDummy : REAL)
  286. ..    testet den vornamen und setzt geschlecht
  287.   VARDEF Gefunden : REAL
  288.  
  289.   .. wenn nicht betrachtet oder vorname leer, dann verlasse proc
  290.   IF GetMode < 1 OR ADRESSEN.Vorname = ""
  291.     Return
  292.   END
  293.   Gefunden :=  FindRec(VORNAMEN, ADRESSEN.Vorname, "VORNAMEN.ID", 1)
  294.   IF Gefunden <> 0
  295.     ReadRec(VORNAMEN, Gefunden)
  296.     ADRESSEN.Geschlecht := VORNAMEN.Geschlecht
  297.     ?ADRESSEN.Geschlecht = mΣnnlich / ADRESSEN.Anrede := "Sehr geehrter Herr"
  298.     ?ADRESSEN.Geschlecht = weiblich / ADRESSEN.Anrede := "Sehr geehrte Frau"
  299.   ELSE
  300.     ADRESSEN.Geschlecht := unbestimmt
  301.   END
  302.   Attach
  303. ENDPROC
  304.  
  305. Procedure Notiz
  306. .. startet notizformular
  307.     ActivateForm("NOTIZEN.Notizen");
  308.     EndeDerTabelle;
  309.     NeueDatensΣtzeEingeben;    
  310. Endproc
  311.  
  312. Procedure To_Do_Liste
  313. .. startet notizformular
  314.     ActivateForm("TODO.To_Do_Liste");
  315.     EndeDerTabelle;
  316.     NeueDatensΣtzeEingeben;    
  317. Endproc
  318.  
  319. Procedure Drucke_Aktueller_Datensatz
  320.  
  321.     ReadRec(ADRESSEN,RecNo(ADRESSEN));
  322.     If $ADRESSEN.Nummer = 0                                                ..    schade kein datensatz
  323.         Schlie▀en
  324.         Return
  325.     End
  326.     Note(Str($ADRESSEN.Nummer) );
  327. ..            Message($ADRESSEN.Name + ":" + Note );
  328.     Run("ADRESSEN.Aktueller_Datensatz");
  329.  
  330. Endproc
  331.  
  332. Procedure Wer_hat_Heute_Geburtstag
  333.     
  334.     Def    CRLF = Chr(13) + Chr(10)
  335.  
  336.     Vardef    nRNo : Real;
  337.     Vardef    sListe : String;
  338.     Vardef    sName : String;
  339.  
  340.     sListe := "";
  341.     nRNo := FirstRec(ADRESSEN) ;
  342.     ShowWait("Bitte warten, suche Geburtstagskinder...");
  343.     While nRNo > 0
  344.         ReadRec(ADRESSEN, nRNo);
  345.         If ADRESSEN.Geburtstag = Today
  346.             sListe := sListe + ADRESSEN.Name
  347.             ?ADRESSEN.Vorname <> ""/sListe := sListe + "," + ADRESSEN.Vorname
  348.             sListe := sListe + CRLF
  349.         End
  350.         nRNo := NextRec(ADRESSEN);
  351.     End
  352.     HideWait;
  353.     If sListe = ""
  354.         Message("Heute hat keiner Geburtstag.", "Wer hat Heute Geburtstag?");
  355.     Else
  356.         Message(sListe, "Wer hat Heute Geburtstag?");
  357.     End
  358. Endproc