Entwickler-Ecke
Datenbanken - clientdataset: filter über berechnete daten?
GameG - Di 29.09.09 00:10
Titel: clientdataset: filter über berechnete daten?
einen wunderschönen guten tag!
ich hab eine datenbank mit einem clientdataset-objekt.
ich habe 2 spalten: A und B
aus A und B berechne ich (OnCalcFields) einen wert und lasse den in einer dritten spalte C (fkInternalCalc) anzeigen (geht auch).
nun will ich einen filter über C legen. aber der filter gibt mit immer keine datensätze zurück - egal welche werte da in C drin stehen. es werden lediglich alle datensätze angezeigt, wenn ich "C = 0" als filterstring angebe.
kann mir jemand helfen?
vielen dank
zuma - Di 29.09.09 09:10
ist denn ein Wert 0 in der spalte drin ? und nicht 0,00000000000001 oder sowas ?
runde mal den wert, den du in die spalte einträgst, auf z.b 5 nachkommastellen, oder trag mal testweise einfach ne 'glatte' 0 ein
GameG - Di 29.09.09 14:09
in C sind einfache int-werte drin (1, 2, 3, 4)
wenn ich über FieldByName('C') den jeweiligen wert abfrage steht der auch da drin. aber wenn ich den in OnFilterRecord den wert auslese, ist der wert plötzlich wieder 0. 0ô?
filter: C = 0 liefert alle datensätze
filter: C = 1 liefert keine datensätze
:(
Critter - Di 29.09.09 15:16
Hallo,
wenn ich mich recht entsinne (lang, lang ist es her) hatte ich mal ein ähnliches Problem mit einer anderen DB Komponente. Dort war es nicht möglich auf Calculated Werte zu Filtern, es war aber sehr wohl möglich sie im OnFliterRecord Ereignis ab zu fragen und dort die Filterung über den Accept Parameter zu beeinflussen.
Eventuell hilft dir ja dieser Ansatz.
critter
zuma - Di 29.09.09 16:14
versuch doch mal in onFilterRecord
Delphi-Quelltext
1:
| accept := (FieldByName('c') > 0) |
zu setzen
Moderiert von
Klabautermann: Dephi-Tags gesetzt.
GameG - Do 01.10.09 17:29
wenn ich den wert C des datensatzes über einen button auslese, erhalte ich das richtige ergebnis.
wenn ich den wert C des datensatzes in OnFilterRecord auslese, erhalte ich immer nur ''.
auch das setzen im OnFilterRecord geht nicht :(
es scheint so, das der compiler das ergebnis da irgendwie noch nicht berechnet hat oder nicht zugreifen kann.
naja ich hab jetzt das feld zum datum gemacht und berechne es seperat und tage das ein. ist zwar sehr sehr unschön, aber was besseres fällt mir gerade nicht ein :(
danke
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2026 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!