|
122.9 Кб |
|
| Доброго времени суток!
Может кто-то сталкивался с библиотекой mPdf, подскажите как реализовать: выводится таблица на несколько страниц, по окончании страницы должна быть итоговая строка по этой странице
<table width="1200" border="0" cellspacing="0" cellpadding="0">
<!--шапка повторяется на каждой новой странице-->
<thead>
<tr>
<td colspan="2" align="center">Номер</td>
<td rowspan="2" align="center">Наименование работ</td>
<td width="80" rowspan="2" align="center">Номер<br>единичной<br>расценки</td>
<td width="80" rowspan="2" align="center">Единица<br>измерения</td>
<td colspan="3" align="center">Выполнено работ</td>
</tr>
<tr>
<td width="50" align="center">по порядку</td>
<td width="70" align="center">позиции по смете</td>
<td width="100" align="center">количество</td>
<td width="130" align="center">цена за<br>единицу, руб.</td>
<td width="130" align="center">стоимость, руб.</td>
</tr>
<tr>
<td align="center"><strong>1</strong></td>
<td align="center"><strong>2</strong></td>
<td align="center"><strong>3</strong></td>
<td align="center"><strong>4</strong></td>
<td align="center"><strong>5</strong></td>
<td align="center"><strong>6</strong></td>
<td align="center"><strong>7</strong></td>
<td align="center"><strong>8</strong></td>
</tr>
</thead>
<!--итоговая строка должна быть в конце каждой страницы-->
<tfoot>
<tr>
<td> </td>
<td> </td>
<td> </td>
<td> </td>
<td align="right"><b>Итого</b></td>
<td align="right"><b><?=$kol;?></b></td>
<td align="center"><b>X</b></td>
<td align="right"><b><?=$sumStoka;?></b></td>
</tr>
</tfoot>
<!--тело таблицы - выполняем цикл-->
<tbody>
<?for($i=1; $i<=count($job); $i++):?>
<tr>
<td align="center" valign="top"></td>
<td align="center" valign="top"></td>
<td align="left" valign="top"></td>
<td align="right" valign="top"></td>
<td align="right" valign="top"></td>
<td align="right" valign="top"><?=$job[$i]['quantity'];?></td>
<td align="right" valign="top"><?=$job[$i]['price'];?></td>
<td align="right" valign="top"><?=$sum;?></td>
</tr>
<?$kol+=$job[$i]['quantity'];
$sumStoka+=$job[$i]['quantity']*$job[$i]['price'];?>
<?endfor;?>
</tbody>
</table>
|
Непонимаю как можно вернуть в tfoot значения из цикла, который выполняется ниже?
Или второй вариант посчитать сколько помещается строк на страницу, тогда считать сначала tfoot, а потом выводить цикл, а как посчитать сколько помещается строк на страницу? строки в таблице могут быть разной высоты.
Подскажите как реализовать итоговую строку. | |
|
|
|
|
|
|
|
для: svoboda
(11.02.2017 в 11:11)
| | Ну судя по коду не на каждой странице, а в конце каждой таблицы, а уж как получится при экспорте в PDF только богу известно. Суть вопроса не имеет отношения непосредственно к MPDF, а скрипту. Чтобы все выводилось в нужном месте нужно правильно построить логику вывода таблиц. | |
|
|
|
|
|
|
|
для: confirm
(12.02.2017 в 13:45)
| | Таблица одна - при генерации pdf, таблица разрывается по страницам и по-этому приходится делать итоговую строку на каждой странице. Тут: http://www.uamedwed.com/blog/web/fpdf-urok-6-ssylki-i-vyvod-html.html написано что добавляют новый метод для - который как я понимаю отслеживает когда происходит разрыв таблицы? | |
|
|
|
|
|
|
|
для: svoboda
(12.02.2017 в 14:06)
| | Методами библиотеки вы можете управлять только выводом. То есть, если вы гарантировано знаете где будет разрыв на новую страницу, в этом месте и вставляйте итог. Иначе не получится, MPDF это конвертор из одного в другое, расчетами он не занимается. | |
|
|
|
|
|
|
|
для: confirm
(13.02.2017 в 07:16)
| | В том то и дело, что я не знаю где будет разрыв. Каждая строка может быть разной высоты. | |
|
|
|
|
|
|
|
для: svoboda
(13.02.2017 в 08:48)
| | Но от библиотеки вы чего хотите? В ней же нет такого, как например Javascript у клиента, который бы мог получить необходимое для расчета из страницы и поместить в нужное место. | |
|
|
|