I'm a bit further down the same road. I got as far as generating a new account_print_invoice.rml, and seeing the change I made appear in the invoice pdf.
Unfortunately there are some screw ups. Below I describe how I deal with them.
Here's the steps I follow :
1) back up the two files. Eg,
mv account_print_invoice.sxw account_print_invoice.sxw.orig
mv account_print_invoice.rml account_print_invoice.rml.orig
2) pull the sxw file to my desktop with :
scp $ME@$REMOTE_HOST:$OPENERP_PATH/openerp/addons/account/report/account_print_invoice.sxw ~/Desktop
3) Open it in LibreOffice and change something visibly, a title for example
4) Save it and push it back to the server with :
scp ~/Desktop/account_print_invoice.sxw $ME@$REMOTE_HOST:$OPENERP_PATH/openerp/addons/account/report
5) Run this command to generate the rml file :
python ../../base_report_designer/openerp_sxw2rml/openerp_sxw2rml.py account_print_invoice.sxw > account_print_invoice.rml
6) Back in OpenERP, Try printing the invoice again. You should see your altered title.
The screw ups
Â¡Generating an rml file from the originally delivered sxw, does not get you the same rml as delivered! The resulting formatted invoice:
- loses it's address information, and
- the title section is altered.
Instead of ...
| Description | Invoice Date | Source | Customer Code |
... I get ...
| Description | Invoice Date | Partner Ref. |
The rml is not hard to read. I found a section entitled "Table_Partner_Address", containing a a macro function
display_address(o.partner_id). Putting that into the sxw, regenerating the rml and then regenerating the report, produced the missing address section. This proved to me that macro functions put in the sxw will work with out any further effort in the rml.