sum Datatable

sum Datatable

silenssilens Posts: 101Questions: 40Answers: 0

Buenos días. Estoy intentando este ejemplo pero me da un error cuando creo el footer en mi html.
https://datatables.net/examples/advanced_init/footer_callback.html.

Esta es mi funcion.

function misVentas(Finicio,Ffin){ //FUncion que pinta las ventas del agricultor
    var parametros={
         "Finicio": Finicio,
         "Ffin": Ffin
        };
        
    

    tblVentas=$('#tblVentas').DataTable({ 
    
    
    "footerCallback": function ( row, data, start, end, display ) {
            var api = this.api(), data;
 
            // Remove the formatting to get integer data for summation
            var intVal = function ( i ) {
                return typeof i === 'string' ?
                    i.replace(/[\$,]/g, '')*1 :
                    typeof i === 'number' ?
                        i : 0;
            };
 
            // Total over all pages
            total = api
                .column( 6 )
                .data()
                .reduce( function (a, b) {
                    return intVal(a) + intVal(b);
                }, 0 );
 
            // Total over this page
            pageTotal = api
                .column( 6, { page: 'current'} )
                .data()
                .reduce( function (a, b) {
                    return intVal(a) + intVal(b);
                }, 0 );
 
            // Update footer
            $( api.column( 6 ).footer() ).html(
                '$'+pageTotal +' ( $'+ total +' total)'
            );
        },
    
    
    
    "columnDefs": [
            { className: "dt-body-right", "targets": [ 4,5,6 ] }
        ],
        "autoWidth": false,
        "processing": true,
        "destroy": "true",
        "pagingType": "full_numbers", //Hace que se muestren todos los elementos de la paginación
        "responsive": "true",
        "language": {
            "url": "https://cdn.datatables.net/plug-ins/1.10.11/i18n/Spanish.json"
        },
        
    //Botones---------------------------------------------------------------------- 
    "dom": 'Bfrtip',
            "buttons": [
            'copyHtml5',
            'excelHtml5',
           'pdfHtml5'
    ],  
        
        
    "ajax": {
        "data":parametros,
        "url": "php/ventas.php", //web a la que llamo y hace el trabajo.
        "type": "POST", //Metodo usado por la funcion para pasar variable
        "dataSrc": "",
    
    },
        
        "columns": [
        { "data": "id"  },
        { "data": "fch" },
        { "data": "alb" },
        { "data": "name" },
        { "data": "pre_fin" },
        { "data": "pso_net" },
        { "data": "imp" },
    
    ]
        
        
});

}

Este es mi HTML

<div class="row clearfix">
        <div class="col-md-12 list-group row-no-padding">   <!----Tamaño de columna 12-->   
            <table id="tblVentas"  class="hover cell-border row-border display compact"  cellspacing="0" width="100%">
                    <thead>
                        <tr>
                            <th>Id</th>
                            <th>Fecha</th> 
                            <th>Albaran</th>
                            <th>Genero</th>
                            <th>Precio</th> 
                            <th>Kilos</th> 
                            <th>Importe</th> 
                            
                        </tr>
                    </thead>
            </table>
        </div>
    </div>

Según el ejemplo , cuando hago esto me da error.

<tfoot>
            <tr>
                <th colspan="4" style="text-align:right">Total:</th>
                <th></th>
            </tr>
        </tfoot>

Me gustaría sumar el campo importe.

Answers

  • silenssilens Posts: 101Questions: 40Answers: 0

    El error estaba en que el numero de columnas colspan no era el correcto. Todo solucionado.

This discussion has been closed.