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;
procedure FormCreate(Sender: TObject);
procedure FormClose(Sender: TObject;
var Action: TCloseAction);
procedure FormShow(Sender: TObject);
procedure CBDruckerAuswahlChange(Sender: TObject);
private
{ Private-Deklarationen }
public
{ Public-Deklarationen }
end;
var
Mahn: TMahn;
implementation
{$R *.dfm}
var
ProgrammGestartet: Boolean;
LetzteFrist: TDateTime;
KundenDatei,
OPDatei:
String;
MahnGebuehren1,
MahnGebuehren2,
MahnGebuehren3: Real;
MailAbsender,
MailPasswort,
MailServer:
String;
MailPort: Integer;
VertreterAdressenList,
VertreterNummernList: TStringList;
AktuelleZeile: Integer;
procedure IniDateiLesen;
var
Ini: TIniFile;
LetzteFristTage: Integer;
begin
Ini:=TIniFile.Create(ExtractFilePath(ExpandFileName(ParamStr(0))) +'
MahnProjekt.ini');
try
KundenDatei := Ini.ReadString('
Allgemein', '
Kundendatei', '
');
OPDatei := Ini.ReadString('
Allgemein', '
OPdatei', '
');
MailAbsender := Ini.ReadString('
EMail-Versand', '
MailAbsender', '
');
MailPasswort := Ini.ReadString('
EMail-Versand', '
MailPasswort', '
');
MailServer := Ini.ReadString('
EMail-Versand', '
MailServer', '
');
MailPort := Ini.ReadInteger('
EMail-Versand', '
MailPort', 0);
MahnGebuehren1 := Ini.ReadFloat('
Mahngebuehren', '
Mahngebuehren1', 0);
MahnGebuehren2 := Ini.ReadFloat('
Mahngebuehren', '
Mahngebuehren2', 0);
MahnGebuehren3 := Ini.ReadFloat('
Mahngebuehren', '
Mahngebuehren3', 0);
LetzteFristTage := Ini.ReadInteger('
Mahngebuehren', '
Letztefrist', 10);
Ini.ReadSection('
ADAdressen', VertreterAdressenList);
Ini.ReadSection('
ADNummern', VertreterNummernList);
finally
Ini.Free;
end;
LetzteFrist := LetzteFrist +LetzteFristTage;
end;
procedure TabellenHeaderSetzen;
begin
Mahn.ClientDataSet_OPListe.Active := False;
Mahn.ClientDataSet_OPListe.FieldDefs.Clear;
Mahn.ClientDataSet_OPListe.FieldDefs.Add('
KundenNummer', ftString, 5);
Mahn.ClientDataSet_OPListe.FieldDefs.Add('
KundeKurz', ftString, 30);
Mahn.ClientDataSet_OPListe.FieldDefs.Add('
RechnungNr', ftString, 10);
Mahn.ClientDataSet_OPListe.FieldDefs.Add('
RechnungsDatum', ftString, 10);
Mahn.ClientDataSet_OPListe.FieldDefs.Add('
FaelligDatum', ftString, 10);
Mahn.ClientDataSet_OPListe.FieldDefs.Add('
Betrag', ftString, 10);
Mahn.ClientDataSet_OPListe.FieldDefs.Add('
FaelligTage', ftString, 4);
Mahn.ClientDataSet_OPListe.FieldDefs.Add('
MahnStufe', ftString, 1);
Mahn.ClientDataSet_OPListe.FieldDefs.Add('
Mahnen', ftString, 1);
Mahn.ClientDataSet_OPListe.FieldDefs.Add('
Firma1', ftString, 30);
Mahn.ClientDataSet_OPListe.FieldDefs.Add('
Firma2', ftString, 30);
Mahn.ClientDataSet_OPListe.FieldDefs.Add('
Strasse', ftString, 30);
Mahn.ClientDataSet_OPListe.FieldDefs.Add('
Land', ftString, 2);
Mahn.ClientDataSet_OPListe.FieldDefs.Add('
PLZ', ftString, 5);
Mahn.ClientDataSet_OPListe.FieldDefs.Add('
Ort', ftString, 30);
Mahn.ClientDataSet_OPListe.FieldDefs.Add('
Telefax', ftString, 30);
Mahn.ClientDataSet_OPListe.FieldDefs.Add('
Email', ftString, 90);
Mahn.ClientDataSet_OPListe.FieldDefs.Add('
Vertreter', ftString, 50);
Mahn.ClientDataSet_OPListe.FieldDefs.Add('
RnEmail', ftString, 90);
Mahn.ClientDataSet_OPListe.CreateDataSet;
Mahn.ClientDataSet_OPListe.Active := True;
end;
procedure ShowStatus(Meldung:
String);
begin
Mahn.LbEStatus.Text := Meldung;
Mahn.LbEStatus.Refresh;
end;
procedure TMahn.FormCreate(Sender: TObject);
begin
ProgrammGestartet := False;
VertreterAdressenList := TStringList.Create;
VertreterNummernList := TStringList.Create;
end;
procedure TMahn.CBDruckerAuswahlChange(Sender: TObject);
begin
Printer.PrinterIndex := CBDruckerauswahl.ItemIndex;
end;
procedure TMahn.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
VertreterAdressenList.Free;
VertreterNummernList.Free;
end;
procedure TMahn.FormShow(Sender: TObject);
begin
if not ProgrammGestartet
then
begin
ProgrammGestartet := True;
IniDateiLesen;
TabellenHeaderSetzen;
ShowStatus('
Verarbeitung');
LetzteFrist := Now +7;
CBDruckerAuswahl.items := Printer.printers;
CBDruckerAuswahl.ItemIndex := Printer.PrinterIndex;
end;
end;
end.