0
report.bpl.daily.transaction

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

现在我要报告生成部分。我在 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 回答