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


Дополнительные вычисления в шаблонах печати html


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

#1 wondertalik

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

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 26 Ноябрь 2012 - 01:18

В кб используется smary 3, в котором теги {php} объявлены как deprecated. Поэтому хотелось бы иметь возможность вставлять свои вычисления на пхп в шаблон. А сделать это можно в виде дополнительного многострочного поля ввода, наподобии "Заголовка шаблона". Или я ошибаюсь? Вычисления можно вставлять какими-то другими способами?

#2 CbCoder

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

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

Отправлено 26 Ноябрь 2012 - 09:20

Вычисляемые поля?

#3 wondertalik

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

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 26 Ноябрь 2012 - 09:58

Просмотр сообщенияCbCoder (26 Ноябрь 2012 - 09:20) писал:

Вычисляемые поля?
Не обязательно, вставка любой логики. Например, необходимо распечатывать с подчиненных таблиц только под 19 строк на одном листе, при этом листы необходимо нумеровать. На каждом листе есть, повторяющиеся шапка и подвал(например, акт прихода). Для того чтобы это осуществить, нужно считать количество символов в каждом поле строки и сколько места(1,2,3...строк они займут), далее отнимать это количество от 19. Таким образом расчитать сколько строк я могу вывести на одну страницу из подчиненной таблицы на листе или же сколько пустых строк мне нужно добавить, если строки из подчиненной таблицы занимают места меньше 19 строк.

#4 CbCoder

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

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

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

И каким образом это можно реализовать через дополнительное поле для вычислений в настройках шаблона, не совсем понял?

И почему нельзя реализовать через логику самого smarty? Там тоже можно использовать функции и считать кол-во символов.

#5 wondertalik

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

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

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

Просмотр сообщенияCbCoder (26 Ноябрь 2012 - 10:11) писал:

И каким образом это можно реализовать через дополнительное поле для вычислений в настройках шаблона, не совсем понял?
Прямые запросы к таблице, любые вычисления на пхп, подготовка любых данных, регистрация на выходе нужных структур через $smarty->assign().

Просмотр сообщенияCbCoder (26 Ноябрь 2012 - 10:11) писал:

И почему нельзя реализовать через логику самого smarty? Там тоже можно использовать функции и считать кол-во символов.
Это тривиальная задача, одна из.... Насколько я помню, изменения значения переменных в цикле не поддерживается. Тыкните меня, если я не прав. По функциям пойду курить доки.

Сообщение отредактировал wondertalik: 26 Ноябрь 2012 - 10:30


#6 CbCoder

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

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

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

Цитата

любые вычисления на пхп
Для этого можно использовать вычисляемые поля, кроме того, мы можем добавить вычисляемые переменные в сам шаблон, по аналогии как это было сделано для doc/odt/rtf/xsl. Это не то, что вы имели ввиду?

Цитата

Насколько я помню, изменения значения переменных в цикле не поддерживается
Почему нет? По-моему менять можно любые переменные. См. документацию по смарти.

#7 wondertalik

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

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

Отправлено 26 Ноябрь 2012 - 11:37

Просмотр сообщенияCbCoder (26 Ноябрь 2012 - 10:42) писал:

Для этого можно использовать вычисляемые поля, кроме того, мы можем добавить вычисляемые переменные в сам шаблон, по аналогии как это было сделано для doc/odt/rtf/xsl. Это не то, что вы имели ввиду?
Было бы здорово, если бы вы их добавили. Стало бы возможно формировать отчеты любой сложности и конфигурации.

#8 wondertalik

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

  • Пользователи
  • PipPipPip
  • 1 159 сообщений
  • Пол:Мужчина
  • Город:Кривой Рог, Украина

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

Почему добавляю конструкцию в заголовок шаблона переменная не создается.
{$count_str='19'}
А если в тело шаблона, то все прекрасно создается?

Upd:
Разобрался. Нужно обязательно указывать область видимости scope='root | parent | global '

Это касается как конструкции {assign}, так и короткой формы:
{assign var="count_str" value='19' scope='parent'}
{$count_str='19' scope='parent'
'

Сообщение отредактировал CbCoder: 26 Ноябрь 2012 - 14:45






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

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