python - 如何从 openerp 中的帐户报告打印单一合作伙伴分类帐报告

标签 python xml reporting odoo

我正在使用此功能来打印所有公司报告:

def _print_report(self, cr, uid, ids, data, context=None):
        if context is None:
            context = {}
           data = self.pre_print_report(cr, uid, ids, data, context=context)
        data['form'].update(self.read(cr, uid, ids, ['initial_balance', 'filter',     'page_split', 'amount_currency'])[0])
        if data['form']['page_split']:
            return {
              'type': 'ir.actions.report.xml',
              'report_name': 'account.third_party_ledger',
              'datas': data,
        }
         return {
                'type': 'ir.actions.report.xml',
                'report_name': 'account.third_party_ledger_other',
                'datas': data,
        }

如何调整它以打印单个公司报告?

最佳答案

我在 res.partner.form 中添加了一个按钮,该按钮调用 print_partner_ledger:

<button type="object" name="print_partner_ledger" string="Print Partner Ledger" />

然后我将此函数添加到 res.partner 对象中:

class res_partner(osv.Model):
_inherit = 'res.partner'

def print_partner_ledger(self, cr, uid, ids, context=None):
    # select all journals
    journal_obj = self.pool.get('account.journal')
    journal_ids = journal_obj.search(cr, uid, [], context=context)

    # the data variable is normally generated by the wizard but in our case we generate it manually
    data = {
        u'form': {
            u'amount_currency': False,
            u'chart_account_id': False, #print all chart accounts
            u'date_from': False,
            u'date_to': False,
            u'filter': u'filter_no',
            u'fiscalyear_id': False,
            u'id': 1, #don't know what this id is for
            u'initial_balance': False,
            u'journal_ids': journal_ids, #print all journals
            u'page_split': False,
            u'period_from': False,
            u'period_to': False,
            u'periods': [],
            u'result_selection': u'customer',
            u'target_move': u'posted',
            u'used_context': {
                            u'chart_account_id': False, #print all chart accounts
                            u'journal_ids': journal_ids, #print all journal
                            u'lang': u'en_US',
                            u'state': u'posted'}
            },
            u'ids': ids, #partner id
            u'model': u'res.partner'
    }

    return {
            'type': 'ir.actions.report.xml',
            'report_name': 'account.third_party_ledger_other',
            'datas': data,
    }

花了几个小时,但终于成功了。我还制作了一个在 res.partner 表单上安装按钮的模块。如果您需要,请告诉我

关于python - 如何从 openerp 中的帐户报告打印单一合作伙伴分类帐报告,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20866451/

相关文章:

python - 使用python的看门狗从linux监控afp共享文件夹

javascript - 每个选择的多个位置 XSLT

java - 选择一个联系人并将其填写到EditText中

javascript - 如何防止生成空的 Birt 报告

python - 在 Python 中使用 Selenium 访问 Tor

python - 有两部词典,想以某种方式将它们组合起来

jquery - 使用 MVC 4 提供仪表板和报告功能

.net - DevExpress 报告有哪些优点/缺点?

python - ThreadPoolExecutor 未定义 [python3]

c# - 如何解决数据集错误 - 数据集不支持 'union' 或 'list' 作为 simpleType