Example #1
0
 def from_data(self, uid, fields, rows, model):
     pageSize=[210.0,297.0]
     new_doc = etree.Element("report")
     config = etree.SubElement(new_doc, 'config')
     def _append_node(name, text):
         n = etree.SubElement(config, name)
         n.text = text
     _append_node('date', time.strftime(str(locale.nl_langinfo(locale.D_FMT).replace('%y', '%Y'))))
     _append_node('PageSize', '%.2fmm,%.2fmm' % tuple(pageSize))
     _append_node('PageWidth', '%.2f' % (pageSize[0] * 2.8346,))
     _append_node('PageHeight', '%.2f' %(pageSize[1] * 2.8346,))
     _append_node('PageFormat', 'a4')
     _append_node('header-date', time.strftime(str(locale.nl_langinfo(locale.D_FMT).replace('%y', '%Y'))))
     l = []
     t = 0
     temp = []
     tsum = []
     header = etree.SubElement(new_doc, 'header')
     for f in fields:
         field = etree.SubElement(header, 'field')
         field.text = tools.ustr(f)
     lines = etree.SubElement(new_doc, 'lines')
     for row_lines in rows:
         node_line = etree.SubElement(lines, 'row')
         for row in row_lines:
             col = etree.SubElement(node_line, 'col', para='yes', tree='no')
             col.text = tools.ustr(row)
     transform = etree.XSLT(
         etree.parse(os.path.join(tools.config['root_path'],
                                  'addons/base/report/custom_new.xsl')))
     rml = etree.tostring(transform(new_doc))
     self.obj = trml2pdf.parseNode(rml, title='Printscreen')
     return self.obj
Example #2
0
    def from_data(self, uid, fields, rows, company_name):
        pageSize = [210.0, 297.0]
        new_doc = etree.Element("report")
        config = etree.SubElement(new_doc, 'config')

        def _append_node(name, text):
            n = etree.SubElement(config, name)
            n.text = text

        _append_node(
            'date',
            time.strftime(
                str(locale.nl_langinfo(locale.D_FMT).replace('%y', '%Y'))))
        _append_node('PageSize', '%.2fmm,%.2fmm' % tuple(pageSize))
        _append_node('PageWidth', '%.2f' % (pageSize[0] * 2.8346, ))
        _append_node('PageHeight', '%.2f' % (pageSize[1] * 2.8346, ))
        _append_node('PageFormat', 'a4')
        _append_node(
            'header-date',
            time.strftime(
                str(locale.nl_langinfo(locale.D_FMT).replace('%y', '%Y'))))
        _append_node('company', company_name)

        skip_index = []
        header = etree.SubElement(new_doc, 'header')
        i = 0
        for f in fields:
            if f.get('header_data_id', False):
                value = f.get('header_name', "")
                field = etree.SubElement(header, 'field')
                field.text = tools.ustr(value)
            else:
                skip_index.append(i)
            i += 1
        lines = etree.SubElement(new_doc, 'lines')
        for row_lines in rows:
            node_line = etree.SubElement(lines, 'row')
            j = 0
            for row in row_lines:
                if not j in skip_index:
                    para = "yes"
                    tree = "no"
                    value = row.get('data', '')
                    if row.get('bold', False):
                        para = "group"
                    if row.get('number', False):
                        tree = "float"
                    col = etree.SubElement(node_line,
                                           'col',
                                           para=para,
                                           tree=tree)
                    col.text = tools.ustr(value)
                j += 1
        transform = etree.XSLT(
            etree.parse(
                os.path.join(tools.config['root_path'],
                             'addons/base/report/custom_new.xsl')))
        rml = etree.tostring(transform(new_doc))
        self.obj = trml2pdf.parseNode(rml, title='Printscreen')
        return self.obj
Example #3
0
 def from_data(self, uid, fields, rows, company_name):
     pageSize=[210.0,297.0]
     new_doc = etree.Element("report")
     config = etree.SubElement(new_doc, 'config')
     def _append_node(name, text):
         n = etree.SubElement(config, name)
         n.text = text
     _append_node('date', time.strftime(str(locale.nl_langinfo(locale.D_FMT).replace('%y', '%Y'))))
     _append_node('PageSize', '%.2fmm,%.2fmm' % tuple(pageSize))
     _append_node('PageWidth', '%.2f' % (pageSize[0] * 2.8346,))
     _append_node('PageHeight', '%.2f' %(pageSize[1] * 2.8346,))
     _append_node('PageFormat', 'a4')
     _append_node('header-date', time.strftime(str(locale.nl_langinfo(locale.D_FMT).replace('%y', '%Y'))))
     _append_node('company', company_name)
     l = []
     t = 0
     temp = []
     tsum = []
     skip_index = []
     header = etree.SubElement(new_doc, 'header')
     i = 0
     for f in fields:
         if f.get('header_data_id', False):
             value = f.get('header_name', "")
             field = etree.SubElement(header, 'field')
             field.text = tools.ustr(value)
         else:
             skip_index.append(i)
         i += 1
     lines = etree.SubElement(new_doc, 'lines')
     for row_lines in rows:
         node_line = etree.SubElement(lines, 'row')
         j = 0
         for row in row_lines:
             if not j in skip_index:
                 para = "yes"
                 tree = "no"
                 value = row.get('data', '')
                 if row.get('bold', False):
                     para = "group"
                 if row.get('number', False):
                     tree = "float"
                 col = etree.SubElement(node_line, 'col', para=para, tree=tree)
                 col.text = tools.ustr(value)
             j += 1
     transform = etree.XSLT(
         etree.parse(os.path.join(tools.config['root_path'],
                                  'addons/base/report/custom_new.xsl')))
     rml = etree.tostring(transform(new_doc))
     # Update system font database if it hasn't been called yet, so that system fonts are used by reportlab with better glyph coverage
     registry = openerp.registry(request.cr.dbname)
     registry['res.font'].font_scan(request.cr, SUPERUSER_ID, lazy=True, context=request.context)
     self.obj = trml2pdf.parseNode(rml, title='Printscreen')
     return self.obj
Example #4
0
    def from_data(self, uid, fields, rows, company_name):
        pageSize = [210.0, 297.0]
        new_doc = etree.Element("report")
        config = etree.SubElement(new_doc, "config")

        def _append_node(name, text):
            n = etree.SubElement(config, name)
            n.text = text

        _append_node("date", time.strftime(str(locale.nl_langinfo(locale.D_FMT).replace("%y", "%Y"))))
        _append_node("PageSize", "%.2fmm,%.2fmm" % tuple(pageSize))
        _append_node("PageWidth", "%.2f" % (pageSize[0] * 2.8346,))
        _append_node("PageHeight", "%.2f" % (pageSize[1] * 2.8346,))
        _append_node("PageFormat", "a4")
        _append_node("header-date", time.strftime(str(locale.nl_langinfo(locale.D_FMT).replace("%y", "%Y"))))
        _append_node("company", company_name)
        l = []
        t = 0
        temp = []
        tsum = []
        skip_index = []
        header = etree.SubElement(new_doc, "header")
        i = 0
        for f in fields:
            if f.get("header_data_id", False):
                value = f.get("header_name", "")
                field = etree.SubElement(header, "field")
                field.text = tools.ustr(value)
            else:
                skip_index.append(i)
            i += 1
        lines = etree.SubElement(new_doc, "lines")
        for row_lines in rows:
            node_line = etree.SubElement(lines, "row")
            j = 0
            for row in row_lines:
                if not j in skip_index:
                    para = "yes"
                    tree = "no"
                    value = row.get("data", "")
                    if row.get("bold", False):
                        para = "group"
                    if row.get("number", False):
                        tree = "float"
                    col = etree.SubElement(node_line, "col", para=para, tree=tree)
                    col.text = tools.ustr(value)
                j += 1
        transform = etree.XSLT(
            etree.parse(os.path.join(tools.config["root_path"], "addons/base/report/custom_new.xsl"))
        )
        rml = etree.tostring(transform(new_doc))
        self.obj = trml2pdf.parseNode(rml, title="Printscreen")
        return self.obj
Example #5
0
    def from_data(self, uid, fields, rows, model):
        pageSize = [210.0, 297.0]
        new_doc = etree.Element("report")
        config = etree.SubElement(new_doc, 'config')

        def _append_node(name, text):
            n = etree.SubElement(config, name)
            n.text = text

        _append_node(
            'date',
            time.strftime(
                str(locale.nl_langinfo(locale.D_FMT).replace('%y', '%Y'))))
        _append_node('PageSize', '%.2fmm,%.2fmm' % tuple(pageSize))
        _append_node('PageWidth', '%.2f' % (pageSize[0] * 2.8346, ))
        _append_node('PageHeight', '%.2f' % (pageSize[1] * 2.8346, ))
        _append_node('PageFormat', 'a4')
        _append_node(
            'header-date',
            time.strftime(
                str(locale.nl_langinfo(locale.D_FMT).replace('%y', '%Y'))))
        l = []
        t = 0
        temp = []
        tsum = []
        header = etree.SubElement(new_doc, 'header')
        for f in fields:
            field = etree.SubElement(header, 'field')
            field.text = tools.ustr(f)
        lines = etree.SubElement(new_doc, 'lines')
        for row_lines in rows:
            node_line = etree.SubElement(lines, 'row')
            for row in row_lines:
                col = etree.SubElement(node_line, 'col', para='yes', tree='no')
                col.text = tools.ustr(row)
        transform = etree.XSLT(
            etree.parse(
                os.path.join(tools.config['root_path'],
                             'addons/base/report/custom_new.xsl')))
        rml = etree.tostring(transform(new_doc))
        self.obj = trml2pdf.parseNode(rml, title='Printscreen')
        return self.obj
Example #6
0
    def from_data(self, uid, fields, rows, company_name, company_logo, current_date):
        """
        :param company_name: string
        :param company_logo: binary file
        """
        page_size = [210.0, 297.0]
        new_doc = etree.Element("report")
        config = etree.SubElement(new_doc, 'config')

        def _append_node(name, text):
            n = etree.SubElement(config, name)
            n.text = text
        _append_node('date', current_date)
        _append_node('PageSize', '%.2fmm,%.2fmm' % tuple(page_size))
        _append_node('PageWidth', '%.2f' % (page_size[0] * 2.8346,))
        _append_node('PageHeight', '%.2f' %(page_size[1] * 2.8346,))
        _append_node('PageFormat', 'a4')
        _append_node('header-date', current_date)
        _append_node('company', company_name)
        _append_node('company_logo', company_logo)

        l = []
        t = 0
        temp = []
        tsum = []
        skip_index = []
        header = etree.SubElement(new_doc, 'header')
        i = 0
        for f in fields:
            if f.get('header_data_id', False):
                value = f.get('header_name', "")
                field = etree.SubElement(header, 'field')
                field.text = tools.ustr(value)
            else:
                skip_index.append(i)
            i += 1
        lines = etree.SubElement(new_doc, 'lines')
        for row_lines in rows:
            node_line = etree.SubElement(lines, 'row')
            j = 0
            for row in row_lines:
                if j not in skip_index:
                    para = "yes"
                    tree = "no"
                    value = row.get('data', '')
                    if row.get('bold', False):
                        para = "group"
                    if row.get('number', False):
                        tree = "float"
                    col = etree.SubElement(node_line, 'col', para=para, tree=tree)
                    col.text = tools.ustr(value)
                j += 1

        current_dir = os.path.dirname(os.path.abspath(__file__))
        transform = etree.XSLT(
            etree.parse(os.path.join(current_dir,
                                     'report/main_rml_layout.xsl')))
        rml = etree.tostring(transform(new_doc))
        localcontext = {'company_logo': company_logo,
                        'internal_header': False,}
        self.obj = trml2pdf.parseNode(rml, localcontext, title='Printscreen')
        return self.obj
Example #7
0
    def from_data(self, uid, fields, rows, company_name):
        pageSize = [210.0, 297.0]
        new_doc = etree.Element("report")
        config = etree.SubElement(new_doc, 'config')

        def _append_node(name, text):
            n = etree.SubElement(config, name)
            n.text = text

        _append_node(
            'date',
            time.strftime(
                str(locale.nl_langinfo(locale.D_FMT).replace('%y', '%Y'))))
        _append_node('PageSize', '%.2fmm,%.2fmm' % tuple(pageSize))
        _append_node('PageWidth', '%.2f' % (pageSize[0] * 2.8346, ))
        _append_node('PageHeight', '%.2f' % (pageSize[1] * 2.8346, ))
        _append_node('PageFormat', 'a4')
        _append_node(
            'header-date',
            time.strftime(
                str(locale.nl_langinfo(locale.D_FMT).replace('%y', '%Y'))))
        _append_node('company', company_name)
        l = []
        t = 0
        temp = []
        tsum = []
        skip_index = []
        header = etree.SubElement(new_doc, 'header')
        i = 0
        for f in fields:
            if f.get('header_data_id', False):
                value = f.get('header_name', "")
                field = etree.SubElement(header, 'field')
                field.text = tools.ustr(value)
            else:
                skip_index.append(i)
            i += 1
        lines = etree.SubElement(new_doc, 'lines')
        for row_lines in rows:
            node_line = etree.SubElement(lines, 'row')
            j = 0
            for row in row_lines:
                if not j in skip_index:
                    para = "yes"
                    tree = "no"
                    value = row.get('data', '')
                    if row.get('bold', False):
                        para = "group"
                    if row.get('number', False):
                        tree = "float"
                    col = etree.SubElement(node_line,
                                           'col',
                                           para=para,
                                           tree=tree)
                    col.text = tools.ustr(value)
                j += 1
        transform = etree.XSLT(
            etree.parse(
                os.path.join(tools.config['root_path'],
                             'addons/base/report/custom_new.xsl')))
        rml = etree.tostring(transform(new_doc))
        # Update system font database if it hasn't been called yet, so that system fonts are used by reportlab with better glyph coverage
        registry = openerp.registry(request.cr.dbname)
        registry['res.font'].font_scan(request.cr,
                                       SUPERUSER_ID,
                                       lazy=True,
                                       context=request.context)
        self.obj = trml2pdf.parseNode(rml, title='Printscreen')
        return self.obj
Example #8
0
    def from_data(self, uid, fields, rows, company_name, company_logo,
                  current_date):
        """
        :param company_name: string
        :param company_logo: binary file
        """
        page_size = [210.0, 297.0]
        new_doc = etree.Element("report")
        config = etree.SubElement(new_doc, 'config')

        def _append_node(name, text):
            n = etree.SubElement(config, name)
            n.text = text

        _append_node('date', current_date)
        _append_node('PageSize', '%.2fmm,%.2fmm' % tuple(page_size))
        _append_node('PageWidth', '%.2f' % (page_size[0] * 2.8346, ))
        _append_node('PageHeight', '%.2f' % (page_size[1] * 2.8346, ))
        _append_node('PageFormat', 'a4')
        _append_node('header-date', current_date)
        _append_node('company', company_name)
        _append_node('company_logo', company_logo)

        l = []
        t = 0
        temp = []
        tsum = []
        skip_index = []
        header = etree.SubElement(new_doc, 'header')
        i = 0
        for f in fields:
            if f.get('header_data_id', False):
                value = f.get('header_name', "")
                field = etree.SubElement(header, 'field')
                field.text = tools.ustr(value)
            else:
                skip_index.append(i)
            i += 1
        lines = etree.SubElement(new_doc, 'lines')
        for row_lines in rows:
            node_line = etree.SubElement(lines, 'row')
            j = 0
            for row in row_lines:
                if j not in skip_index:
                    para = "yes"
                    tree = "no"
                    value = row.get('data', '')
                    if row.get('bold', False):
                        para = "group"
                    if row.get('number', False):
                        tree = "float"
                    col = etree.SubElement(node_line,
                                           'col',
                                           para=para,
                                           tree=tree)
                    col.text = tools.ustr(value)
                j += 1

        current_dir = os.path.dirname(os.path.abspath(__file__))
        transform = etree.XSLT(
            etree.parse(os.path.join(current_dir,
                                     'report/main_rml_layout.xsl')))
        rml = etree.tostring(transform(new_doc))
        localcontext = {
            'company_logo': company_logo,
            'internal_header': False,
        }
        self.obj = trml2pdf.parseNode(rml, localcontext, title='Printscreen')
        return self.obj