unit MahnUnit;
interface
uses
Winapi.Windows,
Winapi.Messages, System.SysUtils, System.Variants, System.Classes,
Vcl.Graphics,
Vcl.Controls,
Vcl.Forms,
Vcl.Dialogs, Data.DB,
Vcl.Grids,
Vcl.DBGrids,
Datasnap.DBClient,
Vcl.StdCtrls, IniFiles,
Vcl.ExtCtrls, Printers;
type
TMahn =
class(TForm)
BtnDrucken: TButton;
BtnAdresse: TButton;
BtnMailTausch: TButton;
DataSource_OpListe: TDataSource;
DBGrid_OpListe: TDBGrid;
LbEStatus: TLabeledEdit;
CBDruckerAuswahl: TComboBox;
PrintDialog1: TPrintDialog;
ClientDataSet_OpListe: TClientDataSet;
procedure FormCreate(Sender: TObject);
procedure FormShow(Sender: TObject);
procedure CBDruckerAuswahlChange(Sender: TObject);
procedure FormDestroy(Sender: TObject);
private
{ Private-Deklarationen }
FProgrammGestartet: Boolean;
FLetzteFrist: TDateTime;
FKundenDatei:
string;
FOPDatei:
string;
FMahnGebuehren1: Real;
FMahnGebuehren2: Real;
FMahnGebuehren3: Real;
FLetzteFristTage: Integer;
FMailAbsender:
string;
FMailPasswort:
string;
FMailServer:
string;
FMailPort: Integer;
FVertreterAdressenList: TStringList;
FVertreterNummernList: TStringList;
FAktuelleZeile: Integer;
procedure IniDateiLesen;
procedure TabellenHeaderSetzen;
procedure ShowStatus(Meldung:
string);
public
{ Public-Deklarationen }
end;
var
Mahn: TMahn;
implementation
{$R *.dfm}
procedure TMahn.FormCreate(Sender: TObject);
begin
FProgrammGestartet := False;
FVertreterAdressenList := TStringList.Create;
FVertreterNummernList := TStringList.Create;
end;
procedure TMahn.FormDestroy(Sender: TObject);
// Create und Destroy gehören zusammen //! verlagert TMahn.FormClose(Sender: TObject; var Action: TCloseAction);
begin
FVertreterAdressenList.Free;
FVertreterNummernList.Free;
end;
procedure TMahn.IniDateiLesen;
var
Ini: TIniFile;
LetzteFristTage: Integer;
begin
Ini := TIniFile.Create(ExtractFilePath(ExpandFileName(ParamStr(0))) + '
MahnProjekt.ini');
try
FKundenDatei := Ini.ReadString('
Allgemein', '
Kundendatei', '
');
FOPDatei := Ini.ReadString('
Allgemein', '
OPdatei', '
');
FMailAbsender := Ini.ReadString('
EMail-Versand', '
MailAbsender', '
');
FMailPasswort := Ini.ReadString('
EMail-Versand', '
MailPasswort', '
');
FMailServer := Ini.ReadString('
EMail-Versand', '
MailServer', '
');
FMailPort := Ini.ReadInteger('
EMail-Versand', '
MailPort', 0);
FMahnGebuehren1 := Ini.ReadFloat('
Mahngebuehren', '
Mahngebuehren1', 0);
FMahnGebuehren2 := Ini.ReadFloat('
Mahngebuehren', '
Mahngebuehren2', 0);
FMahnGebuehren3 := Ini.ReadFloat('
Mahngebuehren', '
Mahngebuehren3', 0);
FLetzteFristTage := Ini.ReadInteger('
Mahngebuehren', '
Letztefrist', 10);
Ini.ReadSection('
ADAdressen', FVertreterAdressenList);
Ini.ReadSection('
ADNummern', FVertreterNummernList);
finally
Ini.Free;
end;
FLetzteFrist := FLetzteFrist + LetzteFristTage;
end;
procedure TMahn.TabellenHeaderSetzen;
begin
ClientDataSet_OPListe.Active := False;
ClientDataSet_OPListe.FieldDefs.Clear;
ClientDataSet_OPListe.FieldDefs.Add('
KundenNummer', ftString, 5);
ClientDataSet_OPListe.FieldDefs.Add('
KundeKurz', ftString, 30);
ClientDataSet_OPListe.FieldDefs.Add('
RechnungNr', ftString, 10);
ClientDataSet_OPListe.FieldDefs.Add('
RechnungsDatum', ftString, 10);
ClientDataSet_OPListe.FieldDefs.Add('
FaelligDatum', ftString, 10);
ClientDataSet_OPListe.FieldDefs.Add('
Betrag', ftString, 10);
ClientDataSet_OPListe.FieldDefs.Add('
FaelligTage', ftString, 4);
ClientDataSet_OPListe.FieldDefs.Add('
MahnStufe', ftString, 1);
ClientDataSet_OPListe.FieldDefs.Add('
Mahnen', ftString, 1);
ClientDataSet_OPListe.FieldDefs.Add('
Firma1', ftString, 30);
ClientDataSet_OPListe.FieldDefs.Add('
Firma2', ftString, 30);
ClientDataSet_OPListe.FieldDefs.Add('
Strasse', ftString, 30);
ClientDataSet_OPListe.FieldDefs.Add('
Land', ftString, 2);
ClientDataSet_OPListe.FieldDefs.Add('
PLZ', ftString, 5);
ClientDataSet_OPListe.FieldDefs.Add('
Ort', ftString, 30);
ClientDataSet_OPListe.FieldDefs.Add('
Telefax', ftString, 30);
ClientDataSet_OPListe.FieldDefs.Add('
Email', ftString, 90);
ClientDataSet_OPListe.FieldDefs.Add('
Vertreter', ftString, 50);
ClientDataSet_OPListe.FieldDefs.Add('
RnEmail', ftString, 90);
ClientDataSet_OPListe.CreateDataSet;
ClientDataSet_OPListe.Active := True;
end;
procedure TMahn.ShowStatus(Meldung:
string);
begin
LbEStatus.Text := Meldung;
LbEStatus.Refresh;
end;
procedure TMahn.FormShow(Sender: TObject);
begin
if not FProgrammGestartet
then
begin
FProgrammGestartet := True;
IniDateiLesen;
TabellenHeaderSetzen;
ShowStatus('
Verarbeitung');
FLetzteFrist := Now + 7;
CBDruckerAuswahl.items := Printer.printers;
CBDruckerAuswahl.ItemIndex := Printer.PrinterIndex;
end;
end;
procedure TMahn.CBDruckerAuswahlChange(Sender: TObject);
begin
Printer.PrinterIndex := CBDruckerauswahl.ItemIndex;
end;
end.