This question has been flagged
1 Reply
8924 Views

I'm using aeroo report to create a report. I need to insert a temporary variable in a for cicle to incement with some values. It's possible this? Official documentation doesn't explain nothing about this.

Avatar
Discard

Hi Fracesco, i faced the same problem, i found a roundabout by checking the template.ods file in the report_aeroo_printscreen module and how the parser works, it might help you!

Author

I will see the code of this module. Thanks.

Best Answer

I found this in aero reports forums http://www.alistek.com/forum/viewtopic.php?f=11&t=473&p=1590#p1590 it was really useful

first you have to define parser in the parser tab of your report:

class Parser(report_sxw.rml_parse):
    def __init__(self, cr, uid, name, context):
        super(Parser, self).__init__(cr, uid, name, context)
        self.localcontext.update({
            'myset':self.myset,
            'myget':self.myget,
            'storage':{}
        })


def myset(self, pair):
        if isinstance(pair, dict):
            self.localcontext['storage'].update(pair)
        return False

def myget(self, key):
    if key in self.localcontext['storage'] and self.localcontext['storage'][key]:
        return self.localcontext['storage'][key]
    return False

then in the reports you can set a variable in this way:

<if test="myset({'test':50})"></if>

then you can call it with:

<myget('test')>

example to modify an already declared variable:

<if test="myset({'test':myget('test')+1})"></if>
Avatar
Discard

yeah it's some way to achieve it, there are also loop options, but what i will really want alistek to do is to permitt the use of more than 2 column loops in the same sheet. I have almost lost all my hairs and was finally forced to use 3 sheets for my report instead of one!

I probably do not know what you mean, because i can implement any x number of loops recursively or independent loops in the same column or row.

Felipe what I mean is for example suppose you have got two tables A & B you wanna make a report on these table lines and u wanna generate the table columns names dynamically (loop on columns) in the same sheet, u'll have to do two different column loops in the same sheet!

10000 thanks !!!

I spent an all day trying to make sumif() working, and I still cannot manage to make it working

Now I managed to do what I needed in 5 min thanks to this tip.

Many thanks .

thumb up if it was of any help ;)