[Zope] Re: how to accumulate data using ZPT

prabuddha ray buddharay at gmail.com
Tue May 24 04:17:09 EDT 2005


 ok this is again freaky on my part.

my problem still remains intact .as i've told earlier,
in my ZPT I needed to find a way to sum up column values 
if they are present and print the total at the last row.

I tried this as a Deepak pal tipped :

<span tal:condition="not:penaltylen" tal:content="python:penalty[0].unit_cost"/>
        <span tal:define="global sum python:sum+penalty[0].unit_cost"/>
 <tr><td>Total <td><b tal:content="sum"></b></td></tr>

 but what happens is obvious , for reports where even one row has the
unitcost missing followiing error comes up:

"tuple indx out of range"

when i changed tghe span tgs alike this :

<span tal:condition="not:penaltylen" tal:content="python:penalty[0].unit_cost">
        <span tal:define="global sum python:sum+penalty[0].unit_cost"/>
</span>

no error was there but the total remained 0.

No ZSQLmethod can be used to get the sum coz its pretty complex.

 so plz rethink the code I'm also trying hard.
 hope for a reply soon
 
> On 5/20/05, Deepak <dgangadhar at zeomega.com> wrote:
> > 
> > Hi Prabuddha,
> >    
> > check this ...
> > 
> > <span tal:define="global sum python:0"/>
> > <span tal:repeat="item python:here.somesql()">
> >     <span tal:condition="item/var" tal:define="global sum 
> > python:sum+item.var"/>
> > </span>
> > <span tal:content="sum"/>        
> > 
> > thanks,
> > 
> > Deepak
> > 
> > prabuddha ray wrote:
> > 
> > >sorry for delay, 
> > >         but the options you gave are ruled out.
> > >actually not all the rows in the column have the values.
> > >further the total i'm looking for will result in a very complex query 
> > >that i dont want to do onsidering the no. of rows are high.
> > >          
> > >  I just need something like a var in my ZPT which can just sum up the
> > >values if they  are present.
> > >value's prsence i'm checking using tal:condition but how to add the
> > >value repeatedly in the sum var.
> > >
> > >kindly help.
> > >
> > >
> > >
> > >On 5/20/05, Tino Wildenhain <tino at wildenhain.de> wrote:
> > >  
> > >
> > >>Am Freitag, den 20.05.2005, 10:36 +0100 schrieb Hugo Ramos:
> > >>    
> > >>
> > >>>On 5/20/05, Tino Wildenhain <tino at wildenhain.de> wrote:
> > >>>      
> > >>>
> > >>>>Am Freitag, den 20.05.2005, 09:52 +0100 schrieb Hugo Ramos:
> > >>>>        
> > >>>>
> > >>>>>Yellow,
> > >>>>>
> > >>>>>What DBMS are you using??? MySQL???
> > >>>>>If so just have a sql method do this:
> > >>>>>==========
> > >>>>>SELECT COUNT( '*' )  AS total
> > >>>>>FROM yourtable
> > >>>>>==========
> > >>>>>          
> > >>>>>
> > >>>>Are you sure about the ' '? looks strange.
> > >>>>        
> > >>>>
> > >>>It works both ways... With or without the ' ' !
> > >>>
> > >>>      
> > >>>
> > >>well. another reason to avoid mysql I guess ;)
> > >>
> > >>
> > >>
> > >>
> > >>    
> > >>
> > >
> > >
> > >  
> > >
> > 
> > 
> > 
> 


-- 
Share the vision of difference with ME


More information about the Zope mailing list