質問

indio のテーブルの の無効な使用は、AdminでBestSellersレポートをエクスポートしようとしています。
以下は例外レポートの内容です。

a:5:{i:0;s:31:"Invalid use of table with UNION";i:1;s:1946:"#0 /lib/Zend/Db/Select.php(230): Zend_Db_Select->_join('from', 'sales_bestselle...', NULL, Array, NULL)
#1 /app/code/core/Mage/Sales/Model/Mysql4/Report/Bestsellers/Collection.php(125): Zend_Db_Select->from('sales_bestselle...', Array)
#2 /app/code/core/Mage/Sales/Model/Mysql4/Report/Collection/Abstract.php(241): Mage_Sales_Model_Mysql4_Report_Bestsellers_Collection->_initSelect()
#3 /app/code/core/Mage/Adminhtml/Block/Widget/Grid.php(923): Mage_Sales_Model_Mysql4_Report_Collection_Abstract->load()
#4 /app/code/core/Mage/Adminhtml/Block/Widget/Grid.php(1119): Mage_Adminhtml_Block_Widget_Grid->_exportIterateCollection('_exportExcelIte...', Array)
#5 /app/code/core/Mage/Adminhtml/controllers/Report/SalesController.php(139): Mage_Adminhtml_Block_Widget_Grid->getExcelFile('bestsellers.xml')
#6 /app/code/core/Mage/Core/Controller/Varien/Action.php(420): Mage_Adminhtml_Report_SalesController->exportBestsellersExcelAction()
#7 /app/code/core/Mage/Core/Controller/Varien/Router/Standard.php(257): Mage_Core_Controller_Varien_Action->dispatch('exportBestselle...')
#8 /app/code/core/Mage/Core/Controller/Varien/Front.php(176): Mage_Core_Controller_Varien_Router_Standard->match(Object(Mage_Core_Controller_Request_Http))
#9 /app/code/core/Mage/Core/Model/App.php(340): Mage_Core_Controller_Varien_Front->dispatch()
#10 /app/Mage.php(627): Mage_Core_Model_App->run(Array)
#11 /index.php(110): Mage::run('', 'store')
#12 {main}";s:3:"url";s:167:"/index.php/admin/report_sales/exportBestsellersExcel/filter/ZnJvbT0wOCUyRjE2JTJGMTUmdG89MDIlMkYxNiUyRjE2JnBlcmlvZF90eXBlPXllYXImc2hvd19lbXB0eV9yb3dzPTA=/";s:11:"script_name";s:10:"/index.php";s:4:"skin";s:5:"admin";}
.

誰かが似たような問題に直面しているかどうかを私に知らせてください。
これがどのように固定できるか?
あらゆる助けが高くなるでしょう。

役に立ちましたか?

解決

発行を修正するには、Mage_Adminhtml_Block_Report_Sales_Bestsellers_Gridを書き換え、上書きメソッド_exportIterateCollection

を書き換えました。
<?php

class Custom_Reports_Block_Adminhtml_Report_Sales_Bestsellers_Grid extends Mage_Adminhtml_Block_Report_Sales_Bestsellers_Grid {

    public function _exportIterateCollection($callback, array $args) {
        //$originalCollection = clone $this->getCollection();
        $originalCollection = $this->getCollection();
        $count = null;
        $page = 1;
        $lPage = null;
        $break = false;

        while ($break !== true) {
            $collection = $originalCollection;
            $collection->setPageSize($this->_exportPageSize);
            $collection->setCurPage($page);
            $collection->load();
            if (is_null($count)) {
                $count = $collection->getSize();
                $lPage = $collection->getLastPageNumber();
            }
            if ($lPage == $page) {
                $break = true;
            }
            $page ++;

            foreach ($collection as $item) {
                call_user_func_array(array($this, $callback), array_merge(array($item), $args));
            }
        }
    }

}
.

ライセンス: CC-BY-SA帰属
所属していません magento.stackexchange
scroll top