Print all pages of pagination in Datatables

Asked

Viewed 444 times

1

Hello, I have a system in which, on one of your pages, I display the data that comes from a database table. Since to make this view I use the Datatables plugin.

The problem is that when I try to print (through the button created by Datatables itself) or try to export by PDF or Excel, only the current page (that I am), is printed. I would like you to print all pages that are available in the pagination.

You know if this is possible ?

Below is the code used in Datatables:

$('#resultado-relatorios-divisao-empresas-por-responsavel').DataTable({
  dom: 'Bfrtip',
  buttons: [
    //botão para salvar em pdf
    {
      extend: 'pdfHtml5',
      text: 'Salvar em PDF',
      orientation: 'landscape',
      exportOptions: {
        modifier: {
          page: 'current'
        }
      }
    },
    //botão para salvar em excel
    {
      extend: 'excelHtml5',
      text: 'Gerar Excel',
      orientation: 'landscape',
      exportOptions: {
        modifier: {
          page: 'current'
        }
      }
    },
    //botão para imprimir
    {
      extend: 'print',
      text: 'Imprimir',
      orientation: 'landscape',
      exportOptions: {
        modifier: {
          page: 'current'
        }
      }
    }
  ],

  paging: true,
  scrollX: true,
  scrollCollapse: true,
  scrollY: "400px",

  "language": {
    "lengthMenu": "Mostrando _MENU_ registros por página",
    "zeroRecords": "Nenhum registro encontrado com estes parâmetros de pesquisa",
    "info": "Mostrando página _PAGE_ de _PAGES_",
    "infoEmpty": "Nenhum registro disponível",
    "infoFiltered": "(filtrado de _MAX_ registros no total)",
    "search": "Pesquisar:",
    "paginate": {
      "first": "Primeiro",
      "last": "Último",
      "next": "Próximo",
      "previous": "Anterior"
    },
  },

  "language": {
    "lengthMenu": "Mostrando _MENU_ registros por página",
    "zeroRecords": "Nenhum registro encontrado com estes parâmetros de pesquisa",
    "info": "Mostrando página _PAGE_ de _PAGES_",
    "infoEmpty": "Nenhum registro disponível",
    "infoFiltered": "(filtrado de _MAX_ registros no total)",
    "search": "Pesquisar:",
    "paginate": {
      "first": "Primeiro",
      "last": "Último",
      "next": "Próximo",
      "previous": "Anterior"
    },
  },

  "processing": true,
  "serverSide": true,
  "ajax": {
    "url": "../banco/banco-vision/pagina-relatorios-divisao-empresas-por-responsavel/php-arquivos-disponiveis.php",
    "type": "POST",
    "data": function(item) {

      item.empresa_origem = $('#empresa_origem_relatorio').val();
      item.departamento = $('#departamento_relatorio').val();
      item.responsavel = $('#responsavel_relatorio').val();
      item.cod = $('#cod_relatorio').val();
      item.empresa = $('#empresa_relatorio').val();
      //item.atividade = $('#atividade_relatorio').val();

    }
  },

});

Below is the system image:

inserir a descrição da imagem aqui

Another thing is that when I put these buttons below (marked in red):

inserir a descrição da imagem aqui

... Automatically it removes this button below (marked in red):

inserir a descrição da imagem aqui

Could you help me ?

2 answers

1

You can select the display of all items, perform the printing (or PDF generation) and select back the previous paging.

To select the display of all, you must first have this option available in pageLength.

$('#resultado-relatorios-divisao-empresas-por-responsavel').DataTable({
    pageLength: -1,
    lengthMenu: [[-1], ["Todos"]],
    // outras opções que você tenha....
});


// ... suas funções


// Execute a função abaixo para exibir todos os itens sem paginação
$('.dataTables_length select').val('-1');

ImprimirOuGerarPDF();

-1

$("#suaTabela").DataTable({
  dom: "Bfrtip",
  lengthMenu: [
    [05, 10, 25, 50, 100, -1],
    ["5", "10", "25", "50", "100", "Todos"],
  ],
  buttons: [
    {
      extend: "print",
      text: "Imprimir",
      autoPrint: true,
    },
    {
      extend: "pageLength",
      text: "Exibir",
    },
  ],
});

This code adds buttons and pagination, allowing the user to select the amount to print

  • Please provide additional details in your reply. As it is currently written, it is difficult to understand your solution.

Browser other questions tagged

You are not signed in. Login or sign up in order to post.