def mainLoop(self): """TODO""" self.copies = [] self.lastPage = False self.defineStandardStyles() self.defineCustomStyles() self.doc_height = self.copyHeight( ) #- self.page_header_height - self.page_footer_height self.grid_height = self.doc_height - self.calcDocHeaderHeight( ) - self.calcDocFooterHeight() self.grid_body_height = float(self.grid_height or 0) - float( self.grid_header_height or 0) - float(self.grid_footer_height or 0) for copy in range(self.copies_per_page): self.copies.append( dict(grid_body_used=self.grid_height, currPage=-1)) lines = self.getData(self.rows_path) if not lines and hasattr(self, 'empty_row'): lines = Bag() lines.setItem('empty', Bag(self.empty_row), **self.empty_row) if lines: if isinstance(lines, Bag): nodes = lines.getNodes() elif hasattr(lines, 'next'): nodes = list(lines) else: nodes = lines lastNode = nodes[-1] if hasattr(self, 'thermo_wrapper') and self.thermo_kwargs: nodes = self.thermo_wrapper(nodes, **self.thermo_kwargs) for rowDataNode in nodes: self.isLastRow = rowDataNode is lastNode self.currRowDataNode = rowDataNode for copy in range(self.copies_per_page): self.onNewRow() self.copy = copy rowheight = self.calcRowHeight() availableSpace = self.grid_height - self.copyValue('grid_body_used') -\ self.calcGridHeaderHeight() - self.calcGridFooterHeight() if rowheight > availableSpace: self._newPage() if not self.rowData: continue row = self.copyValue('body_grid').row(height=rowheight) self.copies[self.copy]['grid_body_used'] = self.copyValue( 'grid_body_used') + rowheight self.currColumn = 0 self.currRow = row self.prepareRow(row) for copy in range(self.copies_per_page): self.copy = copy self._closePage(True)
def mainLoop(self): """TODO""" self.copies = [] self.lastPage = False self.defineStandardStyles() self.defineCustomStyles() self.doc_height = self.copyHeight() #- self.page_header_height - self.page_footer_height self.grid_height = self.doc_height - self.calcDocHeaderHeight() - self.calcDocFooterHeight() self.grid_body_height = float(self.grid_height or 0) - float(self.grid_header_height or 0) - float(self.grid_footer_height or 0) for copy in range(self.copies_per_page): self.copies.append(dict(grid_body_used=self.grid_height, currPage=-1)) lines = self.getData(self.rows_path) if not lines and hasattr(self,'empty_row'): lines = Bag() lines.setItem('empty',Bag(self.empty_row),**self.empty_row) if lines: if isinstance(lines, Bag): nodes = lines.getNodes() elif hasattr(lines, 'next'): nodes = list(lines) else: nodes = lines lastNode = nodes[-1] if hasattr(self, 'thermo_wrapper') and self.thermo_kwargs: nodes = self.thermo_wrapper(nodes, **self.thermo_kwargs) for rowDataNode in nodes: self.isLastRow = rowDataNode is lastNode self.currRowDataNode = rowDataNode for copy in range(self.copies_per_page): self.onNewRow() self.copy = copy rowheight = self.calcRowHeight() availableSpace = self.grid_height - self.copyValue('grid_body_used') -\ self.calcGridHeaderHeight() - self.calcGridFooterHeight() if rowheight > availableSpace: self._newPage() if not self.rowData: continue row = self.copyValue('body_grid').row(height=rowheight) self.copies[self.copy]['grid_body_used'] = self.copyValue('grid_body_used') + rowheight self.currColumn = 0 self.currRow = row self.prepareRow(row) for copy in range(self.copies_per_page): self.copy = copy self._closePage(True)