Báo cáo PDF

Với Studio, bạn có thể chỉnh sửa các báo cáo PDF hiện có (ví dụ: hóa đơn, báo giá, v.v.) hoặc tạo báo cáo mới.

Bố cục mặc định

Bố cục mặc định của báo cáo được quản lý bên ngoài Studio. Vào Cài đặt, sau đó trong phần Công ty ở trang chính, nhấp vào Cấu hình bố cục tài liệu. Cài đặt bố cục áp dụng riêng cho từng công ty nhưng có hiệu lực cho tất cả các báo cáo.

Mẹo

Bạn có thể xem các cài đặt khác nhau ảnh hưởng như thế nào đến bố cục báo cáo trong bản xem trước báo cáo ở phía bên phải cửa sổ Cấu hình bố cục tài liệu của bạn. Khi tạo hoặc chỉnh sửa báo cáo, bạn có thể xem bản xem trước báo cáo bằng cách nhấp vào Xem trước bản in ở phía bên trái màn hình.

Sử dụng các cài đặt sau:

  • Bố cục: Có bảy bố cục khả dụng:

    Mẫu bố cục báo cáo Light
  • Nền: Các nền sau đây khả dụng:

    • Trống: Không hiển thị gì.

    • Logo demo: Logo demo được hiển thị ở nền.

    • Tùy chỉnh: Tải lên ảnh nền tùy chỉnh.

  • Văn bản: Có tám phông chữ khả dụng: Lato, Roboto, Open Sans, Montserrat, Oswald, Raleway, Tajawal (hỗ trợ chữ Ả Rập và Latin) và Fira Mono. Vào trang web Google Fonts để xem trước.

  • Màu sắc: Thay đổi màu chính và màu phụ được sử dụng để cấu trúc báo cáo. Màu mặc định được tạo tự động dựa trên màu của logo.

  • Địa chỉ: Tên công ty và địa chỉ được hiển thị trong phần đầu trang của báo cáo bên ngoài. Bạn có thể thêm nhiều dòng văn bản.

  • Khẩu hiệu: Nội dung này được hiển thị trong phần đầu trang của báo cáo bên ngoài sử dụng bố cục Light, Striped, Bubble, Wave và Folder và trong phần chân trang của báo cáo bên ngoài sử dụng bố cục Boxed và Bold. Bạn có thể thêm nhiều dòng văn bản.

  • Định dạng giấy: Tùy chọn này xác định kích thước giấy mặc định của báo cáo. Bạn có thể chọn A4 (21 cm x 29,7 cm) và US Letter (21,59 cm x 27,54 cm). Tùy chọn này cũng có thể được xác định cho từng báo cáo riêng lẻ trong trường Định dạng giấy trong Studio.

    Ghi chú

    Các định dạng giấy khác có thể khả dụng tùy thuộc vào ứng dụng hoặc mô-đun bạn đã cài đặt, ví dụ: tờ nhãn cho ứng dụng Tồn kho hoặc thẻ sự kiện cho ứng dụng Sự kiện.

Tạo báo cáo PDF mới

Để tạo báo cáo mới cho một mô hình (ví dụ: đơn bán hàng), truy cập mô hình, nhấp vào nút (Bật/tắt Studio), sau đó nhấp vào Báo cáo. Nhấp vào Mới và trong cửa sổ bật lên hiện ra, chọn loại báo cáo. Lựa chọn này chỉ được sử dụng để xác định nội dung hiển thị trong phần đầu trang và chân trang:

Sau khi tạo báo cáo, bạn có thể bắt đầu chỉnh sửa.

Chỉnh sửa báo cáo PDF

Để truy cập các báo cáo khả dụng cho một mô hình, truy cập mô hình, nhấp vào nút (Bật/tắt Studio), sau đó nhấp vào Báo cáo. Chọn một báo cáo hiện có để mở.

Ngoài ra, bạn cũng có thể mở Studio, nhấp vào Báo cáo, và tìm kiếm một báo cáo hoặc mô hình cụ thể.

Quan trọng

Chúng tôi đặc biệt khuyến nghị sao chép báo cáo chuẩn và thực hiện thay đổi trong phiên bản sao chép. Để sao chép báo cáo, di chuyển con trỏ chuột đến góc trên bên phải của báo cáo, nhấp vào biểu tượng (dấu ba chấm dọc), sau đó chọn Sao chép.

Sao chép báo cáo PDF

Tùy chọn

Sau khi đã chọn hoặc tạo một báo cáo, bạn có thể sử dụng các tùy chọn ở phần bên trái màn hình để:

  • Thay đổi Tên báo cáo: Tên mới được áp dụng ở mọi nơi (trong Studio, trong menu In dưới biểu tượng (bánh răng) trong chế độ xem biểu mẫu và trong tên tệp PDF).

  • Sửa đổi Định dạng giấy: Nếu không chọn giá trị nào, định dạng được xác định trong bố cục mặc định sẽ được sử dụng.

  • Hiển thị trong menu in: để thêm báo cáo vào menu In trong chế độ xem biểu mẫu.

  • Tải lại từ tệp đính kèm: để lưu báo cáo dưới dạng tệp đính kèm trên bản ghi vào lần đầu tiên nó được tạo và tải lại phiên bản gốc của báo cáo vào các lần tiếp theo. Điều này được yêu cầu về mặt pháp lý đối với hóa đơn và chủ yếu được sử dụng trong trường hợp này.

  • Giới hạn hiển thị cho các nhóm: để giới hạn tính khả dụng của báo cáo PDF cho các nhóm người dùng cụ thể.

  • Chỉnh sửa nguồn: để sửa đổi báo cáo trực tiếp trong tệp XML.

  • Đặt lại báo cáo: để hủy tất cả các thay đổi đã thực hiện đối với báo cáo và đặt lại về phiên bản tiêu chuẩn.

  • Xem trước bản in: để tạo và tải xuống bản xem trước báo cáo.

Trình chỉnh sửa báo cáo

Trình chỉnh sửa báo cáo cho phép bạn sửa đổi nội dung và định dạng của báo cáo.

Mẹo

  • Bạn có thể Hoàn tác hoặc Làm lại các thay đổi bằng cách sử dụng các nút liên quan hoặc phím tắt CTRL + ZCTRL + Y.

  • Các thay đổi được lưu tự động khi bạn rời khỏi báo cáo hoặc thủ công bằng nút Lưu.

  • Bạn có thể đặt lại báo cáo về phiên bản tiêu chuẩn bằng cách nhấp vào nút Đặt lại báo cáo ở phần bên trái màn hình.

Quan trọng

Chỉnh sửa đầu trang và chân trang của báo cáo sẽ ảnh hưởng đến tất cả các báo cáo tiêu chuẩn và tùy chỉnh.

Khối có điều kiện

Các hình chữ nhật đứt nét đại diện cho khối có điều kiện (câu lệnh if/else). Chúng được sử dụng để hiển thị/ẩn nội dung dựa trên các điều kiện cụ thể. Nhấp vào khối để xem các điều kiện.

Xem các điều kiện được áp dụng cho một khối.

Chọn một giá trị để xem trước đầu ra tương ứng và chỉnh sửa nó nếu cần thiết.

Xem trước đầu ra của điều kiện khác.

Ghi chú

Các điều kiện chỉ có thể được chỉnh sửa trong XML.

Nội dung khác

Có hai loại nội dung văn bản trong báo cáo:

  • Văn bản tĩnh, tức là văn bản không được đánh dấu màu xanh, có thể chỉnh sửa trực tiếp trong trình soạn thảo.

  • Văn bản động, tức là văn bản được đánh dấu màu xanh, được thay thế bằng giá trị trường khi báo cáo được tạo, ví dụ: số đơn bán hàng hoặc ngngày báo giá.

Bạn có thể thêm nội dung (ví dụ: trường, danh sách, bảng, hình ảnh, banner, v.v.) vào báo cáo bằng cách sử dụng lệnh. Nhập / để mở powerbox, sau đó nhập tên lệnh hoặc chọn từ danh sách.

Để thêm văn bản tĩnh vào báo cáo, hãy nhập văn bản vào vị trí bạn muốn.

Đối với các thay đổi nâng cao hơn, bạn có thể chỉnh sửa báo cáo trực tiếp trong XML.

Thêm trường

Để thêm một trường, nhập / và chọn lệnh Trường. Trong danh sách hiện ra, chọn hoặc tìm kiếm trường cần thêm; nhấp mũi tên phải cạnh tên trường để truy cập danh sách các trường liên quan nếu cần. Sau đó, chỉ định giá trị mặc định sẽ hiển thị nếu trường không được điền trong bản ghi và nhấn Enter.

Chọn một trường liên quan.
Thêm hoặc chỉnh sửa bảng

Có hai loại bảng trong báo cáo:

  • Bảng tĩnh, được sử dụng để hiển thị văn bản tĩnh hoặc trường. Đối với loại bảng này, bạn xác định số cột và hàng khi thêm bảng.

  • Bảng động, được sử dụng để hiển thị dữ liệu từ trường quan hệ. Với loại bảng này, bạn chỉ cần xác định số lượng cột khi thêm bảng. Số lượng dòng trong báo cáo được tạo sẽ phụ thuộc vào số lượng bản ghi trong mô hình liên quan được liên kết với mô hình hiện tại.

    Example

    Trong báo cáo đơn bán hàng, bảng động được sử dụng để hiển thị các dòng đơn hàng liên quan đến đơn bán hàng. Nếu đơn bán hàng chứa 10 dòng đơn hàng, bảng trong báo cáo được tạo có 10 hàng; nếu chứa hai dòng đơn hàng, bảng có hai hàng.

Thêm hoặc chỉnh sửa bảng tĩnh

Để thêm bảng tĩnh, nhập / và chọn lệnh Table. Xác định số cột và hàng cho bảng. Sau khi bảng đã được thêm, bạn có thể bắt đầu chỉnh sửa.

Bạn có thể chèn, di chuyển và xóa cột và hàng bằng cách sử dụng công cụ bảng. Đặt con trỏ lên trên cột hoặc bên trái hàng, sau đó nhấp vào hình chữ nhật màu tím và chọn một tùy chọn.

Danh sách các tùy chọn có sẵn để chỉnh sửa cấu trúc bảng.

Để thay đổi kích thước cột, kéo viền cột đến vị trí mong muốn; đặt lại tất cả các cột về kích thước tiêu chuẩn bằng cách chọn Reset Size từ công cụ bảng.

Thêm trường bạn chọn vào ô hoặc thêm văn bản tĩnh bằng cách nhập.

Mẹo

Để thêm văn bản theo cách có cấu trúc mà không sử dụng bảng, bạn có thể sử dụng cột. Thêm cột bằng cách nhập / và chọn lệnh thích hợp: 2 columns, 3 columns hoặc 4 columns.

Thêm hoặc chỉnh sửa bảng động

Ghi chú

  • Chỉ các quan hệ loại one2many hoặc many2many mới có thể được hiển thị dưới dạng bảng động.

  • Bảng động hiện có trong báo cáo tiêu chuẩn có cấu trúc phức tạp hơn bảng động bạn tự thêm vào. Đối với các bảng như vậy, có thể chèn hoặc xóa cột; không thể di chuyển cột hoặc chèn, di chuyển hay xóa hàng.

Để thêm bảng động, gõ / và chọn lệnh Dynamic Table. Trong danh sách mở ra, chọn hoặc tìm kiếm quan hệ mà bảng sẽ dựa vào và nhấn Enter. Sau khi bảng được thêm vào, bạn có thể bắt đầu chỉnh sửa.

Bạn có thể chèn, di chuyển và xóa cột bằng các công cụ bảng, giống như với bảng tĩnh. Cũng có thể chèn các hàng tĩnh sẽ xuất hiện phía trên hoặc dưới các hàng được tạo.

Để thêm trường vào ô, xóa mọi văn bản giữ chỗ rồi thêm trường bạn chọn. Hộp thoại mở ra hiển thị đối tượng nguồn cho trường (ví dụ: mô hình Order Lines) và danh sách các trường có sẵn.

Danh sách các trường có sẵn cho mô hình dòng đơn bán hàng.

Thay thế nhãn Column name bằng nhãn bạn chọn.

Ghi chú

Hàng mặc định tự động lặp qua nội dung của trường, tạo một hàng trên báo cáo cho mỗi giá trị trường (ví dụ: một hàng cho mỗi dòng đơn hàng).

Định dạng

Để định dạng văn bản trong báo cáo, chọn văn bản đó, sau đó định dạng bằng các tùy chọn trong trình soạn thảo văn bản.

Định dạng văn bản bằng trình soạn thảo văn bản.

Chỉnh sửa XML của báo cáo

Cảnh báo

Sửa đổi XML trực tiếp có thể gây ra sự cố báo cáo trong quá trình nâng cấp. Nếu điều này xảy ra, chỉ cần sao chép các thay đổi của bạn từ cơ sở dữ liệu cũ vào cơ sở dữ liệu đã nâng cấp.

Để chỉnh sửa XML của báo cáo, nhấp vào Edit sources trong ngăn bên trái.

Ví dụ

Để thay đổi cách dữ liệu được trình bày trong báo cáo của bạn, bạn có thể sửa đổi widget mặc định của trường theo cách thủ công. Trong ví dụ dưới đây, ngày đặt hàng hiển thị ngày và giờ theo mặc định, trong khi đơn giá mặc định có độ chính xác hai chữ số thập phân.

<div class="oe_structure">
 <span t-field="doc.date_order"/>
 <span t-field="doc.price_unit"/>
</div>

Bằng cách sử dụng t-options, trong trường hợp này là tùy chọn widget, các trường này có thể được sửa đổi để chỉ hiển thị ngày và độ chính xác bốn chữ số thập phân, tương ứng:

<div class="oe_structure">
 <span t-field="doc.date_order" t-options="{'widget': 'date'}"/>
 <span t-field="doc.price_unit" t-options="{'widget': 'float', 'precision': 4}"/>
</div>

Nếu bạn muốn hiển thị/ẩn nội dung dựa trên các điều kiện cụ thể, bạn có thể thêm thủ công các câu lệnh điều khiển if/else vào XML của báo cáo.

Ví dụ: nếu bạn muốn ẩn bảng dữ liệu tùy chỉnh nếu không có thẻ, bạn có thể sử dụng thuộc tính t-if để xác định điều kiện, sau đó được đánh giá là True hoặc False. Bảng sẽ không được hiển thị nếu không có thẻ trong báo giá.

<!-- table root element -->
<table class="table" t-if="len(doc.tag_ids) > 0">
    <!-- thead = table header, the row with column titles -->
    <thead>
        <!-- table row element -->
        <tr>
            <!-- table header element -->
            <th>ID</th>
            <th>Name</th>
        </tr>
    </thead>
    <!-- table body, the main content -->
    <tbody>
        <!-- we create a row for each subrecord with t-foreach -->
        <tr t-foreach="doc.tag_ids" t-as="tag">
            <!-- for each line, we output the name and price as table cells -->
            <td t-out="tag.id"/>
            <td t-out="tag.name"/>
        </tr>
    </tbody>
</table>

Nếu bạn muốn hiển thị khối khác khi câu lệnh t-if được đánh giá là Sai, bạn có thể chỉ định nó bằng câu lệnh t-else. Khối t-else phải theo ngay sau khối t-if trong cấu trúc tài liệu. Không cần chỉ định bất kỳ điều kiện nào trong thuộc tính t-else. Ví dụ, hãy hiển thị thông báo nhanh giải thích rằng không có thẻ nào trên báo giá:

<!-- table root element -->
<table class="table" t-if="len(doc.tag_ids) > 0">
    <!-- thead = table header, the row with column titles -->
    <thead>
        <!-- table row element -->
        <tr>
            <!-- table header element -->
            <th>ID</th>
            <th>Name</th>
        </tr>
    </thead>
    <!-- table body, the main content -->
    <tbody>
        <!-- we create a row for each subrecord with t-foreach -->
        <tr t-foreach="doc.tag_ids" t-as="tag">
            <!-- for each line, we output the name and price as table cells -->
            <td t-out="tag.id"/>
            <td t-out="tag.name"/>
        </tr>
    </tbody>
</table>
<div class="text-muted" t-else="">No tag present on this document.</div>

Bằng cách sử dụng ký hiệu t-if/t-else, trình soạn thảo báo cáo nhận ra rằng các phần này loại trừ lẫn nhau và nên được hiển thị dưới dạng các khối có điều kiện:

Xem trước đầu ra nếu có thẻ.

Bạn có thể chuyển đổi các điều kiện bằng trình soạn thảo để xem trước đầu ra của chúng:

Náhled výstupu, pokud nejsou žádné značky.

Pokud chcete mít více možností, můžete také použít direktivy t-elif pro přidání mezilehlých podmínek. Například takto se mění název zpráv prodejních objednávek na základě stavu podkladového dokumentu.

<h2 class="mt-4">
    <span t-if="env.context.get('proforma', False) or is_pro_forma">Pro-Forma Invoice # </span>
    <span t-elif="doc.state in ['draft','sent']">Quotation # </span>
    <span t-else="">Order # </span>
    <span t-field="doc.name">SO0000</span>
</h2>

Název Pro-Forma Invoice se použije v závislosti na některých kontextových podmínkách. Pokud tyto podmínky nejsou splněny a stav dokumentu je buď draft nebo sent, použije se Quotation. Pokud nejsou splněny žádné z těchto podmínek, název zprávy je Order.

Khi làm việc với hình ảnh trong báo cáo có thể gặp khó khăn do không phải lúc nào cũng dễ dàng kiểm soát chính xác kích thước và hành vi của hình ảnh. Bạn có thể chèn các trường hình ảnh bằng trình chỉnh sửa báo cáo (sử dụng Lệnh Trường), nhưng việc chèn chúng trong XML bằng chỉ thị t-field cùng các thuộc tính t-options đi kèm sẽ mang lại khả năng kiểm soát kích thước và vị trí tốt hơn.

Například následující kód vypisuje pole image_128 produktu řádku jako obrázek široký 64 pixelů (s automatickou výškou na základě poměru stran obrázku).

<span t-field="line.product_id.image_128" t-options-widget="image" t-options-width="64px"/>

Pro obrázkové widgety jsou k dispozici následující možnosti:

  • width: šířka obrázku, obvykle v pixelech nebo jednotkách délky CSS (např. rem) (nechte prázdné pro automatickou šířku).

  • height: výška obrázku, obvykle v pixelech nebo jednotkách délky CSS (např. rem) (nechte prázdné pro automatickou výšku).

  • class: CSS třídy aplikované na tag img; k dispozici jsou Bootstrap třídy.

  • alt: alternativní text obrázku

  • style: atribut stylu; umožňuje volněji přepisovat styly než pomocí Bootstrap tříd.

Tyto atributy musí obsahovat řetězce, tj. text uzavřený v uvozovkách uvnitř uvozovek, např. t-options-width="'64px'" (nebo alternativně platný Pythonový výraz).

Ghi chú

Obrázkový widget nelze použít na tagu img. Místo toho nastavte direktivu t-field na uzlu span (pro inline obsah) nebo div (pro blokový obsah).

Například přidejme sloupec s obrázkem produktu do tabulky nabídky:

<table class="table table-sm o_main_table table-borderless mt-4">
    <thead style="display: table-row-group">
        <tr>
            <th>Image</th>
            <th name="th_description" class="text-start">Description</th>
            <th>Product Category</th>
            <th name="th_quantity" class="text-end">Quantity</th>
            <th name="th_priceunit" class="text-end">Unit Price</th>
[...]
        <t t-foreach="lines_to_report" t-as="line">
            <t t-set="current_subtotal" t-value="current_subtotal + line.price_subtotal"/>
            <tr t-att-class="'bg-200 fw-bold o_line_section' if line.display_type == 'line_section' else 'fst-italic o_line_note' if line.display_type == 'line_note' else ''">
                <t t-if="not line.display_type">
                   <td>
                       <span t-field="line.product_template_id.image_128"
                             t-options-widget="'image'"
                             t-options-width="'64px'"
                             t-options-class="'rounded-3 shadow img-thumbnail'"
                           />
                   </td>
                    <td name="td_name"><span t-field="line.name">Bacon Burger</span></td>
                    <td t-out="line.product_id.categ_id.display_name"/>

Atribut t-options-width omezuje šířku obrázku na 64 pixelů a Bootstrap třídy použité v t-options-class vytvoří rámeček podobný miniatuře se zaoblenými rohy a stínem.

Přidat sloupec s obrázkem produktu do tabulky nabídky.