Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi DBEdit während der Eingabe zusammenrechnen und ausgeben (https://www.delphipraxis.net/13503-dbedit-waehrend-der-eingabe-zusammenrechnen-und-ausgeben.html)

coolstranger 19. Dez 2003 18:35


DBEdit während der Eingabe zusammenrechnen und ausgeben
 
Hallo wollte mal fragen ob man es machen kann, dass durch eingabe von zahlen in mehrere DBEdit felder ein summand gebildet werden kann, der anschlließend oder auch schon während der eingabe anderer edit felder alle bisherigen zahlen zusammenrechnet und in einem weiteren edit-feld angibt, damit man sie anschließend in einer dbgrid tabelle als "Gesamt" speichern kann

schniede 19. Dez 2003 20:22

Re: DBEdit während der Eingabe zusammenrechnen und ausgeben
 
hallo !

Das sollte kein problem sein. Im Onchange ereignis der Kompo. die formel angeben und abfangen falls das feld noch ein nullstring ist:


etwa so

Code:
procedure TForm1.Edit1Change(Sender: TObject);
begin
 if edit1.Text = '' then
 edit1.Text:='0';
 if edit2.Text = '' then
 edit2.Text:='0';

 edit3.Text:=inttostr(strtoint(edit1.text) + strtoint(edit2.text));
end;

procedure TForm1.Edit2Change(Sender: TObject);
begin
if edit1.Text = '' then
edit1.Text:='0';
if edit2.Text = '' then
edit2.Text:='0';

edit3.Text:=inttostr(strtoint(edit1.text) + strtoint(edit2.text));
end;
mußt natürlich noch buchstaben und der gleichen abfangen


mfg schniede

MrSpock 19. Dez 2003 20:22

Re: DBEdit während der Eingabe zusammenrechnen und ausgeben
 
Hallo coolstranger,

dazu könntet du ein CalcField zu der Tabelle hinzufügen und bei OnCalc die Summe über die Felder bilden.Bei OnPost überträgst du den Wert in ein (unsichtbares) Datenbankfeld Gesamt.

coolstranger 19. Dez 2003 21:45

Re: DBEdit während der Eingabe zusammenrechnen und ausgeben
 
@ schniede!
danke erstmal für die schnelle hilfe, aber das war nicht genau das, was ich suchte.

@ mr spock!
ich glaube das ist genau das, was ich gedacht habe. wo bekomme ich das CalcField her? Wie kann ich bei OnCalc die summe berechnen und per onpost an eine "gesamt" spalte senden?

coolstranger 21. Dez 2003 10:31

Re: DBEdit während der Eingabe zusammenrechnen und ausgeben
 
Sorry falls ich nerve aber das ist wichtig!
Mr Spock, wie kann ich über oncalc die summe der einzelnen felder bilden?

coolstranger 21. Dez 2003 10:43

Re: DBEdit während der Eingabe zusammenrechnen und ausgeben
 
Ich habe da was hinbekommen! Hier damit hat es geklappt:
Code:
procedure TForm1.ingoCalcFields(DataSet: TDataSet);
begin
 ingoGesamt.Value := ingoL1.Value + ingoL2.Value + ingoL3.Value + ingoL4.Value + ingoL5.Value + ingoL6.Value + ingoL7.Value + ingoL8.Value + ingoL9.Value;
end;
Nur habe ich jetzt ein Problem. Er erfasst meine Eingegebenen Daten, nur wenn ich bei L1 und L2 zum Beispiel die Zahl 5 eingebe, erscheint im Fenster nacheinander eine 5! Also eigentlich soll es ja 5+5 sein und raus kommt 55.
Was habe ich da falsch gemacht?

Sharky 21. Dez 2003 11:03

Re: DBEdit während der Eingabe zusammenrechnen und ausgeben
 
Hai collstranger,

deine Felder ingoLx geben Dir bei Value wohl einen String zurück. Das bedeutet das Du einen String zusammen setzt.

Versuche es mal so:

Code:
procedure TForm1.ingoCalcFields(DataSet: TDataSet);
begin
 ingoGesamt.Value := IntToStr ( StrToInt (ingoL1.Value) + StrToInt (ingoL2.Value) + StrToInt (ingoL3.Value));
end;


Alle Zeitangaben in WEZ +1. Es ist jetzt 05:53 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz