Jump to content

akio

Members
  • Posts

    15
  • Joined

  • Last visited

Everything posted by akio

  1. i use Delphi XE8 and the Trail Version from UniGui **************************************** in German: Guten Morgen, ist es möglich die Spaltenbreite der UniDBGrid automatisch anzupassen? Wenn ich zur Laufzeit einen doppelklick auf die jeweilige Spalte setze, wird diese automatisch auf die passende Länge angepasst. Geht dies auch via Quellcode in der UniDBGrid? Einige Beispiele fand ich bereits im Internet, leider bezog sich dies immer nur auf die VCL DBGrid und war irgendwie nicht kompatible mit der UniDBGrid... Ich freue mich auf einen Hilfreichen Tipp Danke Karsten **************************************** I try to translate in Englich googd morning, it is possible to automatically adjust the column width of the UniDBGrid? If I make a double-click on the column, it is automatically adjusted to the appropriate length. Some examples I found this on the Internet, unfortunately, this is always related only to the VCL DBGrid and was somehow not compatible with the UniDBGrid ... your sincerely Karsten
  2. Boar ich habe glaub DIE LÖSUNG.... In "Ausführen" sage ich ja UniMainModule.mySQLQuery1.next; um den nächsten Datensatz / Artikel zu bearbeiten bzw anzeigen zu lassen ... Jetzt habe ich aus Spaß mal "UniMainModule.mySQLQuery1.First;" in der letzten Zeile unter Button.enabled := true ergänzt, dass er wieder in die erste Zeile springt und siehe da: Es kommt KEINE Fehlermeldung mehr... Man ist das eine schwere Geburt Vielen Dank für die zusätzlichen Denkansätze^^ [gelöst]
  3. @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;
  4. German: das muss etwas am Programmstart zutun haben. Nach dem ich, statt "in Warenkorb" etwas anderes mache, wie z.B. "Produkt infos anzeigen", und im Anschluss dann ganz oft "in Warenkorb" bestätige, passiert nichts... Alles ohne eine Fehlermeldung. Schon irgendwie merkwürdig. Google Translater in english that must have some intervention at program start. After I, instead of "add to cart" doing something else, such as "More info Show", and after then quite often "add to cart" confirm, nothing happens ... all without an error message. Already somehow strange.
  5. Hi, yes, I use somewhat an older version of UniGui (0.99.0 build 1169) with Delphi XE8. Best regard Karsten
  6. Hallo Erich, das Problem tritt nur EINMAL auf, und zwar beim 2. Klick "in Warenkorb". Danach ist das kein Problem mehr - Ich klicke und klicke so schnell und oft wie ich will. Aber ich teste es gerne auf den Nachmittag und kann Dir dann ein Feedback geben. Vielleicht brauch der beim Programmstart etwas länger, um den Code abzuarbeiten, keine Ahnung LG Karsten
  7. Hallo, ich arbeite mit Delphi XE8 und möchte einen Intranet Onlineshop aufbauen... Soweit so gut, funktioniert alles, bisher ohne Probleme... Doch leider bekomme ich des öfteren eine Fehlermeldung, wenn ich meinen Button "in Warenkorb" zwei mal, etwas schneller nach Programmstart, betätige... Leider kann ich mir aus der Fehlermeldung auch keinen Zusammenhang erschließen, was das sein könnte :/ Fehler: "EAssertionFailed : TUniDBGrid.MoveToRow(): Unexpected Row number. (H:\Framework\uniGUI\uniDBGrid.pas, Zeile 1929)" Sobald ich diese Meldung erhalte, scheint der Artikel auch nicht im Warenkorb. Nach Erhalt dieser Fehlermeldung, kommt diese auch nie wieder, und kann so oft und so schnell die Button "in Warenkorb" drücken wie ich will... Alles ohne Probleme... Außer beim Ersten Login zum Shop: 1. Der Erste Artikel im Warenkorb legen - geht 2. Den gleichen oder einen anderen Artikel im Warenkorb legen, das gaanz schnell danach - FEHLER! - Wenn ich mir 3-5 Sekunden Zeit lasse, kommt sie nicht. 3. Die nachfolgenden Artikel, wie gesagt, alles ohne Probleme, und so schnell wie ich will... Ich hoffe, ihr könnt mir folgen^^ Ansonsten gerne Fragen... Hier mal der Code: Das ist der Button, welchen ich betätige: procedure Tfmstart1.ButtonZumWarenkorbClick(Sender: TObject); begin if (Sender is TUniButton) then begin try UniMainModule.Artikel := TUniButton(Sender).Hint; fmProdukt1.UniNumberEdit1.Text := MengenArray[TUniButton(Sender).Tag].Text; fmProdukt1.UniButton1.Click; except on E : Exception do ShowMessage(E.Message); end; end; end; Das ist die procedure in der Produktansicht (andere Form), welcher im Anschluss dann in den Warenkorb gelegt wird: procedure Tfmprodukt1.UniButton1Click(Sender: TObject); var preis, VK1, Kondition: String; menge: Integer; sl:TStringList; 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'); UniMainModule.mySQLQuery1.SQL.Add('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)); UniMainModule.mySQLQuery1.SQL.Add('AND b.ArtNr like "' + UniMainModule.Artikel + '";'); UniMainModule.mySQLQuery1.Open; fmwarenkorb.UniStringGrid1.RowCount := fmwarenkorb.UniStringGrid1.RowCount +1; fmwarenkorb.UniStringGrid1.Cells[0,UniMainModule.Row] := UniMainModule.mySQLQuery1.fieldByName('ArtNr').AsString; fmwarenkorb.UniStringGrid1.Cells[1,UniMainModule.Row] := UniMainModule.mySQLQuery1.fieldByName('Hersteller').AsString + ' ' + UniMainModule.mySQLQuery1.fieldByName('ArtName').AsString; fmwarenkorb.UniStringGrid1.Cells[5,UniMainModule.Row] := ' > Entfernen <'; fmwarenkorb.UniStringGrid1.Cells[6,UniMainModule.Row] := ' -'; fmwarenkorb.UniStringGrid1.Cells[7,UniMainModule.Row] := ' +'; //Preisberechnung: VK1 := UniMainModule.mySQLQuery1.fieldByName('VK1').AsString; Preis := UniMainModule.mySQLQuery1.fieldByName('ArtPreis').AsString; //Listenpreis kondition := UniMainModule.mySQLQuery1.fieldByName('Kondition').AsString; if (VK1 = '') or (VK1 = '0') then begin if (Kondition = '') or (Kondition = '0') then begin //Listenpreis end else begin //Prozente abrechnen Preis := UniMainModule.mySQLQuery1.fieldByName('ArtPreis').AsString; Preis := FloatToStr(StrToFloat(Preis) - (StrToFloat(Preis) / 100) * StrToFloat(Kondition)); end; end else begin //Festen VK übernehmen Preis := VK1; end; menge := StrToInt(UniNumberEdit1.Text); fmwarenkorb.UniStringGrid1.Cells[2,UniMainModule.Row] := IntToStr(menge); fmwarenkorb.UniStringGrid1.Cells[3,UniMainModule.Row] := FormatFloat(',.00',StrToFloat(preis)) + ' EUR'; preis := FloatToStr(StrToFloat(preis) * Menge); fmwarenkorb.UniStringGrid1.Cells[4,UniMainModule.Row] := FormatFloat(',.00',StrToFloat(preis)) + ' EUR'; UniMainModule.row := UniMainModule.row +1; close; end; Ich hoffe, ihr habt einen passenden Rat. Ich freue mich auf ein Feedback. LG Karsten
  8. Hii, i want to integrate an image in the UniStringGrid for example Cells[3;1]. Is this possible? I use the trial version 0.99 and Delphi XE8. thx for your answer. LG akio
  9. akio

    Fastreport

    i want export to pdf. I get a Error on export... what am I doing wrong? Code: UniMainModule.FrxReport1.Variables.Variables['Rechnungsadresse'] := QuotedStr(UniMemo1.Lines.Text); UniMainModule.FrxReport1.Variables.Variables['Lieferadresse'] := QuotedStr(UniMemo2.Lines.Text); UniMainModule.FrxReport1.Variables.Variables['Auftraggeber'] := QuotedStr(UniMainModule.Firma); UniMainModule.FrxReport1.Variables.Variables['Datum'] := QuotedStr(DateTimeToStr(Date)); UniMainModule.FrxReport1.Variables.Variables['Bestellung'] := 'Bestellung: ' + QuotedStr(UniEdit1.Text); UniMainModule.frxReport1.PrepareReport; UniMainModule.frxPDFExport1.FileName := 'test.pdf'; UniMainModule.frxReport1.Export(UniMainModule.frxPDFExport1);
  10. akio

    Fastreport

    Hi, I get an error message, when i use Fastreport... "Klasse EOutOfResourcees: Nicht genug Timer verfügbar" The variable "Rechnungsadresse" created in ftxReport1 UniMainModule.FrxReport1.Variables.Variables['Rechnungsadresse'] := QuotedStr(UniMemo1.Lines.Text); UniMainModule.frxReport1.ShowReport(); Have you an idea? MfG Karsten
  11. oh ok. that explains a lot ... Thank you
  12. yes, i use this download File: FMSoft_uniGUI_Complete_0.99.10.1182_Trial
  13. Hii, unfortunately I can not adjust the value. standard is: UniServerModul -> SessionTimeOut 180000 as soon as I value entries a, he jumps back to 180000.
  14. Hii, first, my english is not so good (i'm from germany) i want develop an onlineshop with mySQL. My problem is, The Connection / Session broken very fast... "EUniSessionException: 'Invalid session or session Timeout'" I working with Delphi XE8 and UniGui (Version 0.99.10.1182) ... I use the vcl DAC for MySQL. How can i this incease? Have you an idea?
×
×
  • Create New...