Parametry
curs | otev°en² pevn² nebo prom∞nn² kurzor - viz podrobnosti |
crec | absolutnφ Φφslo zßznamu v kurzoru curs |
tbord | po°adovΘ Φφslo tabulky v kurzoru curs (poΦφtßno od 0) |
trec | vracφ absolutnφ Φφslo zßznamu v tabulce, z n∞ho₧ vznikl zßznam crec |
[cdp | kontextovß prom∞nnß klienta] |
Popis
Funkce konvertuje Φφslo crec zßznamu z otev°enΘho editovatelnΘho kurzoru curs na absolutnφ Φφslo tΘho₧ zßznamu v tabulce, z nφ₧ jsou zßznamy do kurzoru vybrßny; tbord je po°adovΘ Φφslo tabulky v kurzoru (v klauzuli FROM). Tabulky se Φφslujφ od nuly.
Je-li curs Φφslo tabulky (m∙₧e se stßt, je-li pro zφskßnφ Φφsla curs pou₧ita funkce Get_fcursor
, kterß vracφ Φφslo tabulky nebo kurzoru), funkce Translate
oznßmφ chybu èpatnΘ Φφslo kurzoru.
Funkci Translate
mß smysl a lze pou₧φvat pouze na editovatelnΘ kurzory.
Hodnota funkce
Funkce vracφ hodnotu FALSE, pokud se akci poda°ilo ·sp∞Ün∞ provΘst. V opaΦnΘm p°φpad∞ vracφ TRUE a povahu chyby lze zjistit volßnφm funkce Signalize
.
P°φklad 1:
procedure Detail(idf : window_id; rec : integer); {*******************************************}
{tlaΦφtko ve formulß°i PrehledSch - programovΘ otev°enφ dalÜφho formulß°e na stejn² zßznam - volßno s parametry Detail(!!,@); 1. zjiÜt∞nφ Φφsla zdroje dat v prvnφm formulß°i 2. p°epoΦet Φφsla aktußlnφho zßznamu na na Φφslo zßznamu ve zdrojovΘ tabulce 3. otev°φt druh² formulß° (kter² vede do tabulky) na tomto zßznamu }
var cx : cursor; begin if Get_fcursor(idf,cx,nil) then
//form. idf vede do kurzoru, lze p°epoΦφtat
if not Translate(cx,rec,1,cislof) then begin
// p°epoΦet
if id=0 then Open_view('*Pfirma',no_redir,0,-cislof,0,id)
//otev°φt form. vedoucφ do tabulky na tomto zßznamu
else begin Set_ext_pos(id, cislof, -1);
//je-li ji₧ formulß° ji₧ otev°en, pouze nastavit pozici
Pick_window(id); end; end; end;
P°φklad 2:
{zjist∞te Φφslo zßznamu v tabulce, kter² vyhovuje podmφnce "atr=55"
} var cislo : trecnum; c1 : cursor; begin if Open_sql_cursor(c1, 'select atr1 from tab1 where atr=55') then Signalize else if Translate(c1, 0, 0, cislo) then Signalize
else Info_box('╚φslo v tab1', int2str(cislo));
end.
Viz