Magento发票Excel导出 – 如何更改字段?

我想将一些发票导出到Microsoft Excel / XML。 标准格式不能很好地工作,因为我需要一些额外的列。

我的问题是:文件生成在哪里? 我在哪里设置这些专栏?

提前致谢

InvoiceController调用getExcelFile()上的Mage_Adminhtml_Block_Sales_Invoice_Grid getExcelFile()时,将执行到Excel的导出。 发票网格从Mage_Adminhtml_Block_Widget_Grid扩展而来,该网格又在网格的每一行上调用_exportExcelItem

_exportExcelItem方法使用网格的_columns私有variables来导出电子表格列。

所有这一切都是说… _prepareColumns()中的_prepareColumns()方法设置了网格中显示的列,以及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上有大量的post,写一个自定义的模块来扩展一个Block,grok,然后应用上面的细节。

这是您在config.xml中需要的XML的关键部分:

  <blocks> <adminhtml> <rewrite> <sales_invoice_grid>Namespace_Modulename_Block_Rewrite_AdminhtmlSalesInvoiceGrid</sales_invoice_grid> .... 

HTH,
JD

您可以编写一个自定义报告,扩展Mage_Adminhtml_Block_Sales_Invoice_Grid (以及容器, Mage_Adminhtml_Block_Sales_Invoice )。

唯一的区别就是调用parent::_prepareColumns()然后添加自己的列。 您也可以使用它的addColumnsOrder()来移动它们。

您还需要制作一个像Mage_Adminhtml_Report_SalesController::invoicedAction()一样的控制器。

我写了一个完整的新连接和类到数据库,因为我没有得到正确的文件。 感谢您的帮助,但是这个解决scheme简单得多,为我节省了大约5天的工作时间!