Экспорт в Excel выполняется, когда InvoiceController
вызывает getExcelFile()
на Mage_Adminhtml_Block_Sales_Invoice_Grid
. Сетка счетов-фактур начинается с Mage_Adminhtml_Block_Widget_Grid
, который, в свою очередь, вызывает _exportExcelItem
в каждом ряду сетки.
Метод _exportExcelItem
использует закрытую переменную сетки _columns
для экспорта столбцов электронной таблицы.
Все это говорит о том, что ... метод _prepareColumns()
в Mage_Adminhtml_Block_Sales_Invoice_Grid
устанавливает столбцы, отображаемые в сетке, и точно такие же столбцы при экспорте в Excel.
Если вы хотите добавить дополнительные столбцы, вы можете переписать Mage_Adminhtml_Block_Sales_Invoice_Grid
и переопределить метод _exportExcelItem()
примерно так:
$this->addColumn('your_extra_field_name', array(
'header' => Mage::helper('sales')->__('Field Title'),
'index' => 'your_extra_field_name',
'type' => 'relevant_data_type',
));
... rinse and repeat ... then finish with
parent::_exportIterateCollection($callback, array $args);
В StackOverflow и Intertubes есть множество постов, посвященных написанию пользовательского модуля для расширения блока, использования его, а затем применения указанных выше особенностей.
Это ключевой фрагмент XML, который вам нужен в вашем config.xml:
<blocks>
<adminhtml>
<rewrite>
<sales_invoice_grid>Namespace_Modulename_Block_Rewrite_AdminhtmlSalesInvoiceGrid</sales_invoice_grid>
....
НТН,
JD