![]() |
Felder vom Typ "fkData" im OnCalcFields-Event füll
Hallo !
Kennt jemand eine Möglichkeit im OnCalcFields-Event Datenfelder vom Typ "fkData" zu füllen oder zu verändern ? TQuery.Edit kann schießlich an dieser Stelle nicht verwendet werden. Ein Type-Cast bringt ebenfalls nicht viel, da man an die eigentlich wichtigen Members der Klasse TField nicht herankommt, da diese "private" sind. Schon mal vielen Dank ! |
Re: Felder vom Typ "fkData" im OnCalcFields-Event
Das Event OnCalcFields wird ausschlieslich dazu benutzt berechnete Felder
zu bestücken.
Delphi-Quellcode:
Um Datenfelder zu bestücken sind die Events
// hier ein Beispiel
procedure TFrmAbholung.QryPaketCalcFields(DataSet: TDataSet); var l,b, h : Double; begin l := DataSet.fieldbyname('Laenge').AsFloat * 10.0; b := DataSet.fieldbyname('Breite').AsFloat * 10.0; h := DataSet.fieldbyname('Hoehe').AsFloat * 10.0; // berechendes Feld mit Daten befüllen DataSet['Abmasse'] := Format('%3.0f x %3.0f x %3.0f', [l,b,h]); end;
im Zustand dsEdit oder dsInsert. |
Schon klar !
Das ist mir natürlich schon lange klar, aber ich suche nach einer Möglichkeit, entweder eine Spalte vom Typ fkCalculated editierbar zu machen (vgl.
![]() |
Re: Felder vom Typ "fkData" im OnCalcFields-Event
Beides ist nicht möglich!
Du kannst ein berechnetes Feld nicht editieren, da es nur aus physikalisch vorhanden Feldern gebildet wird. Für den Benutzer ist es Read-Only. Andererseits darfst du physikalische Felder (ftData) beim Blättern im Grid nicht einfach ändern. Du benötigst ein Lookupfield (fkLookup). Damit brauchst du die Pickuplist nicht selbst aufbauen, sondern die Pickupliste wird aus einer 2. Datenmenge gebildet. Angenommen du hast Tabelle A mit einem Fremdschlüssel (IdMaschine). Tabelle B sieht so aus: IdMaschine Bezeichnung ======================== 10 Bohrhammer 12 Schlagbohrmaschine 15 ..................... Mit dem Lookup-Feld kann der Benutzer bequem aus den Bezeichnungen auswählen; im Hintergrund wird in Tabelle A des Feld IdMaschine entsprechend geändert. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 01:05 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz