Delphi-PRAXiS
Seite 1 von 2  1 2      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi TEdit+onChange (https://www.delphipraxis.net/95529-tedit-onchange.html)

LOMBI 8. Jul 2007 18:14

Datenbank: ABS-db • Version: 5.12 • Zugriff über: ABSQuery

TEdit+onChange
 
Hallo,

im OnChange der TEdits EdMwSt0, EdMwSt1 und EdMwSt2 werden bei Bedarf die voreingestellten Steuersätze in der ABSTabelle geändert und gespeichert. Mit EdMwSt0 und EdMwSt1 klappt das bestens, jedoch nicht
mit EdMwSt2. Wer kann mir bitte helfen? Vielen Dank vorab!

Delphi-Quellcode:
procedure TDemoForm.EdMwSt2Change(Sender: TObject);
begin
  with DatenModul, ABSQueryMwSt do
  begin
    if Locate('MwSt', 2, []) then
      Edit;
      FieldByName('Prozent').AsFloat := StrToFloat(EdMwSt2.Text);
      Post;
  end;

Hawkeye219 8. Jul 2007 18:29

Re: TEdit+onChange
 
Hallo Lombi,

die Einrückung läßt mich vermuten, daß ein BEGIN-END-Paar fehlt.

Gruß Hawkeye

LOMBI 9. Jul 2007 08:47

Re: TEdit+onChange
 
Guten Morgen Hawkeye,

nein, daran liegt es nicht.
EdMwSt0 und EdMwSt1 funktionieren mit dem gleichen Code.

mkinzler 9. Jul 2007 08:52

Re: TEdit+onChange
 
Zitat:

nein, daran liegt es nicht.
EdMwSt0 und EdMwSt1 funktionieren mit dem gleichen Code.
Bist du dir sicher? Nur das Edit; wird in Abhängigkeit des Ifs aufgerufen die Zuweisung und der Post wird auf jedenfall ausgeführt.

hoika 9. Jul 2007 09:47

Re: TEdit+onChange
 
Hallo,

wenn die anderen beiden funktionieren, ist das Zufall.
Wie schon geschrieben fehlt ein begin end.

Delphi-Quellcode:
if Locate then
begin
  edit ...
end;

Heiko

LOMBI 9. Jul 2007 12:56

Re: TEdit+onChange
 
Hallo,

habe Begin/End den drei OnChange-Ereignissen EdMwSt0, EdMwSt1, EdMwSt2 hinzugefügt.
Das Problem ist damit bei EdMwSt2 aber nicht gelöst. Welche Alternative gäbe es,
alle drei TEdits in einem Code anzusprechen?

Delphi-Quellcode:
if Locate then
begin
  edit ...
end;
Grüße
Lombi

hoika 9. Jul 2007 13:34

Re: TEdit+onChange
 
Hallo,

ich würde vom Locate ganz weggehen.
Ohne deine Datenstruktur kann ich aber nur raten
ein Bsp.

Delphi-Quellcode:
procedure UpdateField(const theId: Integer; const theFieldName: String);
begin
  with Query do
  begin
    SQL.Text:= Update Table Table1 Set Field=:Field Where Id=:Id';
    ParamByName('Field').AsFloat := theFieldName;
    ParamByName('Id').AsInteger := theId;
    ExecSQL;
  end;
end;
Ich hoffe nicht, dass deine Tabelle sowas hat wie

Name Nr Prozent
Mwst 2 15
Mwst 1 19


Dann ist das Where etwas anders

Where (Name='Mwst') And (Nr=2)



Heiko

MrSpock 9. Jul 2007 16:47

Re: TEdit+onChange
 
Hallo LOMBI,

zeige uns doch einmal die Struktur deiner Tabelle.

LOMBI 9. Jul 2007 18:32

Re: TEdit+onChange
 
Guten Abend,

hier die Felder meiner ABSTabelle:

MwSt|Prozent
0 | 0
1 | 7
2 | 19
Grüße

hoika 9. Jul 2007 20:23

Re: TEdit+onChange
 
Hallo,

nuja,

ers mal nen unique index auf Mwst

dann

update table_???
set prozent=:percent
where mwst=:mwst

un nu die ParamByName

Besser wäre aber ein surrogate (also künstlicher Schlüssel)

id (autoinc), mwst, percent


Heiko


Alle Zeitangaben in WEZ +1. Es ist jetzt 13:27 Uhr.
Seite 1 von 2  1 2      

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