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


Произведение в шаблоне печати


В теме одно сообщение

#1 sniper3d

    Новичок

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

Отправлено 20 Июнь 2013 - 14:03

Доброго дня
Незнаю баг это или что, но проблема существует уже давно.

Есть поля:

Единиц - поле Числовое
Цена за единицу - поле Числовое
Сумма - поле Текст

Сумма = Единиц * Цена за единицу

в шаблоне {$subtable.Edinic * $subtable.Cena_za_edinicu}

проблема в том что при сохранении в таблице цифры сохраняются в виде "2 000", "5 000 000" разделенные пробелом и вычисление уже не работает.

Раньше проблему решал заменой числовых полей на текстовые. Но это не верно. При вводе можно точку или запятую поставить.

Что посоветуете.

#2 CbCoder

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

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

Отправлено 20 Июнь 2013 - 18:30

Это не баг. Но вы правы, производить напрямую какие-либо вычисления с числовыми полями в шаблоне нельзя, из-за их представления в локальном формате. Тем не менее, выход есть. Для этого необходимо воспользоваться функцией SumFormat. Например, в вашем случае:

{SumFormat value="{$subtable.Edinic}*{$subtable.Cena_za_edinicu}" digits=0}

Поясняю: функция преобразует числовые поля внутри аргумента "value" обратно во внутренний числовой формат, после чего с ними можно производить любые арифметические действия (-,+,*,/), а затем выводит результат снова в локальном (т.е. в русском, к примеру) формате. Аргумент "digits" при этом отвечает за количество цифр после запятой.





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

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