Страница 1 из 2

Вывод по условию в шаблонах печати (решено)

Добавлено: 11 янв 2021, 08:36
Antonyous99
Условный вывод частей шаблона, как в Smarty:

Код: Выделить всё

{if {$Сушилки (параметры).Таймер} > 0}
- таймер электронный ТЭ-15: {$Сушилки (параметры).Таймер} шт.<br />
{/if}
То есть, выводить или не выводить определенную часть шаблона в зависимости от значения соответствующего поля.
Очень надо! Иначе шаблоны не гибкие совсем! Трудно использовать.

Re: Вывод по условию в шаблонах экспорта / печати

Добавлено: 31 янв 2021, 21:22
antonM
Поддерживаю, условный вывод очень нужен и позволит более гибко выводить информацию.

Re: Вывод по условию в шаблонах экспорта / печати

Добавлено: 29 мар 2021, 18:36
Antonyous99
Долгожданное свершилось!
Теперь можно организовать условный вывод как в шаблонах типа html, так и html_code
Например:

Код: Выделить всё

<span id="summa">Сумма {#210:Сумма}</span> 
<script>
if (document.getElementById("summa").textContent == 'Сумма 0,00') 
document.getElementById("summa").style.display = "none";
</script>
То есть, если мы получаем строку "Сумма 0,00" - то скрываем ее, а если сумма не равна 0 - оставляем.
Немного громодзко, потому что это JS, можно, наверное, и JQuery в шаблон подключит, тогда код будет чуть короче.
Всех благ!
P.S. Это касается только вывода html, pdf и docx - там работать не будет. Надо подумать, как это решить. Но все-таки pdf можно получить, используя драйвер принтера "Сохранить в PDF".

Re: Вывод по условию в шаблонах печати (решено)

Добавлено: 13 апр 2021, 12:10
tax
Класс, мне такого функционала давно не хватало. Давал предложение скрывать пустые таблицы, но видимо не сильно актуально для большинства.
Есть одна "ложка дёгтя" в Вашем решении. Скрытые данные выводятся на печать и в файл ((

Re: Вывод по условию в шаблонах печати (решено)

Добавлено: 13 апр 2021, 12:24
Antonyous99
Используйте версию 2.8 и только печать (в т.ч. и PDF) через драйвер принтера.

Re: Вывод по условию в шаблонах печати (решено)

Добавлено: 13 апр 2021, 12:32
tax
В смысле версию "руководителя" ?
проверял на версии 2.8.3
печать идёт через драйвер принтера.

JS код вставил в код html шаблона для экспорта.
может я его не туда подключил?

Re: Вывод по условию в шаблонах печати (решено)

Добавлено: 13 апр 2021, 12:36
tax
такой код скрипта

Код: Выделить всё

<script>
if (document.getElementById("101").textContent == '') 
document.getElementById("100").style.display = "none";

if (document.getElementById("201").textContent == '') 
document.getElementById("200").style.display = "none";

if (document.getElementById("301").textContent == '') 
document.getElementById("300").style.display = "none";

if (document.getElementById("401").textContent == '') 
document.getElementById("400").style.display = "none";

if (document.getElementById("501").textContent == '') 
document.getElementById("500").style.display = "none";

if (document.getElementById("601").textContent == ''){ 
document.getElementById("600").style.display = "none";
}
</script>

Re: Вывод по условию в шаблонах печати (решено)

Добавлено: 13 апр 2021, 15:39
Antonyous99
Вы должны сначать присвоить id элемену, которым хотите управлять, например id="summa"
Потом по этому id получить содержание элемента и на его основании скрытьвать / открывать нужные элементы только те, у которых есть (вы им присвоили) id.

Код: Выделить всё

<span id="summa">Сумма {#210:Сумма}</span> 
<script>
if (document.getElementById("summa").textContent == 'Сумма 0,00') 
document.getElementById("summa").style.display = "none";
</script>

Re: Вывод по условию в шаблонах печати (решено)

Добавлено: 13 апр 2021, 16:06
tax
Всё так и есть. ИД назначены.

Код: Выделить всё

<div class="divTableBody" id="400">
<div class="divTableRow divTableHeading" style="background-color: #DDDDDD;">
<div class="divTableCell">Акустическое оборудование</div>

<div class="divTableCell" id="401">{#607:Сумма цен акустика}</div>
</div>

<div class="divTableRow">
<div class="divTableCell">{#entity31:219}</div>
</div>
</div>
И собственно в всплывающем окне всё красиво работает. Всё скрывается.
Но вот уже на печать и в файл прилетает не скрытое. Как будто для шаблона печати не срабатывает JS из шаблона

Re: Вывод по условию в шаблонах печати (решено)

Добавлено: 13 апр 2021, 16:17
tax
Скрины
окно
окно
файл
файл