Nested tables
Ik zit met een probleem waar ik maar niet uit kom. Statisch lukt het me om de opbouw te maken. Echter om het dynamisch te maken.. dat is een ander verhaal.
Ik maak gebruik van de library MPDF om een PDF te genereren op basis van een XML.
Met MPDF is het mogelijk om een table te nesten binnen in een TD. De structuur hiervan heb ik al werkend:
https://pastebin.com/embed_iframe/zuQAykCB
In het kort worden deze 3 regels herhaalt:
1 TR met 7 TD's met algemene informatie
2 TR met daarin 1 lege TD en 1 grote TD met colspan 6. In deze lege TD zit de nested table. Deze bevatten alle informatie
3 TR welke optioneel getoond wordt wanneer bepaalde velden bestaan in de XML
Waar ik op vastloop is het volgende; bij punt 2 wordt steeds de TR herhaalt met daarin de table en de TR's en TD's. In deze nested table wil ik dat er na een bepaalde hoeveelheid TD's een nieuwe TR wordt gemaakt. En als er een bepaalde hoeveelheid TR's in de nested table bestaan dat er een hele nieuwe regel gemaakt wordt. Deze nieuwe regel bevat dan weer de inhoud zoals bij punt 2 beschreven.
Ik hoop dat ik het duidelijk heb beschreven, de code die ik nu heb is als volgt:
<code>
Code (php)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
echo '<table><tbody>';
foreach($orderConfArray as $orderConfLine ) :
$orderConfEconData = isset($orderConfLine['EconData']) ? $orderConfLine['EconData'] : '';
foreach($orderConfEconData as $key => $value) :
$x++;
if($x === 1 ) :
echo '
<tr>
<td>blank col</td>
<td colspan="6">
<table cellspacing="2" class="inner" width="100%">
<tbody>';
endif;
echo '<tr>';
echo '<td>';
echo 'content';
echo '</td>';
echo '</tr>';
if($x === 16 ) :
echo '
</tbody>
</table>
</td>
</tr>';
$x = 0;
$y = 0;
endif;
endforeach;
endforeach;
echo '</tbody></table>'; ?>
echo '<table><tbody>';
foreach($orderConfArray as $orderConfLine ) :
$orderConfEconData = isset($orderConfLine['EconData']) ? $orderConfLine['EconData'] : '';
foreach($orderConfEconData as $key => $value) :
$x++;
if($x === 1 ) :
echo '
<tr>
<td>blank col</td>
<td colspan="6">
<table cellspacing="2" class="inner" width="100%">
<tbody>';
endif;
echo '<tr>';
echo '<td>';
echo 'content';
echo '</td>';
echo '</tr>';
if($x === 16 ) :
echo '
</tbody>
</table>
</td>
</tr>';
$x = 0;
$y = 0;
endif;
endforeach;
endforeach;
echo '</tbody></table>'; ?>
</code>
Dit output het volgende: https://pastebin.com/GmVDKw7e, voor m'n gevoel heb ik het bijna. Maar de check op het diepste niveau in de nested table zelf krijg ik niet uitgevogeld. Iemand die me hierbij kan helpen?
Gewijzigd op 01/12/2020 13:40:42 door Nick Knoops
Er zijn nog geen reacties op dit bericht.