Не считает итог в шаблоне печати
#1
Отправлено 15 Март 2013 - 11:49
В шаблоне печати что бы посчитать итоговую сумму добавляю строчку:
{if $summa}{else}{SumFormat value ={$Summa}+{$Summa}{/if}
На что мне программа выдает ошибку:
Fatal error: Uncaught exception 'SmartyCompilerException' with message 'Syntax Error in template "string:" on line 54 "{if $summa}{else}{SumFormat value ={$Summa}+{$Summa}{/if}</p>" - Unexpected "{/", expected one of: "}" , " "' in C:\Program Files\MSTL\ClientBase\www\include\Smarty\sysplugins\smarty_internal_templatecompilerbase.php:441 Stack trace: #0 C:\Program Files\MSTL\ClientBase\www\include\Smarty\sysplugins\smarty_internal_templateparser.php(2889): Smarty_Internal_TemplateCompilerBase->trigger_template_error() #1 C:\Program Files\MSTL\ClientBase\www\include\Smarty\sysplugins\smarty_internal_templateparser.php(2954): Smarty_Internal_Templateparser->yy_syntax_error(32, '{/') #2 C:\Program Files\MSTL\ClientBase\www\include\Smarty\sysplugins\smarty_internal_smartytemplatecompiler.php(51): Smarty_Internal_Templateparser->doParse(32, '{/') #3 C:\Program Files\MSTL\ClientBase\www\include\Smarty\sysplugins\smarty_internal_templatecompilerbase.php(82): Smarty_Internal_SmartyTemplateCompiler->doCompile('<p style="te in C:\Program Files\MSTL\ClientBase\www\include\Smarty\sysplugins\smarty_internal_templatecompilerbase.php on line 441
Что не правильно сделано?
Строку брал из базовой конфигурации шаблона для печати "счет"
#2
Отправлено 15 Март 2013 - 13:13
#3
Отправлено 15 Март 2013 - 13:26
Parse error: syntax error, unexpected ';' in C:\Program Files\MSTL\ClientBase\www\include\smarty_function.php(32) : eval()'d code on line 1
0 value = 12 775+12 775
Вот такой код получился:
{if $summa}{else}{SumFormat} value = {$subtable.Summa}+{$subtable.Summa}{/if}
В поле Сумма:
{$subtable.Summa}
#4
Отправлено 15 Март 2013 - 13:54
Вот как надо было:
{if $summa}{else}{SumFormat value ={$Summa}+{$Summa}}{/if}
Красным пометил пропущенную скобку, синим - то что она закрывает.
#5
Отправлено 15 Март 2013 - 14:18
{$subtable.Zayavka} {$subtable.Oborudovanie} {$subtable.Kolichestvo} {$subtable.Cena_za_ed} {$subtable.Summa}
{/foreach}
Итого: {if $Summa}{else}{SumFormat value = {$Summa}+{$Summa}}{/if}
В поле итого считает: 0
#6
Отправлено 15 Март 2013 - 14:49
Может, на самом деле вы хотели написать:
{if $Summa}{SumFormat value = {$Summa}+{$Summa}}{/if}
?
#7
Отправлено 15 Март 2013 - 15:11
{if $Summa}{SumFormat value = {$Summa}+{$Summa}}{/if} - не считает
{if $subtable.Summa}{SumFormat value = {$Summa}+{$Summa}}{/if} - считает "0"
{if $subtable.Summa}{SumFormat value = {$subtable.Summa}+{$subtable.Summa}}{/if} - не считает
#8
Отправлено 15 Март 2013 - 16:24
Цитата
Значение value необходимо задавать строго в кавычках: {SumFormat value = "{$subtable.Summa}+{$subtable.Summa}"}
#9
Отправлено 18 Март 2013 - 09:10
Пошел другим путем, добавил строку Итого в главную таблицу. Задал вычесление:
$sqlQuery = "SELECT sum(f1861*f1871) as summa FROM ".DATA_TABLE."16 WHERE status=0 AND f1791=$ID";
$res = mysql_query($sqlQuery);
$row = mysql_fetch_array($res);
$line['Сумма'] = $row['summa'];
Выдается ошибка:
Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Program Files\MSTL\ClientBase\www\include\functions1.php(264) : eval()'d code on line 3
#10
Отправлено 18 Март 2013 - 12:15
#11
Отправлено 18 Март 2013 - 12:53
Поменял строку, ошибка:
Unknown column 'f1761' in 'field list'
#12
Отправлено 18 Март 2013 - 13:16
#13
Отправлено 18 Март 2013 - 13:34
f1761 - поле колличество (в подчиненной таблице).
f1771 - поле сумма (в подчиненной таблице).
TABLE."31 - подчиненная таблица.
f2341 - поле ID подчиненной таблицы.
Все верно?
#14
Отправлено 18 Март 2013 - 14:03
$sqlQuery = "SELECT sum(f1761*f1851) as summa FROM ".DATA_TABLE."31 WHERE status=0 AND f1741=$ID";
$res = mysql_query($sqlQuery) or die(mysql_error());
$row = mysql_fetch_array($res);
$line['Сумма'] = $row['summa'];
Вот ошибка:
Unknown column 'f1761' in 'field list'
Хотя поле 1761 - колличество оборудования. (/edit_field.php?table=151&field=1761) Из за чего ошибка.
Вернул фразу mysql_query($sqlQuery) на место, ошибка на верху экрана (Warning: mysql_fetch_array(): supplied argument is not a valid MySQL result resource in C:\Program Files\MSTL\ClientBase\www\include\functions1.php(264) : eval()'d codeon line 3) ,и все равно ни чего не считает (при выводе на печать "0" и в таблице в строке пусто).
Сообщение отредактировал numenorec91: 18 Март 2013 - 14:25
#15
Отправлено 18 Март 2013 - 14:57
Цитата
По этой ссылке id таблицы - 151. А у вас в запросе - 31. Почему? Разумеется будет ошибка.
#16
Отправлено 18 Март 2013 - 15:18
151 - подчиненная
сейчас на 151 поменял вот что получилось:
SQL error in
UPDATE `f_data31` SET `Сумма`='2649783' WHERE `id`=46
Unknown column 'Сумма' in 'field list'
In function:
C:\Program Files\MSTL\ClientBase\www\view_line2.php(1413) : calc_line()
C:\Program Files\MSTL\ClientBase\www\include\functions1.php(266) : form_event_recurs()
C:\Program Files\MSTL\ClientBase\www\include\functions1.php(225) : data_update()
#17
Отправлено 18 Март 2013 - 16:59
Цитата
151 - подчиненная
Вы считаете сумму по подчиненной таблице, соответственно и в запросе у вас должен быть id подчиненной таблицы, а не основной, т.е. 151.
Цитата
UPDATE `f_data31` SET `Сумма`='2649783' WHERE `id`=46
Unknown column 'Сумма' in 'field list'
Тоже самое - теперь отсутствует поле Сумма в основной таблице (прописано у вас в коде в переменной $line).
Либо вы действительно не добавили это поле, либо опечатка, к примеру буква С латинская.
#19
Отправлено 19 Март 2013 - 17:46
#20
Отправлено 21 Март 2013 - 18:14
Кстати, тоже самое касается и поля "маркировка", про которое вы заодно спросили.
Количество пользователей, читающих эту тему: 2
0 пользователей, 2 гостей, 0 анонимных