2012-04-12 60 views
0

我想導出我用對象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'); 
} 

}

我想我需要添加一些信息到到網格解釋說,正在處理的模型,但我怎麼沒發現!

感謝您的幫助

回答

0

我們已經被推更新輸出模塊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中的說明啓用兼容模式。