Magento Invoice Excel Export - 如何更改字段?

时间:2011-03-31 11:02:19

标签: php excel magento export

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

我的问题是:文件生成在哪里?我在哪里设置这些特殊列?

提前致谢

3 个答案:

答案 0 :(得分:3)

InvoiceControllergetExcelFile()上调用Mage_Adminhtml_Block_Sales_Invoice_Grid时,会执行导出到Excel。发票网格从Mage_Adminhtml_Block_Widget_Grid延伸,而_exportExcelItem又在网格的每一行上调用_exportExcelItem

_columns方法使用网格的_prepareColumns()私有变量导出电子表格列。

所有这些都说...... Mage_Adminhtml_Block_Sales_Invoice_Grid中的Mage_Adminhtml_Block_Sales_Invoice_Grid方法设置了网格中显示的列,并且Excel导出中的列完全相同。

如果您想添加额外的列,可以重写_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); 方法:

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

StackOverflow和Intertubes上有很多帖子在写一个自定义模块来扩展一个Block,然后修改它们然后应用上面的细节。

这是config.xml中所需的关键XML:

{{1}}

HTH,
JD

答案 1 :(得分:2)

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

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

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

答案 2 :(得分:0)

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