【问题标题】:Custom variable in OpenERP templateOpenERP 模板中的自定义变量
【发布时间】:2014-09-09 21:58:48
【问题描述】:

我需要某种计数器来显示列表中元素的位置。

例如在发票中我有条目,我正在像这样迭代它:

[[ repeatIn(o.invoice_line,'l') ]]

现在,我正在像这样显示名称、价格等

[[ l.name ]] [[l.quantity]]

但我也需要按顺序排列位置?我试过了

[[ repeatIn(o.invoice_line,'l') ]]
[[ counter = 1 ]]

在迭代中:

[[ counter ]] [[ l.name ]] [[l.quantity]]
[[ counter = counter + 1 ]]

我不确定我是否做对了,以及是否允许在打开的 erp 模板中使用自定义变量

【问题讨论】:

  • 我认为,您希望序列号符合 1. 价格、数量 2. 价格、数量等。如果您想要这样,您可以创建一个像您的计数器一样工作的函数,您也可以在该函数中按给定的返回值显示数字。
  • 我应该在哪里添加这个功能?进入report_sxw.py?我想避免修改 openerp 的核心部分并通过扩展它来做到这一点......有可能吗?
  • 是的,在 .py 端写入函数将返回整数。如果您不想编写代码,也可以使用标签。例如,这会像柜台一样。你想要什么 ?标记还是函数?
  • 标签就可以了。上面的代码我试过了,但是什么都没有打印出来……

标签: python openerp templating openerp-7


【解决方案1】:

有两个标签可用于打印序列。

  1. <seq/>
  2. <seqReset/>

首先使用<seqReset/>重置序列

在报告.rml 文件中,在写入<seqReset/> 后的列标签处,在repeatIn 中使用<seq/>

例如:

    <td>
      <para style="terp_tblheader_Details_Right"><b>Price</b><seqReset/></para>
    </td>

    <td>
        <para style="terp_default_9"><seq/> [[ format(line.name) ]] </para>
    </td>

希望这会对你有所帮助。

【讨论】:

  • 如果我使用 Open Office Writer 编辑 OpenERP 模板,这可能吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-06-20
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-03-25
  • 1970-01-01
相关资源
最近更新 更多