Přeskočit na hlavní obsah

Tvorba aplikací pro mobilní zařízení (tablet, mobil, skladový terminál)

1. Mobilní aplikace ESO9

Je aplikace provozovaná na mobilním zařízení. Typickým příkladem může být tablet nebo mobilní telefon. Vlastnost, že se jedná o mobilní aplikaci, se nastavuje u aplikace ve správci ESO9. Aplikační server při generování stránky přilinkuje skripty a styly uvedené v sekci „Mobile“ souboru Eso9.ver.xml. V aplikaci je využit Framework jQuery mobile, který sám o sobě optimalizuje stránky k zobrazení na mobilním zařízení. Dále pak vlastní skript a styl eso9-mobile.js a eso9-mobile.css.

2. Dostupné prvky mobilní aplikace

2.1 Záhlaví

Generuje se automaticky a do textu přebírá tag title z hlavičky html. Přes záhlaví je možné vyvolat menu, které se definuje za pomoci stránky Esomenu.htm. Vyvolat se dá v desktopové aplikaci pravým tlačítkem myši a v mobilním zařízení dvojitým tapnutím prstem.

2.2 Navštívené

V mobilní aplikaci je možné přidat do menu odkaz na navštívené, které jsou upraveny pro zobrazení na mobilním zařízení. Stránka ve webu „Nastaveni/Navstivene.htm“. Volá se pomocí url „esoform.asp?TUrl=nastaveni/navstivene.htm“. Pro správnou funkci uzlu ESO9 je zapotřebí upravit soubor NavigOK.json nebo NavigOK6.0.json (podle toho, který vaše aplikace využívá) a přidat do něj paramer „homePage“. Př.

{
"enableGeolocation": true,
"homePage": "esoform.asp?Tpage=esoframe.htm&formType=DASHOK"
}

2.3 Vysouvací panel

Vysouvací panel slouží k sestavení menu akcí pro formulář. Máme dva panely Levý a pravý. Na stránce se otevírají tažením prstu vlevo nebo vpravo. Indikátorem, že stránka obsahuje panel je ikona se šipkou v záhlaví stránky. Do stránky se vloží div s id „left-panel“ nebo „right-panel“. Hyperlinky uvnitř tohoto divu jsou automaticky transformovány na tlačítka. Div může být ve stránce statický, nebo dynamicky načítaný.

2.3.1 Příklad

2.3.1.1 Statický

Hyperlinky jsou v divu tak jak jsou zapsány

<div id="left-panel">
<a href="javascript:history.back()" class="success" data-role="button">Zpět</a>
<br>
<a href="esoform.asp?Tpage=esoframe.htm&formType=DASHOK&Requery=1" class="warning">Úvod</a>
<a href="esoform.asp?FormType=ModuleInfo">Navštívené</a>
<a href="esoform.asp?TURL=Default.htm&FormType=UnLogUser" class="danger">Odhlásit</a>
</div>
2.3.1.2 Dynamický

Obsah divu se načítá dynamicky. To je zajištěno parametrem data-ajax="true" a následným hyperlinkem uvnitř divu. V příkladu „esoform.asp?turl=leftpanel-uvod.htm“. Do hyperlinku je možné předávat i parametry závislé formy, ale celý div musí být ve stránce vložený uvnitř formy.

<div id="left-panel" data-ajax="true">
<a href="esoform.asp?turl=leftpanel-uvod.htm">panel</a>
</div>

Obrázek 1 - strana 4

2.4 Tlačítko

Tlačítko jde do stránky vložit dvěma způsoby:

  1. Tagem input typu button. Formátuje se automaticky.

  2. Hyperlink. Z hyperlinku se button vytvoří vlastností data-role="button"

Tlačítko se dá obarvovat vlastností class, která může nabývat hodnot“ success, warning, danger, primary, info a inverse

2.4.1 Příklad

<form method="post" name="HDOK">
<input type="hidden" name="Navbar" value="None">
<input type="hidden" name="View" value="select convert(varchar(40),'') as MF_FINDTEXT">
<div id="left-panel" data-ajax="true">
<a href="esoform.asp?turl=leftpanel.htm">Úvod</a>
</div>
<table>
<tr align="center"><td><span>zadejte hledaný text: </span></td></tr>
<tr align="center"><td><input name="MF_FINDTEXT" size="40" maxlength="20" type="text"
autocomplete="off" tabindex="0" /></td></tr>
<tr align="center"><td><a
href="esoform.asp?Tpage=subjekt/VyberSubjektGrid.htm&RelType=Parameters&FormType=DASHOK&Requery=1" class="success" data-role="button">Hledej</a></td></tr>
</table>
</form>

Obrázek 1 - strana 5

2.4.1.2 Obarvení

Obrázek 2 - strana 5

2.5 Akce na „Enter“

V mobilní aplikaci je pro první formu ve formuláři implementována funkce, která se spouští na poslední editovatelné položce ve formuláři po stisknutí klávesy enter. Ve stránce se vyhledá první hyperlink a na ten se provede klik. Je to pomůcka pro obsluhu aby nemusela po vyplnění formuláře klikat na tlačítko s akcí pro přechod na následující stránku.

2.5.1 Příklad

V následujícím příkladu po vyplnění pole název subjektu a zadáním Enter se přejde na sestavu, která vypíše vyhledané subjekty v komponentě DASHOK/GRID

<form method="post" name="HDOK">
<input type="hidden" name="Navbar" value="None">
<input type="hidden" name="View" value="select convert(varchar(40),'') as MF_FINDTEXT">
<table>
<tr align="center"><td><span>zadejte hledaný text: </span></td></tr>
<tr align="center">
<td>
<input name="MF_FINDTEXT" size="40" maxlength="20" type="text" autocomplete="off" tabindex="0"
/>
</td>
</tr>
<tr align="center">
<td>
<a
href="esoform.asp?Tpage=subjekt/VyberSubjektGrid.htm&RelType=Parameters&FormType=DASHOK&Requery=1" class="success" data-role="button">Hledej</a>
</td>
</tr>
</table>
</form>

2.6 Zákaz akce na „Enter“

V případě že je třeba z nějakého důvodu zakázat předchozí funkčnost, kdy se po enteru spustí první URL je třeba do stránky vložit JS parametr eso9_mobile.enterRedirectEnable a nastavit jej na false

2.6.1 Příklad

<body>
<script>
eso9_mobile.enterRedirectEnable = false;
<script>
.
.
</body>

2.7 Redirect

V mobilní aplikaci pro sklady se využívá funkčnosti, při které se po zadání dat ve formuláři přechází na sestavu idc/htx, která vypisuje vyhledaná data, nebo se využívá jen pro zapsání údajů do databáze. Např. založení dokladu a následné zobrazení formuláře dokladu. Pro tento případ je vhodné nevypisovat do stránky data, ale rovnou přejít na další stránku s využitím dat vrácených z IDC. K tomuto se používá funkce eso9_mobile.redirect.

2.7.1 Příklad

2.7.2 Přesměrování po založení dokladu.

Předpokládáme, že v IDC je zapsaný kód pro založení dokladu a ve výstupním resultsetu je vráceno IDHDOK_NEW založeného dokladu. Tělo v HTX předloze bude obsahovat funkci pro přechod na další stránku.

<%begindetail%>
<script type="text/javascript">
eso9_mobile.redirect('esoform.asp?Tpage=doklad/zalozenyDoklad.htm&Reltype=Parameters&IDHDOK=<%IDHDOK_NEW%>');
</script>
<%enddetail%>

2.8 Automatické ukončení navštívených

V aplikacích, kde dochází k otvírání mnoha stránek v první úrovni, kde se nezavírají navštívené automaticky po přechodu na vrcholovou činnost, je nutné navigaci ukončovat ručně. Je to proto, že mnoho otevřených datových zdrojů zatěžuje aplikační server. V aplikaci k tomu můžete použít funkci eso9_mobile.closenavig. Tato funkce se musí používat s rozumem a na místech, která to umožňují. Nelze volat na formulářích s formou, protože se z navigace zavře i tento formulář a tím se stane neaktivním. Jde tedy použít na stránce volané s parametrem TURL nebo v sestavě IDC/HTX. Vhodným místem je třeba úvodní stránka esoframe.htm.

2.8.1 Příklad

Do stránky stačí vložit následující script

<script>
eso9_mobile.closenavig();
</script>

2.9 Hyperlinky s dodatečným ověřením

Pro případ kdy je potřeba pro přechod na stránku nebo sestavu vyžadovat po uživateli zadání hesla je možné využít následující konstrukci. Jedná se o funkci eso9_mobile.redirectPass('url1','url2'), která provede volání první url1. Pokud je v návratové stránce Typicky sestava IDC/HTX div <div id="Eso9_INFO"> </div> přechází se rovnou na url2. Pokud je návratová stránka s div <div id="Eso9_ERROR"></div> Zobrazí se dialog se zadáním hesla. Po zadání hesla se volá opět url1 kde je do url přidán parametr &UZIV_HESLO=zadaneheslo. S tímto parametrem se následně může pracovat ve stránce volané na url1. Dále se postupuje stejně s návratovou hodnotou Eso9_INFO nebo Eso9_ERROR.

2.9.1 Příklad

Zadání modelového příkladu: Pro zobrazení tiskového formuláře faktury je třeba zadat heslo uživatele. Pokud uživatel heslo zadá správně, nemusí následně po dobu 5 minut zadávat toho heslo znovu, jestliže si chce zobrazit další fakturu. Hyperlink na formuláři

<a href=""
onclick="eso9_mobile.redirectPass('esoform.asp?tpage=nastaveni/uzivkontrola.idc&RelType=Parameters&Requery=1','esoform.asp?FormType=GenRep&kod_sestavy=favform.idc&RelType=Parameters');"
data-role="button">tisk faktura</a>

uzivkontrola.idc – Volá se 2x. poprvé se provede verifikace, jestli je třeba zadávat heslo. Pokud je error, zobrazí se dialog pro zadání hesla. Po zadání hesla se volá znovu, ale s parametrem UZIV_HESLO. Provede verifikaci uživatele a zadaného hesla. Tato kontrola může být uživatelsky upravena. Uživatel nemusí nezbytně zadávat heslo, které má pro přístup do aplikace. Může to být třeba pin vygenerovaný a poslaný na mobil. Fantazii se zde meze nekladou. Výstupem musí být resultset s polem err kde 0 znamená že je akce ověřena a 1, že došlo k chybě. Následně se vypíše do htx

DECLARE @IDUZIVATEL INT,
@UZIV_HESLO VARCHAR(100),
@KOD_UZIV VARCHAR(100)
DECLARE @STATUS INT = 0
SELECT @IDUZIVATEL = %IDLOGUSER%,
@UZIV_HESLO = '%UZIV_HESLO%'
IF NOT EXISTS (SELECT * FROM SYSOBJECTS WHERE ID = OBJECT_ID('DBO.XXUZIVKONTRHESLO') AND
SYSSTAT & 0XF = 3)
BEGIN
CREATE TABLE DBO.XXUZIVKONTRHESLO
(
IDUZIVATEL INT,
DTDATUM DATETIME,
VLCHYBA SMALLINT /*0- BEZ CHYBY, 1-CHYBNE HESLO*/
)
END
/*ZRUSIM STARE*/
DELETE XXUZIVKONTRHESLO
WHERE IDUZIVATEL = @IDUZIVATEL
AND
DTDATUM <= DATEADD(MINUTE,-5, GETDATE())
AND
VLCHYBA = 0
SELECT @KOD_UZIV = KOD_UZIV
FROM UZIVATEL
WHERE IDUZIVATEL = @IDUZIVATEL
IF EXISTS (SELECT * FROM XXUZIVKONTRHESLO WHERE IDUZIVATEL = @IDUZIVATEL AND VLCHYBA = 0)
BEGIN
GOTO OK
END
IF (ISNULL(@UZIV_HESLO,'') <> '')
BEGIN
EXEC @STATUS = SPAUTENTICATEUSER @KOD_UZIV = @KOD_UZIV,
@UZIV_HESLO = @UZIV_HESLO
END ELSE
BEGIN
SELECT @STATUS = 50000
END
IF @STATUS = 0
BEGIN
INSERT XXUZIVKONTRHESLO
SELECT @IDUZIVATEL, GETDATE(), 0
END ELSE IF (ISNULL(@UZIV_HESLO,'') <> '')
BEGIN
INSERT XXUZIVKONTRHESLO
SELECT @IDUZIVATEL, GETDATE(), 1
END
OK:
SELECT CASE WHEN @STATUS = 0 THEN 0 ELSE 1 END AS err

uzivkontrola.htx – výstupem HTX musí být div s ID Eso9_INFO nebo Eso9_ERROR

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<title>Kontrola hesla</title>
</head>
<body>
<%begindetail%>
<%if err = 0%>
<div id="Eso9_INFO">Přihlášení OK</div>
<%endif%>
<%if err = 1%>
<div id="Eso9_ERROR">Chyba při přihlášení"</div>
<%endif%>
<%enddetail%>
</div>
</body>
</html>

2.10 Mobilní Browse

V mobilní aplikaci lze ve formuláři zobrazit browse, který lze ovládat dotykem prstu. Obdoba widgetu grid z Dashboardu. Ovládání je omezeno na výběr řádku, posun a označení. Lze využít například při volání akcí pro označené řádky z master formy.

2.10.1 Příklad

V příkladu jsou barevně označeny přidané údaje. Jedná se o div, do kterého je uzavřena forma. Určuje výšku browse ve formě a barevný vzhled atributem class (stejně jako dassbord/grid). Dále je ve formě uveden druhý div, který má id=browsemobile. Přítomnost tohoto divu zajistí přepnutí do mobilní verze. Následně mají položky definovánu šířku parametrem BRWSIZE. Toto není povinné, ale u browse se nedá nastavovat šířka ve formuláři, tak se to provede za pomoci tohoto atributu.

<div style="height: 150px;" class="success">
<form method="post" name="sdok">
<input type="hidden" name="Navbar" value="None">
<input type="hidden" name="FormType" value="Browse">
<input type="hidden" name="RelType" value="Parametrs">
<input type="hidden" name="SForm" value="HDOK">
<input type="hidden" name="View" value="select * from QSDOK where idhdok = %idhdok%">
<div id="browsemobile"></div>
<table>
<tr><td><label for="SLOZKA_IDENT">Kód</label><input name="SLOZKA_IDENT" id="SLOZKA_IDENT"
readonly type="text" size="8" mask="BRWSIZE=5"/></td></tr>
<tr><td><label for="TEXT_SLOZ">Název</label><input name="TEXT_SLOZ" id="TEXT_SLOZ" readonly
type="text" size="42" mask="BRWSIZE=20"/></td></tr>
<tr><td><label for="MNPOCETMJ">Počet</label><input name="MNPOCETMJ" id="MNPOCETMJ" type="text"
size="10" mask="BRWSIZE=5"/></td></tr>
</table>
</form>
</div>

2.11 Sada tlačítek

Slouží k vytvoření sady tlačítek z odkazů. Dále se pro skupinu dá definovat, že se přejde dále na první odkaz, pokud je počet odkazů konkrétní číslo (parametr data-gonext). Např. vypisujeme seznam subjektů, a pokud je jen jeden, tak na něj rovnou přejdeme.

2.11.1 Příklad výpis subjetů

Prijemsubjekt.idc vrací seznam vyhledaných subjektů a vypisuje je v Prijemsubjekt.htx pokud je jen jeden subjekt, tak se na něj přejde.

<body>
<div id="buttongroup" data-gonext="1">
<%begindetail%>
<a
href="esoform.asp?Tpage=Sklad/spu/PrijemDL.htm&RelType=Parameters&idsklad=<%IDSKLAD%>&idsubjekt=<%idsubjekt%>&IDVZORSPU=<%IDVZORSPU%>&SUBJ_NAZEV=<%SUBJ_NAZEV%>&SFORMID=<%SFORMID%>&Requery=1" style="font-size: 16px;" class="info" data-role="button"><%SUBJ_NAZEV%></a>
<%enddetail%>
</div>
<a
href="esoform.asp?Tpage=Sklad/spu/PrijemSubjektF.htm&RelType=Parameters&IDSKLAD=<%IDSKLAD%>&IDVZORSPU=<%IDVZORSPU%>&Requery=1" data-role="button">Zpět</a>
<a href="esoform.asp?TURL=esoframe.htm" class="success" data-role="button">Menu</a>
</body>

2.11.2 Příklad výpis subjektů s chybou

V mobilní aplikaci je možné přehrát na stránce zvuk a jde to např. tímto způsobem. Pokud Prijemsubjekt.idc vrátí pole ERR s hodnotou 1 tak se přehraje pípnutí které je uloženo v aplikačním webu „sound/beep-1.wav“ a zobrazí se text z položky ERRTXT.

<body>
<div id="buttongroup" data-gonext="1">
<%begindetail%>
<%if ERR EQ "0"%>
<a
href="esoform.asp?Tpage=Sklad/spu/PrijemDL.htm&RelType=Parameters&idsklad=<%IDSKLAD%>&idsubjekt=<%idsubjekt%>&IDVZORSPU=<%IDVZORSPU%>&SUBJ_NAZEV=<%SUBJ_NAZEV%>&SFORMID=<%SFORMID%>&Requery=1" style="font-size: 16px;" class="info" data-role="button"><%SUBJ_NAZEV%></a>
<%else%>
<script type="text/javascript">
var Sound = new Audio('sound/beep-1.wav');
Sound.loop = false;
Sound.play();
</script>
<p><%ERRTXT%></p>
<%endif%>
<%enddetail%>
</div>
<a
href="esoform.asp?Tpage=Sklad/spu/PrijemSubjektF.htm&RelType=Parameters&IDSKLAD=<%IDSKLAD%>&IDVZORSPU=<%IDVZORSPU%>&Requery=1" data-role="button">Zpět</a>
<a href="esoform.asp?TURL=esoframe.htm" class="success" data-role="button">Menu</a>
</body>

Obrázek 1 - strana 11

2.12 Include

V některých případech je potřeba vkládat do formy dynamická data. To se dá provést přes includ. Include je div ve kterém je třeba dodržet následující parametry:

  1. Div obsahuje atribut data-eso9-include="eso9"

  2. Uvnitř divu je hyperlink, který definuje URL ke vkládané stránce.

  3. Div se dá refrešovat po vykonání akce na tlačítko, k tomu slouží atribut data-eso9-includerefresh="idbutt", ve kterém se jako hodnota použije id tlačítka, na který bude navázán refresh. Lze přiřadit k více buttonům, id se v tomto případě oddělí středníkem (;). V případě, že je ve stránce více includů, stačí nastavit u jednoho a refrešují se všechny.

2.12.1 Příklad

V tomto příkladu je za pomoci includu vložen seznam osob s telefonními čísly. To zajištuje setsava subjektTel_inc.idc/htx, která je patřičně formátovaná.

<form method="post" name="subjekt">
<input type="hidden" name="Navbar" value="None">
<input type="hidden" name="View" value="select IDSUBJEKT, KOD_SUBJEKTU, SUBJ_NAZEV,
ICO, DIC, ULICE, MESTO, PSC, ULICE + ', ' + MESTO + ', ' + MESTO as GMAPS
from qsubjekt where idsubjekt = %idsubjekt%">
<div class="ui-grid-a ui-responsive">
<div class="ui-block-a">
<table width="100%">
<tr>
<td>
<label for="KOD_SUBJEKTU">Kód subjektu</label>
<input name="KOD_SUBJEKTU" type="text" readonly
mask="ReadOnlyAsInput" />
</td>
</tr>
<tr>
<td>
<label for="SUBJ_NAZEV">Název subjektu</label>
<input name="SUBJ_NAZEV" type="text" readonly
mask="ReadOnlyAsInput" />
</td>
</tr>
<tr>
<td>
<label for="ICO"></label>
<input name="ICO" type="text" readonly mask="ReadOnlyAsInput" />
</td>
</tr>
<tr>
<td>
<label for="DIC">DIČ</label>
<input name="DIC" type="text" readonly mask="ReadOnlyAsInput" />
</td>
</tr>
<tr>
<td>
<label for="ULICE">Ulice</label>
<input name="ULICE" type="text" readonly mask="ReadOnlyAsInput" />
</td>
</tr>
<tr>
<td>
<label for="MESTO">Město</label>
<input name="MESTO" type="text" readonly mask="ReadOnlyAsInput" />
</td>
</tr>
</table>
</div>
<div class="ui-block-b">
<input id="fpGMaps" name="GMAPS" type="text"
style="width:100%;height:500px;" mask="GMaps">
</div>
</div>
<hr />
<div data-eso9-include="eso9" id="inc1" data-eso9-includerefresh="">
<a href="esoform.asp?Tpage=subjekt/subjektTel_inc.idc&RelType=Parameters"></a>
</div>
<div id="left-panel" data-ajax="true">
<a href="esoform.asp?turl=leftpanel.htm">Úvod</a>
</div>
<div id="right-panel">
<a href="esoform.asp?Tpage=saldo/AdrDok_S.idc&RelType=Parameters"
class="danger">Závazky a pohledávky</a>
<a
href="esoform.asp?Tpage=Subjekt/SubjektZavGrid.htm&RelType=Parameters&IDSUBJEKT=%25IDSUBJEKT%25&FormType=DASHOK" class="warning">Závazky</a>
<a
href="esoform.asp?Tpage=Subjekt/SubjektPohlGrid.htm&RelType=Parameters&IDSUBJEKT=%25IDSUBJEKT%25&FormType=DASHOK" class="info">Pohledávky</a>
<a href="esoform.asp?Tpage=crm/AktivitaNew.htm&RelType=Parameters"
class="success">Nová aktivita</a>
</div>
</form>

Obrázek 1 - strana 13

2.13 Navbar

Mobilní aplikaci se nepoužívá aktivních editačních formulářů. Práce je omezena na jednoduchý formulář s jedním nebo dvěma poli, která se ukládají do databáze za pomoci sestav IDC/HTX, nebo zavoláním procedury na tlačítko. V případě, že je třeba povolit editaci, je možné do stránky vložit div s id=“navbarmobile“. Tento div zajistí zobrazení navigačního panelu uzpůsobeného pro práci na mobilních zařízeních. Pokud je třeba zakázat některá tlačítka, provede se doplněním atributu mask s vyjmenovanými tlačítky, která zakazuji. Názby tlačítek jsou následující: Insert;Update;Delete;Cancel;First;Prev;PrevPg;NextPg;Next;Last

2.13.1 Příklad

Formulář pro evidenci dokumentů u subjektu. Dá se použít třeba pro focení v telefonu, kde se po stisknutí tlačítka uložit dokument, zobrazí nativní dialog Android, pro focení nebo výběr souboru.

<form method="POST" name="Dokument">
<input type="hidden" name="FormType" value="Editor">
<input type="hidden" name="RowsCount" value="3">
<input type="hidden" name="STARTFILTER" value="0">
<input type="hidden" name="Refresh_All_Forms" value="2"><input type="hidden" name="DropTarget"
value="doc">
<input type="hidden" name="hiddenfields"
value="mf_OpType;MF_SENDMAILTO;MF_SENDMAILSUBJECT;MF_SENDMAILBODY;MF_SHOWMAIL;MF_SCANNAME">
<input type="hidden" name="VIEWNAME" value="QDOKUMENT;QDOKUMENT_OPNAVSTEVY">
<input type="hidden" name="VIEW" value="select *,
'SUBJEKT' as PAR_TABLENAME,
convert(int,nullif('%IDSUBJEKT%','')) as PAR_IDTABLE,
1 as mf_OpType,
'' as MF_SENDMAILTO,
'Předmět e-mailu' as MF_SENDMAILSUBJECT,
'Tělo e-mailu' as MF_SENDMAILBODY,
'1' as MF_SHOWMAIL,
'Foto' as MF_SCANNAME
from qdokument
where (dbo.fnPravoNaDokument(IDDokument,%idLogUser%) != 1)
and (qdokument.IDDOKUMENT in (select IDDOKUMENT from DOKUMENT_VAZBA where
(TABLENAME = 'SUBJEKT') and (IDTABLE = convert(int,nullif('%IDOPNAVSTEVY%','')))))
order by FILENAME">
<%$INCLUDE:INCLUDE\Dokument_Inc.htm%>
<!--timto tagem se zobrazi navbar ve formulari optimalizovany po mobilni zařizeni-->
<div id="navbarmobile" mask=""></div>
</form>

Obrázek 1 - strana 14

2.14 Alert

Umožňuje ve stránce s formou zobrazit readonly pole jako informační hlášku. Dá se využít při zobrazení informačního hlášení na button, kdy dojde k naplnění proměnné MF_.. z procedury. Div může nabývat několika barev a tyto se nastavují atributem class.

class="alert alert-success"
class="alert alert-info"
class="alert alert-warning"
class="alert alert-danger"

2.14.1 Příklady

<div class="alert alert-success">
<input type="text" name="MF_KOMENTAR" id="MF_KOMENTAR" width="10%" readonly>
</div>

Obrázek 1 - strana 15

<div class="alert alert-info">
<input type="text" name="MF_KOMENTAR" id="MF_KOMENTAR" width="10%" readonly>
</div>

Obrázek 2 - strana 15

<div class="alert alert-warning">
<input type="text" name="MF_KOMENTAR" id="MF_KOMENTAR" width="10%" readonly>
</div>

Obrázek 3 - strana 15

<div class="alert alert-danger">
<input type="text" name="MF_KOMENTAR" id="MF_KOMENTAR" width="10%" readonly>
</div>

Obrázek 4 - strana 15

2.15 QR čtečka

Přidává možnost skenovat QR kódy za pomoci kamery nebo fotoaparátu. Parametr data-qrreader="true" udává zobrazení čtečky a data-qrreader-input="EAN" udává id input pole ve kterém se bude skenovat.

2.15.1 Příklady

Zapojí se jednoduše vložením div za input, ve kterém se bude skenovat.

<form method="post" name="HDOK">
<input type="hidden" name="Navbar" value="None">
<input type="hidden" name="View" value="select convert(varchar(50),'') AS EAN">
<table>
<tr><td><label for="EAN">EAN: </label></td></tr>
<tr><td>
<input name="EAN" id="EAN" type="text" size="500" maxlength="500"
autocomplete="off" tabindex="0">
<div id="qrreader" data-qrreader="true" data-qrreader-input="EAN">
</td></tr>
<tr><td><a
href="esoform.asp?Tpage=sklad/evidence/VyberZboziGridQR.htm&RelType=Parameters&FormType=DASHOK&Requery=1" data-role="button">Hledej</a></td></tr>
</table>
</form>

V input poli se zobrazí ikona readeru. Kliknutím na ikonu se vyvolá dialog skenování a po naskenování kódu se text přenese do input pole. Po zapsání se provede enter. V případě, že je potřeba reader zavřít, stačí do něj kliknout.

Obrázek 2 - strana 16

Obrázek 1 - strana 16

2.16 QR/Barcode čtečka

Přidává možnost skenovat QR kódy a čárkové kódy za pomoci kamery nebo fotoaparátu. Nahrazuje předchozí skener, který umí jen QR kódy. Parametr data-qrreader2="true" udává zobrazení čtečky a data-qrreader-input="EAN" udává id input pole ve kterém se bude skenovat.

2.16.1 Příklady

Zapojí se jednoduše vložením div za input, ve kterém se bude skenovat.

<form method="post" name="HDOK">
<input type="hidden" name="Navbar" value="None">
<input type="hidden" name="View" value="select convert(varchar(50),'') AS EAN">
<table>
<tr><td><label for="EAN">EAN: </label></td></tr>
<tr><td>
<input name="EAN" id="EAN" type="text" size="500" maxlength="500"
autocomplete="off" tabindex="0">
<div id="qrreader" data-qrreader2="true" data-qrreader-input="EAN">
</td></tr>
<tr><td><a
href="esoform.asp?Tpage=sklad/evidence/VyberZboziGridQR.htm&RelType=Parameters&FormType=DASHOK&Requery=1" data-role="button">Hledej</a></td></tr>
</table>
</form>

V input poli se zobrazí ikona readeru. Kliknutím na ikonu se vyvolá dialog skenování a po naskenování kódu se text přenese do input pole. Po zapsání se provede enter. V případě, že je potřeba reader zavřít, stačí do něj kliknout.

Obrázek 2 - strana 17

Obrázek 1 - strana 17

2.17 Podpisové pole

Přidává možnost uložit do dokumentové databáze podpis uživatele ve formě obrázku. Ve stránce musí být forma s dokumenty a přidá se do ní tlačítko s name="~CMD:ESO9_SignatureToDMS". To zajistí zobrazení dialogu s podpisovým polem a je možné na něm na dotykové obrazovce psát a následně uložit.

2.17.1 Příklad

<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1250">
<title>Podpis do dms</title>
</head>
<body>
<style>
/*aby fungovalo ulozeni do DMS musi byt ve forme tlacitko vlozit, ale nepotrebuji ho videt
tak ho stylem zakazu*/
form[name="DOKUMENT"] .btnDoc.Upload{
display: none;
}
</style>
<div data-role="page" id="page">
<form method="POST" name="Dokument">
<input type="hidden" name="FormType" value="Editor">
<input type="hidden" name="RowsCount" value="3">
<input type="hidden" name="STARTFILTER" value="0">
<input type="hidden" name="Refresh_All_Forms" value="2">
<input type="hidden" name="DropTarget" value="doc">
<input type="hidden" name="hiddenfields"
value="mf_OpType;MF_SENDMAILTO;MF_SENDMAILSUBJECT;MF_SENDMAILBODY;MF_SHOWMAIL;MF_SCANNAME">
<input type="hidden" name="VIEWNAME" value="QDOKUMENT">
<input type="hidden" name="VIEW" value="select *,
1 as mf_OpType,
'' as MF_SENDMAILTO,
'Předmět e-mailu' as MF_SENDMAILSUBJECT,
'Tělo e-mailu' as MF_SENDMAILBODY,
'1' as MF_SHOWMAIL
from qdokument
order by FILENAME">
<div style="height:21px;">
<input type="text" name="FILENAME" size="60" DOC="DOKUMENTFILEGUID"
MASK="1;0;0;0;OP=INSERT" id="fpFILENAME" readonly>
</div>
<input type="button" value="Podpis" name="~CMD:ESO9_SignatureToDMS">
<center>
<div style="height:250px;">
<img datafld="1_DOKUMENTFILEGUID" name="DOKUMENTFILEGUID" datasrc="#ESOPAGECTL"
alt="Obrázek" mask="IMGFROMDMS" height="250"/>
</div>
</center>
<!-- Zobrai navbar ve formulari optimalizovany po mobilni zarizeni-->
<div id="navbarmobile" mask="Insert;Update;Cancel;First;Last;NextPg;PrevPg"/>
<div id="left-panel" data-ajax="true">
<a href="esoform.asp?turl=leftpanel.htm">Úvod</a>
</div>
</form>
<a href="javascript:history.go(-1)" class="warning" data-role="button">Zpět</a>
</div>
</body>
</html>