- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
如何根据源文档字段名更改打印的qweb文件名?我在模型 stock.picking 中
因此,当我单击打印 -> 交货单时,将打印 qweb,但文件名将取决于源文档字段。在这里,我展示了解释我的意思的图片。
最佳答案
您可以使用配置给动态报告名称,但它会在您打印一份报告时应用。
下面是在报告中打印自定义名称的例子。在ir.actions.report.xml中创建一个字段,其中用户可以配置报告名称。
from openerp import models, fields
class IrActionsReportXml(models.Model):
_inherit = 'ir.actions.report.xml'
download_filename = fields.Char(
'Download filename')
现在您需要创建两个文件。
报告控制者
from openerp import http
from openerp.addons.mail.models import mail_template
from openerp.addons.report.controllers.main import ReportController
from openerp.addons.web.controllers.main import content_disposition
class ReportController(ReportController):
@http.route([
'/report/<path:converter>/<reportname>',
'/report/<path:converter>/<reportname>/<docids>',
])
def report_routes(self, reportname, docids=None, converter=None, **data):
response = super(ReportController, self).report_routes(
reportname, docids=docids, converter=converter, **data)
if docids:
docids = [int(i) for i in docids.split(',')]
report_xml = http.request.session.model('ir.actions.report.xml')
report_ids = report_xml.search(
[('report_name', '=', reportname)])
for report in report_xml.browse(report_ids):
if not report.download_filename:
continue
objects = http.request.session.model(report.model)\
.browse(docids or [])
generated_filename = mail_template.mako_template_env\
.from_string(report.download_filename)\
.render({
'objects': objects,
'o': objects[:1],
'object': objects[:1],
'ext': report.report_type.replace('qweb-', ''),
})
response.headers['Content-Disposition'] = content_disposition(
generated_filename)
return response
@http.route(['/report/download'])
def report_download(self, data, token):
response = super(ReportController, self).report_download(data, token)
# if we got another content disposition before, ditch the one added
# by super()
last_index = None
for i in range(len(response.headers) - 1, -1, -1):
if response.headers[i][0] == 'Content-Disposition':
if last_index:
response.headers.pop(last_index)
last_index = i
return response
2.报表.py
import json
from openerp import http
from openerp.addons.web.controllers import main
from openerp.addons.mail.models import mail_template
class Reports(main.Reports):
@http.route('/web/report', type='http', auth="user")
@main.serialize_exception
def index(self, action, token):
result = super(Reports, self).index(action, token)
action = json.loads(action)
context = dict(http.request.context)
context.update(action["context"])
report_xml = http.request.env['ir.actions.report.xml']
reports = report_xml.search([
('report_name', '=', action['report_name']),
('download_filename', '!=', False)])
for report in reports:
objects = http.request.session.model(context['active_model'])\
.browse(context['active_ids'])
generated_filename = mail_template.mako_template_env\
.from_string(report.download_filename)\
.render({
'objects': objects,
'o': objects[0],
'object': objects[0],
})
result.headers['Content-Disposition'] = main.content_disposition(
generated_filename)
return result
Odoo 社区为我们提供了报告自定义名称的默认模块。您可以直接安装此模块并设置报告名称,如:${o.name}
这里的o代表你的记录。
下面是odoo社区模块的链接。
https://www.odoo.com/apps/modules/9.0/report_custom_filename/
这可能对你有帮助。
关于python - 如何更改打印的 qweb 文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43176154/
我想要输出 20 td 的 css 样式取决于 qweb var。是否有任何替代方法可以像这样复制整个代码: ... ... ... ... ... ... ... 因为此
我想在 qweb 模板中访问两个值 start_date 和 end_date。我如何才能在 qweb. 中使用这些值? 我正在生成然后将其发送到电子邮件。这是我创建报告的方式。 job_id = s
t字段选项不起作用。 我试过了 最佳答案 而不是使用 用 希望能有所帮助! 关于qweb - 如何在Odoo 10 QWeb报表中设置日期格式?,我们在Stack Overflow上找到一个类似
我想在 qweb 报告中添加分隔符“,”,以获得以下结果:session1,session2,session3 而不是:session1session2session3 这是我的代码:
我正在 Odoo 中开发一个模块。我需要更改发票报告以添加一些详细信息。 我使用带有位置属性的 xpath 并检查是否链接了事务以隐藏默认表。 hidden 这
我在 Qweb 报告中显示了一个浮点变量: 我想用产品价格 的小数精度对其进行舍入。我将它四舍五入到 4 位数字,因为我知道Product Price 的小数精度为 4 位数字,但正确的方法是从
我正在 Odoo 中开发一个模块。我需要更改发票报告以添加一些详细信息。 我使用带有位置属性的 xpath 并检查是否链接了事务以隐藏默认表。 hidden 这
我是报告 qweb 的新手,我想练习它,然后我尝试为我的模块 gestion_des_etudiants 创建报告,我知道我的代码中缺少一些东西,我需要你的帮助: report_etudiant.xm
我的问题是关于在 Odoo v8 中自定义 Qweb 报告,如果您检查图像 (Report Description),您会看到我有动态表,所以我的主要问题是如何通过调整主容器的大小来填充可用空间?有什
如何根据源文档字段名更改打印的qweb文件名?我在模型 stock.picking 中 因此,当我单击打印 -> 交货单时,将打印 qweb,但文件名将取决于源文档字段。在这里,我展示了解释我的意思的
我创建了一个向导,在其中放置了来自另一个启用了报告打印的模型的多对一字段[名称]。这里发生的情况是,当我选择一条记录并单击打印按钮时,它仅打印空报告。因此是否可以将数据提取到此处的报告中。 def
我想将“account.invoice”模型中的源文档“来源”字段添加到 qweb 报告中,但我不知道语法我只需要语法来添加这个字段我写的所有其他代码提前致谢。 class make_fields (
如何在 Odoo Qweb 报告中设置字体?目前,当我在 ubuntu 12.04 中开发报告时,报告的 PDF 副本看起来不错。但是,如果我在 ubuntu 14.04 中尝试同样的事情,字体看起来
如何减少qweb中的字符串长度? 示例: 返回stackoverflow我想删除最后8个字符并获取stack 最佳答案 关于odoo - 减少 qweb odoo 中的字符串长度,我们在Stack
我试图实现在字符串结果中有一个新行(回车),但到目前为止,我没有得到这个工作。 这个例子只是忽略了'\n'。 最佳答案 \n 正在工作 将 CSS "white-space: pre-wrap"添加
我想使用 Odoo 10 在报告的标题中插入 Logo 。 我测试过 和 它在 Odoo 8 中没有任何问题,但在 Odoo 10 中却没有。为什么会这样,我该如何解决? 最佳答案 如果你想使用公
我正在 account.invoice 模型中创建一个报告(qweb View ),并希望对每个发票行的一些字段进行求和,如下图所示: 问题是没有按照我想要的方式对字段求和。我该怎么办? cantid
有没有办法在循环 Qweb 中打印 python 字典中的键和值?例如,如果我有一个返回字典的函数: def get_informations(self): mydico={'myfirstk
我想做一个循环来打印元素精确的次数。像这样: ... 其中 o.label_qty 是一个整数。 但我只能在 qweb 中使用 t-foreach 循环: ... 有办法吗? 如果不是,我认为
Odoo v8 使用 Qweb,我们需要在发票的最后一页打印销售条款和条件。 据我所知,我们需要测试它是报告的最后一页,并在此页上打印一些静态 HTML。 有谁知道如何测试最后一页并从中删除页眉和页脚
我是一名优秀的程序员,十分优秀!