2012-04-12 6 views
0

ich versuche, ein Raster zu exportieren, das ich mit dem Objekt MVCgrid erstelle.MVCGRID CSV Exportfehler

Ich habe herausgefunden, dass ich die aktuelle Seite das Objekt 'MVCGrid_Export' anstelle des Objekts 'MVCGrid' hinzufügen kann, das die Export-Schaltflächen und -Funktionen bereitstellt.

Durch die Art, wie ich einen Fehler bekam beim Export:

„Fatal error: Call auf eine Elementfunktion getField() auf einem Nicht-Objekt in .. \ agiletoolkit \ atk4-addons \ misc \ lib \ Export.php on line 42 "

Bei dieser Zeile," $ b [] = $ this -> __ getHeaderModel() -> getField ($ a) -> caption(); ", entdeckte ich, dass das Ergebnis von "$ this-> _getHeaderModel()" ist eine Zeichenfolge des Modells, das ich exportieren möchte, und nicht das Objekt dieses Modells, das ist das Element, das ich brauche.

Dies ist der Code meiner Seite:

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

}

ich brauche ich nehme einige Informationen hinzuzufügen, um das Raster, das Modell zu erklären, ist der Umgang, aber ich finde nicht, wie !!

Vielen Dank für die Hilfe

Antwort

0

Wir aktualisiert Exportmodul für 4,2

Bitte, update atk4-addons und atk4 um sicherzustellen, dass Sie auf dem Master-Zweig sind (die 4.2 ist jetzt) ​​gedrückt haben.

Syntax ist jetzt ein bisschen anders, da Export jetzt als Controller fungiert.

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

Von E-Mail-Gruppe atk4:

// lasst uns sagen, Sie haben Raster

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

// dies würde den Export xls & Export csv Tasten zu Ihrem Raster

hinzufügen

// Wenn Sie Crud haben:

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

// dieser Export xls & Export csv Tasten zu Ihrem Raster

Jetzt möchte hinzufügen, können Sie einfach neuen "Parser" schaffen, durch

Export_Parser_Xyz Klasse zu schaffen.

dann fügen Sie ihn einfach auf Ihren Export:

$export->add("Export_Parser_Xyz"); 

sehr wichtiges Update ist, dass es dq verwendet jetzt, nachdem sie von Paginatoren geändert wurde, Filter usw., so dass es genau würde exportieren, was angezeigt wird. Optional, ist ein Limit, das standardmäßig entfernt wird, aber auf Parser-Ebene gesteuert werden kann.

Dies würde automatisch Button zu Grid/Crud hinzufügen und den Datenfluss von der jeweiligen Grid/Crud-Datenquelle behandeln.

N.B.!

Der Export funktioniert nur mit einem dq-basierten Grid. Wenn das Modell definiert ist, wird versucht, Beschriftungen aus den Felddefinitionen des Modells zu laden. Der PDF-Parser wird zu diesem Zeitpunkt weggelassen, da er sehr spezifisch ist und spezielle Software von Drittanbietern erfordert.

Wenn Sie ein altes Exportmodul haben möchten, befolgen Sie die Anweisungen unter lib/Export.php, um den Kompatibilitätsmodus zu aktivieren.