0
report.bpl.daily.transaction

(<type 'exceptions.KeyError'>, KeyError(u'report.bpl.daily.transaction',), <traceback object at 0xb1911f04>) 

今、私はpart.iの生成を報告します.openerpでより多くのモジュールを参照し、独自のコードを作成しました.しかし、印刷ボタンをクリックすると上記のエラーが発生します. 私の要件は、bpl.daily.transaction.masterテーブルのすべてのデータを取得して表示することです。

これを実装するようにアドバイスしてください

ここに私のbpl_report.pyクラスがあります

class bpl_daily_transaction_report(osv.osv_memory):
    _name = 'bpl.daily.transaction.report'
    _description = 'bpl daily transaction report'
    _columns = {
        'bpl_company_id':fields.many2one('res.company', 'Company', help='Company'),
        'bpl_estate_id':fields.many2one('bpl.estate.n.registration', 'Estate', help='Estate'),
        'bpl_division_id':fields.many2one('bpl.division.n.registration', 'Division', help='Division', domain="[('estate_id','=',bpl_estate_id)]"),
        'date': fields.date('Date', required=True),
    }
    _defaults = {'date': lambda *a: time.strftime('%Y-%m-01'),}

    def print_report(self, cr, uid, ids, context=None):
        datas = {
             'ids': [],
             'model': 'bpl.daily.transaction.master',
             'form': self.read(cr, uid, ids)[0]
        }
        return {
            'type': 'ir.actions.report.xml',
            'report_name': 'bpl.daily.transaction',
            'datas': datas,
        }        
bpl_daily_transaction_report()

そして、ここに私のbpl_report.xmlファイルを示しています。ここに問題があるようです。私はまだopenerpレポートの初心者レベルです。

<?xml version="1.0" encoding="utf-8"?>
<openerp>
<data>
<record id="daily_transaction_report_action" model="ir.actions.act_window">
    <field name="name">Daily Transaction Report</field>
    <field name="type">ir.actions.act_window</field>
    <field name="res_model">bpl.daily.transaction.report</field>
    <field name="view_type">form</field>
    <field name="view_mode">form,tree</field>
    <field name="target">new</field>
</record>
<record id="daily_transaction_report_view" model="ir.ui.view">
    <field name="name">bpl.daily.transaction.report.form</field>
    <field name="model">bpl.daily.transaction.report</field>
    <field name="arch" type="xml">
    <form string="Daily Transaction Report" version="7.0">
        <field name="bpl_company_id" />
        <field name="bpl_estate_id" />
        <field name="bpl_division_id" />
        <field name="date" />
        <footer>
        <button name="print_report" string="Print" type="object" 
            class="oe_highlight" />
        or
        <button string="Cancel" special="cancel" class="oe_link" />
        </footer>
    </form>
    </field>
</record>

<report id="report_bpl_daily_transaction" string="Daily Transaction"
    model="bpl.daily.transaction.report" name="bpl.daily.transaction"
    auto="False" menu="False" />
<menuitem id="menu_checkroll_reporting" parent="base.menu_reporting"
    name="Checkroll" />
<menuitem id="menu_checkroll_reports" name="Reports"
    parent="menu_checkroll_reporting" />
<menuitem name="Daily Transaction Report" parent="menu_checkroll_reports"
    action="daily_transaction_report_action" id="menu_daily_transaction_report" />
</data>
</openerp>

この問題を解決するのを手伝ってください。

4

1 に答える 1

1

エラーから、レポートの命名規則に問題があるようです。サービス名が間違って指定されている可能性があります。次のようになります。

module_report.xml 内 --> 単純な name='bpl.daily.transaction' である必要があります。

解析中の report.py から、次のように「report.bpl.daily.transaction」になるはずです。

report_sxw.report_sxw('report.bpl.daily.transaction', 'bpl.daily.transaction', 'RML_PATH_OF_REPORT', parser=PARSER_NAME)

ウィザードからの印刷中に、代わりに「bpl.daily.transaction」が必要であり、最終的には問題ないようです。

最後にこれを確認して、適切にしてください。それはうまくいくはずです。

于 2013-05-08T09:04:00.203 に答える