Reset_view

Internφ programovacφ jazykC/C++Pascal

procedure Reset_view(hView : window_id; intrec : trecnum; extent : short);
void Reset_view(window_id hView, trecnum intrec, int extent);
procedure Reset_view(hView : window_id; intrec : trecnum; extent : integer);

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:

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φ.

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