[quote link=topic=15814.msg96971#msg96971 date=1505422243]
Kazdy odeslany dotaz DBMS se bude znovu pripravovat. Muzes ale filtrovat i na nizsi urovni jiz prenesenych dat nebo aplikovat tzv. rozsah. Dokazu poradit, ale potrebuju vedet vic o te WHERE podmince (nestaci trebas jen parametry?).
Nevadí mi že se každý dotaz znovu připraví. Snažím se o takový malý framework pro rychlé vytváření DB aplikací na SQlite bez častého opakování kódu a s minimem práce na formulářích.
Tzn. že nechci vytvářet statické fieldy, ani columns v dbgridech. Vše se bere z textového "předpisu" a vytváří za běhu. Součástí frameworku je i tvořič filtrů nad otevřeným query který pouze modifikuje where. Problém nastává, právě při použití dbgridu, kdy uživatel např. změní pořadí nebo šířky sloupců a následně použije filtr. Znovuotevření query způsobí reset tohoto nastavení.
Zatím to řeším tak, že před query.close uložím nastavení gridu a po query.open znovu načtu, což se mi příliš nelíbí.
[/quote]
To se chystam vytvorit neco podobneho

Nemam ale dost casu na to v klidu sednout.
U me vsak budou sloupce staticke. Uzivatel si pro ne bude moct nakonfigurovat barvy, format textu apod. Je to navic i prakticke protoze ne vsichni uzivatele chteji napr. videt vsechny sloupce a binding na model je s takovou vlastnosti jednoduchy.
Pokud staticke sloupce odmitas (i kdyz je vlastne chces) a musis dotaz nutne znovuotvirat, pak si tu konfiguraci zachovat musis. Stacit by melo odpojeni gridu od data source:
DBGrid1.DataSource := nil;
try
FDQuery.SQL.Text := '<New SQL>';
FDQuery.Open;
finally
DBGrid1.DataSource := DataSource1;
end;
FireDAC zkratka zahodi vse co o puvodnim dotazu znal (spolu s tim zaridi i vycisteni prilinkovanych komponent). Mozna by ti ale mohlo stacit pouzit parametry a refresh datasetu ale neznam detaily toho co ten filtr dela. Ani to zda mas vsechna data k zobrazeni na klientu (v takovem pripade by se dal aplikovat filtr lokalne).