- Vytvoril/a D2000 Dev Team, naposledy zmenil/a D2000 V11 Editor dňa okt 16, 2018
Funkcia %HI_RefreshData
- pre zobrazovač typu Browser - znovu načítanie (aktualizáciu) zobrazených dát. Umožňuje taktiež zmeniť triediacu podmienku alebo spôsob usporiadania (triedenie).
- pre zobrazovač typu Report(ktorý obsahuje report typu Crystal report) - nastavenie hodnôt parametrov, pre ktoré bola zavolaná funkcia %HI_ReportPar.
%HI_RefreshData( INT in refId [, TEXT in whereStr [, TEXT in orderByStr [, in par1[, in par2[, ...]]]]] )
BOOL
%HI_RefreshDataSync( INT in refId [, TEXT in whereStr [, TEXT in orderByStr [, in par1[, in par2[, ...]]]]] )
refId | Odkaz na zobrazovač (referenčná premenná). |
whereStr | SQL podmienka WHERE pre obmedzenie výberu zobrazených dát (len pre zobrazovač typu Browser). |
orderByStr | SQL príkaz ORDER pre riadenie poradia výberu (triedenie) zobrazených dát (len pre zobrazovač typu Browser). |
par1, par2, ... | Zoznam konštánt alebo lokálnych premenných, ktoré sa použijú na mieste parametrov parametrizovanej SQL podmienky. |
Podmienku a triedenie je možné zadať aj pri konfigurácii zobrazovača v prostredí D2000 GrEditor. Pri volaní funkcie %HI_RefreshData sú tieto zmenené (ak sú uvedené) a zobrazenie sa aktualizuje.
Pre zobrazovač typu Report sú tieto parametre nepoužiteľné.
Podmienka zmenená volaním funkcie %HI_RefreshData môže byť parametrizovaná. Použitím parametrizácie je možné uľahčiť prácu SQL databáze, pretože príprava (kompilácia) parametrizovaného SQL výrazu sa vykoná iba pri zmene podmienky alebo triedenia (t.j. textovej podoby SQL výrazu). Vhodným nastavením parametrov databázy (napr. Oracle: session_cached_cursors) je možné zabezpečiť recyklovanie kurzorov (skompilovaných príkazov) medzi volaniami %HI_RefreshData.
Pravidlá pre parametre:
- parameter refId musí byť platný vždy,
pravidlá pre parametre whereStr a orderByStr:
Zadaný platný Nezadaný alebo zadaný, ale neplatný whereStr zmena podmienky Ostáva v platnosti naposledy zadaná podmienka (ak nebola nikdy zadaná, tak prázdny reťazec). orderByStr zmena triedenia Ostáva v platnosti naposledy zadané triedenie (ak nebolo nikdy zadané, tak prázdny reťazec). - ak sú parametre par1 až parN zadané, ich počet musí zodpovedať podmienke (počet #PAR#), pričom pri zmene podmienky nesmú byť vynechané,
- ak má niektorý parameter par1 až parN neplatnú hodnotu, reprezentuje to hodnotu NULL.
Funkcia %HI_RefreshData vykoná svoju činnosť tak, že nové podmienky zobrazenia doručí príslušnému zobrazovaču a končí bez ohľadu na výsledok alebo úspešnosť zobrazenia.
Funkcia %HI_RefreshDataSync na rozdiel od funkcie %HI_RefreshData počká na vykonanie výberu podľa nových parametrov a úspešnosť operácie oznámi prostredníctvom svojej hodnoty (@TRUE = úspešné vykonanie, @FALSE = chyba). Ak je browser zobrazujúci DB tabuľku nakonfigurovaný tak, že je inicializovaný automaticky (parameter "Otváracia podmienka" je zaškrtnutý), funkciu nie je možné použiť v inicializačnej (BEGIN..END) časti schémy - v takom prípade vráti @FALSE.
Pokiaľ bola zmenená veľkosť schémy so zobrazovačom typu Browser, ktorý ma nakonfigurovaný dynamický počet riadkov podľa výšky browsera (parameter Riadkov), dôjde až pri volaní funkcie %HI_RefreshData k znovu načítaniu stránky so zmeneným počtom riadkov.
%HI_RefreshData(_browser) ; aktualizácia (bez zmeny podmienky, triedenia či parametrov) %HI_RefreshData(_browser, "ID=21") ; zmena podmienky a aktualizácia %HI_RefreshData(_browser, "ID=21", "ID") ; zmena podmienky, triedenia a aktualizácia
INT _cnt ; lokálna premenná pre parametrizovanú podmienku TEXT _name ; lokálna premenná pre parametrizovanú podmienku TEXT _INVALID = 1/0 ; pomocná neplatná konštanta typu text _cnt := 1 _name := "%SELF%" ; 1. zmena podmienky (parametrizovanej), triedenia, parametrov a aktualizácia %HI_RefreshData(_browser, "CNT=#PAR# AND NAME LIKE #PAR#", "NAME", _cnt, _name) _cnt := 2 _name := "%ODBC%" ; 2. len zmena parametrov (recyklácia SQL výrazu) a aktualizácia %HI_RefreshData(_browser, "CNT=#PAR# AND NAME LIKE #PAR#", "NAME", _cnt, _name) %HI_RefreshData(_browser, _INVALID, _INVALID, _cnt, _name) ; rovnocenná alternatíva pre zápis o riadok vyššie (ak sa od bodu 1. podmienka nezmenila) ; 3. bez zmeny (recyklácia SQL výrazu) a aktualizácia %HI_RefreshData(_browser, "CNT=#PAR# AND NAME LIKE #PAR#", "NAME", _cnt, _name) %HI_RefreshData(_browser) ; rovnocenná alternatíva pre zápis o riadok vyššie (ak sa od bodu 2. podmienka, triedenie a parametre nezmenili)
Súvisiace stránky:
Pridať komentár