@Admin
ok, I will soon make an update.
@Erich
Leider hat es nichts gebracht.
Die Fehlermeldung kommt auch dann, nachdem ich den Ersten Artikel im Warenkorb gelegt habe und anschließend den Warenkorb öffnen möchte O.o
Also das verstehe ich nun gar nicht...
Warenkorb anzeigen:
procedure Tfmstart1.UniButton10Click(Sender: TObject);
begin
if fmWarenkorb.UniStringGrid1.RowCount > 1 then //
begin
fmWarenkorb.ShowModal();
end
else
begin
ShowMessage('Es befindet sich kein Artikel im Warenkorb!');
end;
end;
onCreate:
procedure Tfmstart1.UniFormCreate(Sender: TObject);
var
ini: TIniFile;
filename: String;
begin
UniMainModule.Row := 1;
UniScrollbox1.Left := screen.Width div 2 - UniScrollbox1.Width div 2;
UniEdit1.Left := UniScrollbox1.Left;
UniButton1.Left := UniEdit1.Left + UniEdit1.Width + 10;
UniImage1.Left := screen.Width div 2 - UniImage1.Width div 2;
UniImage2.Left := UniImage1.Left + UniImage1.Width -5;
//Alle Produkte anzeigen:
UniButton11.Click;
//Admin
//UniButton2.Visible := UniMainModule.Admin;
//RR Adresse = Auftraggeber
UniMemo2.Clear;
UniMemo2.Lines.Add(UniMainModule.Firma);
if UniMainModule.Adress1 <> '' then UniMemo2.Lines.Add(UniMainModule.Adress1);
if UniMainModule.Adress2 <> '' then UniMemo2.Lines.Add(UniMainModule.Adress2);
UniMemo2.Lines.Add(UniMainModule.Straße);
UniMemo2.Lines.Add(UniMainModule.PLZ + ' ' + UniMainModule.Ort);
UniMemo2.Lines.Add(UniMainModule.Land);
fmwarenkorb.UniMemo1.Lines.Text := UniMemo2.Lines.Text; //In Warenkorb anzeigen lassen
//LS Adresse = Auftraggeber
UniMemo3.Lines.Text := UniMemo2.Lines.Text;
fmwarenkorb.UniMemo2.Lines.Text := UniMemo3.Lines.Text; //In Warenkorb anzeigen lassen
//RR Adresse in Variablen packen
UniMainModule.RRFirma := UniMainModule.Firma;
UniMainModule.RRAdress1 := UniMainModule.Adress1;
UniMainModule.RRAdress2 := UniMainModule.Adress2;
UniMainModule.RRStraße := UniMainModule.Straße;
UniMainModule.RRPLZ := UniMainModule.PLZ;
UniMainModule.RROrt := UniMainModule.Ort;
UniMainModule.RRLand := UniMainModule.Land;
//LS Adresse in Variablen packen
UniMainModule.LSFirma := UniMainModule.Firma;
UniMainModule.LSAdress1 := UniMainModule.Adress1;
UniMainModule.LSAdress2 := UniMainModule.Adress2;
UniMainModule.LSStraße := UniMainModule.Straße;
UniMainModule.LSPLZ := UniMainModule.PLZ;
UniMainModule.LSOrt := UniMainModule.Ort;
UniMainModule.LSLand := UniMainModule.Land;
//Ansprechpartner anzeigen:
//UniPanel4.Caption := UniMainModule.Betreuer;
UniPanel4.Top := 0;
UniPanel4.Left := screen.Width - UniPanel4.Width;
//daten laden
ini := TIniFile.Create(ExtractFilePath(ParamStr(0)) + '\files\Betreuer\Betreuer.ini');
try
UniImage3.Picture.LoadFromFile(ExtractFilePath(ParamStr(0)) + '\files\Betreuer\' + UniMainModule.Betreuer + '.jpg');
UniLabel9.Caption := ini.ReadString(UniMainModule.Betreuer, 'Name', '');
UniLabel10.Caption := ini.ReadString(UniMainModule.Betreuer, 'Tel', '');
UniLabel11.Caption := ini.ReadString(UniMainModule.Betreuer, 'Mail', '');
UniLabel12.Caption := ini.ReadString(UniMainModule.Betreuer, 'Zitat', '');
finally
ini.Free;
end;
end;
UniButton11: "Alle Produkte anzeigen:"
procedure Tfmstart1.UniButton11Click(Sender: TObject);
begin
UniMainModule.mySQLQuery1.SQL.Clear;
UniMainModule.mySQLQuery1.SQL.Add('select a.ArtNr, b.Hersteller, b.ArtName, b.ArtBZ, a.VK1, b.ArtPreis, a.Kondition, b.class');
UniMainModule.mySQLQuery1.SQL.Add('from userartikel a');
UniMainModule.mySQLQuery1.SQL.Add('inner join artikelliste b');
UniMainModule.mySQLQuery1.SQL.Add('on b.ArtNr = a.ArtNr');
UniMainModule.mySQLQuery1.SQL.Add('where a.ident = ' + IntToStr(UniMainModule.Ident));
UniButton6.Click; //Ausführen
end;
UniButton6.Click: //Ausführen
procedure Tfmstart1.UniButton6Click(Sender: TObject);
var
i, n, count, acount: Integer;
VK1, ArtPreis, kondition, Preis, str_, test: String;
begin
try
//UniMainModule.mySQLQuery1.SQL.Text := UniMemo1.Lines.Text;
UniMainModule.mySQLQuery1.Open;
count := UniMainModule.mySQLQuery1.RecordCount;
//Versand erst einmal auf o setzen
UniMainModule.Versand := '8,30';
// Panels freigeben
for i := Low(PanelArray) to StrToInt(UniEdit2.Text) do //High(PanelArray) do
begin
PanelArray[i].Free;
end;
UniEdit2.Text := IntToStr(count);
UniPanel1.Height := 0;
n:= 1;
For i := 1 to count do
begin
//ShowMessage(test);
test := UniMainModule.mySQLQuery1.FieldByName('ArtNr').AsString;
if test = '69789789' then //Versandartikel
begin
if UniMainModule.mySQLQuery1.fieldByName('VK1').AsString <> '' then
begin
UniMainModule.Versand := UniMainModule.mySQLQuery1.fieldByName('VK1').AsString;
end;
end
else
begin
//Panel erstellen
PanelArray[n] := TUniPanel.Create(self);
PanelArray[n].Parent := UniPanel1;
PanelArray[n].SetBounds(0,100 * n -100,UniPanel1.Width,100);
PanelArray[n].Name := 'ArrayPanel' + IntToStr(n);
//WarenkorbButton auf erstellten Panel erstellen
WarenkorbButtonArray[n] := TUniButton.Create(self);
WarenkorbButtonArray[n].Parent := PanelArray[n];
WarenkorbButtonArray[n].SetBounds(PanelArray[n].Width - 100 , PanelArray[n].Height - 30 ,96,25);
WarenkorbButtonArray[n].Caption := 'In Warenkorb';
WarenkorbButtonArray[n].Tag := n;
WarenkorbButtonArray[n].Name := 'ArrayWarenkorbButton' + IntToStr(n);
WarenkorbButtonArray[n].Hint := UniMainModule.mySQLQuery1.FieldByName('ArtNr').AsString; //UniMainModule.SQLTable1.fieldByName('ArtNr').AsString;
WarenkorbButtonArray[n].ScreenMask.Enabled := true;
WarenkorbButtonArray[n].OnClick := ButtonZumWarenkorbClick;
//MengenEdit auf erstellten Panel erstellen
MengenArray[n] := TUniNumberEdit.Create(self);
MengenArray[n].Parent := PanelArray[n];
MengenArray[n].SetBounds(PanelArray[n].Width - WarenkorbButtonArray[n].Width-40, PanelArray[n].Height - 30 ,37,25);
MengenArray[n].Text := '1';
MengenArray[n].Tag := n;
MengenArray[n].Name := 'ArrayMengen' + IntToStr(n);
MengenArray[n].Hint := WarenkorbButtonArray[n].Hint; //UniMainModule.SQLTable1.fieldByName('ArtNr').AsString;
MengenArray[n].OnKeyPress := MengenKeyPress;
MengenArray[n].OnKeyDown := MengenKeyDown;
MengenArray[n].OnExit := MengenExit;
//ProduktButton auf erstellten Panel erstellen
ButtonArray[n] := TUniButton.Create(self);
ButtonArray[n].Parent := PanelArray[n];
ButtonArray[n].SetBounds(PanelArray[n].Width - 80 - WarenkorbButtonArray[n].Width -5 - MengenArray[n].Width -5 , PanelArray[n].Height - 30 ,75,25);
ButtonArray[n].Caption := 'Anzeigen...';
ButtonArray[n].Tag := n;
ButtonArray[n].Name := 'ArrayButton' + IntToStr(n);
ButtonArray[n].Hint := WarenkorbButtonArray[n].Hint; //UniMainModule.SQLTable1.fieldByName('ArtNr').AsString;
ButtonArray[n].ScreenMask.Enabled := true;
ButtonArray[n].OnClick := ButtonWarenkorbClick;
//Image setzen
//Button auf erstellten Panel erstellen
ImageArray[n] := TUniImage.Create(self);
ImageArray[n].Parent := PanelArray[n];
ImageArray[n].SetBounds(5, 5, 90, 90);
ImageArray[n].Center := true;
ImageArray[n].Stretch := true;
ImageArray[n].Hint := WarenkorbButtonArray[n].Hint;
ImageArray[n].Cursor := crHandPoint;
ImageArray[n].OnClick := ButtonWarenkorbClick;
try
ImageArray[n].Picture.LoadFromFile(ExtractFilePath(ParamStr(0)) + '\files\pics\ArtNr\' + UniMainModule.mySQLQuery1.fieldByName('ArtNr').AsString + '.jpg');
except
//nix
end;
//ImageArray[n].Url := ExtractFilePath(ParamStr(0)) + '\files\pics\ArtNr\' + UniMainModule.mySQLQuery1.fieldByName('ArtNr').AsString + '.jpg';
//Label setzen und Namen aus Datenbank definieren
ArtNameArray[n] := TUniLabel.Create(self);
ArtNameArray[n].Parent := PanelArray[n];
ArtNameArray[n].SetBounds(ImageArray[n].Width + 5, 10 ,100,13);
ArtNameArray[n].Font.Style := [fsBold, fsUnderline];
ArtNameArray[n].Caption := UniMainModule.mySQLQuery1.fieldByName('Hersteller').AsString + ' ' + UniMainModule.mySQLQuery1.fieldByName('ArtName').AsString;
ArtNameArray[n].Hint := WarenkorbButtonArray[n].Hint;
ArtNameArray[n].Cursor := crHandPoint;
ArtNameArray[n].ScreenMask.Enabled := true;
ArtNameArray[n].OnClick := ButtonWarenkorbClick;
//Label setzen und BZ aus Datenbank definieren
ArtBZArray[n] := TUniLabel.Create(self);
ArtBZArray[n].Parent := PanelArray[n];
ArtBZArray[n].SetBounds(ImageArray[n].Width + 10, ArtNameArray[n].Top + 20 ,100,13);
str_ := UniMainModule.mySQLQuery1.fieldByName('ArtBZ').AsString;
if Length(Str_) >= 70 then
begin
Delete(Str_, 70, Length(Str_));
Str_ := Str_ + ' ...';
end;
ArtBZArray[n].Caption := Str_;
//Label setzen und ArtNr aus Datenbank definieren
ArtNrArray[n] := TUniLabel.Create(self);
ArtNrArray[n].Parent := PanelArray[n];
ArtNrArray[n].SetBounds(ImageArray[n].Width + 10, ArtBZArray[n].Top + 20, 50, 13);
ArtNrArray[n].Caption := 'Art. Nr.: ' + UniMainModule.mySQLQuery1.fieldByName('ArtNr').AsString;
//Label setzen und ArtPreis aus Datenbank definieren
ArtPreisArray[n] := TUniLabel.Create(self);
ArtPreisArray[n].Parent := PanelArray[n];
ArtPreisArray[n].SetBounds(ImageArray[n].Width + 10, ArtNrArray[n].Top + 20, 50, 13);
ArtPreisArray[n].Font.Style := [fsBold];
ArtPreisArray[n].Font.Color := clTeal;
ArtPreisArray[n].Font.Size := 9;
VK1 := UniMainModule.mySQLQuery1.fieldByName('VK1').AsString;
Preis := UniMainModule.mySQLQuery1.fieldByName('ArtPreis').AsString; //Listenpreis laden
kondition := UniMainModule.mySQLQuery1.fieldByName('Kondition').AsString;
if (VK1 = '') or (VK1 = '0') then
begin
if (Kondition = '') or (Kondition = '0') then
begin
//Listenpreis
end
else
begin
//Konditionen
Preis := FloatToStr(StrToFloat(Preis) - (StrToFloat(Preis) / 100) * StrToFloat(Kondition));
end;
end
else
begin
Preis := VK1;
end;
ArtPreisArray[n].Caption := 'Ihr Preis: ' + FormatFloat(',.00',StrToFloat(preis)) + ' EUR';
//TPanel in der höhe erweitern
UniPanel1.Height := UniPanel1.Height + PanelArray[n].Height;
n := n+1;
end;
UniMainModule.mySQLQuery1.Next;
end;
except
on E : Exception do ShowMessage(E.Message);
end;
UniButton1.Enabled := true;
end;