1

OpenERP で RML を使用して新しいレポートを作成しています。ここに私のPython関数があります:

def get_employee_lines(self, context=None):
    print ('--------------------MOMO----------------------')
    res_list=[]
    payslip_line = self.pool.get('hr.payslip')
    print payslip_line

    obj_ids = payslip_line.search(self.cr, self.uid, [])
    print obj_ids
    for res in payslip_line.read(self.cr, self.uid, obj_ids, ['id', 'employee_id'], context=False):
        print res['employee_id'][1]
        obj = {}
        obj['name'] = res['employee_id'][1]
        res_list.append(obj)
    return res_list

と私のRML:

 <tr>
    <td>
      <para style="P9">NOM EMPLOYÉ</para>
    </td>

    <td>
      <para style="P7">[[ repeatIn(get_employee_lines(), 'o') ]]</para>
      <para style="P7">[[ o['name'] ]]</para>
    </td>
  </tr>

各従業員を td を意味する新しいセルに入れたいです。

4

2 に答える 2

0

あなたが探しているのはこれです:

<tr>
    <td> 
        <para style="P9">NOM EMPLOYÉ</para>
    </td>

    <section>
        [[ repeatIn(get_employee_lines(), 'o') ]]
        <td>
            <para style="P7">[[ o['name'] ]]</para>
        </td>
    </section>
</tr>

基本的に、repeatIn 呼び出しがあるときはいつでも、セクション内またはセクションのすぐ外側に配置する必要があり、セクション内のすべてが繰り返されます。ただし、これを使用する場合は注意してください。その要素は通常、固定数の列にハードコードされているためです (結局、テーブルを生成しているためです)。

それが役に立てば幸い :)

于 2015-08-31T17:25:35.550 に答える
0

最後に私はそれを見つけました。これが答えです。まず、v4.1.X である OpenOffice のバージョンを変更する必要がありました。次に、[[ repeatIn(get_employee_lines(example.company_id,example.date_start,example.date_end), 'o', 'td') ]] を使用し、すべての行でループして、行ごとに新しいテーブル セルを作成します。

したがって、ここに正しい答えがあります:

 <tr>
  <td>
  <para style="P8">NOM EMPLOYÉ</para>
  </td>
  <td>
 <para style="P7">[[      repeatIn(get_employee_lines(example.company_id,example.date_start,example.d      ate_end), 'o', 'td') ]]</para>
 <para style="P7">[[ o['name'] ]]</para>
</td>
</tr>*

よろしくお願いします。

于 2015-09-03T09:41:51.620 に答える