2016-07-28 17 views
1

倉庫の印刷ピッキングボタンを無効にしています。しかし、それはソートとして選択フィールドを持つポップアップを表示する必要があります。その値をユーザーから取得し、渡された値に基づいてレポートを出力します。以下は私が試したコードですが、うまくいきません。印刷ピッキングリスト]ボタンをクリックするためポップアップodooで印刷オーバーライド

オーバーライド機能は:

def do_print_picking(self, cr, uid, ids, context=None): 
    return { 
     'name':'input sort report', 
     'view_type':'form', 
     'view_mode':'form', 
     'res_model':'my.report', 
     'type':'ir.actions.act_window', 
     'target':'new', 
     'context':None, 
    } 

これは空白のページが開きます。以下の要件を満たす方法。

次に、そのポップアップからソート値を取得し、その値を渡してレポートを印刷します。私はポップアップなしでレポートを印刷することができます。ポップアップを表示してユーザーからの入力を得るためにインターセプトする必要があります。

更新:

ポップアップのフィールドはデータベースに格納されません。ユーザーが選択した並べ替えの値だけがレポートに送信されます

私を助けてください。 ありがとう、

+0

あなたは 'my.report'のコードを共有できますか? – danidee

+0

こんにちは、シナリオ私はレポートを印刷するためのカスタムモジュールを作成しています。このモジュールでは、ストックピッキングモデル関数(do_print_picking)をオーバーライドするstock_picking.pyというファイルが1つあります。 2番目のファイルはmy.reportモデルですが、テーブルを作成しないように_auto = Falseです。ユーザーがボタンをクリックすると、ソートの選択肢を持つshow popupが呼び出されます。次に、ユーザーがソートを選択します。ソートの価値に基づいてプリントを報告します。だから基本的に私の報告。コードはありません。_ auto = Falseのクラス宣言だけです。 – user280960

答えて

0

idooがない場合、Odooはフォームビューを表示できません。 あなたはあなたのリターンdictにres_idを追加する必要があります。例えば

return { 
     'name':'input sort report', 
     'view_type':'form', 
     'view_mode':'form', 
     'res_model':'my.report', 
     'res_id : ids[0], 
     'type':'ir.actions.act_window', 
     'target':'new', 
     'context':None, 
    } 

このコードは、あなたのために働くかもしれません。そうでない場合は、正しいIDを取得する方法を見つける必要があります。

関連する問題