IR
ir是infomation repository的缩写,意思是信息仓库,即这个架构下的所有对象都是为构建信息化服务的。在此架构下的对象有
- ir.actions
- ir.actions.report
- ir.attachemnt
- ir.config.parameter
- ir.cron
- ir.fields
- ir.filters
- ir.http
- ir.logging
- ir.mail.server
- ir.module
- ir.property
- ir.qweb
- ir.qweb.fields
- ir.rule
- ir.sequence
- ir.translation
- ir.ui.menu
- ir.ui.view
ir.ui.view
ir.ui.view 是odoo用来构建视图的对象,常见的视图类型例如 表单(form)、树形列表(tree)、图表(graph)、日历(calendar)、看板(kanban)等都是ir.ui.view中一种类型。
ir.actions.report
ir.actions.report对象用来处理报表相关的处理动作。
条码打印
利用ir.actions.report的barcode方法我们可以生成各种格式的条形码。下面是一个生成Code128格式的条形码的例子。
barcode = request.env['ir.actions.report'].barcode('Code128', order_name)
headers = [
('Content-Type', 'image/png'),
('Content-Length', len(barcode))
]
return request.make_response(barcode, headers)
下面我们详细看一下barcode方法的用法。
@api.model
def barcode(self, barcode_type, value, **kwargs):
...
- barcode_type: 指定条码的格式(支持的格式:EAN13,EAN8,DataMatrix,QR,Code128), 默认的是Code128格式
- value: 条码的文本值。
该方法返回一个PNG格式的图片,如果条码生成失败,则会抛出异常。