Example #1
0
    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)
Example #2
0
 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)