V systéme D2000 je implementované formátovanie zobrazených hodnôt formou formátovacej masky. Syntax (spôsob zápisu) formátovacej masky sa líši podľa jej použitia. Pre Transformačnú paletu je použiteľná základná syntax. Pre zobrazenie objektu v grafických schémach je použiteľná rozšírená syntax, ktorá dopĺňa základnú syntax.

Základná syntax


Maska určuje formát zobrazenej číselnej hodnoty. Na vytvorenie vlastných formátov číselných hodnôt môžete použiť tieto znaky: #, 0, $, E+, E-, e+, e-.

Znak Význam znaku
# Povoľuje výskyt číslice (výskyt číslice nie je nutný). Ak je číslo záporné, znamienko sa vypíše na mieste prvého výskytu tohto znaku.
0 Výskyt číslice nutný. Ak sa číslica na danom mieste nevyskytuje, doplní sa znak „0“.
$ Zaokrúhľovanie.
E+, E- Exponenciálny tvar. Exponent je vyčíslený tak, aby mantisa bola menšia ako 10.
e+, e- Exponenciálny tvar (inžinierska notácia). Exponent je vyčíslený tak, aby bol deliteľný číslom 3.
. Desatinná bodka.

Na formátovanie exponentu je možné použiť znaky 0 a #. Systém automaticky vykoná konverziu formátovacej masky podľa nasledujúcich pravidiel:

  • po prvom znaku $ zľava sa znaky 0 a # nahradia znakom $,
  • medzi znakom 0 a desatinnou bodkou sa znaky # nahradia znakom 0.
Zadaná maska Maska po konverzii
##$$00##$$##00 ##$$$$$$$$$$$$
##00$$##$$##00 ##00$$$$$$$$$$
##00##00$$# ##000000$$$
##0#0.##0### ##000.000###

Po vykonaní vyššie spomenutej konverzie platí:

  • pred znakom #, umiestneným pred desatinnou bodkou, sa nevyskytujú znaky 0
  • pred znakom # sa nevyskytujú znaky $
  • medzi znakom 0 a desatinnou bodkou sa nevyskytuje znak #
  • pred znakom 0 sa nevyskytuje znak $.

K pretečeniu dochádza vtedy, ak sa zobrazované číslo (alebo znamienko) nezmestí do definovanej masky. Pri pretečení sa zobrazuje reťazec znakov „<“.

V nasledujúcej tabuľke sú uvedené príklady formátovacích masiek.

Hodnota objektu Maska Zobrazená hodnota
129 {###} 129
129 {000} 129
129 {0000} 0129
129 {000.00} 129.00
129 {000$} 0130
129 {# # # #} 1 2 9
1234 {# ### K} 1 234 K
1234 {#-###} 1-234
1234 {###} <<<
123.6 {###} 124
123.6 {###.#} 123.6
123.6 {###.$} 124.0
-10 {###} -10
-10 {# ##} - 10
-10 {##} <<
-10 {# 000} - 010
-10 {000} <<<
-10 {##E+0} -1E+1
-10 {##E+00} -1E+01
-10 {##e+0} <<<<<
-10 {###e+0} -10E+0

Na zobrazovanie objektov, ktorých hodnota je typu čas a na zobrazovanie času vzniku hodnoty objektu sa používajú nasledujúce formátovacie značky.

Značka Význam značky
rrrr alebo yyyy Číslo roku (štvorciferné).
rr alebo yy Posledné dvojčíslo z čísla roku.
dd Číselné vyjadrenie dňa (dvojciferné).
mm Číselné vyjadrenie mesiaca.
hh Hodina.
hhh počet hodín - len pre relatívny čas neobsahujúci masku pre dni.
hhhh počet hodín - len pre relatívny čas neobsahujúci masku pre dni.
hhhhh počet hodín - len pre relatívny čas neobsahujúci masku pre dni.
hb, HH Obchodná hodina - poradová hodina v dni od 1 do 25.
mi Minúta.
ss Sekunda.
mss Tisíciny sekundy (milisekundy).
tttt Názov dňa v týždni *.
ttt Trojpísmenková skratka názvu dňa v týždni *.
tt Dvojpísmenková skratka názvu dňa v týždni *.

Ak je napríklad objekt SysTime (Systémová premenná) pripojený (na zobrazovanie) na textový reťazec:

{hh:mi:ss dd-mm-rrrr},

bude textový reťazec zobrazovať časový údaj vo formáte:

15:18:36 27-10-1998

Ak sa pri vstupe času používa maska so skráteným formátom roku rr (yy pre angl. verziu) bude upravená na rrrr (yyyy pre angl. verziu). Napríklad, ak sa pre zobrazovanie používa maska hh:mi:ss dd-mm-rr, pri zmene hodnoty je upravená na hh:mi:ss dd-mm-rrrr z dôvodu jednoznačnosti zadania roku 19/20.

Pri vstupe dátumu:

  1. Ak maska obsahuje aj značky hh aj hb, bude sa pracovať iba so značkou hh.
  2. Vo vstupe textu má značka hh základné podfarbenie biele a značka hb svetlo žlté.

Poznámka k názvom dní v týždni:
Výpis názvov dní v týždni funguje pri použití transformačnej palety (merané body, užívateľské premenné, položky štruktúrovaných premenných, lokálne premenné) v schémach, v Browseri a vo funkciách %TimeToStr a %TimeToStrEx.
Výpis názvov dní v týždni podporuje viacjazykové verzie a to tak, že namiesto názvu dňa v konkrétnom jazyku sa vygeneruje text podľa tabuľky:

Deň\maska tt ttt tttt
Pondelok {!Mo} {!Mon} {!Monday}
Utorok {!Tu} {!Tue} {!Tuesday}
Streda {!We} {!Wed} {!Wednesday}
Štvrtok {!Th} {!Thu} {!Thursday}
Piatok {!Fr} {!Fri} {!Friday}
Sobota {!Sa} {!Sat} {!Saturday}
Nedeľa {!Su} {!Sun} {!Sunday}

V Slovníku je potrebné zadefinovať príslušnú sadu kľúčov (napr. Mo, Tu, We, Th, Fr, Sa, Su ak sa používa maska tt) a jednotlivým užívateľom nastaviť jazyk.
Pri použití vo funkciách %TimeToStr a %TimeToStrEx je nutné na výsledok ešte aplikovať funkciu %HI_LNG_Translate.

Rozšírená syntax


V grafických schémach je možné zobrazovať jednotlivé časti komplexnej hodnoty objektu systému D2000 (atribúty). Na zobrazenie hodnôt atribútov pripojených objektov sa používajú špeciálne textové reťazce (grafický objekt Text) uzavreté do zložených zátvoriek "{ }" - formátovacie masky. Maska určuje formát zobrazenej hodnoty.

Maska Zobrazený atribút komplexnej hodnoty pripojeného objektu
{A} Procesný alarm.
{D} Popis objektu.
Poznámka: V schémach pri zobrazovaní popisu objektu pre položky štruktúr, ktoré obsahujú indirect objekty sa zobrazí popis indirect objektu namiesto popisu štruktúry. Ak nie je použitý indirect objekt, zobrazí sa popis stĺpca.
{F} Všetky príznaky (flagy) hodnoty objektu. V závislosti na aktuálnej hodnote príznaku A až P sa zobrazí:
  • veľké písmeno označujúce daný príznak (napr. A) - ak hodnota príznaku je TRUE,
  • znak "_" (podtrhnutie) - ak hodnota príznaku je FALSE.
{Fpríznaky} Definované príznaky (flagy) hodnoty objektu. Na rozdiel od masky {F} sa v tomto prípade zobrazia len hodnoty príznakov vymenovaných za písmenom F - príznaky (napr. {FACE}). V závislosti na aktuálnej hodnote vymenovaného príznaku sa zobrazí:
  • veľké písmeno označujúce daný príznak (napr. A) - ak hodnota príznaku je TRUE,
  • malé písmeno označujúce daný príznak (napr. b) - ak hodnota príznaku je FALSE.
{L} Meno užívateľa. Táto maska je iba pre objekty typu Zobrazovacia maska.
{N} Meno objektu.
Poznámka: V schémach pri zobrazovaní mena objektu pre položky štruktúr, ktoré obsahujú indirect objekty sa zobrazí meno indirect objektu namiesto mena štruktúry. Ak nie je použitý indirect objekt, zobrazí sa meno štruktúry, číslo riadku a meno stĺpca.
{T} Čas vzniku hodnoty objektu.
{Tmaska} Čas vzniku hodnoty objektu spolu s maskou pre časový údaj.
{tmaska} Číselná hodnota objektu zobrazená ako časový údaj podľa zadanej masky pre časový údaj.
{U} Technické jednotky objektu.
Poznámka: V schémach pri zobrazovaní techn. jednotiek objektu pre položky štruktúr, ktoré obsahujú indirect objekty sa zobrazia tech. jednotky indirect objektu namiesto tech. jednotiek štruktúry.
{V} Hodnota objektu - rovnaký formát ako hodnota zobrazená v ovládacom okne objektu.
{PV}, {PU}, {PT}, {PTmaska}, {Ptmaska}, {PF}, {PFpríznaky} Písmeno P uvedené vo formátovacej maske zobrazí predchádzajúcu hodnotu daného atribútu.
UPOZORNENIE: Písmeno O vo formátovacích maskách môže byť použité len pri definícii objektu typu Zobrazovacia maska.

Zložené formátovacie masky


V predchádzajúcom texte tejto kapitoly boli spomínané jednoduché formátovacie masky, prostredníctvom ktorých je možné zobraziť hodnotu jedného konkrétneho atribútu komplexnej hodnoty objektu (napr. hodnotu objektu, čas vzniku hodnoty a pod.). Okrem jednoduchých formátovacích masiek sa môžu používať aj tzv. zložené formátovacie masky. Tieto masky, na rozdiel od jednoduchých, zobrazujú hodnoty viacerých atribútov komplexnej hodnoty objektu.

Zložené formátovacie masky sa definujú v rámci jedného textového reťazca vloženého do schémy ako grafický objekt Text.

Príklady zložených formátovacích masiek uvádza nasledujúca tabuľka.

Maska Zobrazené atribúty komplexnej hodnoty pripojeného objektu>
{N} {V} Meno a hodnota objektu.
{V} {U} Hodnota a technické jednotky objektu.
{N} {T} {F} Meno, čas vzniku a príznaky hodnoty objektu.

Poznámka 

  • V prípade, že sa v rámci jednej zloženej formátovacej masky vyskytuje maska pre daný atribút (napr. {V}, {T} a pod.) a zároveň maska definujúca vlastný formát hodnoty (napr. {##.#}, {# ### K} a pod.), uplatní sa maska s formátom hodnoty.

Desatinné miesta v reálnych číslach


Zobrazovanie a zadanie reálnych čísiel v D2000 HI

Pre zobrazovanie desatinných miest reálnych čísiel sa používa (zatiaľ v D2000 HI) oddeľovač podľa nastavenia v regionálnych nastaveniach. Pre zadanie reálneho čísla sa môže ako oddeľovač použiť znak "bodka" aj "čiarka". Obe sa používajú na oddelenie desatinnej časti reálneho čísla.

Upozornenie:

  • V regionálnych nastaveniach nepožívajte na oddelenie desatinných miest iný znak ako bodku a čiarku.
  • V zobrazovacích maskách je v ich definícii použitá na oddelenie desatín vždy desatinná bodka. Táto je potom vo výslednom zobrazení hodnoty nahradená znakom z regionálnych nastavení. Preto neodporúčame v maskách na oddelenie tisícov používať znak "čiarka" ani "bodka". Napríklad, ak použijete masku: "###,###.###,###", a v reg. nastaveniach je ako oddeľovač nastavený znak "čiarka", dostanete nezrozumiteľnú hodnotu napr. "121,652,791,654".

Zobrazovanie dátumov a časov

V neformátovaných výstupoch časov, najčastejšie čas hodnôt, sa často krát používa zobrazenie podľa regionálnych nastavení.

Napíšte komentár