MVCGRID CSV导出错误

问题描述:

我想导出我用对象MVCgrid创建的网格。MVCGRID CSV导出错误

我发现,我可以添加当前页面的对象'MVCGrid_Export'而不是对象'MVCGrid',它提供了导出按钮和功能。

由我出口中得到一个错误的方式:

“致命错误:调用在非对象的成员函数getfield命令().. \ agiletoolkit \ atk4-插件\杂项\ LIB \在线42上的Export.php“

在那一行,”$ b [] = $ this - > __ getHeaderModel() - > getField($ a) - > caption();“,我发现“$ this-> _getHeaderModel()”是我想要导出的模型的字符串,而不是该模型的对象,也就是我需要的项目。

这是我的网页代码:

class page_resultsShow extends Page { 
function initMainPage() { 
    $p = $this; 
    $gr = $this->add('MVCGrid_Export'); 
    $gr->setModel('results',array('name','budget','bestapplicants')); 

    $gr->addColumnMVC('name'); 
    $gr->addFormatter('name','link'); 
    $gr->addQuickSearch(array('name')); 
    $gr->addPaginator(20); 
} 

//details... 
function page_details() { 
    ... some code.. 
} 

function defaultTemplate(){ 
    return array('page/results'); 
} 

}

我想我需要添加一些信息到到网格解释说,正在处理的模型,但我怎么没发现!

感谢您的帮助

我们已经被推更新输出模块4.2

请更新atk4,插件和atk4,以确保您在主分支(现在是4.2)。

语法现在有点不同,因为现在导出用作控制器。

class page_index extends Page { 
    function init(){ 
     parent::init(); 
     $c=$this->add("Grid"); 
     $c->setModel("A"); 
     $c->addPaginator(1); 
     $c->add("Export"); 

     $c=$this->add("CRUD"); 
     $c->setModel("A"); 
     if ($c->grid){ 
      $c->grid->addPaginator(1); 
     } 
     $c->add("Export"); 
    } 
} 

从电子邮件到atk4组:

//假设你有网

$export = $grid->add("Export"); 

//这将增加出口XLS &导出CSV按钮,网格

//如果你有毛病:

$export = $crud->add("Export"); 

//这将增加出口XLS &导出CSV按钮,网格现在

,您可以轻松地创建新的 “分析器”,通过创建

Export_Parser_Xyz类。

然后只需将它添加到您的出口:

$export->add("Export_Parser_Xyz"); 

非常重要的更新是它现在使用DQ它已被paginators改变后,过滤器等,使其出口会显示什么。可选,是默认情况下被删除的限制,但可以在解析器级别进行控制。

这会自动将按钮添加到grid/crud并处理来自各个网格/ crud数据源的数据流。

N.B.!

导出仅适用于基于dq的网格,如果定义了模型,则会尝试从模型的字段定义中加载字幕。 PDF分析器在这一点上被遗漏,因为它非常具体,需要特定的第三方软件。

如果您希望拥有旧的导出模块,请按照lib/Export.php中的说明启用兼容模式。