Оригинал на GitHub
Вопрос
Хочу по нажатию на кнопку отправить на почту табличку в html
с отобранными значениями по условию в полях. Немного не пойму логику работы textByTemplate
. Хочу использовать его для формирования html-таблички. Не мог бы кто-то привести пример, как это (или что-то подобное) можно реализовать?
Ответ
Добавляем два шаблона в Системные таблицы - Шаблоны печати
Шаблон тип Страница
:
<table>
<thead>
<tr style="border: solid 1px #474747; padding: 5px;">
<th style="border: solid 1px #474747; padding: 5px;">No
</th>
<th style="border: solid 1px #474747; padding: 5px;">VIN
</th>
<th style="border: solid 1px #474747; padding: 5px;">Current mileage
</th>
<th style="border: solid 1px #474747; padding: 5px;">Mileage for replacement
</th>
<th style="border: solid 1px #474747; padding: 5px;">Remaining until replacement
</th>
<th style="border: solid 1px #474747; padding: 5px;">Type of work
</th>
</tr>
</thead>
<tbody>
{cars}
</tbody>
</table>
Это общий контур таблица в оторой будут повторяющиеся элементы (строки)
Шаблон тип Элемент
:
<tr>
<td style="border: solid 1px #474747; padding: 5px;">{vehicle_number}
</td>
<td style="border: solid 1px #474747; padding: 5px;">{vin}
</td>
<td style="border: solid 1px #474747; padding: 5px;">{current_mileage} km
</td>
<td style="border: solid 1px #474747; padding: 5px;">{mileage_next} km
</td>
<td style="border: solid 1px #474747; padding: 5px;">{remaining_distance} km
</td>
<td style="border: solid 1px #474747; padding: 5px;">{type_of_work}
</td>
</tr>
Код передачи данных в эти формы (можно разместить в кнопке или кроне):
=: emailSend(to: $to; title: "Подходит срок выполнения ТО"; body: $table)
to: listCreate(item: "blabla@mail.com"; item: "bla@bk.com" ; item: "blablabla@bk.com")
table: textByTemplate(template: "page_template_name"; data: $data)
data: rowCreate(field: "cars" = $innerrowlist)
innerrowlist: rowCreate(field: "template" = "element_template_name"; field: "data" = $inner_data)
inner_data: selectRowList(table: 'some_table_with_data'; field: 'vehicle_number'; field: 'vin'; field: 'current_mileage'; field: 'mileage_next'; field: 'remaining_distance'; field: 'type_of_work'; where: 'current_mileage' != ""; where: 'remaining_distance' <= 5000; order: 'vehicle_number' asc)