Porovnávané verzie

Kľúč

  • Tento riadok sa pridal
  • Riadok je odstránený.
  • Formátovanie sa zmenilo.
Komentár: D2D-5297 Podporenie UTC offsetu v zobrazovacej maske

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.

...

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

ZnakVý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.
0Vý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á maskaMaska 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 objektuMaskaZobrazená 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čkaVýznam značky
rrrr alebo yyyyČíslo roku (štvorciferné).
rr alebo yyPosledné dvojčíslo z čísla roku.
ddČíselné vyjadrenie dňa (dvojciferné).
mmČíselné vyjadrenie mesiaca.
hhHodina.
hhhpočet hodín - len pre relatívny čas neobsahujúci masku pre dni.
hhhhpočet hodín - len pre relatívny čas neobsahujúci masku pre dni.
hhhhhpočet hodín - len pre relatívny čas neobsahujúci masku pre dni.
hb, HHObchodná hodina - poradová hodina v dni od 1 do 25.
miMinúta.
ssSekunda.
mssTisíciny sekundy (milisekundy).
ttttNázov dňa v týždni *.
tttTrojpísmenková skratka názvu dňa v týždni *.
ttDvojpísmenková skratka názvu dňa v týždni *.
ZZZPosun v hodinách voči UTC vo formáte "(+|-)hh".
ZZZZZPosun v hodinách a minútach voči UTC vo formáte "(+|-)hhmi".
ZZZZZZPosun v hodinách a minútach voči UTC vo formáte "(+|-)hh:mi".

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

...

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

Kotva
pozn1
pozn1
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ň\maskattttttttt
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.

...

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.

MaskaZobrazený 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.

...

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

MaskaZobrazené 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.

...

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

...