Jak vytvořit podmíněné vzorce v Adobe Acrobat

Existuje mnoho způsobů, jak do PDF dokumentu zakomponovat komplexní výpočty. Ukážeme si, jak do vašeho dokumentu integrovat podmíněné vzorce.

Podmíněné výpočty v prostředí Acrobat

Již jsme si probrali základy automatizovaných výpočtů v Adobe Acrobat. Podmíněné vzorce vám umožňují vytvářet pokročilejší výpočty v PDF dokumentech.

Pokud máte zkušenosti s používáním vzorců v Excelu nebo Google Sheets, pravděpodobně již tušíte, co jsou podmíněné vzorce. Někdy se jim říká také logické vzorce a jejich funkcí je zobrazit určitou hodnotu nebo spustit výpočet, pokud je splněna určitá podmínka. Například, pokud je zadané číslo záporné, nebo pokud je celkový výsledek testu vyšší než stanovená hranice pro úspěch. Mezi nejrozšířenější podmíněné vzorce v Excelu patří klasické „IF“, „SUMIF“ nebo „COUNTIF“. Existuje také podmíněné formátování, které umožňuje měnit vzhled buněk na základě splnění stanovené podmínky.

Vypočítaná pole v Adobe PDF umožňují použití stejných principů. Můžete zobrazit číselné hodnoty, text, nebo spustit výpočet v závislosti na výsledku jiného vstupního pole. Tato pole se dají navzájem kombinovat. Podmíněné vzorce mají uplatnění v mnoha typech PDF formulářů:

Finanční dokumenty: Pokud je například výše úrokové sazby závislá na výši půjčené částky, můžete použít podmíněný vzorec, který zobrazí odpovídající úrok na základě zadané sumy.
Testy a zkoušky: Je možné vytvořit vyhodnocovací systém, který automaticky vypíše „prospěl“ nebo „neprospěl“ na základě celkového dosaženého skóre.
Prodej: V obchodních formulářích se dá nastavit pole, které doporučí určité produkty v závislosti na odpovědích, které potenciální zákazník zadá v předchozích otázkách.

Je nutné podotknout, že vypočítaná pole se dají vytvářet pouze v Adobe Acrobatu, ale samotné výsledné výpočty se zobrazí v jakékoliv PDF čtečce.

Vytváření základních podmíněných příkazů

Vlastní vypočítaná pole Adobe Acrobat používají jako programovací jazyk JavaScript. Nemusíte být ale experty na JavaScript, abyste mohli vytvořit jednoduché podmíněné pole. Stačí dodržet základní strukturu.

V dalším příkladu budeme pracovat s jednoduchým formulářem objednávky. Tento formulář obsahuje sedm polí: počet objednávek pěti různých produktů, celkový počet objednaných produktů a celkovou cenu.

Základní syntaxe podmíněného příkazu v Adobe JavaScript je následující:

var názevProměnné = this.getField("názevPole").value;
if(názevProměnné podmínka) event.value = výsledekPokudPravda
else event.value = výsledekPokudNepravda

První řádek definuje proměnnou, která bude použita v podmíněném vzorci. V našem případě používáme `this.getField` pro načtení hodnoty jednoho z ostatních polí v dokumentu. Druhý řádek definuje podmínku. Podobně jako v Excelu, podmínka má tvar větší než, menší než, nebo rovno určité hodnotě.

Poslední část definuje výsledky. `výsledekPokudPravda` je hodnota, která se zobrazí, když je podmínka splněna. Pomocí `else` v dalším řádku definujeme `výsledekPokudNepravda`, což je hodnota, která se zobrazí, když podmínka splněna není.

Abychom si to ukázali v praxi, vytvořili jsme vypočítané pole pojmenované „Hromadná objednávka“. Chcete-li zadat vlastní vypočítaný skript, klikněte pravým tlačítkem myši na vybrané pole v Acrobatu a vyberte „Vlastnosti“. Poté zvolte „Výpočet > Vlastní skript výpočtu > Upravit“.

Toto pole bude rozhodovat o tom, zda se objednávka považuje za hromadnou. Pokud celkový počet objednaných položek je vyšší než 20, v poli se zobrazí „Ano“. Pokud je menší než 20, pole zobrazí „Ne“. Náš vzorec pro tyto podmínky je:

var TQ = this.getField("Total Quantity").value;
if( TQ > 20) event.value = "Ano"
else event.value = "Ne"

Jak vidíte na obrázku výše, název proměnné jsme nastavili na „TQ“ a načetli jsme hodnotu z pole „Total Quantity“. Je třeba si uvědomit, že názvy polí rozlišují velká a malá písmena. Dále jsme definovali podmínku, tedy, že TQ musí být větší než 20. Pokud je tato podmínka splněna, pole zobrazí „Ano“. V opačném případě se zobrazí „Ne“.

Například, pokud bychom si objednali 11 Lightning Cables a 10 Battery Bank, celkem bychom měli 21 položek. Objednávka by se tak považovala za hromadnou a výsledkem by bylo:

Použití více podmínek

Někdy je potřeba, aby bylo splněno více podmínek, ne jen jedna. Naštěstí existuje způsob, jak vytvořit podmíněné pole, které generuje hodnoty na základě více kritérií.

Řekněme, že v e-shopu platí, že všechny objednávky s celkovým počtem produktů alespoň 20 a celkovou cenou 150 mají nárok na slevu 10%. Výsledná částka by se měla objevit v poli s názvem „Celkem se slevou“. V tomto případě budeme potřebovat definovat dvě proměnné a dvě podmínky. Vzorec by vypadal takto:

var Cena = this.getField("Počáteční cena").value;
var TQ = this.getField("Total Quantity").value;
if( Cena > 150 && TQ > 20 ) event.value = Cena*0.9;
else event.value = Cena;

Jak vidíte, definovali jsme dvě proměnné na dvou samostatných řádcích. Pro spojení dvou různých podmínek použijeme `&&`. Nezapomeňte, že výsledná hodnota je také výpočtem, který reflektuje slevu.

Pokud použijeme stejný příklad jako výše, získáme tento výsledek:

Pořadí výpočtů

Důležitým aspektem je pořadí provádění výpočtů. Na rozdíl od Excelu, kde se výpočty provádí simultánně, Acrobat spoléhá na to, že uživatel určí, které vzorce se mají provést jako první.

Pro nastavení pořadí výpočtů otevřete postranní panel „Upravit formulář“ a vyberte „Více > Nastavit pořadí výpočtu polí“. V našem příkladu, kde vzorce pro „Hromadnou objednávku“ a „Celkem se slevou“ závisí na hodnotách celkového množství a celkové ceny, musíme zajistit, aby se výpočty TQ a TP prováděly nejdříve.

Před publikováním formuláře doporučujeme zkontrolovat pořadí výpočtů. Je také dobré otestovat formulář s několika vzorovými daty, abyste se ujistili, že vše funguje jak má.