Переменные и события

Последние изменение: 10.12.2018

В последних версиях клиента Mobile SMARTS были сильно расширены возможности псевдо-html верстки, например, появилась возможность добавлять произвольное количество тегов input на форму и обрабатывать пользовательские действия с ними с помощью события onblur/ onselected.

Рассмотрим на примере окна первичной настройки приходной накладной из продукта Frontol Simple Mobile.

Код первого поля для ввода ИНН:

HTML
<div style="padding:1dp 16dp 0dp 13dp;"> <input value="{INN}" tabindex="1" datatype="Decimal" onblur="ПроверкаИНН"   title="ИНН от 10 до 12 символов" style="border-color:#C8D6DE;" /> </div>

В данном случае INN - переменная в сессии, которой присваивается результат ввода пользователем. Событие onblur определяет, на действие с каким именем перейдет алгоритм после нажатия на кнопку Еnter). В данном случае алгоритм переходит на действие ПроверкаИНН.

Еще один пример - поле с выпадающим списком контрагентов.

Предварительно в конфигурации отберем коллекцию строк СтрокиПоказа

Код выпадающего списка (switch):

HTML
div style="padding:1dp 0dp 10dp 17dp;border:0px solid black;margin:13dp 0dp 20dp 0dp;"><switch source="СтрокиПоказа" value="{INN_Text}" tabindex="2" listItemDisplayTemplate="{Item.ShortName==null:{Item.Имя};{Item.ShortName}}" placeholder="Или выберите из списка" onselected="ВыборИзСписка"/> </div>

Source - источник элементов для показа (в данном примере - предварительно отобранная коллекция строк СтрокиПоказа).

Value - переменная в сессии, в которую заносится результат выбора (строка из коллекции СтрокиПоказа).

Tabindex - определяет порядок перехода фокуса на форме.

listItemDisplayTemplate - шаблон отображения элемента в выпадающем списке. В данном случае, если строка имеет поле ShortName, то будет отображаться оно, если нет - поле Имя.

Placeholder - текст внутри поля формы, который исчезает при получении фокуса.

Onselected - событие, которое произойдет после выбора элемента из выпадающего списка. В качестве значения - имя действия в конфигурации, в нашем примере ВыборИзСписка.

Поле ввода даты демонстрирует новые возможности:

HTML
<div style="padding:1dp 16dp 20dp 0dp;"> <div style="padding:1dp 16dp 0dp 13dp;"> <input type="text" value="{OrderDate}"  pattern="dd.MM.yy"  placeholder="ДД.ММ.ГГ"  datatype="datetime" tabindex="4" onblur="1725 1" onselected=""/> </div>

Здесь все аналогично предыдущим пунктам, кроме:

Pattern - указывает регулярное выражение, согласно которому требуется вводить и проверять данные в поле формы

Datatype - если предыдущие примеры были в случае с ИНН - формата Decimal, в случае с INN - Text, то в данном примере OrderDate имеет формат DateTime со всеми вытекающими проверками.

Если появляется необходимость отформатировать список вывода, например, элементов номенклатуры в действии выбор номенклатуры, то ниже приведен пример кода, как это можно сделать:

HTML
<div  class="div_warelist" > <div style="margin-bottom:10dp;" > <table border="0"  width="100%"> <tr> <td width="95%"> <span class="list_name"  >{Item.Product.Name}</span> </td> <td width="5%" align="right"> <img  size="stretch" >simple.ChevronRigth</img> </td> </tr> </table > </div> <div > <table border="0"  > <tr> <td width="50%" > <span class="tb_header">Цена: {Item.Packing.Цена:0.00}  ₽</span> </td> <td width="50%"  align="right" > <span class="tb_quantity"  >{Item.Packing.Остаток} {Item.Packing.Name}.</span> </td> </tr> </table> </div> </div>