Parametry
hView | identifikace (handle) formulß°e |
intrec | internφ (po°adovΘ) Φφslo zßznamu ve formulß°i |
extent | rozsah akcφ |
Od verze
1, ·prava ve verzi 8
Popis
Procedura Reset_view
uvßdφ do souladu obsah formulß°e na obrazovce s obsahem databßze: p°itom data v databßzφ urΦujφ, co bude na obrazovce, nikoli naopak. Procedura se volß potΘ, co program nebo Φinnost u₧ivatele v jinΘm formulß°i zp∙sobily, ₧e obsah formulß°e ji₧ neodpovφdß obsahu databßze. O aktualizacφch formulß°∙ se m∙₧ete vφce dozv∞d∞t zde.
Procedu°e odpovφdß ekvivalentnφ metoda formulß°e Reset_view
(i kdy₧ p°i d∙slednΘ objektovΘ prßci s formulß°em a zßpisem zm∞n pomocφ slo₧ek formulß°e nenφ aktualizace pot°ebnß).
Aktualizuje se obsah tΘ Φßsti formulß°e hView, kterß obsahuje zßznam Φφslo intrec. Je-li parametr intrec roven -1, pak se aktualizuje cel² obsah okna. U formulß°∙, kterΘ majφ v okn∞ pouze jeden zßznam, se po₧φvß hodnota -1.
Parametr extent procedury Reset_view
specifikuje rozsah Φinnosti tΘto funkce. Jeho mo₧nΘ hodnoty jsou oznaΦeny konstantami pou₧iteln²mi i z klientskΘho jazyka:
RESET_VISIBILITY
(0) - zajistφ, ₧e slo₧ky formulß°e budou viditelnΘ a aktivnφ v souladu s podmφnkami viditelnosti a aktivity zadan²mi v nßvrhu formulß°e. Provßdφ se tehdy, doÜlo-li ke zm∞n∞ ve vyrovnßvacφ pam∞ti (cache) formulß°e editacφ jinΘho formulß°e do tΘ₧e cache (nap°. otev°enΘho standardnφ akcφ na stejn² zßznam) nebo ke zm∞n∞ prom∞nn²ch projektu pou₧it²ch ve formulß°i. P°i tΘto akci se neΦtou data z databßze (probφhß vÜe u klienta). Tuto variantu lze v₧dy nahradit stejn∞ rychlou variantou RESET_CONTROLS
.RESET_CONTROLS
(1) - zajistφ, ₧e obsah slo₧ek formulß°e bude odpovφdat obsahu vyrovnßvacφ pam∞ti formulß°e a navφc d∞lß to, co RESET_VISIBILITY
. Provßdφ se tehdy, doÜlo-li ke zm∞n∞ ve vyrovnßvacφ pam∞ti (cache) formulß°e editacφ jinΘho formulß°e do tΘ₧e cache (nap°. otev°enΘho standardnφ akcφ na stejn² zßznam) nebo ke zm∞n∞ prom∞nn²ch projektu pou₧it²ch ve formulß°i. P°i tomto p°ekreslenφ formulß°e se neobjevφ novΘ ani nezmizφ smazanΘ zßznamy. P°i tΘto akci se neΦtou data z databßze (probφhß vÜe u klienta). Odpovφdß standardnφ akci P°ekreslit formulß°.RESET_DELETIONS
(5) - pou₧φvß se pouze pro formulß°e vedoucφ do tabulky. Zajistφ, ₧e se ve formulß°i objevφ zßznamy, p°idanΘ do tabulky do nφ₧ formulß° vede. Pokud ve formulß°i nemajφ b²t zruÜenΘ zßznamy, pak z formulß°e odstranφ ty zßznamy, kterΘ byly v tabulce zruÜeny. Navφc d∞lß to, co RESET_CONTROLS
. Pro formulß°e vedoucφ do dotaz∙ se musφ pro zobrazenφ nov²ch zßznam∙ pou₧φt RESET_CURSOR
.RESET_CACHE
(256) - provede novΘ napln∞nφ vyrovnßvacφ pam∞ti klienta (tj. obsah formulß°e) daty z databßze (zßznamy v (editovatelnΘm) kurzoru dostanou aktußlnφ obsah, avÜak nov∞ vlo₧enΘ zßznamy se neobjevφ). Musφ se pou₧φt tehdy, kdy₧ ke zm∞nßm v datech zobrazen²ch ve formulß°i dojde jinak ne₧ pomocφ jinΘho formulß°e sdφlejφcφho tutΘ₧ cache.. Standardnφ akci NaΦφst data a p°ekreslit formulß° odpovφdß RESET_CACHE+RESET_CONTROLS
.RESET_CURSOR
(512) - pou₧φvß se pro formulß°e vedoucφ do kurzor∙ (i needitovateln²ch) (a od verze 8 i do tabulek). Zp∙sobφ zav°enφ a op∞tovnΘ otev°enφ kurzoru. Tφm se aktualizuje set°φd∞nφ zßznam∙ a jejich v²b∞r do kurzoru (v p°φpadech, kdy tent²₧ nebo jinφ klienti zapisujφ p°φmo do tabulek, z nich₧ kurzor vznikl). Navφc d∞lß to, co RESET_CACHE+RESET_DELETIONS
. Odpovφdß standardnφ akci P°ebudovat kurzor a p°ekreslit formulß°. Do verze 7 vΦetn∞ platilo: p°i pou₧itφ na prom∞nn² kurzor v programech b²vß Φasto jedinou mo₧nostφ prom∞nn² kurzor explicitn∞ zav°φt a otev°φt a potΘ op∞t vnutit formulß°i (Close_cursor
a Open_sql_cursor
a Set_fcursor
) - je tφm zaruΦeno, ₧e Φφslo kurzoru p°id∞lenΘ prom∞nnΘ typu cursor je stßle platnΘ (i kdy₧ odliÜnΘ od prvnφho otev°enφ kurzoru). V opaΦnΘm p°φpad∞ se nutnΘ peΦliv∞ sledovat sprßvu kurzor∙ (mo₧nß chyba èpatnΘ Φφslo kurzoru nebo hlßÜka p°i skonΦenφ Program neuzav°el vÜechny kurzory).
Od verze 8 platφ: p°i pou₧itφ na prom∞nn² kurzor se Φφslo kurzoru nezm∞nφ, a proto₧e lze parametr pou₧φt i pro formulß°e vedoucφ do tabulky, je mo₧nΘ parametr pou₧φt na jak²koliv formulß° bez nutnosti uva₧ovat o zp∙sobu jeho napln∞nφ.
RESET_SYNCHRO
(1024) - p°ekreslφ superformulß° vΦetn∞ novΘho napln∞nφ relaΦnφch subformulß°∙.RESET_COMBOS
(2048) - ve formulß°i se aktualizuje obsah comb pln∞n²ch dotazem (nezam∞≥ujte se stejnojmennou metodou slo₧ky formulß°e typu combo, kterß combo naplnφ hodnotami zcela jinΘho dotazu).Pokud byl obsah formulß°e u₧ivatelem zm∞n∞n a nebyl jeÜt∞ zapsßn do databßze, pak volßnφm Reset_view
s konstantou RESET_DELETIONS
, RESET_CACHE
nebo RESET_CURSOR
jsou zm∞ny ztraceny. Pokud chcete zm∞ny zapsat do databßze, musφte p°edem formulß° s obsahem databßze synchronizovat (nap°. standardnφ akcφ Ulo₧it zm∞ny nebo metodou Commit_view
).
P°φklad
procedure RestoreBook(code : string[8]); {*************************************} // akce 'Vrßcenφ knihy' var cis_exist : integer; begin zrusitAkci := true; pomsinp := 'K≤d knihy (pro vrßcenφ)'; Open_view('*Inputbox',no_redir,MODAL_VIEW,0,0,idinpb);
// modßlnφ formulß°
if not zrusitAkci and Exists(inpcode,cis_exist) then begin // kontrola existence knihy Knihy[cis_exist].kdo := noneshort; Knihy[cis_exist].vypujcena := false; Knihy[cis_exist].dat_vyp := nonedate; Knihy[cis_exist].dat_vra := nonedate; Reset_view(idsub,-1,RESET_CONTROLS+RESET_CACHE); end; end;
Viz