Výpočetní funkce

Manuál:  Práce s programem >

Výpočetní funkce

Previous pageReturn to chapter overviewNext page

Výpočetní funkce (výrazy) jsou velice silný nástroj např při hromadné úpravě hodnot potraviny.

 

Základní okno tvorby výrazu:

uzivatelske-funkce

 

Dostupné položky tabulky - do výrazu je možné přidat hodnotu existujícího sloupce databáze potravin

Proměnné -

Datum tisku - do výrazu přidá aktuální datum

Čas tisku - do výrazu přidá aktuální čas

Číslo řádku tabulky - do výrazu přidá číslo řádku tabulky

Počet řádků tabulky - do výrazu přidá celkový počet řádků tabulky

Operátory - do výrazu vloží matematický operátor. (Pozn. operátor "IN" znamená "je v seznamu". Např #{Energie_kJ} IN[10,20] - hodnota Energie_kJ musí být 10 nebo 20 ... výsledek je logický ANO/NE)

Matematické, Textové, Datumové, Logické funkce - do výrazu přidá funkci (popis funkcí viz níže)

Databázové funkce - do výrazu přidá výpočetní funkci z databáze (počet řádků, součet, průměr sloupce apod - popis viz níže)

 

Tvorba výrazu:

1.Vyberte některou položku ze seznamu "Proměnné", "Funkce" apod.
2.Stiskněte ENTER a nebo tlačítko funkce-add
3.Do výrazu bude přidána vybraná proměnná
4.Po vytvoření výrazu stiskněte tlačítko pro kontrolu

 

Významy některých výrazů:

#{Bilkoviny_g}+#{Tuky_g} ..... sečte hodnotu z bilkovin a tuku. Pokud jsou typy hodnot číselné, bude výsledek také číslo (99+10=109). Pokud jsou typy textové (např název, poznámka apod) bude výsledek text (99+10=9910)

#{Bilkoviny_g}*0.25 .... vynásobí hodnotu bilkovin číslem 0.25

IIF(#{Bilkoviny_g}  IN[10,20], 'je v seznamu', 'není v seznamu') ..... pokud je hodnota bílkovin v seznamu (10,20) je výsledkem výrazu text "je v seznamu", v opačném případě je výsledkem text "není v seznamu"

 

Výsledek zobrazuje aktuální výsledek funkce.

 

 

FUNKCE

 

Jednotlivé vestavěné funkce lze podle charakteru rozdělit na čtyři skupiny: 

matematické - používají jako argument ( zpracovávanou hodnotu) číselný údaj, např. položku Výše pokuty, PSČ apod.

textové - používají jako argument textový údaj, např. položku Obchodní firma, IČO, Číslo jednací

datové a časové - používají jako argument údaj typu Datum resp. čas, např. Datum vydání stanoviska

logické a ostatní 

 

Ve funkčních výrazech lze použít i argumenty jiných typů, než předpokládají jednotlivé funkce. V tom případě bude provedena automatická konverze typů. Například text bude převeden na číslo, číslo bude převedeno na datum a podobně.

 

V dalším textu jsou uvedeny název funkce, typy argumentů a výsledku, referenční popisy jednotlivých funkcí a příklady jejich užití. Červeně jsou označeny výsledky příkladů, kde je to možné.

 

Funkce matematické

 

ABS (x) - vrací absolutní hodnotu argumentu

x: číslo; vrací číslo

Funkce vrací absolutní hodnotu argumentu x.


Příklad:

 ABS(-152) 152

 ABS(12.22) 12.22

 ABS(&{polozka1})        

 

 

INT (x) - vrací celočíselnou část argumentu        

x: číslo; vrací číslo        

Funkce vrací celočíselnou část reálného argumentu x, neboli část před desetinnou čárkou.        


Příklad:

 INT(-12,22) -12

 INT(2.2545454542) 2

 INT(&{polozka1})

 

 

 

SGN (x) - vrací znaménko argumentu        

x: číslo; vrací číslo        

Funkce vrací informaci o tom, zda je argument kladný, nula nebo záporný, v hodnotách -1,0 a 1.        


Příklad:

 SGN(-12) -1

 SGN(521.02) 1

 SGN(&{polozka1})        

 

 

MIN (x,y) - vrací menší ze dvou argumentů

x,y: číslo; vrací číslo        

Funkce vrací menší hodnotu ze dvou zadaných argumentů x a y.        


Příklad:

 MIN(10,15) 10

 MIN(-1,1) -1

 MIN(&{polozka1},&{polozka2})        

 

 

MAX (x,y) - vrací větší ze dvou argumentů        

x,y: číslo; vrací číslo        

Funkce vrací větší hodnotu ze dvou zadaných argumentů x a y.        


Příklad:

 MAX(3,-152) 3

 MAX(10.99,4.522) 10.99

 MAX(&{polozka1},&{polozka2})

 

           

ROUND (x) – zaokrouhlí reálné číslo na nejbližší celé číslo        

x: číslo; vrací celé číslo        

Funkce vrací nejbližší celé číslo k reálnému číslu x.
5 se zaokrouhluje nahoru.


Příklad:

 ROUND(-3.152) -3

 ROUND(1.5) 2

 ROUND(2.5) 3

 
           

ROUNDTO (x,y) – zaokrouhlí reálné číslo na nejbližší celé číslo        

x: číslo; y: číslo; vrací celé číslo        

Funkce vrací celé číslo zaokrouhlené na počet míst dle parametru y.
Kladné hodnoty zaokrouhlují na desítky, stovky atd. Záporné pak na desetinny, setinny atd


Příklad:

 ROUNDTO(1234567, 3)        1234000

          ROUNDTO(1.234, -2)        1.23

          ROUNDTO(1.235, -2)        1.24

          ROUNDTO(-1.235, -2)        -1.23

                           

 

EXP (x) – exponenciální funkce        

x: číslo; vrací číslo        

Funkce vrací x-tou mocninu přirozeného čísla.        


Příklad:

 EXP(1) 2.718

 EXP(-5.5) 0.005

 EXP(%8)        

 

 

LOG (x) – logaritmická funkce        

x: číslo; vrací číslo        

Funkce vrací přirozený logaritmus argumentu.        

Poznámka: Argument musí být číslo kladné.        

Příklad:

 LOG(7.388) 1.9999

 LOG(0.005) -5.298

 LOG(&{polozka1})        

 

 

 

SIN, COS, TAN, COTG(x) – goniometrické funkce        

x: číslo; vrací číslo

Funkce vrací hodnotu goniometrické funkce sinus/kosinus/tangens/kotangens argumentu.        

Poznámka: Úhlová míra se předpokládá v radiánech.        

Příklad:

 SIN(3.14/2) 1

 COS(0.1) 0.995

 TAN(&{polozka1})        

 

 

ASIN, ACOS, ATAN, ACOTG(x) – cyklometrické funkce        

x: číslo; vrací číslo        

Funkce vrací úhlovou hodnotu arcsinus/arckosinus/arctangens/arckotangens argumentu. Inverzní funkce k funkcím goniometrickým.        

Poznámka: Absolutní hodnota argumentu musí být < 1, výsledný úhel je v radiánech.        

Příklad:

 ASIN(0.5) 0.5236

 ACOS(-0.2) 1.772

 ATAN(&{polozka1})

 

 

 

Funkce řetězcové - textové 

 

LEFT (s,n) – vrací  část textu zleva        

s: text; n: číslo; vrací text        

Funkce vrací část textu s zleva o délce n znaků        


Příklad:

 LEFT(%10,3)

 LEFT('Slovo',2) Sl        

 

         

RIGHT (s,n) - vrací  část textu zprava        

s: text; n: číslo; vrací text        

Funkce vrací část textu s zprava o délce n znaků        


Příklad:

 RIGHT(&{polozka1},3)

 RIGHT('Slovo',2) vo

 

         

SUBSTR (s,n,m) - vrací  část textu argumentu        

s: text; n,m: číslo; vrací text        

Funkce vrací část textu s,  začínající na pozici n, o délce m znaků        


Příklad:

 SUBSTR(&{polozka1},3,5)

 SUBSTR('Slovo',2,4) lovo

 

         

LENGTH (s) - vrací  počet znaků v argumentu - textu s        

s: text; vrací číslo        

Funkce vrací počet znaků argumentu s včetně mezer a interpunkčních znamének.        


Příklad:

 LENGTH(&{polozka1})

 LENGTH('Slovo') 5

 

         

POS (z,s) - vrací  pozici znaku z v textu s        

z,s: text; vrací číslo        

Funkce vrací pozici prvního výskytu hledaného znaku z v argumentu s, může sloužit i ke zjištění, zda vůbec daný text obsahuje hledaný znak. Pokud je znak nalezen, funkce vrací pozici hledaného znaku, jinak vrací číslo nula.        

Poznámka: Pokud je argument z delší text, hledá se pouze první znak tohoto textu        

Příklad:

 POS('C',&{polozka1})

 POS('o','Slovo') 3

 POS('c','Text k vyhledání') 0

 

         

GETSEPAR (s,n,znak) - vrací text po n-tém výskytu znaku        

s: text, n:číslo, znak:text ; vrací text        

Funkce vrací text od n-tého výskytu znaku do dalšího výskytu znaku.        

Poznámka: Pokud je argument "znak" více znaků, hledá se pouze první znak tohoto textu        

Příklad:

 GETSEPAR('ahoj Pavle Soukupe',1,' ') ... Pavle

 GETSEPAR('ahoj Pavle Soukupe',0,' ') ... ahoj

 GETSEPAR('ee;rr;tt;yy;uu;ii;oo;pp;aa',3,';') ...yy

 

         

UPPER (s) – převod na velká písmena

s: text; vrací text        

Funkce převádí text s na text složený z velkých písmen.        


Příklad:

 UPPER(&{polozka1})

 UPPER('Slovo') SLOVO

 

         

LOWER (s) - převod na malá písmena        

s: text; vrací text        

Funkce převádí text s na text složený z malých písmen.        


Příklad:

 LOWER(&{polozka1})

 LOWER('Slovo') slovo

                              

         

LTRIM (s) - odstraňuje mezery a speciální znaky z argumentu s zleva

s: text; vrací text        

Funkce odstraňuje mezery a speciální znaky z textu s, a to zleva        


Příklad:

 LTRIM(&{polozka1})

 LTRIM('        Slovo') Slovo        

                              

         

RTRIM (s) - odstraňuje mezery a speciální znaky z argumentu s zprava        

s: text; vrací text        

Funkce odstraňuje mezery a speciální znaky z textu s, a to zprava        


Příklad:

 RTRIM(&{polozka1})

 RTRIM('Slovo            ') Slovo

                              

         

ALLTRIM (s) - odstraňuje mezery a speciální znaky z textu s zleva i zprava        

s: text; vrací text        

Funkce odstraňuje mezery a speciální znaky z textu s, a to zleva i zprava        


Příklad:

 LTRIM(&{polozka1})

 LTRIM('        Slovo        ') Slovo

                              

         

FORMAT (x,f) - formátuje číslo x ve stylu zadaného formátovacího řetězce f        

x: číslo; f: text; vrací text        

Funkce formátuje číslo x za pomoci formátovacího řetězce f.        

Poznámka: Možnosti této funkce jsou větší, než ukazují příklady        

Příklad:

 FORMAT(&{polozka1}, '% %%0.00') 1 234,56

 FORMAT(12.3456, '0.0') 12,3

 FORMAT(12.3456, '0.000') 12,346

                              

         

CHR(n) - vrací znak, odpovídající ASCII hodnotě argumentu n        

n: číslo; vrací text        

Funkce vrací textovou podobu znaku, který je reprezentován argumentem n - jeho číselnou ASCII hodnotou.        


Příklad:

 CHR(&{polozka1})

 CHR(97) a

                              

         

ORD(z) - vrací ASCII hodnotu znaku z        

z: text; vrací číslo        

Funkce vrací ASCII hodnotu znaku, který je reprezentován argumentem z        

Poznámka: Je-li argument delší text, bere se z něho pouze první znak.        

Příklad:

 ORD(&{polozka1})

 ORD('a') 97        

                              

         

STRTONUM(s) - vrací číselné vyjádření textu s        

s: text; vrací číslo        

Funkce vrací číselnou hodnotu, která vznikne interpretací textu s        

Poznámka: Pokud nelze převést text na číslo, vrací funkce hodnotu 0. Převody tohoto typu se zpravidla provádí automaticky a není nutné je provádět explicitně        

Příklad:

 STRTONUM('12,4587') 12.4587

 STRTONUM('12a789ss') 0

                              

         

NUMTOSTR(x) - vrací textové vyjádření čísla x        

x: číslo; vrací text        

Funkce vrací textovou hodnotu, která vznikne interpretací čísla x        

Poznámka: Převody tohoto typu se zpravidla provádí automaticky a není nutné je provádět explicitně. Pro formátování čísel je určena funkce FORMAT.        

Příklad:

 NUMTOSTR(12.4587) 12,4587

                              

         

NUMTOTEXT(x) - vrací slovní vyjádření čísla x        

x: číslo; vrací text        

Funkce vrací textovou hodnotu - číslo slovy


Příklad:

 NUMTOTEXT(1.205,-Kč) tisícdvěstěpět

                              

         

DELSEPAR(x) - odstranění mezer z textu

x: text; vrací text        

Funkce vrací textovou hodnotu - text bez mezer


Příklad:

 DELSEPAR('  Slovo ABC  ') SlovoABC

                              

 

 

Funkce datové a časové 

 

FORMATDT(x,f) - vrací datum x, formátované podle řetězce f        

x: číslo; f: text; vrací text        

Funkce formátuje údaj x typu Datum podle hodnot, nastavených v řetězci f.

Formátovací řetězec f může obsahovat tyto hodnoty:

 d        den bez výchozí nuly  (1-31).

 dd        den včetně výchozí nuly (01-31).

 ddd        zkrácený název dne (Sun-Sat)

 dddd        plné jméno dne (Sunday-Saturday)

 m        měsíc bez výchozí nuly (1-12).

 mm        měsíc včetně výchozí nuly (01-12).

 mmm        zkrácený název měsíce (Jan-Dec)

 mmmm plné jméno měsíce (January-December)

 yy        rok ve zkráceném tvaru (00-99).        

 yyyy        rok v plném tvaru (0000-9999).        

 h        hodina bez výchozí nuly  (0-23).        

 hh        hodina včetně výchozí nuly (00-23).        

 s        sekunda bez výchozí nuly (0-59).        

 ss        sekunda včetně výchozí nuly (00-59).                  


Příklad:

 FORMATDT(&{polozka1}, 'rrrr-mm-dd')

 FORMATDT('30.1.1999','rrrr-mm-dd') 1999-01-30

                              

         

YEAR(x) - vrací rok z  argumentu typu Datum        

x: číslo; vrací číslo        

Funkce vrací údaj Rok z argumentu typu Datum.        


Příklad:

 YEAR(%24)

 YEAR('15.12.2001') 2001

                                               

MONTH(x) – vrací měsíc z  argumentu typu Datum        

x: číslo; vrací číslo        

Funkce vrací údaj Měsíc z argumentu typu Datum.        


Příklad:

 MONTH(&{polozka1})

 MONTH('15.12.2001') 12        

                                               

DAY(x) - vrací den z  argumentu typu Datum        

x: číslo; vrací číslo        

Funkce vrací údaj Den z argumentu typu Datum.        


Příklad:

 DAY(&{polozka1})

 DAY('15.12.2001') 15

                                               

HOUR(x) - vrací hodiny z  argumentu typu Čas        

x: číslo; vrací číslo        

Funkce vrací údaj Hodina z argumentu typu Čas.        


Příklad:

 HOUR(&{polozka1})

 HOUR('12:25:01') 12

                                               

SECUNDE(x) - vrací sekundy z  argumentu typu Čas        

x: číslo; vrací číslo        

Funkce vrací údaj Sekunda z argumentu typu Čas.        


 Příklad:

 SECUNDE(&{polozka1})

 SECUNDE('12:25:01') 01

                                               

SECUNDE(x) - vrací sekundy z  argumentu typu Čas        

x: číslo; vrací číslo        

Funkce vrací údaj Sekunda z argumentu typu Čas.        


 Příklad:

 SECUNDE(&{polozka1})

 SECUNDE('12:25:01') 01

                                               

DATE(x) - vrací datum

x: číslo; vrací datum        

Funkce vrací datum. Pokud je x=0 je vráceno aktuální datum. Kladná hodnota x přičítá určitý počet dnů, záporná naopak odečítá.


 Příklad:

 DATE(0) ...dnešní datum

 DATE(-2) ... předvčerejšek

           DATE(&{polozka1})

                                               

 

 

Logické a ostatní

 

 

IIF(v,x,y) - vrací číselnou hodnotu x nebo y podle hodnoty ve výrazu v IIF(v,s,t) - vrací text s nebo t podle hodnoty ve výrazu v        

v: číslo nebo logická hodnota; x,y: číslo; vrací číslo v: číslo nebo logická hodnota; s,t: text; vrací text        

Je-li splněna podmínka ve výrazu v, nebo je-li číselný argument v > 0, vrací funkce jako výsledek druhý argument, jinak vrátí ve výsledku třetí argument

Poznámka: Výsledek této funkce může být jak číslo, tak i text        

Příklad:

 IIF(&{polozka1} = 0, &{polozka2}, &{polozka3})

 IIF(&{polozka1} > 0, 'příjem', 'výdej') výdej (pokud bude &{polozka1} <= 0)        

                                       

 

ISNULL(p) - vrací informaci o tom, zda je položka p v databázi nevyplněna        

p: položka databáze; vrací logickou hodnotu nebo číslo (1=ano, 0=ne)        

Funkce vrací informaci o prázdných položkách v databázi        

Poznámka: Tuto funkci lze aplikovat pouze na položky databáze        

Příklad:

 ISNULL(&{polozka1}) 1 (pokud hodnota položky &{polozka1} nebyla zadána)

 IIF(ISNULL(&{polozka1}), 'nevyplněno', &{polozka1}) nevyplněno        

                                                                                               

Databázové fuknce

 

 

DBSUM(sloupec) - vrací součet číselných hodnot ze sloupce tabulky

slouec: název sloupce z tabulky - MUSÍ BÝT UVEDEN V JEDNODUCHÝCH UVOZOVKÁCH!

Je-li nalezen odpovídající sloupec v tabulce, je výsledek funkce součet číselných hodnot sloupce

Poznámka: parametr musí být uveden v jednoduchých uvozovkách        

Příklad:

 DBSUM('příjem') .... výsledek je součet pole příjem

 DBSUM('výdej') .... výsledek je součet pole výdej

                                       

 

DBMAX(sloupec) - vrací maximální hodnotu ze sloupce tabulky

slouec: název sloupce z tabulky - MUSÍ BÝT UVEDEN V JEDNODUCHÝCH UVOZOVKÁCH!

Je-li nalezen odpovídající sloupec v tabulce, je výsledek funkce maximální hodnota sloupce

Poznámka: parametr musí být uveden v jednoduchých uvozovkách        

Příklad:

 DBMAX('příjem') .... výsledek je maximální hodnota pole příjem

                                       

 

DBMIN(sloupec) - vrací minimální hodnotu ze sloupce tabulky

slouec: název sloupce z tabulky - MUSÍ BÝT UVEDEN V JEDNODUCHÝCH UVOZOVKÁCH!

Je-li nalezen odpovídající sloupec v tabulce, je výsledek funkce minimální hodnota sloupce

Poznámka: parametr musí být uveden v jednoduchých uvozovkách        

Příklad:

 DBMIN('příjem') .... výsledek je minimální hodnota pole příjem

                                       

 

DBAVG(sloupec) - vrací průměrnou hodnotu ze sloupce tabulky

slouec: název sloupce z tabulky - MUSÍ BÝT UVEDEN V JEDNODUCHÝCH UVOZOVKÁCH!

Je-li nalezen odpovídající sloupec v tabulce, je výsledek funkce průměrná hodnota sloupce

Poznámka: parametr musí být uveden v jednoduchých uvozovkách        

Příklad:

 DBAVG('příjem') .... výsledek je průměrná hodnota pole příjem

                                       

 

DBCOUNT(sloupec) - vrací počet řádků tabulky

slouec: název sloupce z tabulky - MUSÍ BÝT UVEDEN V JEDNODUCHÝCH UVOZOVKÁCH!

Je-li nalezen odpovídající sloupec v tabulce, je výsledek funkce počet řádků tabulky

Poznámka: parametr musí být uveden v jednoduchých uvozovkách        

Příklad:

 DBCOUNT('příjem') .... výsledek je počet řádků tabulky