Nu pot să-mi dau seama cu filtrul În IBQuery și IBDataSet.
Pentru aceste componente, proprietatea specificată nu este implementată.
Utilizați OnFilterRecord.
În sensul că nu este implementat: -0
Și cum să folosiți
> OnFilterRecord
Nu fii prost, ci scrie o cerere umană
SELECT.
DIN.
UNDE
Nu fii prost, ci scrie o cerere umană
SELECT.
DIN.
UNDE
Problema este că după filtrare este necesar să se socotească suma pe trei tabele. A trecut prin
> SELECT.
> FROM.
> WHERE
dar funcționează foarte încet. M-am gândit că, dacă filtrezi, va fi mai rapid.
Prin filtru nu este mai rapid, dar este necesar să faceți o interogare și să utilizați gruparea (Grup de).
> Soloviev
> onFilterRecord:
>.
> Acces: = <условие>
>.
Nu prea înțeleg ce este accesul și cu ce se mănâncă.
Cearta nu este acces, ci accepta.
procedura Tdm.ibDataSetFilterRecord (DataSet: TDataSet;
var Acceptați: Boolean);
începe
Acceptați: = DataSet.FieldByName ("Field") AsString = "la la" și
DataSet.FieldByName ("Câmp") AsString = "bu bu";
se încheie;
Duc nu arata ceva. Am scris așa cum am spus (bine, aproape așa cum se spune) pe butonul împins IBDataSet1.Filtered: = true; După aceea, în DBGrid apare o singură linie și una este goală. Cum se trateaza?
Și dacă acceptăm scrieți Accept: = IBDataSet1.FieldByName ("Field") AsString = "%"; apoi pe ideea ar trebui să fie deduse toate înregistrările, sau NU?
nr. Va va da unde aveti Field = "%", toate campurile sunt Accept = true;
Este clar! C "%" Sunt din disperare. Am copiat valoarea din tabel, l-am lipit în condiția onFilterRecord, și (DBGrid) nu-mi arată nimic. Sau poate totul din registru?
procedura TForm1.IBDataSet1FilterRecord (DataSet: TDataSet;
var Acceptați: Boolean);
începe
Acceptă: = IBDataSet1.FieldByName ("CUSTOMERSF") AsString = "MERCULES";
se încheie;
procedura TForm1.Button2Click (expeditor: TObject);
începe
IBDataSet1.Filtered: = adevărat;
se încheie;
dar scriu slab
IBDataset1.Close;
IBDataset1.SelectSql.Clear;
IBDataset1.SelectSql.Add ("SELECT *" +
„DIN