Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Filter auf ein berechnendes Feld (https://www.delphipraxis.net/190280-filter-auf-ein-berechnendes-feld.html)

waldforest 19. Sep 2016 19:58

Datenbank: Firebird • Version: 2.5 • Zugriff über: Zeos

Filter auf ein berechnendes Feld
 
Hallo,
ich habe mir einen Filterdialog erstellt, der mir einen Filter auf die vorhanden Felder eines Querys baut.
Dieser funktioniert so lange, bis ein Filter auf ein fkCalculated Field, welches ich im OnCalcFields berechne, benutzt wird.

Welche Möglichkeit gibt es, auf dieses Feld zu Filtern ?

Uwe Raabe 19. Sep 2016 21:34

AW: Filter auf ein berechnendes Feld
 
Ich kenne mich mit Zeos nicht aus, aber das geht bei TDataSet schon mal nicht. Lediglich auf fkInternalCalc Felder kann man einen Index oder einen Filter legen.

waldforest 20. Sep 2016 11:53

AW: Filter auf ein berechnendes Feld
 
Hallo,
danke für den Hinweis.
Ich kann das Feld auf fkInternalCalc umstellen. Allerdings erhalte ich beim Aufruf der Query die Fehlermeldung, dass das Feld nicht gefunden wird.

Was muss zusätzlich noch angepasst werden ?

mfg

himitsu 20. Sep 2016 12:03

AW: Filter auf ein berechnendes Feld
 
fkInternalCalc muß von der Zugriffskomponente unterstützt werden (k.A. ob Zeros das tut), denn der berechnete "Wert" wird im Record-Speicher jedes Datensatzes abgelegt. (genauso, wie die normalen Werte der Abfrage)
Bei fkCalculated liegt der Wert nur in der TField-Komponete, für jeweils den aktiven Datensatz.
http://docwiki.embarcadero.com/RADSt...Standardfelder


fkInternalCalc: für jeden Datensatz existiert der Wert und kann daher darauf gefiltert werden
fkCalculated: nur für den aktiven Datensatz, daher nicht filterbar, da nicht alle Werte bekannt sind

waldforest 20. Sep 2016 12:27

AW: Filter auf ein berechnendes Feld
 
Hallo,

Zitat:

fkInternalCalc: für jeden Datensatz existiert der Wert und kann daher darauf gefiltert werden
fkCalculated: nur für den aktiven Datensatz, daher nicht filterbar, da nicht alle Werte bekannt sind
danke für die Erklärung.

Die Auswahl des Field.Kinds wird in Zeos zwar angeboten, aber anscheinend wohl nicht unterstützt.

jobo 20. Sep 2016 15:18

AW: Filter auf ein berechnendes Feld
 
Wenn Du sowieso schon eine Query verwendest, mach doch die Berechnung dort oder gleich in einem View. Dann kann der Filter sicher normal verwendet werden.

waldforest 20. Sep 2016 17:33

AW: Filter auf ein berechnendes Feld
 
Hallo,
die Berechnung erfolgt in der Query,
aber genau dort tritt der Fehler mit Filter auf dieses zu berechnende Feld auf.

waldforest 20. Sep 2016 17:34

AW: Filter auf ein berechnendes Feld
 
Hallo,
die Berechnung erfolgt in der Query,
aber genau dort tritt der Fehler mit Filter auf dieses zu berechnende Feld auf.

So wie die bisherigen Post's beschreiben, ist dies nicht möglich auf berechnende Felder ein Filter zu legen.

mkinzler 20. Sep 2016 17:41

AW: Filter auf ein berechnendes Feld
 
Berechnung in der Abfrage:

SQL-Code:
select
  a, b, a+b as erg
from
  <Tabelle>;
und nicht als berechnetes Feld.

waldforest 20. Sep 2016 17:45

AW: Filter auf ein berechnendes Feld
 
Hallo,
dies ist auch eine Idee, werde ich einmal ausprobieren
allerdings benötige ich Teile der Berechnung aus einer Subabfrage.


!! Passt, funktioniert, Danke....!!


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