User Defined Java Expressions
Všechny níže uvedené příklady lze uskutečnit např. pomocí kroku Formula syntaxí podobnou vzorečkům v Excelu. Takže tato stránka je poněkud nadbytečná.
User Defined Java Expression je krok, ve kterém uživatel píše vlastní Java výrazy. V případě, že chceme napsat výraz s podmínkou, tak struktura vypadá takto:
podmínka ? pravda : nepravda
V případě, že nepožadujeme podmínku, tak do pole „Java expression“ napíšeme pouze samotný kód bez podmínky. V obou případech se vyhodnocené výrazy ukládají do nového pole vytvořeného v „New field“. Ke všem výrazům je nutné zvolit datový typ ve „Value type“.
Obrázek: Příklad User Defined Java Expressions: výrazy 1–3 s podmínkou, 4. bez podmínky
Příklady User Defined Java Expression
NazevAkce+" "+CisloMereni
Sloučení polí NazevAkce
a CisloMereni
. Mezi polemi je mezera.
POSUDEK==null? puvod_ozn:puvod_ozn+" "+POSUDEK
Když je pole POSUDEK
prázdné, tak do nového pole ulož hodnotu puvod_ozn
, jinak před POSUDEK
vlož hodnotu puvod_ozn
s mezerou.
"-"
Do všech polí vlož spojovník
Double.valueOf(Value_string)
Pole Value_string
převede na typ double.
String.valueOf(Value)
Pole Value
převede na typ string
FValue.charAt(0) ==('<') ? Character.toString(FValue.charAt(0)):Flag
Získání příznaku. Když se první znak z pole FValue
rovná menšítku, tak do nového pole ulož menšítko, jinak nedělej nic.
FValue.charAt(0) ==('<') ? new Double(Double.valueOf(FValue.substring(1))) : DetectionLimit
Když se první znak z pole FValue
rovná menšítku, tak do nového pole vlož tuto hodnotu bez prvního znaku (menšítko) a převeď na double
.
FFValue.charAt(0) ==('<') ? new Double(Double.valueOf(FValue.substring(1))/2) : ((Character.isDigit(FValue.charAt(0))==true)?new Double(Double.valueOf(FValue)):null)
Když se první znak z pole FValue
rovná menšítku, tak do nového pole vlož tuto hodnotu bez prvního znaku (menšítko), převeď na double a vyděl 2. Jinak, když je první znak v poli číslo, tak toto pole převeď na číslo a ulož, jinak nedělej nic.
ASGI==null ? POSUDEK : ASGI
Když je pole ASGI
prázdné, do nového pole ulož hodnotu POSUDEK
, jinak ulož hodnotu ASGI
.