Code: Alles auswählen
var
Form1: TForm1;
vollabfrage: String = 'SELECT P.*, E.Name AS E_Name, F.Name AS F_Name, L.Name AS L_Name, A.Name AS A_Name, C.Chargennummer, C.MHD FROM Lagerv_Artikelposten P INNER JOIN Lagerv_Etagen E ON (E.idEtagen = P.idEtagen), Lagerv_Fächer F ON (F.idFächer = P.idFächer), Lagerv_Lagerorte L ON (L.idLagerorte = P.idLagerorte), Lagerv_Artikel A ON (A.idArtikel = P.idArtikel), Lagerv_Chargen C ON (C.idChargen = P.idChargen) ORDER BY P.idLagerorte, P.idEtagen, P.idFächer ASC';
Artikelposten: array of array[0..1] of Integer;
implementation
uses login;
procedure TForm1.MenuItem1Click(Sender: TObject);
begin
userid:= 0;
displayname:= '';
Form2.Show;
Close;
end;
procedure TForm1.Button3Click(Sender: TObject);
var
Chargennummer: String;
MHD_String: String;
MHD: TDate;
Artikel: String;
idArtikel: Integer;
response: Integer;
FS: TFormatSettings;
begin
FS.ShortDateFormat := 'YYYY-MM-DD';
Chargennummer:= LabeledEdit2.Text;
MHD:= CalendarDialog1.Date;
MHD_String:= DateToStr(MHD);
idArtikel:= ComboBox1.ItemIndex+1;
Artikel:=ComboBox1.Caption;
response:= MessageDlg('Chargennummer hinzufügen', 'Sind Sie sicher das Sie die Charge "' + Chargennummer + '" mit dem Halbarkeitsdatum "' + MHD_String + '" für den Artikel "'+ Artikel + '" hinzufügen möchten?',mtConfirmation, mbYesNo, 0);
if response = mrYes then
begin
sqlexec('INSERT INTO Lagerv_Chargen (Chargennummer,MHD,idArtikel) VALUES (:param1,:param2,:param3)', Chargennummer, MHD_String, IntToStr(idArtikel));
//sqlexec('INSERT INTO "main"."Lagerv_Chargen" ("Chargennummer","MHD","idArtikel") VALUES ("Tets","2015-05-11","2")');
updateChargen();
end;
end;
procedure TForm1.CalendarDialog1Close(Sender: TObject);
begin
LabeledEdit3.Text:= DateToStr(CalendarDialog1.Date);
end;
procedure TForm1.LabeledEdit3Click(Sender: TObject);
begin
CalendarDialog1.Execute;
end;
procedure TForm1.sqlrequest(SQL: String; param1, param2, param3: String);
begin
SQLQuery1.Close;
SQLQuery1.SQL.Text:=SQL;
if param1 <> '' then SQLQuery1.ParamByName('param1').AsString:= param1;
if param2 <> '' then SQLQuery1.ParamByName('param2').AsString:= param2;
if param3 <> '' then SQLQuery1.ParamByName('param3').AsString:= param3;
SQLQuery1.Prepare;
SQLQuery1.Open;
end;
procedure TForm1.sqlexec(SQL: String; param1, param2, param3: String);
begin
SQLQuery1.Close;
//SQLTransaction1.EndTransaction;
SQLQuery1.SQL.Text:=SQL;
if param1 <> '' then SQLQuery1.ParamByName('param1').AsString:= param1;
if param2 <> '' then SQLQuery1.ParamByName('param2').AsString:= param2;
if param3 <> '' then SQLQuery1.ParamByName('param3').AsString:= param3;
SQLQuery1.Prepare;
SQLQuery1.ExecSQL;
//SQLQuery1.UpdateSQL;
SQLQuery1.Close;
//SQLTransaction1.Commit;
end;
procedure TForm1.updateChargen();
begin
sqlrequest('SELECT * FROM Lagerv_User WHERE idUser = :param1',IntToStr(userid),'','');
if SQLQuery1.FieldByName('Admin').AsBoolean then Button4.Enabled:= true;
sqlrequest('SELECT C.*, A.Name FROM Lagerv_Chargen C INNER JOIN Lagerv_Artikel A ON (A.idArtikel = C.idArtikel)','','','');
ListView1.Clear;
while not SQLQuery1.EOF do
begin
with ListView1.Items.Add do begin
Caption:=SQLQuery1.FieldByName('idChargen').AsString;
SubItems.Add(SQLQuery1.FieldByName('Chargennummer').AsString);
SubItems.Add(SQLQuery1.FieldByName('MHD').AsString);
SubItems.Add(SQLQuery1.FieldByName('Name').AsString);
end;
SQLQuery1.Next;
end;
sqlrequest('SELECT * FROM Lagerv_Artikel A ORDER BY A.idArtikel ASC', '', '', '');
ComboBox1.Clear;
while not SQLQuery1.EOF do
begin
ComboBox1.Items.Add(SQLQuery1.FieldByName('Name').AsString);
SQLQuery1.Next;
end;
end;
procedure TForm1.TabSheet3Show(Sender: TObject);
begin
updateChargen();
end;
procedure TForm1.TreeUpdate();
var
Wurzelknoten, Lagerort, Etage, Fach, Artikel: TTreeNode;
L_Name, E_name, F_Name, A_Name: String;
L_Name_changed, E_name_changed, F_Name_changed: Boolean;
i: Integer =0;
Label
Neueintragung;
begin
L_Name_changed:= false;
E_name_changed:= false;
F_Name_changed:= false;
TreeView1.Items.Clear;
Wurzelknoten := TreeView1.Items.Add(nil, 'Lager Wache');
sqlrequest(vollabfrage, '', '', '');
//L_Name := SQLQuery1.FieldByName('L_Name').AsString;
while not SQLQuery1.EOF do
begin
if SQLQuery1.FieldByName('L_Name').AsString = L_Name then
begin
goto Neueintragung;
end
else
begin
L_Name:= SQLQuery1.FieldByName('L_Name').AsString;
L_Name_changed := true;
end;
if SQLQuery1.FieldByName('E_Name').AsString = E_Name then
begin
goto Neueintragung;
end
else
begin
E_Name:= SQLQuery1.FieldByName('E_Name').AsString;
E_Name_changed := true;
end;
if SQLQuery1.FieldByName('F_Name').AsString = F_Name then
begin
goto Neueintragung;
end
else
begin
F_Name:= SQLQuery1.FieldByName('F_Name').AsString;
F_Name_changed := true;
end;
if L_Name_changed then
begin
Lagerort := TreeView1.Items.AddChild(Wurzelknoten, SQLQuery1.FieldByName('L_Name').AsString);
end;
if E_Name_changed then
begin
Etage := TreeView1.Items.AddChild(Lagerort, SQLQuery1.FieldByName('E_Name').AsString);
end;
if F_Name_changed then
begin
Fach := TreeView1.Items.AddChild(Etage, SQLQuery1.FieldByName('F_Name').AsString);
end;
Neueintragung:
Artikel:= TreeView1.Items.AddChild(Fach, SQLQuery1.FieldByName('Menge').AsString + 'x ' + SQLQuery1.FieldByName('A_Name').AsString + ' - MHD: ' + SQLQuery1.FieldByName('MHD').AsString);
Artikelposten[i, 1] := SQLQuery1.FieldByName('idArtikelposten').AsInteger;
Artikelposten[i, 0] := Artikel.AbsoluteIndex;
SQLQuery1.Next;
L_Name_changed:= false;
E_name_changed:= false;
F_Name_changed:= false;
i := i+1;
end;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
TreeUpdate();
end;
procedure TForm1.FormShow(Sender: TObject);
begin
Label1.Caption:=IntToStr(login.userid);
Label2.Caption:=login.displayname;
sqlrequest(vollabfrage, '', '', '');
SetLength(Artikelposten, SQLQuery1.RecordCount);
end;
procedure TForm1.TabSheet2Show(Sender: TObject);
begin
TreeUpdate();
end;
end.