![]() |
Datenbank: MySQL • Zugriff über: ODBC
Berechnetes Feld vom Typ Boolean erstellen und ändern
Hallo,
ich habe ein berechnetes Feld vom Typ Boolean erstellt und möchte in Abhängigkeit vom anderem Feld dem Werte true oder false zuweisen. Laut OH muß ich im OnCalcFields die Werte zuweisen. Es wird aber nur beim ersten Datensatz der Wert geändert. AutoCalcFields habe ich probeweise mit true oder false ausprobiert ...
Delphi-Quellcode:
..
procedure TForm1.Table1CalcFields(DataSet: TDataSet);
begin if Table1HasChildrens.AsInteger = 0 then Table1B_HasChildrens.AsBoolean := false else Table1B_HasChildrens.AsBoolean := true; end; Was mache ich falsch? Grüße [edit=Sharky]Delphi-Tags gesetzt. Mfg, Sharky[/edit] |
Re: Berechnetes Feld vom Typ Boolean erstellen und ändern
Zitat:
Den Code würde ich so schreiben:
Delphi-Quellcode:
Allerdings musst du beachten, dass die AutoCalc Felder nur dann berechnet werden, wenn sie auch benötigt werden.
procedure TForm1.Table1CalcFields(DataSet: TDataSet);
begin Table1B_HasChildrens.AsBoolean := Table1HasChildrens.AsInteger <> 0; end; Also z.B. zur Anzeige in einem Grid werden nur die sichtbaren Zeilen berechnet. Wie hast du denn festgestellt, dass nur der erste Datensatz berechnet wird? |
Re: Berechnetes Feld vom Typ Boolean erstellen und ändern
Zitat:
Zitat:
Zitat:
Zitat:
2.das boolean feld wird intern für die Komponente dbtreeview verwendet, als Steuerung für Parent-Child Beziehung. Ausgehend von der Komponente müssten dann auch alle Child's angezeigt werden, ist aber nicht der Fall Grüße |
Re: Berechnetes Feld vom Typ Boolean erstellen und ändern
Zitat:
Wie gesagt, die berechneten Felder werden quasi on demand berechnet. Du kannst nicht davon ausgehen, dass alle Datensätze durchgehend berechnet werden. |
Re: Berechnetes Feld vom Typ Boolean erstellen und ändern
Hallo rider,
ich habe DBGrid angeschlossen und es sind tatsächlich alle boolean Felder richtig geändert. Also muß ich tiefer greifen, weil die Komponente habe ich irgendwo im www runtergeladen und wollte einsetzen bzw. ausprobieren. Erst mal Danke! Grüße |
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:29 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-2025 by Thomas Breitkreuz