Ungültige Verwendung der Tabelle mit UNION
-
28-09-2020 - |
Frage
Ich bekomme eine Fehlermeldung Ungültige Verwendung der Tabelle mit UNION während ich versuche, den Bestsellerbericht in admin zu exportieren.
Unten ist der Inhalt des Ausnahmeberichts.
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";}
Bitte lassen Sie mich wissen, wenn jemand ein ähnliches Problem hat.
Wie kann das behoben werden?
Jede Hilfe wäre dankbar.
Lösung
Um das Problem zu beheben, habe ich das neu geschrieben Mage_Adminhtml_Block_Report_Sales_Bestsellers_Grid
und Überschreibungsmethode _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));
}
}
}
}
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit magento.stackexchange