101 |
|
|
102 |
|
|
103 |
def post(self): |
def post(self): |
104 |
# el pie de una página es el partial_footer de cada uno de los |
if self.details: |
105 |
# detalles abiertos, seguido de los page_footer de cada uno de los |
# el pie de una página es el partial_footer de cada uno de |
106 |
# detalles abiertos, de adentro hacia afuera. |
# los detalles abiertos, seguido de los page_footer de |
107 |
post = filter(None, |
# cada uno de los detalles abiertos, de adentro hacia |
108 |
[i.page_footer for i in self.details] |
# afuera. |
109 |
+ [i.partial_footer for i in self.details]) |
post = filter(None, |
110 |
post.reverse() |
[i.page_footer for i in self.details] |
111 |
|
+ [i.partial_footer for i in self.details]) |
112 |
|
post.reverse() |
113 |
|
else: |
114 |
|
# no hay detalles abiertos: quiere decir que estoy |
115 |
|
# cerrando todo. No olvidarme del page_footer del reporte, |
116 |
|
# que va *siempre* |
117 |
|
post = filter(None, [self.template.page_footer]) |
118 |
return post |
return post |
119 |
|
|
120 |
|
|
240 |
if self.pages: |
if self.pages: |
241 |
prev = self.pages[-1] |
prev = self.pages[-1] |
242 |
page = Page(self.template.height, self.template.max_height, prev) |
page = Page(self.template.height, self.template.max_height, prev) |
243 |
|
page.template = self.template |
244 |
self.pages.append(page) |
self.pages.append(page) |
245 |
|
|
246 |
def guess_fqdn(self, name): |
def guess_fqdn(self, name): |
273 |
self.details.pop() |
self.details.pop() |
274 |
self.path.pop() |
self.path.pop() |
275 |
self.set_extrema() |
self.set_extrema() |
276 |
|
|
277 |
|
|
278 |
def render(self): |
def render(self): |
279 |
# el render ocurre al completar. Entonces lo que hay que hacer es |
# el render ocurre al completar. Entonces lo que hay que hacer es |
280 |
# cerrar todos los detalles que queden abiertos (menos el último, para |
# cerrar todos los detalles que queden abiertos (menos el último, para |
281 |
# que salga después el page_footer) |
# que salga después el page_footer) |
282 |
|
|
283 |
while len(self.details) > 1: |
while self.details: |
284 |
self.close_detail() |
self.close_detail() |
285 |
render = [] |
render = [] |
286 |
pageno = 1 |
pageno = 1 |
298 |
if __name__=='__main__': |
if __name__=='__main__': |
299 |
import time |
import time |
300 |
r=Report('test.xml') |
r=Report('test.xml') |
301 |
r.add_detail('bar') |
#r.add_detail('bar') |
302 |
#r.header(fecha=time.ctime()) |
#r.header(fecha=time.ctime()) |
303 |
r.add_dentry('item', moneda='Morlacks with cochinillas arábigas', contado=100, ctacte=850, otros=50, total=1000) |
r.add_dentry('item', moneda='Morlacks with cochinillas arábigas', contado=100, ctacte=850, otros=50, total=1000) |
304 |
r.add_dentry('item', moneda='MORLACKS WITH COCHINILLAS ARÁBIGAS', contado=10, ctacte=85, otros=5, total=100) |
r.add_dentry('item', moneda='MORLACKS WITH COCHINILLAS ARÁBIGAS', contado=10, ctacte=85, otros=5, total=100) |