Перейти к содержимому


Условия в шаблонах печати.

печать

Сообщений в теме: 9

#1 AChekin

    Участник

  • Пользователи
  • PipPip
  • 16 сообщений

Отправлено 21 Ноябрь 2012 - 12:55

Есть задача реализовать следующее:

В одной из таблиц есть несколько полей с логическими выражениями:

Выражение 1 (Да/Нет)
Выражение 2 (Да/Нет)
Выражение 3 (Да/Нет)
Выражение 4 (Да/Нет)
Выражение 5 (Да/Нет)

Допустим в какой-то из строк данной таблицы есть такая комбинация значений


Выражение 1 = Нет
Выражение 2 = Да
Выражение 3 = Нет
Выражение 4 = Нет
Выражение 5 = Да

Вопрос: можно ли как-то настроить шаблон печати так, чтобы в вывод на печать попадали только поля со значением логического выражения "Да", а все поля со значением "Нет" отсеивались?

#2 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 21 Ноябрь 2012 - 14:06

{if $Pole1==Да}Мой текст{/if}

где $Pole1 - переменная поля, вставляемая из списка полей в шаблоне

Если Поле1 равно "Да" - напечатает "Мой текст", иначе ничего не выводится.

#3 UmaCat

    Активный участник

  • Пользователи
  • PipPipPip
  • 122 сообщений

Отправлено 22 Ноябрь 2012 - 10:36

Просмотр сообщенияAChekin (21 Ноябрь 2012 - 12:55) писал:

Есть задача реализовать следующее:

В одной из таблиц есть несколько полей с логическими выражениями:

Выражение 1 (Да/Нет)
Выражение 2 (Да/Нет)
Выражение 3 (Да/Нет)
Выражение 4 (Да/Нет)
Выражение 5 (Да/Нет)

Допустим в какой-то из строк данной таблицы есть такая комбинация значений


Выражение 1 = Нет
Выражение 2 = Да
Выражение 3 = Нет
Выражение 4 = Нет
Выражение 5 = Да

Вопрос: можно ли как-то настроить шаблон печати так, чтобы в вывод на печать попадали только поля со значением логического выражения "Да", а все поля со значением "Нет" отсеивались?

в описании smarty много подобного
пришлось поизучать самому, но результат стоит того
http://www.smarty.ne...function.if.tpl

Руководство по Smarty на русском http://www.smarty.net/docsv2/ru/ - там с примерами даже. очень удобно.

Вот к примеру прямо в шаблоне печати такое
{if {$Kontragent.INN_VAT} neq NULL}VAT: {$Kontragent.INN_VAT}{/if}

вот более сложное (только первую строку подтаблицы выводит
{if $smarty.foreach.Detalizacii.first}CLIENT REF: {$subtable.Client_REF}
OUR REF: {$subtable.Operacionnye_stati}
Loading Place: {$subtable.Loading_Place}
Loading Port: {$subtable.Loading_Port}
{/if}

все это прямо в шаблоне, никаких вычислений специально не пишется

Сообщение отредактировал UmaCat: 22 Ноябрь 2012 - 10:37


#4 AChekin

    Участник

  • Пользователи
  • PipPip
  • 16 сообщений

Отправлено 23 Ноябрь 2012 - 12:13

Категорически спасибо огромное.
Буду разбираться.

#5 praktikum74

    Новичок

  • Пользователи
  • Pip
  • 5 сообщений

Отправлено 12 Ноябрь 2013 - 17:17

Помогите разобраться, пожалуйста.

Мне нужно в xls шаблоне при генерации проверять дату оказания услуги (хранится в таблице). Если равно сегодня, то добавляем в шаблон, если нет, то игнорируем.

Вставляю {$smarty.now|date_format}, но не отображается дата.

#6 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 15 Ноябрь 2013 - 11:11

Вы похоже путаете xls-шаблоны с html-шаблонами. В Excel документах smarty переменные не могут использоваться, это абсолютно другой формат файла. См. документацию.

#7 praktikum74

    Новичок

  • Пользователи
  • Pip
  • 5 сообщений

Отправлено 18 Ноябрь 2013 - 07:14

Да, запутался с шаблонами. Нашел в документации пример с заданием условий в шаблоне:

{(Наша компания.Ставка НДС && Наша компания.НДС включен в стоимость == 'Да'?(Позиции счет-фактуры.Цена*(1-(Наша компания.Ставка НДС/(100+Наша компания.Ставка НДС)))):Позиции счет-фактуры.Цена)}

Подскажите, пожалуйста, как прописать следующее условие в xls-шаблоне:

если дата обследования пациента (берется из таблицы в КБ) равна текущей дате, то выводим в шаблон печати,
если дата не равна текущей, то не выводим в шаблон.

Спасибо!

#8 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 18 Ноябрь 2013 - 10:51

{Дата обследования == date("d.m.Y")?"Выводимый текст":""}

#9 praktikum74

    Новичок

  • Пользователи
  • Pip
  • 5 сообщений

Отправлено 19 Ноябрь 2013 - 20:01

Спасибо, все получилось.

Правда теперь, если условие не выполняется, то вставляются в шаблон пустые строки.

Написал на VBA скрипт, удаляющий эти пустые строки. Но при загрузке шаблона в Клиентскую Базу мой VBA скрипт стирается.

Так и предусмотрено?

#10 CbCoder

    Активный участник

  • Программист ООО "КБ"
  • PipPipPip
  • 8 762 сообщений
  • Пол:Мужчина
  • Город:Казань

Отправлено 20 Ноябрь 2013 - 08:36

По всей видимости модуль для работы с xls-файлами в программе не поддерживает vba-скрипты.





Количество пользователей, читающих эту тему: 1

0 пользователей, 1 гостей, 0 анонимных