Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Gespeicherte (n)umerische Daten anzeigen, ggf. ändern (https://www.delphipraxis.net/70660-gespeicherte-n-umerische-daten-anzeigen-ggf-aendern.html)

LOMBI 2. Jun 2006 11:34

Datenbank: Paradox • Version: 7 • Zugriff über: TDataSource, TQuery

Gespeicherte (n)umerische Daten anzeigen, ggf. ändern
 
Hallo,

möchte die gespeicherten Artikeldaten in der Detailübersicht editieren.
Mit den (n)umerischen Feldern habe ich da noch meine Probleme:

Delphi-Quellcode:
procedure TDemoForm.BtnEditClick(Sender: TObject);
begin
  FArtikel.Show;
    with FArtikel do
      begin
      QArtikel.Edit //Änderungsmodus
      EditBez1.Text := QArtikel.FieldByName('ArtBez1').AsString;
      ...
      EditEKpreis.Text :=
      FloatToStr(QArtikel.FieldByName('EKpreis').AsFloat);
      EditVKbrutto.Text :=
      FloatToStr(QArtikel.FieldByName('VKbrutto').AsFloat);
      EditAbest.Text :=
      FloatToStr(QArtikel.FieldByName('Anfangsbestand').AsFloat);
      ...
   end;
Würdet Ihr bitte mal sehen, ob die Zuweisungen i.O. sind? Was müßte ich
ändern?

Vielen Dank!

Gruß
Lombi

TBx 2. Jun 2006 11:39

Re: Gespeicherte (n)umerische Daten anzeigen, ggf. ändern
 
Hallo!

Warum verwendest Du nicht einfach ein DBEdit?

Wo genau liegt Dein Probnlem mit den numerischen Feldern?

Gruß

onlinekater

MrSpock 2. Jun 2006 18:00

Re: Gespeicherte (n)umerische Daten anzeigen, ggf. ändern
 
Hallo Lombi,

onlinekater hat mit seiner Frage genau den Punkt getroffen. Wenn du aber keine DBEdit Felder verwenden möchtest, sind deine Anweisungen OK. Zum Auslesen musst du aber nicht in den Editmode schalten.

LOMBI 3. Jun 2006 11:59

Re: Gespeicherte (n)umerische Daten anzeigen, ggf. ändern
 
Hallo onlinekater/MrSpock,

klar, mit DBEdits wäre es einfacher, nur möchte ich diese nicht mehr
verwenden. Wenn ich Daten in die Detailübersicht einlese, dann sollen
sie bei Bedarf auch gleich geändert werden können, darum Query.Edit.

Einen neuen Artikel füge ich mit Query.Insert hinzu. Die Edits sind
jedoch nicht leer, sondern werden mit den Daten des zuletzt angezeigten Artikels aus Query.Edit gefüllt.

Müßte ggf. mein Code mit Query.Close oder so abgeschlossen werden?

Gruß
Lombi

MrSpock 4. Jun 2006 11:01

Re: Gespeicherte (n)umerische Daten anzeigen, ggf. ändern
 
Hallo Lombi,

wenn die Query "aktualisierbar" ist und RequestLive auf True steht, musst du mit myQuery.Post die Änderungen übernehmen.

LOMBI 6. Jun 2006 11:23

Re: Gespeicherte (n)umerische Daten anzeigen, ggf. ändern
 
Hallo MrSpock,

danke für den Hinweis.

Beim BtnSpeichern hatte ich im Code mit Query.Post
einen Wurm drin. Jetzt paßt alles bis auf die Detail-
ansicht nach BtnEdit. In den (n)umerischen Edits werden
die 4 Dezimalstellen, d.h. die Nullen nicht eingelesen,
z.B: Anzeige "2" statt "2,0000". Hab's schon mit DisplayFormat
in FormCreate bzw. BeforeEdit versucht. Ohne Erfolg!

Was ist bitte zu tun?

Gruß
Lombi

LOMBI 7. Jun 2006 17:01

Re: Gespeicherte (n)umerische Daten anzeigen, ggf. ändern
 
Geschafft!

So werden die (n)umerischen Werte aus der Tabelle korrekt mit 4 Dezimalstellen in die Edits nach Query.Edit eingelesen:

Delphi-Quellcode:
procedure TDemoForm.BtnEditClick(Sender: TObject);
begin
  FArtikel.Show;
    with FArtikel do
      begin
      QArtikel.Edit //Änderungsmodus
      EditBez1.Text := QArtikel.FieldByName('ArtBez1').AsString;
      ...
      EditEKpreis.Text := Format ('%0.4f',
      [QueryArtikel.FieldByName('EKpreis').AsFloat]);
      EditVKbrutto.Text := Format ('%0.4f',
      [QueryArtikel.FieldByName('VKbrutto').AsFloat]);
      ...
   end;
Gruß
Lombi

shmia 7. Jun 2006 17:32

Re: Gespeicherte (n)umerische Daten anzeigen, ggf. ändern
 
Zitat:

Zitat von LOMBI
Einen neuen Artikel füge ich mit Query.Insert hinzu. Die Edits sind
jedoch nicht leer, sondern werden mit den Daten des zuletzt angezeigten Artikels aus Query.Edit gefüllt.

Irgendwie machst du dir das Leben unnötig schwer.
Jede Wette, du kopierst jedes Feld einzeln, oder ?
Schau mal auf http://www.delphipraxis.net/internal...ct.php?t=19594
Man sollte es aber dem Benutzer überlassen, ob er einen bestehenden Datensatz
als Ausgangspunkt für einen neuen Datensatz nehmen möchte oder ob er mit einem leeren Datensatz
anfangen möchte.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:39 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