Laravel-datatables: O exportOption 'colunas' => ': visível' não funciona

Criado em 21 dez. 2017  ·  15Comentários  ·  Fonte: yajra/laravel-datatables

Resumo do problema ou solicitação de recurso


Ao exportar, o parâmetro:

'exportOptions' => [
                          'columns' => ':visible
                      ],

Não funciona

deve habilitar a opção de exportar apenas as colunas visíveis e não todas.

Detalhes do sistema

  • Sistema operacional
    Debian wheezy
  • Versão PHP
    PHP 7.1.8
  • Versão Laravel
    Laravel Framework 5.5.19
  • Versão Laravel-Datatables
yajra/laravel-datatables-buttons      v3.1.0             Laravel DataTables Buttons Plugin.
yajra/laravel-datatables-html         v3.2.1             Laravel DataTables HTML builder plugin for Laravel 5.4+.
yajra/laravel-datatables-oracle       v8.3.2             jQuery DataTables API for Laravel 4|5
question

Comentários muito úteis

Na verdade, uma solução alternativa é adicionar um parâmetro à função _buildParams
E, em seguida, localize-o no método 'getColumns' no lado do servidor.
Acabei de fazer um PR para isso: https://github.com/yajra/laravel-datatables-buttons/pull/78

Todos 15 comentários

Você pode me vincular ao exemplo datatables.net de como isso é feito? Esta opção é um pouco nova para mim. Obrigado!

Eu vejo, esta demonstração é para impressão na implementação do lado do cliente. Para o lado do servidor, infelizmente não é compatível.

@yajra , você acha que esse recurso será implementado em uma versão futura?

É um pouco estranho que a impressão no lado do servidor leve em consideração a visibilidade das colunas, mas a exportação xls não. Existe uma razão para o comportamento diferente?

AFAIK, colvis também não está disponível na implementação do lado do servidor no lado JS, então pode ser um pouco difícil implementar o atm.

Para exportar, você pode apenas definir exportable como falso. Aqui estão algumas configurações de coluna que você pode usar:

  'orderable'      => false,
  'searchable'     => false,
  'exportable'     => false,
  'printable'      => true,
  'visible'        => true,

Alguma solução para esse problema ou recurso ainda?

@yajra Acho que podemos passar uma variável para _buildParams. Não tenho certeza de como fazer isso ainda, mas solicito que você possa me dar uma dica :)

Na verdade, uma solução alternativa é adicionar um parâmetro à função _buildParams
E, em seguida, localize-o no método 'getColumns' no lado do servidor.
Acabei de fazer um PR para isso: https://github.com/yajra/laravel-datatables-buttons/pull/78

Bem, agora sabemos como capturar o parâmetro no lado do servidor, também conhecido como back-end, mas como enviá-lo na solicitação real dt ajax? o que js precisamos editar?

Não funciona com impressão! @FabienLucini , apenas com postcsv visível. nem mesmo pdf!

Neste POC, fiz as alterações para postExcel e postCsv
Mas você pode fazer o mesmo para PDF e imprimir e, em seguida, ajustar o código do servidor.
Saúde

@FabienLucini Muito obrigado, você realmente fez o truque. Você me salvou horas de pensamento e brainstorming.
Às vezes, talvez o tempo todo: D a pessoa sente o lixo, a solução está diante de seus olhos e você não consegue descobrir. loooool

@yajra Vamos implementar essas mudanças no branch.

@FabienLucini @AmirTallap obrigado. Você também pode fazer o PR da parte impressa por hacktobefest pontos caso você esteja participando do tratamento.

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

jgatringer picture jgatringer  ·  3Comentários

SGarridoDev picture SGarridoDev  ·  3Comentários

FilipeBorges1993 picture FilipeBorges1993  ·  3Comentários

vipin733 picture vipin733  ·  3Comentários

techguydev picture techguydev  ·  3Comentários