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

  1. ..Modul fⁿr Tabelle SYSTEM
  2.  
  3. ..Datei: system.mod
  4. ..Beschreibung: globale prozeduren/makros fⁿr adres95
  5.  
  6. Procedure EndeBearbeiten(nDummy : Real)
  7. ..    setzt bearbeitungsmodus auf betrachten
  8.  
  9.     ?GetMode = 1/DatensΣtzeΣndern
  10.     ?GetMode = 2/NeueDatensΣtzeEingeben
  11.  
  12. Endproc
  13.  
  14. Procedure SystemMeldung(sText, sHdg : String)
  15. .. gibt eine meldung aus. diese m÷glichkeit dienst als ersatz fⁿr
  16. .. die wintdb meldungen, da das wintdb-fenster zu klein ist, so das nicht
  17. .. der komplette text dargestellt wird.
  18. .. verwendet werden zwei felder (meldungsheading und -text) in der system tabelle.
  19. .. wenn parameter "" dann keine Σnderung des inhalts. erm÷glicht das setzen des 
  20. .. textes befor systemmeldung aufgerufen wird, z.b. um vars zu setzen.
  21. .. aufruf beispiel:
  22. .. ExecMacro(System, SystemMeldung("Keinen Speicherplatz","Fehler") );
  23.  
  24.     ReadRec(SYSTEM, 1);
  25.     ?sHdg <> "" / $SYSTEM.MeldungsHeading := sHdg;
  26.     ?sText <> "" / $SYSTEM.MeldungsText := sText;
  27.     WriteRec(SYSTEM,1);
  28.     ActivateForm("SYSTEM.Systemmeldung");
  29.     
  30. Endproc
  31.  
  32.  
  33. PROCEDURE DruckerStatus
  34. .. startet den druckmanager
  35. .. unter win95 ist noch offen, wie es funktioniert
  36.  
  37.     ReadRec(SYSTEM, 1);
  38.     IF $SYSTEM.Druckmanager <> ""
  39.         Execute($SYSTEM.Druckmanager);
  40.     ELSE
  41.         SystemMeldung("Kein Druckermanager in der Systemeinstellungen eingetragen.","Fehler") ;
  42.     END
  43.  
  44. Endproc
  45.  
  46. Procedure AdresseUebernehmen(nAbsender : Real)
  47. .. adresse aus den felder korabsenderprivat und beruf ⁿbernehmen
  48. .. parameter
  49. .. nAbsender: 1 = Privat 2 = Beruf
  50.     DEF    CRLF = Chr(13) + Chr(10)
  51.     Vardef    nRecNr : Real;
  52.  
  53.     ActivateForm("ADRESSEN.Adresverwaltung");
  54.     ?nAbsender = 1/ShowRec(FindRec(ADRESSEN, $SYSTEM.KorAbsenderPrivat, "ADRESSEN.ID", 0));
  55.     ?nAbsender = 2/ShowRec(FindRec(ADRESSEN, $SYSTEM.KorAbsenderBeruf, "ADRESSEN.ID", 0));
  56.     ViewRecs("Bitte suchen Sie den passenden Datensatz.");
  57.     ActivateForm("SYSTEM.Systemeinstellungen");
  58.     IF Message($ADRESSEN.Name + CRLF + $ADRESSEN.Name2 + CRLF + $ADRESSEN.Ort + CRLF + "uebernehmen?", "Adresⁿbernahme", 3) = 6
  59. ..        EndeBearbeiten(0);
  60.         ReadRec(SYSTEM, 1);
  61.         IF nAbsender = 1
  62.             ?$ADRESSEN.Vorname <> ""/$SYSTEM.Name := $ADRESSEN.Name + "," + $ADRESSEN.Vorname
  63.             ?$ADRESSEN.Vorname = ""/$SYSTEM.Name := $ADRESSEN.Name
  64.             $SYSTEM.KorAbsenderPrivat := $SYSTEM.Name
  65.             $SYSTEM.Tel := $ADRESSEN.Tel-Privat
  66.             $SYSTEM.Fax := $ADRESSEN.Fax-Privat
  67.         END
  68.         IF nAbsender = 2
  69.             $SYSTEM.Name := $ADRESSEN.Name
  70.             $SYSTEM.KorAbsenderBeruf := $SYSTEM.Name
  71.             $SYSTEM.Tel := $ADRESSEN.Tel-Geschaeft
  72.             $SYSTEM.Fax := $ADRESSEN.Fax-Geschaeft
  73.         END
  74.         $SYSTEM.Name2 := $ADRESSEN.Name2
  75.         $SYSTEM.Name3 := $ADRESSEN.Name3
  76.         $SYSTEM.Strasse := $ADRESSEN.Strasse
  77.         $SYSTEM.Plz := $ADRESSEN.Land + "-" + $ADRESSEN.Plz
  78.         $SYSTEM.Ort := $ADRESSEN.Ort
  79.         $SYSTEM.EMail := $ADRESSEN.E-Mail
  80.         WriteRec(SYSTEM, 1);
  81.         Refresh;
  82.     END
  83.  
  84. Endproc
  85.  
  86. ..
  87. ..
  88. ..
  89.  
  90. Procedure LeseIniWert (sIniDatei, sSektion, sEintrag : String) : String
  91. .. liest einen wert aus eine windows ini-datei und liefert diese zurⁿck.
  92. .. ini-datei aufbau
  93. .. [sektion]
  94. .. eintrag=wert
  95. .. Aufruf Beispiel:
  96. .. ExecMacro(c:\daten\wintdb\utils\uti-tool, LeseIniWert("c:\windows\win,ini", "windows", "device"));
  97.  
  98.     Vardef sWert : String;    ..wert der zurⁿckgeliefert wird
  99.     Vardef nFH : REAL;    .. filehandle
  100.     Vardef sLine : String;    .. ini-zeile
  101.     Vardef sTempLine : String;    .. tempzeile
  102.     Vardef nFound : Real;    .. sektion gefunden?
  103.  
  104.     ..init
  105.     ?sSektion[1] <> "["/sSektion := "[" + sSektion + "]";
  106.     sSektion := Upper(sSektion);
  107.     sEintrag := Upper(sEintrag);
  108.     nFound := 0;
  109.     .. inidatei vorhanden
  110.     IF IsFile(sIniDatei) = 0
  111.        Message(sIniDatei + " nicht gefunden.", "Fehler", 1);
  112.        Return
  113.     END
  114.     .. ÷ffne inidatei
  115.     IF nFH := Reset(sIniDatei) > 0
  116.         WHILE NOT Eot(nFH)
  117.         sLine := ReadLn(nFH)
  118.         sTempLine := sLine;
  119.         sLine := Upper(sLine);
  120.         ?sLine = sSektion / nFound := 1
  121.         IF nFound = 1
  122.             IF sLine[1, Pos("=", sLine) - 1] = sEintrag
  123.                Close(nFH)
  124.                Return sTempLine[Pos("=", sLine) + 1, Length(sTempLine) - Pos("=", sLine) ]
  125.            End
  126.         END
  127.       End
  128.     ELSE
  129.         Message(sIniDatei + " nicht gefunden.", "Fehler", 1);
  130.     END
  131.     Close(nFH);
  132. EndProc
  133.  
  134. ..
  135. ..
  136. ..
  137.  
  138. Procedure SchreibeIniWert (sIniDatei, sSektion, sEintrag, sWert : String) : Real
  139. .. schreibt einen wert aus eine windows ini-datei und liefert diese zurⁿck.
  140. .. ini-datei aufbau
  141. .. [sektion]
  142. .. eintrag=wert
  143.  
  144.     Vardef nFHin, nFHout : REAL;    .. filehandle
  145.     Vardef sLine : String;    .. ini-zeile
  146.     Vardef sTempLine : String;    .. tempzeile
  147.     Vardef nFound : Real;    .. sektion gefunden?
  148.     vardef nChanged : Real; .. wert geΣndert
  149.     Vardef sIniDateiNeu : String;
  150.     Vardef sOrgSektion, sOrgEintrag : String;
  151.  
  152.     ..init
  153.     ?sSektion[1] <> "["/sSektion := "[" + sSektion + "]";
  154.     .. speichere originalwerte
  155.     sOrgSektion := sSektion; sOrgEintrag := sEintrag;
  156.     sSektion := Upper(sSektion); sEintrag := Upper(sEintrag);
  157.     nFound := 0;
  158.     nChanged := 0;
  159.     .. inidatei vorhanden?
  160.     IF IsFile(sIniDatei) = 0
  161.        Message(sIniDatei + " nicht gefunden.", "Fehler", 1);
  162.        Return 0
  163.     END
  164.     .. ÷ffne inidatei
  165.     IF nFHin := Reset(sIniDatei) > 0
  166.         .. erstelle neue inidatei
  167.         sIniDateiNeu := sIniDatei[1, pos(".", sIniDatei) - 1] + ".rob";
  168.         .. tempinidatei l÷schen
  169.         ?IsFile(sIniDateiNeu) = 1/ DelFile(sIniDateiNeu);
  170.         IF nFHout := Rewrite(sIniDateiNeu) < 1 
  171.             Message(sIniDatei + " kann nicht erstellt werden.", "Fehler", 1);
  172.             Return 0
  173.         END
  174.         .. inidatei lesen bis ende
  175.         WHILE NOT Eot(nFHin)
  176.             sLine := ReadLn(nFHin);
  177.             sTempLine := sLine;    .. original zeile zwischenspeichern
  178.             sLine := Upper(sLine);
  179.             ?sLine = sSektion / nFound := 1    .. sektion gefunden
  180.             .. noch nicht gefunden, schreibe originalzeile
  181.             ?nFound = 0 / WriteLn(nFHout, sTempLine);
  182.             .. sektion gefunden, aber eintrag nicht, schreibe originalzeile
  183.             ?nFound = 1 AND sLine[1, Pos("=", sLine) - 1] <> sEintrag / WriteLn(nFHout, sTempLine);
  184.             .. sektion und eintrag gefunden, wert Σndern
  185.             IF nFound = 1 AND sLine[1, Pos("=", sLine) - 1] = sEintrag
  186.                 WriteLn(nFHout, sOrgEintrag + "=" + sWert);
  187.                 nChanged := 1; nFound := 0;
  188.             END .. if 
  189.             .. neue sektion erreicht?
  190.             IF nFound = 1 AND sLine[1] = "[" AND sLine <> sSektion
  191.                 .. eintrag nicht gefunden, schreibe einen neuen
  192.                 IF nChanged = 0
  193.                     .. schreibe neuen eintrag
  194.                     WriteLn(nFHout, sOrgEintrag + "=" + sWert);
  195.                     nChanged := 1; nFound := 0;
  196.                     .. nicht vergessen, die gelesene zeile zu schreiben
  197.                     WriteLn(nFHout, sTempLine);
  198.                 END .. if
  199.             END .. if
  200.          END .. while not eot
  201.          .. dateiende erreicht, wurde der wert geΣndert?
  202.          .. sektion gefunden, aber eintrag nicht (dh sektion ist am dateiende): eintrag neu
  203.          IF nFound = 1 AND nChanged = 0
  204.              WriteLn(nFHout, sOrgEintrag + "=" + sWert);
  205.              nChanged := 1;
  206.         END
  207.          .. sektion und eintrag nicht gefunden: neue sektion
  208.          IF nChanged = 0
  209.              WriteLn(nFHout, "");
  210.              WriteLn(nFHout, sOrgSektion);
  211.              WriteLn(nFHout, sOrgEintrag + "=" + sWert);
  212.          END .. if
  213.     ELSE
  214.         Message(sIniDatei + " nicht gefunden.", "Fehler", 1);
  215.         Return 0
  216.     END
  217.     Close(nFHin);
  218.     Close(nFHout);
  219.     .. 
  220.     .. dateien umbenennen
  221.     ?IsFile(sIniDateiNeu) = 1/ DelFile(sIniDatei);
  222.     IF Rename(sIniDateiNeu, sIniDatei) = 0
  223.         Message("Kann Datei nicht umbennen.");
  224.         Return 1
  225.     ELSE
  226.         Return 0
  227.     END
  228. EndProc
  229.