unit berichte;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, Menus, jpeg, ExtCtrls, DBCtrls,
Registry,
DB, ComCtrls, Buttons, SqlExpr, WideStrings, Printers,
MIDASLIB, Mask, FMTBcd;
type
TForm7 =
class(TForm)
Label1: TLabel;
DateTimePicker1: TDateTimePicker;
Label2: TLabel;
DateTimePicker2: TDateTimePicker;
Label3: TLabel;
BitBtn1: TBitBtn;
SQLConnection1: TSQLConnection;
DataSource1: TDataSource;
SQLQuery1: TSQLQuery;
SQLQuery2: TSQLQuery;
PrintDialog1: TPrintDialog;
DataSource2: TDataSource;
procedure einnahmen_zaehlen();
procedure ausgaben_zaehlen();
procedure BitBtn1Click(Sender: TObject);
procedure FormClose(Sender: TObject;
var Action: TCloseAction);
procedure FormCreate(Sender: TObject);
private
{ Private declarations }
einnahmen: integer;
ausgaben: integer;
von:
string;
bis:
string;
DBEdit2: TDbEdit;
DBEdit3: TDbEdit;
DBEdit4: TDBEdit;
DBEdit5: TDBEdit;
datum_einnahmen: TDBEdit;
rechnungsnr_einnahmen: TDbEdit;
artikel_einnahmen: TDbEdit;
betrag_einnahmen: TDbEdit;
public
{ Public declarations }
end;
var
Form7: TForm7;
implementation
{$R *.dfm}
uses Unit2;
{ TForm7 }
procedure TForm7.ausgaben_zaehlen;
begin
SQLQuery1.Close;
SQLQuery1.SQL.Clear;
SQLQuery1.SQL.Add('
SELECT COUNT (*) AS Z FROM AUSGABEN WHERE DATUM BETWEEN :von AND :bis');
SQLQuery1.ParamByName('
von').value := von;
SQLQuery1.ParamByName('
bis').value := bis;
SQLQuery1.Open;
ausgaben := SQLQuery1.FieldByName('
Z').AsInteger;
end;
procedure TForm7.BitBtn1Click(Sender: TObject);
var I, J: integer;
breite, hoehe, randlinks, randoben: integer;
begin
von:=DateToStr(DateTimePicker1.Date);
bis:=DateToStr(DateTimePicker2.Date);
einnahmen_zaehlen;
ausgaben_zaehlen;
if PrintDialog1.Execute
then begin
Printer.BeginDoc;
//Druckjob beginnen
Printer.Canvas.Font.
Name:='
Arial';
Printer.Canvas.Brush.Color:=clWhite;
Printer.Canvas.Font.Size:=10;
Printer.Canvas.Font.Style:=[fsBold];
Printer.Canvas.TextOut(200, 400, '
Finanzbericht vom '+DateToStr(DateTimePicker1.Date)+'
bis zum '+DateToStr(DateTimePicker2.Date));
Printer.Canvas.Font.Size:=8;
Printer.Canvas.Font.Style:=[];
Printer.Canvas.TextOut(200, 600, '
Einnahmen(gesamt): '+IntToSTr(einnahmen)+'
, Ausgaben(gesamt): '+IntToSTr(ausgaben));
Printer.Canvas.Font.Style:=[fsBold];
Printer.Canvas.Font.Size:=10;
Printer.Canvas.TextOut(200, 800, '
Einnahmen');
Printer.Canvas.TextOut(2500, 800, '
Ausgaben');
Printer.Canvas.Font.Size:=8;
Printer.Canvas.TextOut(200, 1000, '
Datum');
Printer.Canvas.TextOut(700, 1000, '
Rechnungsnr');
Printer.Canvas.TextOut(1200, 1000, '
Artikel');
Printer.Canvas.TextOut(2000, 1000, '
Betrag');
Printer.Canvas.TextOut(2500, 1000, '
Datum');
Printer.Canvas.TextOut(3000, 1000, '
Rechnungsnr');
Printer.Canvas.TextOut(3500, 1000, '
Artikel');
Printer.Canvas.TextOut(4300, 1000, '
Betrag');
Printer.Canvas.Font.Style:=[];
begin
{SimpleDataSet1.First;
SimpleDataSet2.First;}
for I := 0
to ausgaben-1
do
begin
Printer.Canvas.TextOut(2500, 1100+I*100, DBEdit2.Text);
Printer.Canvas.TextOut(3000, 1100+I*100, DBEdit3.Text);
Printer.Canvas.TextOut(3500, 1100+I*100, DBEdit4.Text);
Printer.Canvas.TextOut(4300, 1100+I*100, DBEdit5.Text + '
€');
//SimpleDataSet1.Next;
end;
for J := 0
to einnahmen-1
do
begin
Printer.Canvas.TextOut(200, 1100+J*100, datum_einnahmen.Text);
Printer.Canvas.TextOut(700, 1100+J*100, rechnungsnr_einnahmen.Text);
Printer.Canvas.TextOut(1200, 1100+J*100, artikel_einnahmen.Text);
Printer.Canvas.TextOut(2000, 1100+J*100, betrag_einnahmen.Text + '
€');
end;
end;
begin
for I := 1
to einnahmen
do
end;
breite:=GetDeviceCaps(Printer.Canvas.Handle, HORZSIZE)*10;
hoehe:=GetDeviceCaps(Printer.Canvas.Handle, VERTSIZE)*10;
randlinks:=250;
//2,5 cm
randoben:=250;
//2,5 cm
end;
Printer.EndDoc;
end;
procedure TForm7.einnahmen_zaehlen;
begin
SQLQuery2.Close;
SQLQuery2.SQL.Clear;
SQLQuery2.SQL.Add('
SELECT COUNT (*) AS Z FROM EINNAHMEN WHERE DATUM BETWEEN :von AND :bis');
SQLQuery2.ParamByName('
von').value := von;
SQLQuery2.ParamByName('
bis').value := bis;
SQLQuery2.Open;
einnahmen := SQLQuery2.FieldByName ('
Z').AsInteger;
end;
procedure TForm7.FormClose(Sender: TObject;
var Action: TCloseAction);
begin
Form2.BringToFront;
end;
procedure TForm7.FormCreate(Sender: TObject);
var list:TStringList;
conn_str:
string;
begin
//DBEdit2.Create
DBEdit2 := TDBEdit.Create(Self);
with DBEdit2
do
begin
Name:='
DBEdit2';
Parent:=Self;
Left:=0;
Top:=0;
Width:=121;
Height:=21;
DataSource:=DataSource1;
DataField:='
DATUM';
visible:=false;
end;
//DBEdit3.Create
DBEdit3 := TDBEdit.Create(Self);
with DBEdit3
do
begin
Name:='
DBEdit3';
Parent:=self;
left:=0;
top:=0;
Width:=121;
Height:=21;
DataSource:=DataSource1;
DataField:='
RECHNUNGSNUMMER';
visible:=false;
end;
//DBEdit4.Create
DBEdit4 := TDBEdit.Create(self);
with DBEdit4
do
begin
Name:='
DBEdit4';
Parent:=self;
left:=0;
top:=0;
width:=121;
height:=21;
DataSource:=DataSource1;
DataField:='
ARTIKEL';
visible:=false;
end;
//DBEdit5.Create
DBEdit5 := TDbEdit.Create(self);
with DBEdit5
do
begin
name:='
DBEdit5';
parent:=self;
left:=0;
top:=0;
width:=121;
height:=21;
DataSource:=DataSource1;
DataField:='
BETRAG';
visible:=false;
end;
//datum_einnahmen.Create
datum_einnahmen := TDBEdit.Create(self);
with datum_einnahmen
do
begin
name:='
datum_einnahmen';
parent:=self;
left:=0;
top:=0;
width:=121;
height:=21;
DataSource:=DataSource2;
DataField:='
DATUM';
visible:=false;
end;
//rechnungsnr_einnahmen.Create
rechnungsnr_einnahmen := TDbEdit.Create(self);
with rechnungsnr_einnahmen
do
begin
name:='
rechnungsnr_einnahmen';
parent:=self;
left:=0;
top:=0;
width := 121;
height:=21;
DataSource:=DataSource2;
DataField:='
RECHNUNGSNR';
visible:=false;
end;
//artikel_einnahmen.Create
artikel_einnahmen := TDBEdit.Create(Self);
with artikel_einnahmen
do
begin
name:='
artikel_einnahmen';
parent:=self;
left:=0;
top:=0;
width:=121;
height:=21;
DataSource:=DataSource2;
DataField:='
ARTIKEL';
visible:=false;
end;
//betrag_einnahmen.Create
betrag_einnahmen := TDbEdit.Create(Self);
with betrag_einnahmen
do
begin
name:='
betrag_einnahmen';
parent:=self;
left:=0;
top:=0;
width:=121;
height:=21;
DataSource:=DataSource2;
DataField:='
BETRAG';
visible:=false;
end;
{SimpleDataSet1.DataSet.First;
SimpleDataSet2.DataSet.First;}
//Connection aktualisieren
list:=TStringList.Create;
list.loadfromfile('
database.txt');
conn_str:=list.strings[0];
SQLConnection1.Params.Values['
Database'] := conn_str;
end;
end.