0

我通过界面创建了一个报告记录,但它没有显示在打印下拉列表中。

在设置 -> 操作 -> 报告中,我添加了一条新记录:

Name: My Test

Service Name: my_po_reports

Object: purchase.order

Report Type: pdf

Report file: purchase/report/order.rml (i'm reusing an existing one just to test)

但是当我去采购订单表格时,我的测试没有出现!

我也在 aeroo 报告中尝试了同样的方法,但没有任何结果:

在设置 -> 操作 -> aeroo 报告 -> 报告中,我添加了一条新记录:

Name: My Test

Service Name: my_po_report

Object: purchase.order

Template type: odt Output type: odt

Template source: file Template path: myfolder/reports/template.odt

我错过了什么?

谢谢

4

2 回答 2

0

当您为 rml 报告定义操作时。您还必须在操作绑定中为此报告定义一个记录。

Settings ==> Actions ===> Action Bindings

名称:采购订单(要显示的报告名称)

型号名称:purchase.order(这里是您的型号)

限定符:client_print_multi

操作参考:ir.actions.report.xml,360(您的报告 xml id 在这里)

希望这对你有帮助

问候,

于 2013-03-11T05:15:08.010 回答
0

编辑:用以下内容替换我之前的解决方案,因为这不需要卸载和重新安装:

<record id="report_mypo_test" model="ir.actions.report.xml">
    <field name="name">Stock Moves Report</field>
    <field name="type">ir.actions.report.xml</field>
    <field name="model">stock.move</field>
    <field name="report_name">mypo.test</field>
    <field name="report_type">aeroo</field>
    <field name="in_format">oo-odt</field>
    <field name="out_format" model="report.mimetypes" ref="report_aeroo.report_mimetypes_odt_odt"/>
    <field name="parser_loc">myaddon/reports/my_parser.py</field>
    <field name="report_rml">myaddon/reports/template.odt</field>
    <field name="parser_state">loc</field>
    <field name="tml_source">file</field>
</record>

<report auto="False" menu="True" id="report_mypo_test" model="stock.move" 
            name="mypo.test" rml="myaddon/reports/template.odt" string="Stock Moves Report"/>

my_parser.py:

import time
from tools.translate import _

from report import report_sxw
from report.report_sxw import rml_parse

from osv import fields, osv
import netsvc

class Parser(report_sxw.rml_parse):
    def __init__(self, cr, uid, name, context):
        super(Parser, self).__init__(cr, uid, name, context)

        ids =  self.pool.get('stock.move').search(self.cr, self.uid, [], context=context)
        self.stockmoves = self.pool.get('stock.move').browse(self.cr, self.uid, ids)

        self.localcontext.update({
            'stockmoves': self.stockmoves
        })

感谢全能的上帝,以及许多在互联网上贡献自己作品的人。

于 2013-03-10T15:36:26.120 回答