Laravel-datatables: لا تعمل "أعمدة" exportOption => ": مرئية"

تم إنشاؤها على ٢١ ديسمبر ٢٠١٧  ·  15تعليقات  ·  مصدر: yajra/laravel-datatables

ملخص المشكلة أو طلب الميزة


عند التصدير ، فإن المعلمة:

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

لا تعمل

يجب أن يتيح خيار تصدير الأعمدة المرئية فقط وليس كلها.

تفاصيل النظام

  • نظام التشغيل
    صرير دبيان
  • إصدار PHP
    PHP 7.1.8
  • إصدار Laravel
    إطار Laravel 5.5.19
  • نسخة 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

التعليق الأكثر فائدة

في الواقع ، الحل هو إضافة معلمة إلى الوظيفة _buildParams
ثم قم بقياسها في طريقة "getColumns" على جانب الخادم.
لقد قمت للتو بعمل علاقات عامة لذلك: https://github.com/yajra/laravel-datatables-buttons/pull/78

ال 15 كومينتر

هل يمكنك ربطني بمثال datatables.net حول كيفية القيام بذلك؟ هذا الخيار جديد قليلاً بالنسبة لي. شكرا!

أرى أن هذا العرض التوضيحي مخصص للطباعة على التنفيذ من جانب العميل. بالنسبة إلى جانب الخادم ، للأسف لا يتم دعمه.

yajra هل تعتقد أنه سيتم تنفيذ هذه الميزة في إصدار مستقبلي؟

من الغريب بعض الشيء أن تأخذ الطباعة على جانب الخادم في الاعتبار رؤية الأعمدة ، لكن تصدير xls لا يفعل ذلك. هل هناك سبب لاختلاف السلوك؟

AFAIK ، لا يتوفر colvis أيضًا في التنفيذ من جانب الخادم من جانب JS ، لذلك قد يكون من الصعب بعض الشيء تنفيذ أجهزة الصراف الآلي.

للتصدير ، يمكنك فقط تعيين exportable على false. فيما يلي بعض تكوين العمود الذي يمكنك استخدامه:

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

أي عمل حول هذه القضية أو الميزة حتى الآن؟

yajra أعتقد أننا قد نمرر متغيرًا إلى _buildParams لست متأكدًا من كيفية القيام بذلك حتى الآن ، لكني أطلب منك أن تعطيني تلميحًا :)

في الواقع ، الحل هو إضافة معلمة إلى الوظيفة _buildParams
ثم قم بقياسها في طريقة "getColumns" على جانب الخادم.
لقد قمت للتو بعمل علاقات عامة لذلك: https://github.com/yajra/laravel-datatables-buttons/pull/78

حسنًا ، نحن الآن نعرف كيفية التقاط المعلمة على جانب الخادم ، ويعرف أيضًا باسم الخلفية ، ولكن كيف يتم إرسالها في طلب dt ajax الفعلي؟ ما js نحتاج إلى تعديل؟

إنه في الملف الذي تم تغييره في PR:
https://github.com/yajra/laravel-datatables-buttons/pull/78/files

لا يعمل مع الطباعة! FabienLucini ، فقط مع ملف postcsv مرئي. ولا حتى pdf!

في هذا POC ، قمت بإجراء التغييرات على postExcel و postCsv
ولكن يمكنك أن تفعل الشيء نفسه بالنسبة لقوات الدفاع الشعبي والطباعة ثم ضبط الكود الخاص بك بجانب الخادم.
هتافات

FabienLucini شكرًا جزيلاً لك ، لقد فعلت الحيلة حقًا. لقد وفرت لي ساعات من التفكير والعصف الذهني.
في بعض الأحيان ، ربما طوال الوقت: يشعر المرء بالتفريغ ، والحل أمام عينيك ، ولا يمكنك اكتشافه. loooool

yajra دعونا ننفذ هذه التغييرات على الفرع.

تضمين التغريدة يمكنك أيضًا طباعة جزء الطباعة مقابل hacktobefest نقطة في حالة انضمامك إلى العلاج.

هل كانت هذه الصفحة مفيدة؟
0 / 5 - 0 التقييمات