Software602 Form Designer

Podobné dokumenty
Software602 Form Designer

Algoritmizace a programování

Logické operace. Datový typ bool. Relační operátory. Logické operátory. IAJCE Přednáška č. 3. může nabýt hodnot: o true o false

Inovace bakalářského studijního oboru Aplikovaná chemie

6 Příkazy řízení toku

Vstupní požadavky, doporučení a metodické pokyny

MS Excel makra a VBA

Úvod do programování - Java. Cvičení č.4

Obsah. Předmluva 13 Zpětná vazba od čtenářů 14 Zdrojové kódy ke knize 15 Errata 15

Podmíněné vykonávání

Programování v jazyce JavaScript

Jazyk XSL XPath XPath XML. Jazyk XSL - rychlá transformace dokumentů. PhDr. Milan Novák, Ph.D. KIN PF JU České Budějovice. 9.

Maturitní otázky z předmětu PROGRAMOVÁNÍ

Řídicí struktury. alg3 1

Algoritmizace, základy programování, VY_32_INOVACE_PRG_ALGO_01

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

Obsah přednášky. programovacího jazyka. Motivace. Princip denotační sémantiky Sémantické funkce Výrazy Příkazy Vstup a výstup Kontinuace Program

Programovací jazyk Pascal

Software602 Form Designer

EVROPSKÝ SOCIÁLNÍ FOND. Úvod do PHP PRAHA & EU INVESTUJEME DO VAŠÍ BUDOUCNOSTI

Sada 1 - PHP. 03. Proměnné, konstanty

VISUAL BASIC. Přehled témat

Pascal. Katedra aplikované kybernetiky. Ing. Miroslav Vavroušek. Verze 7

Jak vyplnit daňové přiznání v Software602 Form Filler

Software602 FormApps Server

DSL manuál. Ing. Jan Hranáč. 27. října V této kapitole je stručný průvodce k tvorbě v systému DrdSim a (v

Tematický celek Proměnné. Proměnné slouží k dočasnému uchovávání hodnot během provádění aplikace Deklarace proměnných

6. Příkazy a řídící struktury v Javě

NSWI096 - INTERNET JavaScript

Čtvrtek 8. prosince. Pascal - opakování základů. Struktura programu:

C++ Akademie SH. 2. Prom nné, podmínky, cykly, funkce, rekurze, operátory. Michal Kvasni ka. 20. b ezna Za áte níci C++

Kritéria hodnocení praktické maturitní zkoušky z databázových systémů

Inovace výuky prostřednictvím šablon pro SŠ

Principy XQuery. funkcionální jazyk vše je výraz, jehož vyhodnocením vznikne určitá hodnota základní typy stejné jako v XML Schema:

Obslužný software. PAP ISO 9001

Algoritmy I. Cvičení č. 2, 3 ALGI 2018/19

Operační systémy. Cvičení 4: Programování v C pod Unixem

CZ.1.07/1.5.00/

ActionScript nepodporuje specifické objekty browseru, jako Document, Window a Anchor.

Obsah. Úvod 11 Základy programování 11 Objektový přístup 11 Procvičování 11 Zvláštní odstavce 12 Zpětná vazba od čtenářů 12 Errata 13

PSK3-9. Základy skriptování. Hlavička

Úvod do programovacích jazyků (Java)

Synchronizace CRM ESO9 a MS Exchange

Zápis programu v jazyce C#

3. přednáška. Obsah: Řídící struktury sekvence, if-else, switch, for, while, do-while. Zpracování posloupnosti

1 Webový server, instalace PHP a MySQL 13

for (i = 0, j = 5; i < 10; i++) { // tělo cyklu }

zapište obslužnou metodu události Click tlačítka a vyzkoušejte chování polevýsledek.text = polečíslo1.text + polečíslo2.text;

Programovací jazyk. - norma PASCAL (1974) - implementace Turbo Pascal, Borland Pascal FreePascal Object Pascal (Delphi)

1. Téma 03 - Rozhodování

PŘETĚŽOVÁNÍ OPERÁTORŮ

Registrační číslo projektu: CZ.1.07/1.5.00/ Elektronická podpora zkvalitnění výuky CZ.1.07 Vzděláním pro konkurenceschopnost

VÝUKOVÝ MATERIÁL. Bratislavská 2166, Varnsdorf, IČO: tel Číslo projektu

Cykly. Základy programování 1 Martin Kauer (Tomáš Kühr)

Objektově orientované programování

Předmluva k aktuálnímu vydání Úvod k prvnímu vydání z roku Typografické a syntaktické konvence... 20

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

1. lekce. do souboru main.c uložíme následující kód a pomocí F9 ho zkompilujeme a spustíme:

25. TVORBA HTML DIALOGŮ PRO PEVNÉ TVARY

Assembler - 5.část. poslední změna této stránky: Zpět

2 PŘÍKLAD IMPORTU ZATÍŽENÍ Z XML

NÁVOD NA ZPRACOVÁNÍ A ODESLÁNÍ

2) Napište algoritmus pro vložení položky na konec dvousměrného seznamu. 3) Napište algoritmus pro vyhledání položky v binárním stromu.

Dokumentace. k projektu Czech POINT Provozní řád. Rychlý znalostní kvíz a doplnění informací

Lokální definice (1) plocha-kruhu

1. D Y N A M I C K É DAT O V É STRUKTUR Y

Programování v C++ 3, 3. cvičení

DUM 06 téma: Tvorba makra pomocí VBA

Formuláře. Internetové publikování. Formuláře - příklad

Ukládání a vyhledávání XML dat

přetížení operátorů (o)

Vyučovací hodina. 1vyučovací hodina: 2vyučovací hodiny: Opakování z minulé hodiny. Procvičení nové látky

Metody tvorby ontologií a sémantický web. Martin Malčík, Rostislav Miarka

ANOTACE nově vytvořených/inovovaných materiálů

Dynamicky vázané metody. Pozdní vazba, virtuální metody

PRG036 Technologie XML

První kapitola úvod do problematiky

Platforma.NET 11.NET Framework 11 Visual Basic.NET Základní principy a syntaxe 13

JAVA. Další jazyky kompilovatelné do Java byte-code

Popis ovládání. Po přihlášení do aplikace se objeví navigátor. Navigátor je stromově seřazen a slouží pro přístup ke všem oknům celé aplikace.

Základní pojmy. Úvod do programování. Základní pojmy. Zápis algoritmu. Výraz. Základní pojmy

WSH Windows Script Hosting. OSY 2 Přednáška číslo 2 opravená verze z

Abstraktní třídy, polymorfní struktury

Ukázka knihy z internetového knihkupectví

Maturitní témata Školní rok: 2015/2016

Transkript:

Software602 Form Designer Javascriptový vyhodnocovací mechanismus výrazů Aktualizováno: 17. 3. 2017 Software602 a.s. Hornokrčská 15 140 00 Praha 4 tel: 222 011 602 web: www.602.cz e-mail: info@602.cz ID datové schránky: 7dcsfzg IČO: 63078236 DIČ: CZ63078236

Obsah Software602 Form Designer... 1 Obsah... 2 Javascriptový vyhodnocovací mechanismus výrazů... 3 1 Funkce a metody... 4 1.1 Funkce... 4 1.2 Metody objectu Document... 4 1.3 Metody objectu Element... 4 2 Návrhář výrazů... 5 3 Příklady jednoduchých volání metod a funkcí... 5 3.1 Příklad výrazu pro spojení tří stringů... 5 3.2 Příklad na součet hodnot dvou elementů... 5 3.3 Spuštění modálního okna Filleru... 5 3.4 Podmínka... 6 3.5 Cyklus... 7 4 Otázky a odpovědi... 7 4.1 Adresování hodnoty elementu z datové věty pomocí Xpath v metodách a funkcích... 7 4.2 Pozor na datový typ parametru funkcí a metod... 7 4.3 Variant... 8 4.4 Result... 8 4.5 Převody na string a int... 8 4.6 Kontrola výrazu... 8 4.7 Odesílací profily... 8 2

Javascriptový vyhodnocovací mechanismus výrazů Aplikace Form Designer obsahuje vnitřní makrojazyk, který umožňuje vytvářet různě složité formulářové funkce, potažmo ovládání logiky formuláře. Nově je možné výrazy definovat pomocí javascriptového vyhodnocení, voláním metod objektů a příslušných předdefinovaných funkcí. Pro zpracování zápisu výrazů navržených novým mechanismem je implementován javascriptový interpret V8 společnosti Google. Tento nový mechanismus slouží k navržení složitějších výrazů a ke zpřístupnění funkčnosti, která nebyla pomocí předchozího mechanismu dostupná. Nově je tedy možné používat například cykly či lépe pracovat s podmínkami. Navíc jsou již zpřístupněny funkce umožňující práci nad více dokumenty, respektive záložkami. Syntaxe se neliší od standardního javascriptového zápisu, navíc je možné používat sadu metod a předdefinovaných funkcí sloužící k práci s formulářem nebo celou aplikací Form Filler. Zároveň je možné stále používat původní makrofunkce, pokud jsou zapsány samostatně a nekombinují se s metodami a funkcemi nového vyhodnocovacího aparátu. Tedy, funkce z nového a staršího mechanismu nelze kombinovat v jednom funkčním formulářovém výrazu. Nové funkce se syntakticky zapisují výrazem vloženým do složených závorek }. Tím se v okně návrháře výrazů navíc automaticky zpřístupní nabídka nových metod a funkcí. Co přinese? Umožní využívat možnosti XML formulářů pomocí Javascriptového vyhodnocovacího aparátu. To znamená možnost využívat objektový skriptovací jazyk, namísto vnitřního makrojazyka a jeho sady funkcí. Jednoznačný a mnohokrát popsaný jazyk Využití cyklů a podmínek Jednoznačně definovaná posloupnost funkcí nemělo by již docházet k asynchronnímu zpracování příkazů Možnost definování vlastních vnitřních funkcí Možnost využívat vlastní proměnné Lepší využívání datových typů Možnost využívat globální funkce namísto vložených XSLT transformací Podpůrné materiály: Jednoduchá nápověda k syntaxi Javascriptu - www.jakpsatweb.cz/javascript Dokumentace a další materiály jsou dostupné na webu Software602, konkrétně v sekci dokumentace: http://www.602.cz/form_designer/dokumentace 3

1 Funkce a metody Příkazy jsou rozděleny do několika skupin. Funkce Metody objektu Document Metody objektu Element 1.1 Funkce Tyto funkce jsou přímo součástí aplikace, a tedy není nutné definovat kontext, nad kterým jsou volány. Používají se velmi podobně jako ve starém vyhodnocovacím mechanismu, tedy nejsou volány nad žádným objectem, na rozdíl od metod. Příklad volání na tlačítku globální funkce MessageBox: MessageBox("Dokument se změnil.","titulek okna",mb_ok MB_ICONINFORMATION);} 1.2 Metody objectu Document Metody objectu Document jsou volány nad celým aktivním dokumentem. Pro jejich volání se tedy používá jako kontext celý xml dokument. Tyto funkce se již volají objektově, respektive se volají metody objektu. Pro jejich deklaraci je nutné nejprve získat kontext documentu, nad kterým se budou metody volat. Toto se provede pomocí funkce GetDocument(), která získá kontext aktualně otevřeného formuláře. Příklad volání metody dokumentu SaveSigned: var doc = GetDocument(); doc.savesigned("c:\\test\\podepsany.zfo",true);} 1.3 Metody objectu Element Metody objectu Element se volají nad konkrétním formulářovým objektem, tedy nad fo prvkem či nad elementem datové věty. Metody se volají stejně jako v případě metod objectu Document. Tedy je nutné nejprve získat kontext elementu, nad kterým je metoda volána. Toto se provede pomocí funkce GetElement(), která je metodou documentu. Příklad volání metody SectionNo: var doc = GetDocument(); var ele = doc.getelement(); var vysledek = ele.sectionno(); MessageBox(""+vysledek,"Číslo sekce",mb_ok);} Všechny tyto funkce a metody mají jasně definované parametry. Tyto parametry jsou popsány v nápovědě k aplikaci Form Designer. U některých funkcí, jako je například MessageBox, lze použít i předdefinované konstanty, které ovlivňují výsledek výrazu. Tyto konstanty a jejich použití lze nalézt v dokumentu k funkcím. 4

2 Návrhář výrazů Při návrhu výrazů se zápis provádí v dialogu aplikace Form Designer, který obsahuje předdefinovanou sadu funkcí v menu návrháře, syntaktické zvýraznění zápisu, kontrolu a další užitečné pomůcky. Funkce jsou v nabídce rozřazeny do skupin a navíc jsou již vyfiltrovány podle aktuálního kontextu v dokumentu. Znamená to, že různé funkce jsou dostupné podle jejich možnosti použití sady funkcí se liší na tlačítku, na vazebních vlastnostech a v dialogu pro zpracování certifikátů. 3 Příklady jednoduchých volání metod a funkcí 3.1 Příklad výrazu pro spojení tří stringů Následující příklad ukazuje zapsání funkce concat pomocí javascriptových operátorů. Jako výsledek je do aktuálního elementu v datové větě, na kterém je tento concatenate volán, zapsán stringový součet jednotlivých elementů. var doc=getdocument(); var elem=doc.getelement(); Result(elem.DataXpath("/d:root/d:red")+" "+elem.dataxpath("/d:root/d:green")+" "+elem.dataxpath("/d:root/d:blue")); } 3.2 Příklad na součet hodnot dvou elementů Tento příklad ukazuje možnost zapsat číselný součet pomocí javascriptu. Výsledek je opět zapsán do aktuálního elementu, v jehož výpočtové vazbě je tento výraz volán. var doc = GetDocument(); var ele = doc.getelement(); var a = parseint(ele.dataxpath("../d:a")); var b = parseint(ele.dataxpath("../d:b")); Result(""+(a+b));} 3.3 Spuštění modálního okna Filleru Přiklad na spuštění modálního okna Filleru pomocí metody OpenModalFiller. Výraz by měl být umístěn na tlačítku, po jehož stisku se spustí modální instance Filleru s formulářem SignMaster. var doc=getdocument().openmodalfiller(new Variant(VarStr, "<d:root xmlns:d='http://www.software602.cz/signmastercz'></d:root>"), new Variant());} 5

3.4 Podmínka V tomto příkladu je použito větvení pomocí javascriptového příkazu switch(). Uvnitř jednotlivých případů jsou ještě navíc použity podmínky. var doc = GetDocument(); var ele = doc.getelement(); var s = ele.dataxpath("/d:root/d:switch"); switch (+s) case 1: var a = doc.getopenfilenamedialog(); if (a!="") doc.opentab(new Variant(VarFN,a),new Variant(),OPEN_READONLY); else case 2: var a = MessageBox("Pozor! Otevřený soubor bude po zavření automaticky smazán!","pozor!",mb_iconwarning MB_OKCANCEL); if (a==1) var b = doc.getopenfilenamedialog(); if (b!="") doc.opentab(new Variant(VarFN,b),new Variant(),OPEN_AUTODELETE); else } else break; } case 3: var a = doc.getopenfilenamedialog(); if (a!="") doc.opentab(new Variant(VarFN,a),new Variant(),OPEN_NOACTIVATE); else default: MessageBox("Vyber flag","upozornění",mb_ok); break; }} 6

3.5 Cyklus Tento příklad ukazuje použití jednoduchého cyklu pomocí příkazu for. Konkrétně slouží k uložení všech binárních příloh z opakovací sekce. var doc=getdocument(); var ele=doc.getelement(); a=0; var opak1=ele.xpathexpr("count(//*[@form602ct="bin"])"); for (i=1;i<=opak1;i++) ele.savebindata("/fo:root/fo:pagesequence[1]/fo:flow[1]/fo:block[1]/ fo:table[1]/fo:table-body[1]/fo:tablerow["+i+"]/fo:tablecell[1], "c:\\a\\"+ele.dataxpath("../d:pril1_gr/d:pril1_item["+i+"]/ d:pril1_file_name")); a++; } } 4 Otázky a odpovědi 4.1 Adresování hodnoty elementu z datové věty pomocí Xpath v metodách a funkcích K tomuto slouží metoda elementu DataXpath, podobně jako ve starém mechanismu. Příklad získání cesty k uložení souboru z datové věty formuláře: var doc = GetDocument(); var ele = doc.getelement(); var kam = ele.dataxpath("/d:root/d:kam"); doc.saveassigned(kam);} 4.2 Pozor na datový typ parametru funkcí a metod Funkce a metody mají jasně deklarovaný datový typ parametru. V případě použití nesprávného debug panel zahlásí špatný typ parametru a je nutné použít správný. Například MessageBox, jako parametr lze použít pouze string, tedy není možné použít například číslo. Parametr lze převést na string pomocí: var a=1234; MessageBox(a,"Číslo sekce",mb_ok);} Toto nebude fungovat, protože parametr funkce není string, ale hodnota. Lze převést například takto: Nebo takto: var a= 1234 ; MessageBox(a,"Číslo sekce",mb_ok);} var a=1234; MessageBox(a+,"Číslo sekce",mb_ok);} 7

4.3 Variant Variant je zvláštní typ parametru. Nemá obecně deklarovaný datový typ, ale je na vývojáři jej specifikovat. Jeho možné hodnoty lze nalézt v dokumentaci k funkcím. var doc = GetDocument(); var nazev = doc.getopenfilenamedialog(); doc.open(new Variant(VarFN,nazev),new Variant(),OPEN_NODLG); } 4.4 Result Tato funkce se používá vždy, když je potřeba získat výsledek z výpočtu. Pokud je potřeba získat výsledek vyhodnocení. var doc = GetDocument(); var elem = doc.getelement(); Result(RCCheck(elem.DataXpath("/d:root/d:rc"))?"OK":"Bad"); } 4.5 Převody na string a int Převod hodnoty na string se provede pomoci +proměnná, a převod stringu na int se provede pomocí +proměnná. 4.6 Kontrola výrazu V zápisu výrazu na akci, tedy na tlačítko, nelze provést kontrolu výrazu. 4.7 Odesílací profily Odesílací profily lze volat podobně jako v starém mechanismu díky použití příslušných metod a parametrizováním pomocí jména vytvořeného profilu. var doc=getdocument(); var submit = doc.getnamedsubmit("file_save") ; submit.execute() ; } 8