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天的工作时间!