Php 集合未加载到magento中的pdf文件中
我必须以pdf格式导出Magento中订单的数据 但我有一个错误: 致命错误:在第1683行的app/code/core/Mage/Adminhtml/Block/Widget/Grid.php中调用未定义的方法Mage\u Reports\u Model\u Resource\u Report\u Collection::getSelect() 我的getpdf操作代码Php 集合未加载到magento中的pdf文件中,php,magento,magento-1.7,magento-1.8,Php,Magento,Magento 1.7,Magento 1.8,我必须以pdf格式导出Magento中订单的数据 但我有一个错误: 致命错误:在第1683行的app/code/core/Mage/Adminhtml/Block/Widget/Grid.php中调用未定义的方法Mage\u Reports\u Model\u Resource\u Report\u Collection::getSelect() 我的getpdf操作代码 public function getPdfFile(){ $this->_isExport = true;
public function getPdfFile(){
$this->_isExport = true;
$this->_prepareGrid();
$this->getCollection()->getSelect()->limit();
$this->getCollection()->setPageSize(0);
$this->getCollection()->load();
$this->_afterLoadCollection();
$pdf = new Zend_Pdf();
$page = new Zend_Pdf_Page(Zend_Pdf_Page::SIZE_A4);
$font = Zend_Pdf_Font::fontWithName(Zend_Pdf_Font::FONT_TIMES);
$page->setFont($font, 12);
$width = $page->getWidth();
$i=0;
foreach ($this->_columns as $column) {
if (!$column->getIsSystem()) {
$i+=10;
$header = $column->getExportHeader();
$page->drawText($header, $i, $page->getHeight()-20);
$width = $font->widthForGlyph($font->glyphNumberForCharacter($header));
$i+=($width/$font->getUnitsPerEm()*12)*strlen($header)+10;
}
}
$pdf->pages[] = $page;
return $pdf->render();
}
我的控制器动作代码是
public function exportPdfAction(){
$fileName = 'daily_orders.pdf';
$content = $this->getLayout()->createBlock('reportneworders/adminhtml_reportneworders_grid')->getPdfFile();
$this->_prepareDownloadResponse($fileName, $content);
}
网格在管理中正常工作
csv和excel数据导出成功,但pdf无法导出。任何人请帮助我。您仅有的foreach($this->\u columns as$column)
语句只打印网格的标题。
您还必须遍历项目集合。在$pdf->pages[]=$page之前代码>行,添加如下内容:
$j=40;
foreach($项目的收款){
//在此处添加代码,打印$item信息
//例如:
$y=$page->getHeight()-$j;
$page->drawText($item->getincrement\u id(),20,$y);
$page->drawText($item->getcreated_at(),50,$y);
//等等。
$j+=20;
}
另外,在我自己的代码中,为了使PDF导出响应网格过滤器,我必须将函数exportpdoption()
代码更改为以下内容(否则将忽略过滤器):
如您所见,我添加了$this->\u initReportAction($grid)代码>
public function exportPdfAction(){
$fileName = 'daily_orders.pdf';
$grid = $this->getLayout()->createBlock('reportneworders/adminhtml_reportneworders_grid');
$this->_initReportAction($grid);
$content = $grid->getPdfFile();
$this->_prepareDownloadResponse($fileName, $content);
}