如何将简单的树形视图下载到pdf中,因为我没有一个one2many字段可使用foreach标记循环浏览

您好,我已经使用SQL查询创建了一个简单的树状视图,但是现在我也想下载它,但由于没有任何一个one2many字段,所以我无法下载,所以我无法下载它>

现在它给我每页一行的报告,但是我希望所有行都在一起,我希望它们以pdf格式而不是xls格式。我曾尝试将查询到的数据存储在一个数组中,但这对我不起作用,即使我们可以做到,我也不知道

class PostgresReport(models.Model):
     '''
This module is responsible for all of the requisition related operations.
'''
    _name = 'purchase.comp'
    _auto = False
    #all fields
    name = fields.Char(string = 'Purchase Order')
    origin = fields.Char(string ='Purchase Agreement')
    date_order = fields.Datetime('Order Date',index=True,copy=False)
    state = fields.Selection([
        ('draft','RFQ'),('sent','RFQ Sent'),('to approve','To Approve'),('purchase','Purchase Order'),('done','Locked'),('cancel','Cancelled')
    ],string='Status',readonly=True,copy=False,default='draft',track_visibility='onchange')
    product_id = fields.Char(string='Product')
    product_qty = fields.Float(string='Quantity')
    price_unit = fields.Float(string='Unit Price')
    price_subtotal = fields.Monetary(string='Subtotal',store=True)
    vendor = fields.Char(string='Vendor')
    currency_id = fields.Char('Currency')

'''
    This function is responsible for fetching data from 3 different tables and displaying it
'''
    @api.model_cr
    def init(self,_logger=None):
        """ Event Question main report """
        query = []

        tools.drop_view_if_exists(self._cr,'purchase_comp')
        view = self._cr.execute(""" CREATE VIEW purchase_comp AS (
               SELECT 
                    b.id as id,a.name as "name",a.origin as "origin",a.date_order as "date_order",a.state as "state",b.name as "product_id",b.product_qty as "product_qty",b.price_unit as "price_unit",b.price_subtotal as "price_subtotal",c.display_name as "vendor",d.name as "currency_id"


                FROM public.purchase_order as a

                inner join 
                public.purchase_order_line as b
                on a.id = b.order_id

                inner join
                public.res_partner as c
                on a.partner_id = c.id

                inner join
                public.res_currency  as d
                on d.id = b.currency_id

                WHERE a.origin != ''
                order by a.name
        )""")

我不发布Web代码,因为它简单明了。请从.py代码中告诉我,我可以使用哪个字段进行XML循环,如果在这种情况下不能使用任何内容,该怎么办。预先感谢

yumuyang111 回答:如何将简单的树形视图下载到pdf中,因为我没有一个one2many字段可使用foreach标记循环浏览

在任何向导中创建一个按钮,并返回一个报表操作,将要打印的记录附加为数据,因此,您可以在报表中使用foreach:

@api.multi
def print_lines(self):
    self.ensure_one()
    records = self.env['purchase.comp'].search([])   # take all records to print

    active_ids = []  # we have the active records in 'records' variable just to print one report,# so we do not really need any active id,add some id if you get any error
    datas = {
         'ids': active_ids,'model': 'purchase.comp','form': self.read()[0],'records_to_print': records
    }

    report_name = 'module_name.report_name'
    report_obj = self.env['ir.actions.report'].search([
        ('report_name','=',report_name),('report_type',report_type)
    ],limit=1).report_action(
        [],data=datas)

    return report_obj

我承认我没有尝试解决方案,但是我从hr模块中学到了一些想法。它可能会起作用,尝试一下并告诉我是否起作用

本文链接:https://www.f2er.com/3132428.html

大家都在问