Odoo Help

-2

How to add all the employees in an rml report??

By
Drees Far
on 8/25/15, 10:23 AM 779 views

Hello!!

I work with a class named test_example:


class test_example(osv.osv):

_name = 'test.example'

_columns = {

'date_start': fields.date('Date Start ',size=256),

'date_end': fields.date('Date End ',size=256),

'company_id': fields.many2one('res.company', string ="Company Name",size=256),

}

I want to create a report which will contains all the employees of the selected company.

Please help

I really need an answer please

Please don't create double posts for exactly the same.. You could have easily modified your initial topic and added this code.

Yenthe
on 8/25/15, 10:28 AM

try to answer !!!

Drees Far
on 8/25/15, 10:34 AM

Sorry but I never work with RML reports. They're from V7 and will soon be deprecated so I never use them.. Can't answer this one for you.

Yenthe
on 8/25/15, 10:37 AM
1
Axel Mendoza
On 8/25/15, 11:59 AM

First for every report you need a source for the report, because you need all the employees of an specific company first you need to select the company in a wizard like form that have the print button or you could use the company form itself. You need to define what will be the model of the report, could be res.company or hr.employee. More direct solution is to define the report on the hr.employee (that not means that the print button need to be in the employee form, just the type of records that you iterate on the report). Next in your case you need to filter the employees by the selected company. That's better in a wizard like form, you select the company, clic on the print button that call a method in your wizard and search the employees ids filtering by the selected company and pass it to the report by the context, something like this:

    def print_btn(self, cr, uid, ids, context=None):
company_id = self.browse(cr, uid, ids, context=context)[0].company_id
employee_ids = self.pool.get('hr.employee').search(cr, uid, [('company_id','=',company_id)])
context = dict(context or {}, active_ids=employee_ids)
return { 'type': 'ir.actions.report.xml', 'report_name': 'employee.report', 'context': context, }

next you just need to define your rml report in xml and the report itself. For iterate on the employees:

<?xml version="1.0"?>
<document filename="test.pdf">
  <template title="Employees" author="Soltein" allowSplitting="20">
    <pageTemplate id="first">
      	<pageGraphics>
      	    <image x="20" y="760" height="70.0">[[company.logo]]</image>
      	    <rect x="15" y="750" width="410" height="3" fill="yes" stroke="yes"/>
      	    <rect x="425" y="746" width="155" height="12" fill="yes" stroke="yes"/>
      	    <setFont name="Helvetica" size="8"/>
      	    <drawRightString x="550" y="15">Pág.: <pageNumber/> / <pageCount/></drawRightString>
      	    <fill color="white"/>
      	    <setFont name="Helvetica-Bold" size="9"/>
      	    <drawString x="440" y="750">[[company.website]]</drawString>
	    </pageGraphics>
      <frame id="first" x1="15.0" y1="20.0" width="560" height="800"/>
    </pageTemplate>
  </template>
<story>
<blockTable colWidths="534.0"> <tr> <td> <para>Name</para> </td> </tr> </blockTable>
<blockTable colWidths="534.0"> <tr>[[ repeatIn(objects,'o') ]] <td> <para>[[ o.name ]]</para> </td> </tr> </blockTable> 
</story> </document>

That is a very simple report template, you could add more columns to the blocktable and don't forget to change colwidths with a value for every column that you put in the blocktable. You will be iterating for every employee as 'o' and to output any field of the employee you use this syntax [[ o.field ]]

About This Community

This platform is for beginners and experts willing to share their Odoo knowledge. It's not a forum to discuss ideas, but a knowledge base of questions and their answers.

Register

Odoo Training Center

Access to our E-learning platform and experience all Odoo Apps through learning videos, exercises and Quizz.

Test it now

Question tools

2 follower(s)

Stats

Asked: 8/25/15, 10:23 AM
Seen: 779 times
Last updated: 8/26/15, 3:41 AM