Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/254.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 集合未加载到magento中的pdf文件中_Php_Magento_Magento 1.7_Magento 1.8 - Fatal编程技术网

Php 集合未加载到magento中的pdf文件中

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;

我必须以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;
    $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);
}