( Name : String[; SafeVal : Byte = false]) : xxx
Zjišťuje, zda existuje dynamická globální proměnná jejíž jméno přichází v parametru Name. Jestliže proměnná nebude nalezena, vrací false jinak true.
Jestliže bude nepovinný parametr SafeVal = true, bude v případě existence proměnné vytvořena její bezpečná kopie s prefixem
'#$_'.
Po přečtení proměnné s tímto prefixem funkcí _GetGVal bude proměnná smazána. Důvodem této funkcionality je používání zavislostí existence globálních proměnných na změnách databázovách vět v síti nebo v lokálním programu. Závislosti se nastavují procedurou SetGValDepend.
Při standardním čtení globální proměnné se používá sekvence funkcí:
if(_ExistGVal("test"))then PrintUp(_GetGVal("test")) endif
Jestliže je ovšem na globální proměnnou 'test' uplatněna nějaká závislost, může ihned po kladném zjištění existence funkcí _ExistGVal proměnná 'test' přestat existovat (systém jí vnitřně smaže na základě pokynu jiné stanice v síti) a funkce _GetGVal vyhodí chybu. Robustnější (ale pomalejší) zápis tedy je:
if(_ExistGVal("test", true))then PrintUp(_GetGVal("#$_test")) endif
Dočasná globální proměnná '#$_test' bude při čtení funkcí _GetGVal existovat určitě. Po přečtení sama zanikne.
Nesprávné použití demonstruje příklad:
SetGValdepend("test", 55, dbtStr, 100); { zavede proměnnou 'test', jejiž existence závisí na změně věty střediska s id=100 } if _ExistGVal("test") then SendDBChangeInfo(dbtStr, 100); { simuluje úpravu věty střediska s id=100 v síti nebo v lokálním programu } wait { je nutné zdržení, aby zpráva došla do systému zrušení globální proměnné } printup(_GetGVal("test")); { zde bude vyhozena chyba } endif
Podívejte se na: Globální proměnné
Příklad:
if(_ExistGVal("test"))then PrintUp(_GetGVal("test")) endif SetGVal("Test", "Testovací řetězec");