Можно ли суммировать столбец с библиотекой pdfmake?

Я хочу суммировать столбец, чтобы получить общий итог из файла PDF, созданного pdfmake

Пример данных:

#ID ItemName Description          Unit  Qty  Amount    Subtotal
1   Mawe     Misumari ya ukuta    KG    10    3,000.00  30,000.00
2   Mawe     Misumari ya ukuta    PCS   10   50,000.00 500,000.00
3   Mawe     Kwa ajili ya misingi KG    20    3,000.00  60,000.00

Поэтому я хочу суммировать столбец промежуточных итогов с pdfmake во время экспорта и получить что-то вроде

#ID ItemName Description          Unit  Qty  Amount    Subtotal
1   Mawe     Misumari ya ukuta    KG    10    3,000.00  30,000.00
2   Mawe     Misumari ya ukuta    PCS   10   50,000.00 500,000.00
3   Mawe     Kwa ajili ya misingi KG    20    3,000.00  60,000.00
-----------------------------------------------------------------
Total:                                                 590,000.00
-----------------------------------------------------------------

Любая идея, пожалуйста.

1

Решение

мы также можем рассчитать на странице просмотра вручную этим

<?php $total=0; ?>
<?php foreach($query as $row): ?>
<?php $total += $row['Subtotal'];?>

<?php endforeach ?>

И мы можем показать это <?php echo"$total_qty"?>

1

Другие решения

Нет. PDFMake делает PDF-файлы, но это не калькулятор, и его не волнует содержание, которое он печатает. Вы должны подвести итоги сами.

0

Спасибо, ребята, я решил это, я просто использовал здесь решение, которое, я думаю, могло бы помочь кому-то там.
Надеюсь, что код читабелен и прост для понимания. Еще раз спасибо.

"footerCallback": function ( row, data, start, end, display ) {
var api = this.api(), data;
var intVal = function ( i ) {
return typeof i === 'string' ?
i.replace(/[\$,]/g, '')*1 :
typeof i === 'number' ?
i : 0;
};
total = api
.column( 6 ) //Getting the column # i want to sum
.data()
.reduce( function (a, b) {
return intVal(a) + intVal(b);
}, 0 );
pageTotal = api
.column( 6, { page: 'current'} )
.data()
.reduce( function (a, b) {
return intVal(a) + intVal(b);
}, 0 );
$( api.column( 6 ).footer() ).html(
'TZS '+ pageTotal.toString().replace(/,/g, "").replace(/\B(?=(\d{3})+(?!\d))/g, ",") +'/='+
'( TZS '+ total.toString().replace(/,/g, "").replace(/\B(?=(\d{3})+(?!\d))/g, ",") +'/= total)'
);
}
0
По вопросам рекламы [email protected]