procedure Tfrm_gui_doku_laden.btt_ladenClick(Sender: TObject);
var
idtrain, tmpid: Integer;
idcount, tmpcount:Integer;
i: integer;
versioncount: Integer;
version: Integer;
begin
//i := 0;
versioncount := 0;
version := 42;
idcount := 0;
gesamt := 0;
versionen := 0;
//ShellExecute(Application.Handle,'open',PChar(ExtractFilePath(ParamStr(0)) +'Zeigtrai.exe'), Nil, Nil, SW_SHOW);
zConnection1.Connected := true;
with ZReadonlyquery1
do
begin
SQL.TExt := '
Select ID_Training, Text from Training Where ID_Geraetenr = :ge and ID_KDNR = :kdnr' +
'
and ID_such = :such and ID_Trainingsmodus = :mod Order By Version ASC';
Params.ParamByName('
ge').AsInteger := Geraetenummer;
Params.ParamByName('
kdnr').AsInteger := frm_gui_main.kunde.id;
Params.ParamByName('
such').AsInteger := idsuch;
Params.ParamByName('
mod').AsInteger := idmodus;
Open;
idtrain := FieldbyName('
ID_Training').AsInteger;
//Holt die ID der ersten Version eines Trainings
Close;
tmpid := idtrain;
while version <> 0
do //Liest solang die Version aus bis keine neue Version kommt
begin //dient dem zweck das ich die größe des Arrays festlegen kann
//nach der Anzahl der Versionen und anzahl der Trainingswerte pro Version
Sql.Text := '
Select Versionsaenderung From Training Where Id_Training = :id';
Params.ParamByName('
id').AsInteger := tmpid;
Open;
version := FieldbyName('
Versionsaenderung').AsInteger;
Close;
inc(versioncount);
SQL.TExt := '
Select Count(ID_Training) From Trainingswerte Where ID_Training = :id';
Params.ParamByName('
id').AsInteger := tmpid;
Open;
tmpcount := FieldbyName('
Count').AsInteger;
Close;
if tmpcount > idcount
then
idcount := tmpcount;
tmpid := version;
end;
setlength(wertarr, versioncount+1, idcount);
if checkbox1.Checked
then
setlength(anzahlarr, versioncount+1);
//<---- Hier (Checkbox is nur zum testen obs wirklich das ist)
for i := 0
to versioncount+1
do
anzahlarr[i] := 0;
i := 0;
versionen:=versioncount;
tmpid := idtrain;
versioncount := 0;
version := 42;
while version <> 0
do
begin //Liest dann die Werte aus in das array
Sql.Text := '
Select Versionsaenderung From Training Where Id_Training = :id';
Params.ParamByName('
id').AsInteger := tmpid;
Open;
version := FieldbyName('
Versionsaenderung').AsInteger;
Close;
inc(versioncount);
Sql.Text := '
Select * From Trainingswerte Where ID_Training = :id Order By Datum, Startzeit';
Params.ParamByName('
id').AsInteger := tmpid;
Open;
while not eof
do
begin
wertarr[versioncount, i].Datum := FieldbyName('
Datum').AsDateTime;
wertarr[versioncount, i].Start := FieldbyName('
Startzeit').AsDateTime;
wertarr[versioncount, i].Stop := FieldbyName('
Stopzeit').AsDateTime;
wertarr[versioncount, i].Fehlerl := FieldbyName('
Fehlerlinks').AsInteger;
wertarr[versioncount, i].Fehlerr := FieldbyName('
Fehlerrechts').AsInteger;
wertarr[versioncount, i].startpos := FieldbyName('
Startpos').AsInteger;
wertarr[versioncount, i].stoppos := FieldbyName('
Stoppos').AsInteger;
next;
inc(i);
end;
Close;
anzahlarr[versioncount]:=i;
gesamt:=gesamt+i;
tmpid := version;
end;
end;
Frm_ZeigTr:=TFrm_ZeigTr.Create(self);
Frm_ZeigTr.ShowModal;
zConnection1.Connected := false;
end;