Шаблоны печати
#1
Отправлено 07 Июнь 2010 - 12:24
Хочу распечатать таблицу, в которой выводились бы все контрагенты со всеми след продлениями лицензии.
Написал такой код HTML:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body><table width="200" border="1">
<tr>
<th scope="col"><span class="excel2">Номер строки</span></th>
<th scope="col"><span class="excel2" style="border-left:none;">Ресторан</span></th>
<th scope="col"><span class="excel2" style="border-left:none;">Следующее продление</span></th>
</tr>
<tr>
<th scope="row"><span class="excel2" style="border-top:none;">{$_NumberOfRecord}</span></th>
<td><span class="excel2" style="border-top:none;border-left:none;">{$Kontragent.Nazvanie}</span></td>
<td><span class="excel2" style="border-top:none;border-left:none;">{$Sled.prodlenie}</span></td>
</tr>
</table>
<p> </p>
</body>
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body><table width="200" border="1">
<tr>
<th scope="col"><span class="excel2">Номер строки</span></th>
<th scope="col"><span class="excel2" style="border-left:none;">Ресторан</span></th>
<th scope="col"><span class="excel2" style="border-left:none;">Следующее продление</span></th>
</tr>
<tr>
<th scope="row"><span class="excel2" style="border-top:none;">{$_NumberOfRecord}</span></th>
<td><span class="excel2" style="border-top:none;border-left:none;">{$Kontragent.Nazvanie}</span></td>
<td><span class="excel2" style="border-top:none;border-left:none;">{$Sled.prodlenie}</span></td>
</tr>
</table>
<p> </p>
</body>
</html>
В таблице 2 строчки -1 заглавие и 2 данные. Как сделать, чтобы повторялась только 2 строка а не 1и 2 вместе (скриншот в прицепе)
#2
Отправлено 07 Июнь 2010 - 12:46
Имею ввиду следующее:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
....
</html>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
....
</html>
Судя по скриншоту, в программе у вас дублированного кода нет, просто вы выделили две строки на печать и у вас вышло две отдельные таблички. В этом случае вам нужно разделить код шаблона на "шапку" (выводится один раз в начале шаблона), "тело" (выводится для каждой строки) и соответственно "подвал"
Часть которую следует занести в шапку шаблона:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <title>Untitled Document</title> </head> <body><table width="200" border="1"> <tr> <th scope="col"><span class="excel2">Номер строки</span></th> <th scope="col"><span class="excel2" style="border-left:none;">Ресторан</span></th> <th scope="col"><span class="excel2" style="border-left:none;">Следующее продление</span></th> </tr>
Часть которую следует занести в тело шаблона:
<tr> <th scope="row"><span class="excel2" style="border-top:none;">{$_NumberOfRecord}</span></th> <td><span class="excel2" style="border-top:none;border-left:none;">{$Kontragent.Nazvanie}</span></td> <td><span class="excel2" style="border-top:none;border-left:none;">{$Sled.prodlenie}</span></td> </tr>
Часть которую следует занести в подвал:
</table> <p> </p> </body> </html>
#3
Отправлено 19 Апрель 2011 - 17:49
дату вывел в русской локали через
{setlocale(LC_TIME,'ru_RU.UTF8')}но выскакивает предупреждение
Warning: setlocale() [function.setlocale]: Passing locale category name as string is deprecated. Use the LC_* -constants instead in /home/m/megatavr/public_html/cb/include/Smarty/sysplugins/smarty_internal_template.php(425) : eval()'d code on line 19
ru_RU.UTF8
как правильно установить локаль?
Творческая группа "ТАВР".
www.TAVR.pro Художественная ковка, металлоконструкции.
www.СтолМет.рф Складные столы, стулья и системы для их хранения
#4
Отправлено 19 Апрель 2011 - 18:24
#5
Отправлено 19 Апрель 2011 - 18:28
Разработчик (19.4.2011, 18:24) писал:
решил воспользоваться php функцией, но она либо не дружит со smarty или с eval
Творческая группа "ТАВР".
www.TAVR.pro Художественная ковка, металлоконструкции.
www.СтолМет.рф Складные столы, стулья и системы для их хранения
#6
Отправлено 19 Апрель 2011 - 18:38
#7
Отправлено 19 Апрель 2011 - 18:48
Разработчик (19.4.2011, 18:38) писал:
Творческая группа "ТАВР".
www.TAVR.pro Художественная ковка, металлоконструкции.
www.СтолМет.рф Складные столы, стулья и системы для их хранения
#8
Отправлено 19 Апрель 2011 - 18:55
andibrag (19.4.2011, 19:48) писал:
#9
Отправлено 19 Апрель 2011 - 18:59
#10
Отправлено 19 Апрель 2011 - 18:59
Разработчик (19.4.2011, 18:55) писал:
время будет добью smarty
Творческая группа "ТАВР".
www.TAVR.pro Художественная ковка, металлоконструкции.
www.СтолМет.рф Складные столы, стулья и системы для их хранения
#11
Отправлено 31 Март 2012 - 16:40
возможно ли в шаблоне форматировать дату в нужную сторону?
например, дата в таблице в формате с часами и минутами, а нужно только день-месяц-год
В документации smarty должно выглядеть так:
{$Data | date_format: %d.%m.%y}
В шаблоне не работает. Не поддерживает или я что-то делаю не так?
И вдогонку, можно ли к дате как то прибавлять дни прямо в шаблоне?
Сообщение отредактировал Bob_chemist: 31 Март 2012 - 16:42
#12
Отправлено 02 Апрель 2012 - 09:13
#13
Отправлено 07 Апрель 2012 - 12:08
{DataPropis field=(date("Y-m-d 00:00:00", strtotime($Data) + 60*60*24)) format="d.m.Y"}вот такая конструкция не работает. Выдает 01.01.1970. Ошибка в коде, или он в принципе не работоспособен?
Можно, конечно, отдельное поле с вычислением сделать специально для этого, но не хочется, их и так полно
Сообщение отредактировал Bob_chemist: 07 Апрель 2012 - 12:08
#14
Отправлено 07 Апрель 2012 - 14:27
#15
Отправлено 23 Ноябрь 2012 - 08:59
return "Срок: ".date('d.m.y', $row['f158'])возвращает 'Срок: 01.01.70'
код
return "Срок: ".date('d.m.y', strtotime($row['f158']));
возвращает 'Срок: 01.11.12', но некорректно обрабатывает незаполненное поле (f158 - дата/время), получается 'Срок: 30.11.-1'
Сообщение отредактировал nk: 23 Ноябрь 2012 - 08:59
#16
Отправлено 23 Ноябрь 2012 - 10:36
if ($row['f158']!="0000-00-00 00:00:00") return "Срок: ".date('d.m.y', strtotime($row['f158'])); else return "Срок:";
#17
Отправлено 23 Ноябрь 2012 - 10:44
#18
Отправлено 23 Ноябрь 2012 - 10:46
return "Срок 1-й главы: ".date('d.m.y', strtotime($row['f160'])). "\r\nСрок 2-й главы: ".date('d.m.y', strtotime($row['f161'])). "\r\nСрок 3-й главы: ".date('d.m.y', strtotime($row['f162'])). "\r\nСрок 4-й главы: ".date('d.m.y', strtotime($row['f163'])). "\r\nСрок 5-й главы: ".date('d.m.y', strtotime($row['f164'])). "\r\nСрок 6-й главы: ".date('d.m.y', strtotime($row['f165'])). "\r\nВремя: ".$row['f159'];
Других вариантов нет, чтобы в одной функции?
#19
Отправлено 23 Ноябрь 2012 - 10:48
return "Срок: ".form_local_time($row['f158']); // d.m.Y
#20
Отправлено 23 Ноябрь 2012 - 11:09
Количество пользователей, читающих эту тему: 2
0 пользователей, 2 гостей, 0 анонимных