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

Пишите ваши предложения здесь.
Аватара пользователя
Antonyous99
Сообщения: 609
Зарегистрирован: 18 авг 2019, 09:22
Имя: Антон Владимирович
Откуда: Санкт-Петербург
Организация: ООО "РИКОМ-Сервис"
Контактная информация:

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

Сообщение Antonyous99 »

Условный вывод частей шаблона, как в Smarty:

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

{if {$Сушилки (параметры).Таймер} > 0}
- таймер электронный ТЭ-15: {$Сушилки (параметры).Таймер} шт.<br />
{/if}
То есть, выводить или не выводить определенную часть шаблона в зависимости от значения соответствующего поля.
Очень надо! Иначе шаблоны не гибкие совсем! Трудно использовать.
Последний раз редактировалось Antonyous99 29 мар 2021, 18:39, всего редактировалось 1 раз.
ПУЛЬТ УПРАВЛЕНИЯ БИЗНЕСОМ
ERP/CRM "под ключ"
antonM
Сообщения: 20
Зарегистрирован: 24 янв 2020, 10:39
Имя: Anton
Откуда: Belarus

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

Сообщение antonM »

Поддерживаю, условный вывод очень нужен и позволит более гибко выводить информацию.
Аватара пользователя
Antonyous99
Сообщения: 609
Зарегистрирован: 18 авг 2019, 09:22
Имя: Антон Владимирович
Откуда: Санкт-Петербург
Организация: ООО "РИКОМ-Сервис"
Контактная информация:

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

Сообщение 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".
ПУЛЬТ УПРАВЛЕНИЯ БИЗНЕСОМ
ERP/CRM "под ключ"
tax
Сообщения: 326
Зарегистрирован: 14 ноя 2016, 15:12
Имя: Николай
Откуда: Украина, Сумы
Организация: ТОВ "Кинопрокат"

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

Сообщение tax »

Класс, мне такого функционала давно не хватало. Давал предложение скрывать пустые таблицы, но видимо не сильно актуально для большинства.
Есть одна "ложка дёгтя" в Вашем решении. Скрытые данные выводятся на печать и в файл ((
Аватара пользователя
Antonyous99
Сообщения: 609
Зарегистрирован: 18 авг 2019, 09:22
Имя: Антон Владимирович
Откуда: Санкт-Петербург
Организация: ООО "РИКОМ-Сервис"
Контактная информация:

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

Сообщение Antonyous99 »

Используйте версию 2.8 и только печать (в т.ч. и PDF) через драйвер принтера.
ПУЛЬТ УПРАВЛЕНИЯ БИЗНЕСОМ
ERP/CRM "под ключ"
tax
Сообщения: 326
Зарегистрирован: 14 ноя 2016, 15:12
Имя: Николай
Откуда: Украина, Сумы
Организация: ТОВ "Кинопрокат"

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

Сообщение tax »

В смысле версию "руководителя" ?
проверял на версии 2.8.3
печать идёт через драйвер принтера.

JS код вставил в код html шаблона для экспорта.
может я его не туда подключил?
tax
Сообщения: 326
Зарегистрирован: 14 ноя 2016, 15:12
Имя: Николай
Откуда: Украина, Сумы
Организация: ТОВ "Кинопрокат"

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

Сообщение 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>
Аватара пользователя
Antonyous99
Сообщения: 609
Зарегистрирован: 18 авг 2019, 09:22
Имя: Антон Владимирович
Откуда: Санкт-Петербург
Организация: ООО "РИКОМ-Сервис"
Контактная информация:

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

Сообщение 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>
ПУЛЬТ УПРАВЛЕНИЯ БИЗНЕСОМ
ERP/CRM "под ключ"
tax
Сообщения: 326
Зарегистрирован: 14 ноя 2016, 15:12
Имя: Николай
Откуда: Украина, Сумы
Организация: ТОВ "Кинопрокат"

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

Сообщение 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 из шаблона
tax
Сообщения: 326
Зарегистрирован: 14 ноя 2016, 15:12
Имя: Николай
Откуда: Украина, Сумы
Организация: ТОВ "Кинопрокат"

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

Сообщение tax »

Скрины
окно
окно
файл
файл
Ответить