0

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

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

ところで、エクスポート中にエラーが発生しました:

「致命的なエラー: 42 行目の ..\agiletoolkit\atk4-addons\misc\lib\Export.php の非オブジェクトに対するメンバー関数 getField() の呼び出し」

その行、「$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

1 に答える 1

0

4.2 の更新されたエクスポート モジュールをプッシュしました。

atk4-addons と atk4 を更新して、マスター ブランチ (現在は 4.2) にいることを確認してください。

Export がコントローラーとして機能するようになったため、構文が少し異なります。

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

// これにより、export xls および export csv ボタンがグリッドに追加されます

// crud がある場合:

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

// これにより、export xls および export csv ボタンがグリッドに追加されます

これで、新しい「パーサー」を簡単に作成できるようになりました。

Export_Parser_Xyzクラス。

次に、それをエクスポートに追加します。

$export->add("Export_Parser_Xyz");

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

これにより、ボタンがグリッド/crud に自動的に追加され、それぞれのグリッド/crud データ ソースからのデータ フローが処理されます。

注意!

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

古いエクスポート モジュールが必要な場合はlib/Export.php、互換モードを有効にする手順に従ってください。


于 2012-04-23T11:20:36.420 に答える