2012-04-12 6 views
0

グリッドをエクスポートしようとしていますが、オブジェクトMVCgridで作成しています。MVCGRID CSVエクスポートエラー

エクスポートボタンと機能を提供するオブジェクト 'MVCGrid'ではなく、現在のページにオブジェクト 'MVCGrid_Export'を追加できることがわかりました。

「致命的なエラー:非オブジェクトのメンバ関数のgetField()の呼び出し.. \ agiletoolkit \ atk4-アドオン\ miscの\ libに\ iのエクスポート中にエラーが発生しましたところで

Export.php on line 42 "

この行で、" $ b [] = $ this - > __ getHeaderModel() - > getField($ ) - > 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である)あなたはmasterブランチ上にある作るためにatk4-アドオンとatk4を更新してください4.2

に更新エクスポートモジュールをプッシュしています。

エクスポートは現在コントローラと同じように少し異なります。グループをatk4するメールから

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"); 
    } 
} 

//あなたはグリッド

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

//これはあなたのグリッドに

を輸出XLS &輸出のcsvボタンを追加するを持っているとしましょう

//あなたがいれば:

これはあなたのグリッド今

に輸出XLS &輸出のcsvボタンを追加します0

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

//、あなたは簡単に

Export_Parser_Xyzクラスを作成することにより、新しい "パーサ" を作成することができます。

その後、ちょうどあなたの輸出に追加します。

$export->add("Export_Parser_Xyz"); 

非常に重要な更新は、それが表示されます正確に何をエクスポートなるように、それはpaginators、フィルタなどにより変更された後に、それは今DQを使用していることです。オプションで、デフォルトでは削除されているが、パーサーレベルで制御できる制限です。

これは自動的にgrid/crudにボタンを追加し、それぞれのグリッド/クルドデータソースからのデータフローを処理します。

N.B.!

エクスポートはdqベースのグリッドでのみ機能し、モデルが定義されている場合は、モデルのフィールド定義からキャプションをロードしようとします。 非常に具体的で特定のサードパーティのソフトウェアが必要なので、PDFパーサーはこの時点では省略されています。

互換性モードを有効にするには、古いエクスポートモジュールを使用する場合はlib/Export.phpの指示に従ってください。