Skip to Content
Odoo Menu
  • Zaloguj się
  • Wypróbuj za darmo
  • Aplikacje
    Finanse
    • Księgowość
    • Fakturowanie
    • Wydatki
    • Arkusz kalkulacyjny (BI)
    • Dokumenty
    • Podpisy
    Sprzedaż
    • CRM
    • Sprzedaż
    • PoS Sklep
    • PoS Restauracja
    • Subskrypcje
    • Wypożyczalnia
    Strony Internetowe
    • Kreator Stron Internetowych
    • eCommerce
    • Blog
    • Forum
    • Czat na Żywo
    • eLearning
    Łańcuch dostaw
    • Magazyn
    • Produkcja
    • PLM
    • Zakupy
    • Konserwacja
    • Jakość
    Zasoby Ludzkie
    • Pracownicy
    • Rekrutacja
    • Urlopy
    • Ocena pracy
    • Polecenia Pracownicze
    • Flota
    Marketing
    • Marketing Społecznościowy
    • E-mail Marketing
    • SMS Marketing
    • Wydarzenia
    • Automatyzacja Marketingu
    • Ankiety
    Usługi
    • Projekt
    • Ewidencja czasu pracy
    • Usługi Terenowe
    • Helpdesk
    • Planowanie
    • Spotkania
    Produktywność
    • Dyskusje
    • Zatwierdzenia
    • IoT
    • VoIP
    • Baza wiedzy
    • WhatsApp
    Aplikacje trzecich stron Studio Odoo Odoo Cloud Platform
  • Branże
    Sprzedaż detaliczna
    • Księgarnia
    • Sklep odzieżowy
    • Sklep meblowy
    • Sklep spożywczy
    • Sklep z narzędziami
    • Sklep z zabawkami
    Żywienie i hotelarstwo
    • Bar i Pub
    • Restauracja
    • Fast Food
    • Pensjonat
    • Dystrybutor napojów
    • Hotel
    Agencja nieruchomości
    • Agencja nieruchomości
    • Biuro architektoniczne
    • Budowa
    • Zarządzanie nieruchomościami
    • Ogrodnictwo
    • Stowarzyszenie właścicieli nieruchomości
    Doradztwo
    • Biuro księgowe
    • Partner Odoo
    • Agencja marketingowa
    • Kancelaria prawna
    • Agencja rekrutacyjna
    • Audyt i certyfikacja
    Produkcja
    • Tekstylia
    • Metal
    • Meble
    • Jedzenie
    • Browar
    • Prezenty firmowe
    Zdrowie & Fitness
    • Klub sportowy
    • Salon optyczny
    • Centrum fitness
    • Praktycy Wellness
    • Apteka
    • Salon fryzjerski
    Transakcje
    • Złota rączka
    • Wsparcie Sprzętu IT
    • Systemy energii słonecznej
    • Szewc
    • Firma sprzątająca
    • Usługi HVAC
    Inne
    • Organizacja non-profit
    • Agencja Środowiskowa
    • Wynajem billboardów
    • Fotografia
    • Leasing rowerów
    • Sprzedawca oprogramowania
    Przeglądaj wszystkie branże
  • Community
    Ucz się
    • Samouczki
    • Dokumentacja
    • Certyfikacje
    • Szkolenie
    • Blog
    • Podcast
    Pomóż w nauce innym
    • Program Edukacyjny
    • Scale Up! Gra biznesowa
    • Odwiedź Odoo
    Skorzystaj z oprogramowania
    • Pobierz
    • Porównaj edycje
    • Wydania
    Współpracuj
    • Github
    • Forum
    • Wydarzenia
    • Tłumaczenia
    • Zostań partnerem
    • Usługi dla partnerów
    • Zarejestruj swoją firmę rachunkową
    Skorzystaj z usług
    • Znajdź partnera
    • Znajdź księgowego
    • Spotkaj się z doradcą
    • Usługi wdrożenia
    • Opinie klientów
    • Wsparcie
    • Aktualizacje
    Github Youtube Twitter Linkedin Instagram Facebook Spotify
    +1 (650) 691-3277
    Zaplanuj demo
  • Cennik
  • Pomoc

Odoo is the world's easiest all-in-one management software.
It includes hundreds of business apps:

  • CRM
  • e-Commerce
  • Księgowość
  • Zapasy
  • PoS
  • Projekt
  • MRP
All apps
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
Wszystkie posty Osoby Odznaki
Tagi (Zobacz wszystko)
odoo accounting v14 pos v15
O tym forum
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
Wszystkie posty Osoby Odznaki
Tagi (Zobacz wszystko)
odoo accounting v14 pos v15
O tym forum
Pomoc

How to put a fixed header and footer in a report in odoo 17?

Zaprenumeruj

Otrzymaj powiadomienie o aktywności w tym poście

To pytanie dostało ostrzeżenie
qwebreporttemplateodoo 17
3 Odpowiedzi
8340 Widoki
Awatar
Enzo

I am in odoo 17, and I need to create a report which will have many invoice details, this will make it have many pages, so I need to have a fixed header and footer so that it is displayed on each page, I have been looking for information but I can't find how do it

0
Awatar
Odrzuć
Asha

Have you got solution for this? I am also having similar kind of requirement, I have to display header and footer on all pages. It was working on Odoo16 but not working on odoo17.

Awatar
Cybrosys Techno Solutions Pvt.Ltd
Najlepsza odpowiedź

Hi, 


To add the header and footer for each page, try with the following.

1- Create a custom layout and add header and footer to the custom layout.

<template id="report_custom_external_layout">
<!-- Multicompany -->
<t t-if="not o and doc">
<t t-set="o" t-value="doc"/>
</t>
<t t-if="o and 'company_id' in o">
<t t-set="company" t-value="o.company_id"></t>
</t>
<t t-if="not o or not 'company_id' in o">
<t t-set="company" t-value="res_company"></t>
</t>
<div class="header">
<div class="row">
<img t-if="company.custom_report_header"
t-att-src="image_data_uri(company.custom_report_header)"
alt="Logo" width="100%"/> # optional
</div>
</div>
<div class="footer o_standard_footer" style="position: relative;">
<div style="width: 100%;">
<img t-if="company.custom_report_footer"
t-att-src="image_data_uri(company.custom_report_footer)"
alt="Logo" width="100%"/> # optional
</div>
</div>
<div class="article o_report_layout_standard"
t-att-data-oe-model="o and o._name"
t-att-data-oe-id="o and o.id"
t-att-data-oe-lang="o and o.env.context.get('lang')">
<t t-raw="0"/>
</div>
</template>

2- While calling the template, add the custom layout.


<template id="report_template">
<t t-call="web.html_container">
<t t-call="module_name.report_custom_external_layout">
#
#
# Table contents
#
#

</t>
</t>
</template>



This will result header and footer displaying on each page.



Hope it helps

1
Awatar
Odrzuć
Awatar
Gracious Joseph
Najlepsza odpowiedź

To create a report in Odoo 17 with a fixed header and footer that appears on every page, you can leverage QWeb reports and CSS properties. Here's a step-by-step guide:

1. Design Your Report Template

The QWeb report is an XML-based template that defines how your report is rendered. To add fixed headers and footers:

Header and Footer in the Template

Use <header> and <footer> tags in your QWeb template to define content that repeats on every page.

Example:

xmlCopy code<?xml version="1.0" encoding="UTF-8"?>
<template id="report_invoice_document">
    <t t-call="web.html_container">
        <t t-foreach="docs" t-as="doc">
            <t t-call="web.external_layout">
                <div class="page">
                    <!-- Fixed Header -->
                    <header class="header">
                        <div>Invoice Report</div>
                        <div>Company: <t t-esc="doc.company_id.name" /></div>
                        <div>Date: <t t-esc="doc.date_invoice" /></div>
                    </header>

                    <!-- Main Content -->
                    <div class="content">
                        <h3>Invoice Details</h3>
                        <table>
                            <thead>
                                <tr>
                                    <th>Product</th>
                                    <th>Quantity</th>
                                    <th>Price</th>
                                    <th>Total</th>
                                </tr>
                            </thead>
                            <tbody>
                                <tr t-foreach="doc.invoice_line_ids" t-as="line">
                                    <td><t t-esc="line.product_id.name" /></td>
                                    <td><t t-esc="line.quantity" /></td>
                                    <td><t t-esc="line.price_unit" /></td>
                                    <td><t t-esc="line.price_subtotal" /></td>
                                </tr>
                            </tbody>
                        </table>
                    </div>

                    <!-- Fixed Footer -->
                    <footer class="footer">
                        <div>Page <span class="page-number"></span> of <span class="page-total"></span></div>
                        <div>Company Address: <t t-esc="doc.company_id.partner_id.contact_address" /></div>
                        <div>Thank you for your business!</div>
                    </footer>
                </div>
            </t>
        </t>
    </t>
</template>

2. Add CSS for Fixed Positioning

To ensure the header and footer remain fixed on every page, add the following CSS rules to your report styles:

xmlCopy code<?xml version="1.0" encoding="UTF-8"?>
<template id="report_styles" inherit_id="web.report_assets_common">
    <xpath expr="." position="inside">
        <style>
            /* Ensure the header is fixed at the top */
            .header {
                position: fixed;
                top: 0;
                left: 0;
                width: 100%;
                height: 50px; /* Adjust height as needed */
                background-color: #f5f5f5;
                text-align: center;
                border-bottom: 1px solid #ddd;
                padding: 10px;
            }

            /* Ensure the footer is fixed at the bottom */
            .footer {
                position: fixed;
                bottom: 0;
                left: 0;
                width: 100%;
                height: 50px; /* Adjust height as needed */
                background-color: #f5f5f5;
                text-align: center;
                border-top: 1px solid #ddd;
                padding: 10px;
            }

            /* Content area - Avoid overlap with header/footer */
            .content {
                margin-top: 60px; /* Adjust according to header height */
                margin-bottom: 60px; /* Adjust according to footer height */
            }

            /* Page break styling */
            .page {
                page-break-after: always;
            }
        </style>
    </xpath>
</template>

3. Link Your Stylesheet to the Report

Ensure your custom stylesheet is linked to the report. Add this to your report XML:

xmlCopy code<template id="report_invoice_document_action" inherit_id="account.report_invoice_document">
    <xpath expr="//t[@t-call='web.external_layout']" position="replace">
        <t t-call="your_module_name.report_invoice_document" />
    </xpath>
</template>

Replace your_module_name with the name of your module.

4. Adjust Pagination for PDF Rendering

Odoo uses wkhtmltopdf to render reports as PDFs. Ensure proper pagination and accurate display of headers/footers:

  • Use the @media print CSS rule for print-specific adjustments.
  • Ensure page-break-inside: avoid; is used for critical elements like tables.

Example:

cssCopy code@media print {
    .content table {
        page-break-inside: avoid;
    }
}

5. Enable Dynamic Page Numbers

For page numbers, add placeholders in your footer that wkhtmltopdf recognizes:

xmlCopy code<footer class="footer">
    <div>Page <span class="page-number"></span> of <span class="page-total"></span></div>
</footer>

Ensure wkhtmltopdf is updated to a compatible version (0.12.6 or higher) for the best results.

6. Test Your Report

  • Go to Settings > Technical > Reports.
  • Locate your report, ensure it is correctly linked, and print a preview.
  • Adjust the layout if necessary.

1
Awatar
Odrzuć
Awatar
John Roy A. Geralde
Najlepsza odpowiedź

Can I do these with a specific paper format say"A4 Portrait"?

0
Awatar
Odrzuć
Podoba Ci się ta dyskusja? Dołącz do niej!

Stwórz konto dzisiaj, aby cieszyć się ekskluzywnymi funkcjami i wchodzić w interakcje z naszą wspaniałą społecznością!

Zarejestruj się
Powiązane posty Odpowiedzi Widoki Czynność
How to remove the horizontal line from the footer in odoo 17? Rozwiązane
qweb report template 17 odoo 17
Awatar
Awatar
Awatar
2
kwi 25
1705
odoo 16 report target new page scss
qweb report
Awatar
Awatar
1
kwi 25
2180
Missing external identifier on new external layout template Rozwiązane
qweb report
Awatar
Awatar
2
mar 25
2772
Translate month name in t-esc Qweb report Rozwiązane
qweb report
Awatar
Awatar
Awatar
Awatar
Awatar
4
lis 24
8131
QWeb Report Shows Different When Edit And Print Review Rozwiązane
qweb report
Awatar
Awatar
1
mar 24
2945
Społeczność
  • Samouczki
  • Dokumentacja
  • Forum
Open Source
  • Pobierz
  • Github
  • Runbot
  • Tłumaczenia
Usługi
  • Hosting Odoo.sh
  • Wsparcie
  • Aktualizacja
  • Indywidualne rozwiązania
  • Edukacja
  • Znajdź księgowego
  • Znajdź partnera
  • Zostań partnerem
O nas
  • Nasza firma
  • Zasoby marki
  • Skontaktuj się z nami
  • Oferty pracy
  • Wydarzenia
  • Podcast
  • Blog
  • Klienci
  • Informacje prawne • Prywatność
  • Bezpieczeństwo Odoo
الْعَرَبيّة Català 简体中文 繁體中文 (台灣) Čeština Dansk Nederlands English Suomi Français Deutsch हिंदी Bahasa Indonesia Italiano 日本語 한국어 (KR) Lietuvių kalba Język polski Português (BR) română русский язык Slovenský jazyk slovenščina Español (América Latina) Español ภาษาไทย Türkçe українська Tiếng Việt

Odoo to pakiet aplikacji biznesowych typu open source, które zaspokoją wszystkie potrzeby Twojej firmy: CRM, eCommerce, księgowość, inwentaryzacja, punkt sprzedaży, zarządzanie projektami itp.

Unikalną wartością Odoo jest to, że jest jednocześnie bardzo łatwe w użyciu i w pełni zintegrowane.

Website made with

Odoo Experience on YouTube

1. Use the live chat to ask your questions.
2. The operator answers within a few minutes.

Live support on Youtube
Watch now