Systémové paměťové proměnné

 

 

Tato část poskytuje kompletní popis systémových paměťových proměnných FoxPro (dále jen systémových proměnných) setříděný abecedně.

Systémové proměnné jsou vestavěné proměnné, které řídí formu výstupu na tiskárnu nebo obrazovku. Jsou podobné SET příkazům v tom, že řídí parametry systému a nikoli datové položky. Funkcím se podobají tím, že lze zjistit jejich momentální hodnotu.

Nižší verze produktů Fox Software (do verze FoxBASE 2.10) i produktů firmy Ashton-Tate (do verze dBASE III+) tyto jazykové prvky neznají, objevují se pouze u dBASE IV. Příkazy RELEASE a CLEAR ALL či CLEAR MEMORY nemají na systémové proměnné účinek a proměnné nelze odstranit z paměti.

 

 

_ALIGNMENT

----------------------------

Zarovná text mezi okraji.

 

Syntax:

_ALIGNMENT = <výrazC>

 

Systémová proměnná _ALIGNMENT určuje uspořádání výstupu pro příkazy ?|?? s ohledem na nastavenou šířku okraje (proměnná _WRAP musí mít hodnotu .T.).

<výrazC> musí nabývat jednu z následujících hodnot:

LEFT zarovná výstup doleva (implicitní)

CENTERED centruje výstup

RIGHT zarovná výstup doprava

Jestliže je do <výrazC> dosazen literál, musí být uzavřen v uvozovkách.

 

Odkaz:

@ ... SAY/GET, _LMARGIN, _RMARGIN, _WRAP

 

 

_BOX

----------------------------

Řídí zobrazení rámečků.

 

Syntax:

_BOX = <výrazL>

 

Systémová proměnná _BOX řídí tisk rámečků, které jsou definovány příkazem DEFINE BOX. Základní nastavení je tisk rámečků, (proměnná _BOX je nastavena na hodnotu (.T.)). Na obrazovce mohou být rámečky zobrazeny příkazy @ ... BOX, @ ... TO, na které nemá proměnná _BOX vliv.

 

Odkaz:

@ ... BOX, @ ... TO, DEFINE BOX

 

 

 _CALCMEM

----------------------------

Uchovává obsah paměti kalkulátoru.

 

Syntax:

_CALCMEM = <výrazN>

 

Systémová proměnná _CALCMEM slouží k přenosu hodnot mezi programem a pamětí vestavěného kalkulátoru. Inicializace proměnné se provede jedním z přiřazovacích příkazů (STORE nebo =). Systémová proměnná uchovává hodnotu, která má být dosazena do paměti kalkulátoru. Výsledek výpočtu pomocí kalkulátoru potom může být vrácen z paměti kalkulátoru do programu pomocí této proměnné. Bližší podrobnosti k práci s kalkulátorem jsou uvedeny v příručce uživatele.

 

Odkaz:

STORE

 

 

 _CALCVALUE

----------------------------

Vrací nebo inicializuje displej kalkulátoru.

 

Syntax:

_CALCVALUE = <výrazN>

 

Systémová proměnná _CALCVALUE slouží k přenosu hodnot mezi programem a displejem vestavěného kalkulátoru. Inicializace proměnné se provede jedním z přiřazovacích příkazů (STORE nebo =).

Systémová proměnná může uchovat hodnotu, která má být zobrazena na displeji kalkulátoru. Výsledek výpočtu pomocí kalkulátoru potom může být vrácen z kalkulátoru do programu.

Poznámka: Hodnota displeje kalkulátoru je uchována v souboru uživatelských nastavení (resource file) a při opětném použití kalkulátoru se na displeji zobrazí hodnota, kterou obsahoval při ukončení práce s kalkulátorem. Hodnota je uchována i po ukončení práce s FoxPro. Bližší podrobnosti k práci s kalkulátorem jsou uvedeny v příručce uživatele.

 

Odkaz:

STORE

 

 

_CLIPTEXT

----------------------------

Vrací nebo inicializuje obsah paměti pro přenos bloků

 

Syntax:

_CLIPTEXT = <výrazC>

 

Paměť pro přenos bloků (clipboard) slouží k uložení přenášeného bloku textu v případě editování pomocí editovacích prostředků (textový editor, okna Browse a Debug, dialogová okna, okno pro sestavení výrazů atd.).

Text uložený v této paměti z ní může být kdykoliv přenesen na jiné místo (i v jiné editovací oblasti). Pomocí systémové proměnné _CLIPTEXT je možné buď získat obsah této paměti, nebo do ní umístit znakový výraz.

Systémová proměnná _CLIPTEXT může podobně jako jiné znakové proměnné obsahovat maximálně 65504 znaků. Systémová proměnná _CLIPTEXT je implicitně deklarována jako PUBLIC, může být ovšem předeklarována jako PRIVATE.

 

Odkaz:

STORE

 

 

_DIARYDATE

----------------------------

Vrací nebo inicializuje datum kalendáře.

 

Syntax:

_DIARYDATE = <výrazD>

 

Systémová proměnná _DIARYDATE obsahuje datum vybrané v systémovém kalendáři (Calendar/Diary). Systémový kalendář je grafická informace o dnech v měsíci, v němž může uživatel pomocí řídících kláves zadávat datum. Pomocí této proměnné je možné zobrazit vestavěný kalendář se zadaným datumem nebo získat do programu datum vybrané v systémovém kalendáři. Implicitně je vestavěný kalendář otevřen s aktuálním datumem a proměnná _DIARYDATE obsahuje systémové datum. Po změně datumu pomocí kalendáře obsahuje proměnná _DIARYDATE změněné datum.

 

Odkaz:

STORE

 

 

_INDENT

----------------------------

Odsazení prvního řádku odstavce.

 

Syntax:

_INDENT = <výrazN>

 

Systémová proměnná _INDENT určuje odsazení prvního řádku každého nového odstavce tištěného příkazem ? . Nejmenší hodnota <výrazN> musí být větší než záporná hodnota _LMARGIN, největší hodnota <výrazN> musí být menší nebo rovna než šířka řádku ((_RMARGIN - _LMARGIN) - 1). Kladná hodnota odsazuje od kraje _LMARGIN doprava, záporná hodnota odsazuje od kraje _LMARGIN doleva. Systémová proměnná _INDENT má účinek za předpokladu, že proměnná _WRAP je nastavena na hodnotu .T..

 

Odkaz:

_LMARGIN, _PLOFFSET, _RMARGIN, SET MARGIN, _WRAP

 

 

_LMARGIN

----------------------------

Nastaví levý okraj.

 

Syntax:

_LMARGIN = <výrazN>

 

Systémová proměnná _LMARGIN definuje odsazení levého okraje pro výstup prováděný příkazem ?. Tato hodnota se připočítá k hodnotě _PLOFFSET nebo k nastavení SET MARGIN. <výrazN> musí být v rozsahu 0 až 254, nastavení _LMARGIN musí být menší než nastavení _RMARGIN. Systémová proměnná _WRAP musí být nastavena na hodnotu .T..

 

Odkaz:

? | ??, _INDENT, _PLOFFSET, _RMARGIN, SET MARGIN, _WRAP

 

 

_PADVANCE

----------------------------

Nastaví způsob posunu na novou stránku.

 

Syntax:

_PADVANCE = <výrazC>

 

Systémová proměnná _PADVANCE se používá k nastavení posunu na novou stránku. <výrazC> nabývá jedné z následujících dvou hodnot:

FORMFEED - Při posunu papíru na novou stránku je použit kód formfeed (FF, CHR(12)). Tato volba je implicitní a využívá interního řízení tiskárny.

LINEFEED - Při posunu papíru na novou stránku je papír posunován po řádcích při použití kódu linefeed (LF, CHR(13)).

Výpočet počtu řádků nutných k posunutí na novou stránku se provádí dvěma algoritmy:

_PLENGTH - _PLINENO

- jestliže je použit příkaz EJECT PAGE bez příkazu ON PAGE,

- jestliže je použit příkaz EJECT PAGE s příkazem ON PAGE a aktuální číslo řádku je větší než hodnota nastavená v příkazu ON PAGE,

- jestliže příkazy PRINTJOB nebo ENDPRINTJOB spolu s nastavením _PEJECT způsobí přechod na novou stránku.

_PLENGTH - MOD(PROW(),_PLENGTH)

- jestliže je použit příkaz EJECT ,

- jestliže při nastaveni SET DEVICE TO PRINTER způsobí posloupnost příkazů @ ... SAY posun na novou stránku. Bez ohledu na nastavení proměnné _PADVANCE lze kdykoliv vyvolat posun papíru vysláním znaku formfeed (CHR(12)) na tiskárnu.

Jestliže je do <výrazC> dosazen literál, musí být uzavřen v uvozovkách.

 

Odkaz:

EJECT, _PEJECT, _PLENGTH, _PLINENO, PROW()

 

 

_PAGENO

----------------------------

Obsahuje číslo stránky.

 

Syntax:

_PAGENO = <výrazN>

 

Systémová proměnná _PAGENO obsahuje hodnotu, která určuje číslo aktuální stránky v rozsahu <1,32767>, implicitně 1. Umožňuje tisknout na sestavách číslo stránky, aniž by se musel programátor starat o inkrementování proměnných.

Poznámka: Systémová proměnná _PAGENO pracuje ve spojení s proměnnými _PBPAGE a _PEPAGE. Její nulování může potlačit tisk řízený těmito dvěma proměnnými.

 

Odkaz:

ON PAGE, _PBPAGE, _PEPAGE, _PLENGTH, _PLINENO

 

 

_PBPAGE

----------------------------

Určuje číslo stránky pro začátek tisku.

 

Syntax:

_PBPAGE = <výrazN>

 

Systémová proměnná _PBPAGE obsahuje hodnotu, která určuje číslo první stránky, která bude tisknuta. Systémová proměnná _PBPAGE může nabývat hodnot z intervalu <1,32767>, implicitně je rovna 1). Umožňuje tisknout sestavy až od určité stránky např. při havárii tisku (zmuchlání papíru, výpadek proudu atd.). Pro hodnotu _PAGENO menší než _PBPAGE jsou stránky počítány pouze interně a tisk je zahájen až v momentě, kdy hodnota _PAGENO dosáhne nebo přesáhne hodnotu _PBPAGE. Pokud je nutné tisknout pouze jednu stránku velké sestavy, hodnoty proměnných _PBPAGE a _PEPAGE se rovnají a určují číslo tištěné stránky.

Poznámka: Hodnota _PBPAGE nesmí být větší než _PEPAGE.

 

Odkaz:

_PAGENO, _PEPAGE, PRINTJOB

 

 

_PCOLNO

----------------------------

Obsahuje pozici sloupce.

 

Syntax:

_PCOLNO = <výrazN>

 

Systémová proměnná _PCOLNO určuje aktuální pozici sloupce, na kterou bude směrován výstup. Může nabývat hodnoty z intervalu <0,255>. Použití proměnné _PCOLNO je stejné jako použití fráze AT příkazu ? | ??.

Poznámka: Na rozdíl od funkce PCOL(), která vrací aktuální pozici tiskové hlavy na řádku a nemění se, je-li nastaveno SET PRINTER OFF, mění se proměnná _PCOLNO bez ohledu na nastavení SET PRINTER.

 

Odkaz:

?, PCOL(), _PLINENO(), SET PRINTER

 

 

_PCOPIES

----------------------------

Určuje počet kopií pro tisk.

 

Syntax:

_PCOPIES = <výrazN>

 

Systémová proměnná _PCOPIES obsahuje hodnotu, která určuje počet kopií aktuální stránky. Může nabývat hodnot z intervalu <1,32767>, implicitně je rovna 1.

Systémová proměnná _PCOPIES funguje pouze se strukturovanými příkazy PRINTJOB ... ENDPRINTJOB, a proto může být použita pouze v programech. Přiřazení hodnoty do proměnné musí být provedeno před příkazem PRINTJOB.

 

Odkaz:

PRINTJOB ... ENDPRINTJOB

 

 

_PDRIVER

----------------------------

Určuje driver tiskárny.

 

Syntax:

_PDRIVER = <výrazC>

 

Systémová proměnná _PDRIVER určuje, který driver tiskárny bude použit pro tisk. Implicitně je to driver určený při instalaci FoxPro. <výrazC> musí obsahovat jméno jednoho z driverů podporovaných FoxPro. Pokud není tento driver umístěn v aktuálním adresáři, musí být popsána i přístupová cesta. Jestliže je do <výrazC> dosazen literál, musí být uzavřen v uvozovkách.

 

Odkaz:

? | ??, _PECODE, _PFORM, _PPITCH, _PQUALITY, _PSCODE, SET ALTERNATE, SET PRINTER

 

 

_PECODE

----------------------------

Určuje hodnotu koncového znaku.

 

Syntax:

_PECODE = <výrazC>

 

Systémová proměnná _PECODE se používá pro zadání řídících kódů pro tiskárnu po skončení tisku. <výrazC> může obsahovat sekvenci libovolných ASCII znaků do maximální délky 255 znaků. Implicitně obsahuje proměnná _PECODE nulový řetězec. Konkrétní hodnoty a významy jednotlivých sekvencí jsou popsány v manuálu k Vaší tiskárně.

 

Odkaz:

? | ??, _PSCODE, PRINTJOB ... ENDPRINTJOB

 

 

_PEJECT

----------------------------

Určuje pořadí posunu na novou stránku.

 

Syntax:

_PEJECT = <výrazC>

 

Systémová proměnná _PEJECT určuje, kdy tiskárna odstránkuje. <výrazC> nabývá jedné z následujících hodnot:

BEFORE odstránkuje před zahájením tisku,

AFTER odstránkuje po ukončení tisku,

BOTH odstránkuje před zahájením i po ukončení tisku,

"NONE" neodstránkuje ani před zahájením, ani po ukončení tisku.

Systémová proměnná _PEJECT funguje pouze se strukturovanými příkazy PRINTJOB ... ENDPRINTJOB, a proto může být použita pouze v programech. Jestliže je do <výrazC> dosazen literál, musí být uzavřen v uvozovkách.

 

Odkaz:

EJECT, EJECT PAGE, _PADVANCE, _PECODE, PRINTJOB... ENDPRINTJOB, _PSCODE

 

 

_PEPAGE

----------------------------

Určuje číslo stránky pro konec tisku.

 

Syntax:

_PEPAGE = <výrazN>

 

Systémová proměnná _PEPAGE obsahuje hodnotu, která určuje číslo poslední stránky, která bude tisknuta. Míže nabývat hodnotu z intervalu <1,32767>, implicitně je rovna 32767. Umožňuje tisknout sestavy jen do určité stránky např. při havárii tisku nebo při omezení rozsahu sestav.

Stránky jsou tištěny pouze pro hodnotu _PAGENO menší nebo rovnou _PBPAGE a po dosažení této hranice je tisk ukončen. Pokud je nutné tisknout pouze jednu stránku velké sestavy, hodnoty proměnných _PBPAGE a _PEPAGE se rovnají a určují číslo tištěné stránky.

Poznámka: Hodnota _PEPAGE nesmí být menší než _PBPAGE.

 

Odkaz:

_PAGENO, _PBPAGE, PRINTJOB

 

 

_PFORM

----------------------------

Určuje formátovací soubor pro tisk.

 

Syntax:

_PFORM = <výrazC>

 

Systémová proměnná _PFORM aktivuje formátovací tiskový soubor, který obsahuje konkrétní nastavení tisku. Formátovací soubor (s příponou ".PRF") může obsahovat nastavení následujících systémových proměnných:

_PADVANCE, _PAGENO, _PBPAGE, _PCOPIES, _PDRIVER, _PECODE,

_PEJECT, _PEPAGE, _PLENGTH, _PLOFFSET, _PPITCH, _PQUALITY,

_PSCODE, _PSPACING, _PWAIT,

kromě toho může obsahovat i jméno cílového souboru pro tisk.

Při vytváření programu sestavy (soubor ".FRX" nebo ".LBX") pomocí příkazů CREATE REPORT a CREATE LABEL jsou výše uvedená nastavení zapsána do formátovacího souboru s příponou ".PRF" (pokud byl vytvořen) a při modifikacích programových modulů s příponami ".FRX" nebo ".LBX" příkazy MODIFY REPORT nebo MODIFY LABEL je soubor aktualizován.            K aktivaci tohoto souboru při provedení příkazu REPORT FORM nebo LABEL FORM však dojde pouze při obsazení proměnné _PFORM jménem souboru ".PRF". Jestliže je do <výrazC> dosazen literál, musí být uzavřen v uvozovkách.

 

Odkaz:

CREATE/MODIFY LABEL, CREATE/MODIFY REPORT, LABEL, REPORT

 

 

 _PLENGTH

----------------------------

Určuje délku stránky.

 

Syntax:

_PLENGTH = <výrazN>

 

Systémová proměnná _PLENGTH obsahuje hodnotu, která určuje počet řádků na stránce. Tato hodnota může být z intervalu <1,32767>, implicitně je nastavena na 66. Spolu s proměnnou _PLINENO určuje, kdy dojde k posunu na novou stránku.

 

Odkaz:

EJECT, EJECT PAGE, ON PAGE, _PADVANCE, _PLINENO

 

 

_PLINENO

----------------------------

Určuje aktuální číslo řádku.

 

Syntax:

_PLINENO = <výrazN>

 

Systémová proměnná _PLINENO obsahuje hodnotu, která určuje aktuální číslo řádku, na který bude směrován výstup. Může nabývat hodnoty z intervalu <0,(_PLENGTH - 1)>.

Poznámka: Na rozdíl od funkce PROW(), která vrací aktuální pozici tiskové řádky na stránce a nemění se, je-li nastaveno

SET PRINTER OFF, mění se proměnná _PLINENO bez ohledu na nastavení SET PRINTER.

 

Odkaz:

_PCOLNO, PCOL(), _PLENGTH, PROW()

 

 

_PLOFFSET

----------------------------

Určuje levý okraj stránky.

 

Syntax:

_PLOFFSET <výrazN>

 

Systémová proměnná _PLOFFSET nastavuje levý okraj stránky (vzálenost od levého okraje papíru k levému okraji textu). Účinkuje pouze pro tiskový výstup, výstup na obrazovku není touto proměnnou ovlivněn. Odsazení pomocí proměnné _LMARGIN je provedeno relativně k proměnné _PLOFFSET. Hodnota musí být z intervalu <0,254>. Nastavení _PLOFFSET je shodné s příkazem SET MARGIN a nastavení jedním způsobem automaticky mění nastavení druhým způsobem.

 

Odkaz:

_LMARGIN, SET MARGIN

 

 

_PPITCH

----------------------------

Určuje typ písma.

 

Syntax:

_PPITCH = <výrazC>

 

Systémová proměnná _PPITCH obsahuje znakový výraz, který nastavuje typ písma pro tisk. <výrazC> musí obsahovat jednu z následujících hodnot:

PICA tisk 10 znaků na palec,

ELITE tisk 12 znaků na palec,

CONDENSED tisk asi 17 znaků na palec,

DEFAULT tisk dle aktuálního nastavení (implicitně).

Změna proměnné _PPITCH způsobí vyslání příslušné escape sekvence na tiskárnu. Příslušný typ písma musí být podporován vaší tiskárnou. Jestliže je do <výrazC> dosazen literál, musí být uzavřen v uvozovkách.

 

Odkaz:

? | ??, _PDRIVER, _PQUALITY

 

 

_PQUALITY

----------------------------

Určuje kvalitu písma.

 

Syntax:

_PQUALITY = <výrazL>

 

Systémová proměnná _PQUALITY obsahuje logickou hodnotu, která určuje kvalitu písma na výstupu. Obsahuje-li proměnná hodnotu .F., je výstup tištěn v draft módu, obsahuje-li hodnotu .T., tiskne se výstup v letter-quality módu (pokud jej driver a tiskárna podporuje). Nastavení .T. (letter-quality) podstatně zpomaluje tisk, který má ovšem lepší kvalitu.

 

Odkaz:

_PDRIVER, _PPITCH

 

 

_PSCODE

----------------------------

Určuje hodnotu úvodního znaku.

 

Syntax:

_PSCODE = <výrazC>

 

Systémová proměnná _PSCODE se používá pro zadání řídících kódů pro tiskárnu na začátku tisku (např. typ písma a jeho kvalita). <výrazC> může obsahovat sekvenci libovolných ASCII znaků do maximální délky 255 znaků. Implicitně obsahuje proměnná _PSCODE nulový řetězec. Konkrétní hodnoty a významy jednotlivých sekvencí jsou

popsány v manuálu k Vaší tiskárně.

 

Odkaz:

? | ??, _PECODE, PRINTJOB ... ENDPRINTJOB

 

 

_PSPACING

----------------------------

Určuje hustotu řádků na stránce.

 

Syntax:

_PSPACING = <výrazN>

 

Systémová proměnná _PSPACING řídí nastavení uvnitř kolmé vzdálenosti textových řádků mezi sebou. <výrazN> udává, bude-li se tisknout na každý řádek, ob jeden nebo ob dva řádky a může být v intervalu <1,3>. Implicitně je nastavena hodnota 1. Hodnota větší než 3 způsobí chybu.

Systémová proměnná _PSPACING může být nastavena také z příkazového okna a má vliv např. na vypisovací příkazy LIST a DISPLAY. Nastavení ovlivňuje i výšku rámečků definovaných příkazem DEFINE BOX (např. DEFINE BOX ... HEIGHT 3 a nastavení _PSPACING = 2 generuje výšku rámečku na 6 řádků).

 

Odkaz:

? |??, _PSCODE

 

 

_PWAIT

----------------------------

Řídí pauzu mezi stránkami při tisku.

 

Syntax:

_PWAIT = <výrazL>

 

Systémová proměnná _PWAIT udává, zda se má čekat mezi tiskem stránek (nastavena hodnota .T.), nebo zda má být tisk kontinuální (nastavena hodnota .F.). Využití této proměnné je především při tisku na volné listy. Při přechodu na novou stránku je tisk pozastaven a uživatel může vyměnit ručně list papíru.

 

Odkaz:

EJECT, EJECT PAGE, _PLENGTH, _PLINENO

 

 

_RMARGIN

----------------------------

Nastaví pravý okraj.

 

Syntax:

_RMARGIN = <výrazN>

 

Systémová proměnná _RMARGIN definuje pozici pravého okrajepro výstup prováděný příkazem ?. <výrazN> musí být větší než hodnota nastavení _LMARGIN + 1 nebo _LMARGIN + _INDENT + 1 a menší nebo roven 255. Implicitní hodnota je 80. Systémová proměnná _WRAP musí být nastavena na true (.T.).

 

Odkaz:

? | ??, _INDENT, _LMARGIN, _PLOFFSET, SET MARGIN, _WRAP

 

 

 

_TABS

----------------------------

Nastavuje tabelátory.

 

Syntax:

_TABS = <výrazC>

 

Systémová proměnná _TABS nastavuje jednu nebo více tabelačních značek pro tiskový výstup. <výrazC> obsahuje vzestupně setříděný seznam tabelátorových pozic, které jsou odděleny čárkou. Implicitně obsahuje proměnná _TABS nulový řetězec, což generuje intervaly z MS DOS, tj. po 8 znacích (8,16,24,32,...). Je-li nastavena proměnná _WRAP na hodnotu .T., jsou všechny tabelátorové značky větší než nastavení _RMARGIN ignorovány. Nastavení TABS v souboru CONFIG.FP ovlivňuje nastavení proměnné _TABS.

 

Odkaz:

_INDENT, _WRAP

 

 

_WRAP

----------------------------

Nastavuje rozdělení slov na konci řádku.

 

Syntax:

_WRAP = <výrazL>

 

Systémová proměnná _WRAP zapíná formátování textu na "word wrapping", tj. výstup z příkazu ? , který přesahuje pravý okraj (nastavení _RMARGIN), je přesunut na nový řádek k levému okraji. Pro správnou funkci systémových proměnných _ALIGNMENT, _INDENT, _LMARGIN, _RMARGIN musí být nastavena proměnná _WRAP na hodnotu .T.

Implicitně je nastavena hodnota .F.

 

Odkaz:

_ALIGNMENT, _INDENT, _LMARGIN, _PLOFFSET, _RMARGIN