home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Powerdrive 1998 September
/
POWERDRIVE0998.ISO
/
VOLLVERS
/
ADRESS
/
ADRESSEN.MOD
< prev
next >
Wrap
Text File
|
1997-03-14
|
11KB
|
358 lines
.. Modul fⁿr Tabelle ADRESSEN
Procedure OnOpenProject
.. wird ausgefⁿhrt beim starten des projekts und setzt zugriff auf name, vorname, ort
..
ReadRec(SYSTEM, 1);
..Message(SYSTEM.StartFormular);
IF SYSTEM.StartFormular <> ""
ActivateForm(SYSTEM.StartFormular);
IF SYSTEM.StartFormular = "ADRESSEN.Adresverwaltung"
SetSortOrder("ADRNAME.IND");
END
.. AnfangDerTabelle;Refresh;
END
Endproc
Procedure EndeBearbeiten(nDummy : Real)
.. setzt bearbeitungsmodus auf betrachten
?GetMode = 1/DatensΣtzeΣndern
?GetMode = 2/NeueDatensΣtzeEingeben
Endproc
Procedure FormularVerlassen(nDummy : Real)
.. hier noch was finden fⁿr den fall das einen satz geΣndert wurde. getmode ist zu global und kann nicht feststellen
.. ob eine datensatz geΣndert wurde. ablauf k÷nnte so sein:
.. original datensatz zwischenspeichern
.. satz ggf Σndern
.. wenn geΣndertersatz<>originaldatensatz dann setzte datum neu
.. If GetMode = 2
.. $ADRESSEN.Aufnahme := Today; Refresh;
.. End
Endproc
Procedure SuchName(nDummy : Real)
.. ÷ffnet ein fenster zur eingabe eines suchnamens.
.. wird im hauptformular unter *-makro (suchen) ausgefⁿhrt.
.. 20.10.96: m÷glichkeit disabled, Li
Vardef nRT : Real;
T-Eingabe := "*";
Falls Input("Name?","Suchen") = 1
Suchen("ADRNAME.IND", T-Eingabe);
Refresh;
Ende
Endproc
Procedure SucheBuchstabe(sBuchstabe : String)
Suchen("adrname.ind", sBuchstabe);
SetSortOrder("ADRNAME.IND");
Refresh;
Endproc
Procedure NamenKontrolle(nDummy : Real)
ReadRec(ADRESSEN, RecNo(ADRESSEN));
If Length(ADRESSEN.Name) = 0
Message("Feld Name darf nicht leer bleiben...");
End
Endproc
Procedure Zur_Zwischenablage_E-Mail
.. kopiert den firmenfax zum clipboard
CopyStrToClipboard(ADRESSEN.E-Mail);
Endproc
Procedure Zur_Zwischenablage_Firmenfax
.. kopiert den firmenfax zum clipboard
$ADRESSEN.Fax-Geschaeft := Exchange(Exchange($ADRESSEN.Fax-Geschaeft,"-",""),"/","");
CopyStrToClipboard(ADRESSEN.Fax-Geschaeft);
Endproc
Procedure Zur_Zwischenablage_Adresse
.. kopiert die aktuelle adresse zum clipboard
Var CRLF = Chr(13) + Chr(10)
Var sAdr = "";
?Vorname/sAdr := sAdr + Vorname + " ";
?Name/sAdr := sAdr + Name + CRLF;
?Name2/sAdr := sAdr + Name2 + CRLF;
If Postfach
sAdr := sAdr +"Postfach " + Postfach + CRLF;
sAdr := sAdr + Land + "-" + Plz + " " + Ort + CRLF;
Else
sAdr := sAdr + Strasse + CRLF;
sAdr := sAdr + Land + "-" + Plz + " " + Ort + CRLF;
End
CopyStrToClipboard(sAdr);
Message(sAdr,"Zum Clipboard",1);
Endproc
Procedure IsNameInTabelle(nDummy : Real)
.. checked ob der neue name schon in der tabelle vorhanden ist
.. datensatz schon vorhanden
If GetMode = 1 And $Aufnahme = 0
$ADRESSEN.Aufnahme := Today;
$ADRESSEN.Aenderung := Today;
Refresh;
End
.. neuen datensatz
If GetMode = 2
?FindRec(ADRESSEN, $ADRESSEN.Name, "ADRNAME.IND", 1) > 0/Message("Datensatz ist schon in der Tabelle vorhanden!")
$ADRESSEN.Aufnahme := Today;
$ADRESSEN.Aenderung := Today;
Refresh;
End
Endproc
Procedure DatenSichern(nDummy : Real)
.. sichert die adressenverwaltung auf diskette
.. noch bearbeiten, das problem ist die sperrung der tabelle etc.
Message("Punkt ist noch offen...");
Endproc
Procedure Terminverwaltung
.. in der tabelle termlist werden termine verwaltet
Vardef sMsg : String;
Vardef nCount : Real;
If GetMode <> 0
Message("Datensatz wird noch bearbeitet. Erst Bearbeitung beenden!");
Return
Ende
EndeBearbeiten(0);
If RecNo(ADRESSEN) = 0
Message("Keine Adresse ausgewΣhlt...");
Return
End
.. anzahl eintrΣge ermitteln
nCount := Link(TERMLIST.Adresse = ADRESSEN.Nummer) * Count(TERMLIST);
.. welche gefunden, noch eine hinzufⁿgen
If nCount > 0
?nCount = 1/sMsg := "Neuer Termin mit " + Name + " (" + Ort + ")" + " festlegen?" + Chr(13) + Chr(10) + "(" + Str(nCount) + " Eintrag bereits vorhanden.)";
?nCount > 1/sMsg := "Neuer Termin mit " + Name + " (" + Ort + ")" + " festlegen?" + Chr(13) + Chr(10) + "(" + Str(nCount) + " EintrΣge bereits vorhanden.)";
ElsIf .. keine gefunden, nue hinzufⁿgen
sMsg := "Neuer Termin mit " + Name + " (" + Ort + ") festlegen?"
End
.. frage ob neuer termin, wenn ja, dann neuer terminfestlegen
If Message(sMsg, "Terminverwaltung", 3) = 6
ReadRec(TERMLIST, 0);
.. setzte vorgaben
TERMLIST.Adresse := ADRESSEN.Nummer;
TERMLIST.TerminDatumBeginn := ToDay; .. noch ueberlegen ob vorbelegung weg soll
TERMLIST.TerminDatumEnde := ToDay;
TERMLIST.TerminZeitBeginn := Now;
TERMLIST.TerminZeitEnde := Now;
TERMLIST.PrioritΣt := 3;
WriteRec(TERMLIST, 1 + FileSize(TERMLIST));
.. rufe formular wieder auf
ActivateForm("TERMLIST.Terminverwaltung");
SetView(1);
ShowRec(FileSize(TERMLIST));
DatensΣtze─ndern;
ElsIf
.. keine eintrΣge, dann rufe terminverwaltungsformular direkt auf
?nCount = 0/ActivateForm("TERMLIST.Terminverwaltung");
.. wenn termine da sind, zeige liste der termine fⁿr adresse
.. ?nCount > 0/ViewLinkedRecs("TERMLIST", 2, "Termine mit " + ADRESSEN.Name + " (" + ADRESSEN.Ort + ")" );
.. viewlinkedrecs gefΣllt mir nicht. besser ist direkt das adressenformular aufzurufen und dann direkt zum eintrag
.. hier funktioniert findrec nicht FindRec(TERMLIST, Str(ADRESSEN.Nummer), "TERMLIST.ID", 1)
If nCount > 0
.. suche recno
Vardef nRNo : Real;
nRNo := FirstRec(TERMLIST) ;
While nRNo > 0
ReadRec(TERMLIST, nRNo);
If TERMLIST.Adresse = ADRESSEN.Nummer
ActivateForm("TERMLIST.Terminverwaltung");
SetView(1);
ShowRec(nRNo);
Return
End
nRNo := NextRec(TERMLIST);
End
End
End
Endproc
Procedure Korrespondenz
.. in der tabelle korrespd
.. erwarten
Vardef sMsg : String;
Vardef nCount : Real;
If RecNo(ADRESSEN) = 0
Message("Keine Adresse ausgewΣhlt...");
Return
End
ReadRec(ADRESSEN, RecNo(ADRESSEN) );
sMsg := "Neuer Korrespondenz mit " + Name + " erstellen?"
If Message(sMsg, "Korrespondenzverwaltung", 3) = 6
ReadRec(KORRESP, 0);
.. setzte vorgaben
.. Message(Str(KORRESPO));
SetField(KORRESP,3,DateStr(ToDay));
WriteRec(KORRESP, 1 + FileSize(KORRESP));
.. zweiter schritt
ReadRec(KORRESP, FileSize(KORRESP) );
..
ReadRec(KORRESPO, 0);
KORRESPO.1 := KORRESP.Nummer;
KORRESPO.2 := ADRESSEN.Nummer;
WriteRec(KORRESPO, 1 + FileSize(KORRESPO) );
.. rufe form wieder auf
ActivateForm("KORRESP.Korrespondenz");
ShowRec(FileSize(KORRESP));
DatensΣtze─ndern;
ElsIf
ActivateForm("KORRESP.Korrespondenz");
.. wenn eintrag vorhanden ist, zeige den eintrag
End
Endproc
Procedure Einzelbrief_mit_Adressenⁿbergabe
.. startet die definierete textverarbeitung (systemeinstellungen)
ReadRec(SYSTEM, 1);
..Message("Starte " + $SYSTEM.TVPfad + " " + $SYSTEM.TVVorlagenPfad);
.. sind angaben vorhanden
IF $SYSTEM.TVPfad = "" OR $SYSTEM.TVVorlagenPfad = ""
Message("Textverarbeitung oder Vorlagenpfad unter Systemeinstellungen eintragen.", "Fehler");
Return
END
.. sind vorlagen und tv vorhanden
IF IsFile($SYSTEM.TVPfad) = 0 OR IsFile($SYSTEM.TVVorlagenPfad) = 0
Message("Textverarbeitung oder Vorlagenpfad nicht gefunden. Unter Systemeinstellungen eintragen.", "Fehler");
Return
END
ActivateForm("SYSTEM.Systemeinstellungen");
ActivateForm("ADRESSEN.Adresverwaltung");
Execute($SYSTEM.TVPfad + " " + $SYSTEM.TVVorlagenPfad);
EndProc
Procedure SetzeTelFaxVorgaben(nDummy : Real)
.. anhand von der eingabe im feld land, werden aus der tabelle tellndvw
.. die vorwahlnummern fuer tel und fax gesetzt
.. lokale proc der via execmakro beim verlassen des feldes Land ausgefⁿhrt wird
Vardef nRNo : REAL;
Vardef sVorwahl : STRING;
ReadRec(SYSTEM, 1);
IF $SYSTEM.AdressenSetzeTelFaxVorgaben = 1 AND GetMode = 2
.. suche Land
nRNo := FindRec(TELLNDVW, $Land, "TELKENN.IND", 1);
.. nichts gefunden, dann verlassen proc
IF nRNo = 0
Return
END
ReadRec(TELLNDVW, nRNo);
.. vorwahl setzen. prΣfix leer dann lasse wie es ist
?$SYSTEM.AdressenVorwahlPrΣfix = "" / sVorwahl := "" + $TELLNDVW.Vorwahl + " "
?$SYSTEM.AdressenVorwahlPrΣfix <> "" / sVorwahl := $SYSTEM.AdressenVorwahlPrΣfix + $TELLNDVW.Vorwahl[3, Length($TELLNDVW.Vorwahl) - 2] + " "
.. abhΣngig von der sparte tel und fax setzen
IF $ADRESSEN.Sparte = 6
$ADRESSEN.Tel-Privat := sVorwahl
$ADRESSEN.Fax-Privat := sVorwahl
END
IF $ADRESSEN.Sparte = 3
$ADRESSEN.Tel-Geschaeft := sVorwahl
$ADRESSEN.Fax-Geschaeft := sVorwahl
END
Refresh
END
EndProc
PROCEDURE TestVorname (nDummy : REAL)
.. testet den vornamen und setzt geschlecht
VARDEF Gefunden : REAL
.. wenn nicht betrachtet oder vorname leer, dann verlasse proc
IF GetMode < 1 OR ADRESSEN.Vorname = ""
Return
END
Gefunden := FindRec(VORNAMEN, ADRESSEN.Vorname, "VORNAMEN.ID", 1)
IF Gefunden <> 0
ReadRec(VORNAMEN, Gefunden)
ADRESSEN.Geschlecht := VORNAMEN.Geschlecht
?ADRESSEN.Geschlecht = mΣnnlich / ADRESSEN.Anrede := "Sehr geehrter Herr"
?ADRESSEN.Geschlecht = weiblich / ADRESSEN.Anrede := "Sehr geehrte Frau"
ELSE
ADRESSEN.Geschlecht := unbestimmt
END
Attach
ENDPROC
Procedure Notiz
.. startet notizformular
ActivateForm("NOTIZEN.Notizen");
EndeDerTabelle;
NeueDatensΣtzeEingeben;
Endproc
Procedure To_Do_Liste
.. startet notizformular
ActivateForm("TODO.To_Do_Liste");
EndeDerTabelle;
NeueDatensΣtzeEingeben;
Endproc
Procedure Drucke_Aktueller_Datensatz
ReadRec(ADRESSEN,RecNo(ADRESSEN));
If $ADRESSEN.Nummer = 0 .. schade kein datensatz
Schlie▀en
Return
End
Note(Str($ADRESSEN.Nummer) );
.. Message($ADRESSEN.Name + ":" + Note );
Run("ADRESSEN.Aktueller_Datensatz");
Endproc
Procedure Wer_hat_Heute_Geburtstag
Def CRLF = Chr(13) + Chr(10)
Vardef nRNo : Real;
Vardef sListe : String;
Vardef sName : String;
sListe := "";
nRNo := FirstRec(ADRESSEN) ;
ShowWait("Bitte warten, suche Geburtstagskinder...");
While nRNo > 0
ReadRec(ADRESSEN, nRNo);
If ADRESSEN.Geburtstag = Today
sListe := sListe + ADRESSEN.Name
?ADRESSEN.Vorname <> ""/sListe := sListe + "," + ADRESSEN.Vorname
sListe := sListe + CRLF
End
nRNo := NextRec(ADRESSEN);
End
HideWait;
If sListe = ""
Message("Heute hat keiner Geburtstag.", "Wer hat Heute Geburtstag?");
Else
Message(sListe, "Wer hat Heute Geburtstag?");
End
Endproc