Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/performance/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Openerp 仅打印选定合作伙伴的报告_Openerp_Odoo 8_Odoo 9 - Fatal编程技术网

Openerp 仅打印选定合作伙伴的报告

Openerp 仅打印选定合作伙伴的报告,openerp,odoo-8,odoo-9,Openerp,Odoo 8,Odoo 9,有合作伙伴分类账报告,但仅打印所有合作伙伴。所以我在向导和向导视图中添加了合作伙伴id。 现在我需要一种方法,只打印选定合作伙伴的报告。我希望你们能给我一些启发。也许是一些伪代码,我应该如何实现它 class AccountPartnerLedger(models.TransientModel): _inherit = "account.report.partner.ledger" partner_ids = fields.Many2many( 'res.par

有合作伙伴分类账报告,但仅打印所有合作伙伴。所以我在向导和向导视图中添加了合作伙伴id。 现在我需要一种方法,只打印选定合作伙伴的报告。我希望你们能给我一些启发。也许是一些伪代码,我应该如何实现它

class AccountPartnerLedger(models.TransientModel):
    _inherit = "account.report.partner.ledger"

    partner_ids = fields.Many2many(
        'res.partner', string='Choose partners')
我正在尝试按调用报表的域方法进行筛选

class ReportPartnerLedger(models.AbstractModel):
    _inherit = 'report.account_extra_reports.report_partnerledger'


    @api.multi
    def render_html(self, data):
        domain = [
                ('partner_ids', '==', 'partner_ids'),
            ]
        return super(ReportPartnerLedger, self).render_html(data=data)

通常,如果要在partner ledger中进行筛选,则需要覆盖设置所有合作伙伴的一个方法

关于这一点,你可以参考

账户=>report=>report\u partner\u ledger.py

在该文件中有一个方法

def set_context(self, objects, data, ids, report_type=None):
您需要重写它,并需要更新一行,该行将获取所有合作伙伴,而不是您需要在此处传递字段的值

    self.cr.execute(
            "SELECT DISTINCT l.partner_id " \
            "FROM account_move_line AS l, account_account AS account, " \
            " account_move AS am " \
            "WHERE l.partner_id IS NOT NULL " \
                "AND l.account_id = account.id " \
                "AND am.id = l.move_id " \
                "AND am.state IN %s"
                "AND " + self.query +" " \
                "AND l.account_id IN %s " \
                " " + PARTNER_REQUEST + " " \
                "AND account.active " + reconcile + " ", params)
    self.partner_ids = [res['partner_id'] for res in self.cr.dictfetchall()]
通过这种方式,odoo获取partner ledger报告的所有partners,所以只需注释掉这些行并替换代码即可

为此,您必须继承向导,因为在 partner_id字段中存在需要替换该值的字段


没有人会在这里为您编写代码。您应该与我们分享您的尝试,如果我们能够提供帮助,我们将帮助您解决错误。正如我之前所说,我不想要代码,我想要一些指针。好的,这里是提示:源代码