รายงาน PDF

ด้วยสตูดิโอคุณสามารถ: ref: แก้ไขรายงาน PDF ที่มีอยู่ <Studio/PDF-รายงาน/แก้ไข> `(เช่นใบแจ้งหนี้ใบเสนอราคา ฯลฯ ) หรือ: ref: สร้างใหม่<Studio/PDF-Reports/Edit> `

เค้าโครงเริ่มต้น

เค้าโครงเริ่มต้นของรายงานได้รับการจัดการนอกสตูดิโอ : การเลือกเมนู: การตั้งค่า 'ในส่วน: guilabel: บริษัท ' คลิก: Guilabel: `กำหนดค่าเค้าโครงเอกสาร ' แต่นำไปใช้กับรายงานทั้งหมด

Tip

คุณสามารถดูว่าการตั้งค่าที่แตกต่างมีผลต่อเค้าโครงรายงานในไฟล์รายงานตัวอย่างทางด้านขวาหรือดาวน์โหลดตัวอย่างใบแจ้งหนี้ PDF โดยคลิก: Guilabel: ดาวน์โหลด PDF Preview

ใช้การตั้งค่าต่อไปนี้:

  • : Guilabel: layout: มีเลย์เอาต์สี่รูปแบบ:

    ตัวอย่างเค้าโครงรายงานแสง
  • : Guilabel: font: มีแบบอักษรเจ็ดแบบ: Lato, Roboto, Open Sans,Montserrat, Oswald, Raleway และ Tajawal (ซึ่งสนับสนุนภาษาอาหรับและละตินสคริปต์) ดูตัวอย่าง

  • : Guilabel: colors: เปลี่ยนสีหลักและรองที่ใช้รายงานโครงสร้าง สีของโลโก้

  • : Guilabel: layout background: มีพื้นหลังต่อไปนี้:

    • : Guilabel: blank: ไม่มีอะไรปรากฏขึ้น

    • : Guilabel: geometric: ภาพที่มีรูปทรงเรขาคณิตจะปรากฏขึ้นในพื้นหลัง

    • : Guilabel: Custom: อัปโหลดภาพพื้นหลังที่กำหนดเอง

  • : Guilabel: บริษัท สโลแกน ': นี่แสดงในส่วนหัวของ: REF: `รายงานภายนอก <Studio/PDF-Reports/Header-footer/external> เพิ่มข้อความหลายบรรทัด

  • : Guilabel: รายละเอียด บริษัท ': สิ่งเหล่านี้แสดงในส่วนหัวของ: REF: `รายงานภายนอก <Studio/PDF-Reports/Header-footer/external> เพิ่มข้อความหลายบรรทัด

  • : Guilabel: รูปแบบกระดาษ ': เพื่อกำหนดขนาดกระดาษเริ่มต้นของรายงาน สามารถเลือก: Guilabel: `A4 (21 ซม. x 29.7 ซม.) ,: guilabel:` us letter` (21.59 ซม.x 27.54 ซม.) หรือ: guilabel: หน้ารหัส QR ' รายงานส่วนบุคคลใน: guilabel: `ฟิลด์รูปแบบกระดาษ 'ใน: ref: สตูดิโอ<สตูดิโอ/PDF- รายงาน/สร้าง> `

การสร้างรายงาน PDF ใหม่

หากต้องการสร้างรายงานใหม่สำหรับโมเดลให้เข้าถึงโมเดลให้คลิกสลับ **ปุ่มสตูดิโอ ** จากนั้นคลิก: Guilabel: `รายงาน ' ในหน้าต่างป๊อปอัปที่เปิดให้เลือกประเภทของรายงาน ใช้เพื่อกำหนดสิ่งที่แสดงในส่วนหัวและส่วนท้าย:

เมื่อคุณสร้างรายงานแล้วคุณสามารถเริ่มต้น: REF: `แก้ไขมัน<Studio/PDF-Reports/Edit> `

การแก้ไขรายงาน PDF

หากต้องการเข้าถึงรายงานที่มีอยู่สำหรับรุ่นให้เข้าถึงรุ่น (เช่นการขายคำสั่งซื้อ) คลิกปุ่มสตูดิโอสลับ **** จากนั้นคลิก: Guilabel: `รายงาน 'เลือกรายงานที่มีอยู่เพื่อเปิดหรือ: ref: `สร้างใหม่ <Studio/PDF-รายงาน/สร้าง> `

Tip

อีกทางเลือกหนึ่งคุณสามารถเปิดสตูดิโอคลิก: Guilabel: `รายงาน 'และค้นหารายงานหรือรูปแบบเฉพาะ

Important

ขอแนะนำอย่างยิ่งให้ทำซ้ำ ** รายงานมาตรฐานและดำเนินการการเปลี่ยนแปลงในเวอร์ชันที่ซ้ำกัน ตัวชี้ที่มุมบนขวาของรายงานคลิกที่จุดไข่ปลาแนวตั้งไอคอน (: Guilabel: ) จากนั้นเลือก: Guilabel: duplicate

ทำซ้ำรายงาน PDF

ตัวเลือก

เมื่อคุณเลือกหรือสร้างรายงานแล้วคุณสามารถใช้ตัวเลือกในไฟล์ส่วนซ้ายของหน้าจอเป็น:

  • เปลี่ยน: Guilabel: Name Report ' สตูดิโอภายใต้ปุ่ม: Guilabel: `print และในชื่อไฟล์ PDF)

  • แก้ไข:: guilabel: `รูปแบบกระดาษ ' กำหนดไว้ใน: ref: `เค้าโครงเริ่มต้น <Studio/PDF-Reports/Default-Layout/Paper> `ใช้

  • : guilabel: show in menu: เพื่อเพิ่มรายงานใน: guilabel: `print 'เมนูพร้อมใช้งานจากบันทึก

  • : Guilabel: โหลดใหม่จากไฟล์แนบ: เพื่อบันทึกรายงานเป็นไฟล์แนบบนบันทึกเป็นครั้งแรกที่มันถูกสร้างขึ้นและโหลดเวอร์ชันดั้งเดิมของรายงานเวลาใด ๆ ที่ตามมา ส่วนใหญ่จะใช้ในกรณีนี้

  • : Guilabel: จำกัด การมองเห็นกลุ่ม ': เพื่อ จำกัด ความพร้อมใช้งานของ PDFรายงานเฉพาะ: doc: `กลุ่มผู้ใช้ <../ ทั่วไป/ผู้ใช้/access_rights>

  • : guilabel: แก้ไขแหล่งที่มา ': เพื่อแก้ไขรายงานโดยตรงใน: ref: xmlไฟล์ <Studio/PDF-Reports/XML-editing> `

  • : Guilabel: Reset Report: เพื่อยกเลิกการเปลี่ยนแปลงทั้งหมดที่เกิดขึ้นกับรายงานและรีเซ็ตเป็นเวอร์ชันมาตรฐาน

  • : Guilabel: Print Preview: เพื่อสร้างและดาวน์โหลดตัวอย่างรายงาน

รายงานบรรณาธิการ

ตัวแก้ไขรายงานช่วยให้คุณสามารถแก้ไขการจัดรูปแบบและเนื้อหาของไฟล์รายงาน.

Tip

  • คุณสามารถ: guilabel: undo หรือ: guilabel:` redo` การเปลี่ยนแปลงโดยใช้สิ่งที่เกี่ยวข้องปุ่มหรือทางลัด ctrl z และ` ctrl y`

  • การเปลี่ยนแปลงจะถูกบันทึกโดยอัตโนมัติเมื่อคุณออกจากรายงานหรือใช้ด้วยตนเองปุ่ม: Guilabel: save

  • คุณสามารถรีเซ็ตรายงานเป็นเวอร์ชันมาตรฐานได้โดยคลิกที่: Guilabel: `Reset Report 'ปุ่ม' ในส่วนซ้ายของหน้าจอ

Important

การแก้ไขส่วนหัวและส่วนท้ายของรายงานส่งผลกระทบต่อมาตรฐานและกำหนดเองทั้งหมดรายงาน

บล็อกเงื่อนไข

รูปสี่เหลี่ยมผืนผ้าประแสดง ** บล็อกเงื่อนไข ** (*ถ้า/อื่น*ข้อความ) เงื่อนไข.

ดูเงื่อนไขที่ใช้กับบล็อก

เลือกค่าเพื่อดูตัวอย่างผลลัพธ์ที่สอดคล้องกันและแก้ไขหากจำเป็น

ดูตัวอย่างผลลัพธ์ของเงื่อนไขอื่น

Note

เงื่อนไขสามารถแก้ไขได้ใน: ref: `xml <Studio/PDF-Reports/XML-การแก้ไข> `

เนื้อหาอื่น ๆ

มีเนื้อหาข้อความสองประเภทในรายงาน:

  • ข้อความคงที่เช่นข้อความที่ไม่ได้เน้นด้วยสีน้ำเงินซึ่งสามารถทำได้แก้ไขโดยตรงในตัวแก้ไข

  • ข้อความแบบไดนามิกเช่นข้อความที่เน้นเป็นสีน้ำเงินซึ่งถูกแทนที่ตามค่าฟิลด์เมื่อมีการสร้างรายงานเช่นจำนวน SO หรือไฟล์วันที่ใบเสนอราคา

คุณสามารถเพิ่มเนื้อหา (เช่นฟิลด์, รายการ, ตาราง, รูปภาพ, แบนเนอร์ ฯลฯ )รายงานการใช้คำสั่ง <ความรู้/powerbox> `จากนั้นพิมพ์ชื่อคำสั่งหรือเลือกจากไฟล์รายการ.

หากต้องการเพิ่มข้อความแบบคงที่ลงในรายงานให้พิมพ์ข้อความที่คุณต้องการ

สำหรับการเปลี่ยนแปลงขั้นสูงเพิ่มเติมคุณสามารถ: ref: `แก้ไขรายงานใน XML โดยตรง<Studio/PDF-Reports/XML-editing> `

เพิ่มฟิลด์

หากต้องการเพิ่มฟิลด์ให้พิมพ์ / และเลือกคำสั่ง: guilabel: ฟิลด์ ' รายการที่เปิด, เลือกหรือค้นหาฟิลด์; ไปยังชื่อฟิลด์เพื่อเข้าถึงรายการฟิลด์ที่เกี่ยวข้องหากจำเป็น ระบุค่าเริ่มต้นและกด `Enter

เลือกฟิลด์ที่เกี่ยวข้อง
เพิ่มตารางข้อมูล

ตารางข้อมูลใช้เพื่อแสดง: ref: ฟิลด์เชิงสัมพันธ์<Studio/Fields/Relational-Fields> ` คำสั่ง: guilabel: `dynamic Table และเลือกความสัมพันธ์เป็นแสดงในตาราง

Note

ความสัมพันธ์เฉพาะประเภท one2many หรือ` many2many` สามารถแสดงเป็นข้อมูลได้ตาราง

เมื่อเพิ่มตารางแล้วคุณสามารถเพิ่มคอลัมน์โดยใช้เครื่องมือตารางจัดตำแหน่งเคอร์เซอร์ที่ด้านบนของคอลัมน์จากนั้นคลิกสี่เหลี่ยมสีม่วงและเลือกตัวเลือก

เพิ่มคอลัมน์ในตารางไดนามิก

จากนั้นคุณสามารถแทรก: ref: `ฟิลด์ที่คุณเลือก <Studio/PDF-Reports/Add-ฟิลด์> `ในคอลัมน์ สำหรับฟิลด์ (เช่นโมเดลแท็ก *) และรายการฟิลด์ที่มีอยู่

รายการฟิลด์ที่มีอยู่สำหรับโมเดลแท็ก

Note

  • แถวเริ่มต้นวนซ้ำโดยอัตโนมัติผ่านเนื้อหาของฟิลด์สร้างขึ้นแถวในรายงานสำหรับแต่ละค่าฟิลด์ (เช่นหนึ่งแถวต่อแท็ก) เพิ่มแถวเนื้อหาคงที่ด้านบนหรือต่ำกว่าแถวที่สร้างขึ้นโดยใช้ตารางเครื่องมือ

  • นอกจากนี้คุณยังสามารถเพิ่มตารางข้อมูลโดย: ref: `การแก้ไข XML ของรายงาน<Studio/PDF-Reports/XML-editing> `

การจัดรูปแบบ

หากต้องการจัดรูปแบบข้อความในรายงานเลือกจากนั้นจัดรูปแบบโดยใช้ตัวเลือกในThe: ref: `ความรู้/บรรณาธิการข้อความ '

รูปแบบข้อความโดยใช้ตัวแก้ไขข้อความ

การแก้ไข XML ของรายงาน

Warning

การแก้ไข XML โดยตรงอาจส่งผลให้เกิดปัญหารายงานระหว่าง: DOC: `การอัพเกรด<../../../ การดูแลระบบ/อัพเกรด> ` การเปลี่ยนแปลงจากฐานข้อมูลเก่าเป็นฐานข้อมูลที่อัพเกรดของคุณ

หากต้องการแก้ไข XML ของรายงานคลิก: Guilabel: `แก้ไขแหล่งที่มาในบานหน้าต่างด้านซ้าย

ตัวอย่าง

บางครั้งตารางไม่ได้รับการยอมรับอย่างเหมาะสมเนื่องจากซับซ้อนโครงสร้าง XML ใน XML (ง่ายขึ้นเพื่อวัตถุประสงค์ในการจัดทำเอกสาร):

<!-- table root element -->
<table>
    <!-- thead = table header, the row with column titles -->
    <thead>
        <!-- table row element -->
        <tr>
            <!-- table header element -->
            <th>Name</th>
            <th>Price</th>
        </tr>
    </thead>
    <!-- table body, the main content -->
    <tbody>
        <!-- we create a row for each subrecord with t-foreach -->
        <tr t-foreach="record.some_relation_ids" t-as="line">
            <!-- for each line, we output the name and price as table cells -->
            <td t-out="line.name"/>
            <td t-out="line.price"/>
        </tr>
    </tbody>
</table>

ในการแก้ไขตารางคุณต้องตรวจสอบให้แน่ใจว่าแต่ละแถวมีจำนวนข้อมูลเท่ากันเซลล์. ส่วน (เช่นชื่อคอลัมน์) และอีกอันหนึ่งในส่วนของร่างกายด้วยเนื้อหาของฟิลด์ (โดยปกติจะมีคำสั่ง t-out หรือ` t-field`)

<table> <!-- table root element -->
    <thead> <!-- thead = table header, the row with column titles -->
        <tr> <!-- table row element -->
            <th>Name</th> <!-- table header element -->
            <th>Price</th>
            <th>Category</th>
        </tr>
    </thead>
    <tbody>  <!-- table body, the main content -->
        <tr t-foreach="record.some_relation_ids" t-as="line">  <!-- we create a row for each subrecord with t-foreach -->
            <td t-out="line.name"/>  <!-- for each line, we output the name and price as table cells -->
            <td t-out="line.price"/>
            <td t-out="line.category_id.display_name"/>
        </tr>
    </tbody>
</table>

Note

เซลล์สามารถขยายหลายแถวหรือคอลัมน์ `เว็บไซต์เครือข่ายนักพัฒนา Mozilla <https://developer.mozilla.org/en-US/DOCS/Learn/HTML/Tables/Basics> `_

ตัวอย่างเช่นคุณสามารถแก้ไข ** ใบเสนอราคา/คำสั่งซื้อ ** รายงานเพื่อเพิ่มคอลัมน์เพื่อแสดงหมวดหมู่ผลิตภัณฑ์ในตารางหลัก:

<table class="table table-sm o_main_table table-borderless mt-4">
    <!-- In case we want to repeat the header, remove "display: table-row-group" -->
    <thead style="display: table-row-group">
        <tr>
            <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>
[...]
            <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 name="td_name"><span t-field="line.name">Bacon Burger</span></td>
                    <td t-out="line.product_id.categ_id.display_name"/>
                    <td name="td_quantity" class="text-end">
                        <span t-field="line.product_uom_qty">3</span>
                        <span t-field="line.product_uom">units</span>
                        <span t-if="line.product_packaging_id">
เพิ่มคอลัมน์หมวดหมู่ผลิตภัณฑ์ใน A SO

ในการเพิ่มตารางใน XML คุณต้องรู้ชื่อของฟิลด์และวัตถุคุณต้องการเข้าถึงและแสดงผล รายละเอียดแท็กในใบสั่งขาย:

<!-- table root element -->
<table class="table">
    <!-- 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>
เพิ่มตารางข้อมูลใน XML

Note

เมื่อเพิ่มตารางด้วยตนเองให้สไตล์โดยใช้คลาส bootstrap<https://getbootstrap.com/docs/5.1/content/tables> _ เช่นคลาส ตาราง 'รวมอยู่ในตัวอย่างด้านบน

หากคุณต้องการแสดง/ซ่อนเนื้อหาตามเงื่อนไขเฉพาะคุณสามารถทำได้เพิ่มคำสั่งควบคุม if/else ด้วยตนเองในรายงาน XML

ตัวอย่างเช่นหากคุณต้องการซ่อนตารางข้อมูลที่กำหนดเองหากไม่มีแท็กคุณสามารถใช้แอตทริบิวต์ t-if เพื่อกำหนดเงื่อนไขซึ่งก็คือแล้วประเมินว่า true หรือ` false ' ไม่มีแท็กในใบเสนอราคา

<!-- 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>

หากคุณต้องการแสดงบล็อกอื่นในกรณีที่คำสั่ง t-if คือประเมินเป็น false 'คุณสามารถระบุได้โดยใช้คำสั่ง t-else` บล็อก t-else จะต้องติดตามบล็อก` t-if` ในเอกสารโดยตรงโครงสร้าง. คุณลักษณะ. ไม่มีแท็กในใบเสนอราคา:

<!-- 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>

โดยใช้สัญลักษณ์ t-if/t-else ตัวแก้ไขรายงานตระหนักว่าสิ่งเหล่านี้ส่วนต่าง ๆ ร่วมกันและควรแสดงเป็นเงื่อนไขบล็อก:

ตัวอย่างเอาต์พุตหากมีแท็ก

คุณสามารถสลับเงื่อนไขโดยใช้ตัวแก้ไขเพื่อดูตัวอย่างผลลัพธ์ของพวกเขา:

ตัวอย่างเอาต์พุตหากไม่มีแท็ก

หากคุณต้องการมีหลายตัวเลือกคุณสามารถใช้คำสั่ง `t-elif`เพื่อเพิ่มเงื่อนไขตัวกลาง รายงานการสั่งซื้อการเปลี่ยนแปลงตามเงื่อนไขของเอกสารพื้นฐาน

<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>

ใบแจ้งหนี้ * pro-forma * ถูกใช้ขึ้นอยู่กับบริบทบางอย่างเงื่อนไข. ไม่ว่าจะเป็น draft หรือ` ส่ง 'จากนั้นใช้ใบเสนอราคา ** ตามเงื่อนไขชื่อของรายงานคือ *คำสั่งซื้อ *

การทำงานกับรูปภาพในรายงานอาจเป็นเรื่องที่ท้าทายขนาดและพฤติกรรมของภาพไม่ชัดเจนเสมอไป การใช้ตัวแก้ไขรายงาน (: ref: โดยใช้คำสั่ง /ฟิลด์ <Studio /PDF-รายงาน/add-field> `) แต่แทรกลงใน XML โดยใช้ t-field 'คำสั่งและการประกอบแอตทริบิวต์ t-options ให้ขนาดที่ดีขึ้นและการควบคุมตำแหน่ง

ตัวอย่างเช่นรหัสต่อไปนี้ส่งออกฟิลด์ image_128 ของบรรทัดผลิตภัณฑ์เป็นภาพกว้าง 64px (ด้วยความสูงอัตโนมัติตามภาพอัตราส่วนภาพ)

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

ตัวเลือกต่อไปนี้พร้อมใช้งานสำหรับวิดเจ็ตภาพ:

  • ความกว้าง ': ความกว้างของภาพมักจะอยู่ในพิกเซลหรือหน่วยความยาว CSS (เช่น`rem) (ว่างเปล่าสำหรับความกว้างอัตโนมัติ)

  • ความสูง ': ความสูงของภาพมักจะอยู่ในพิกเซลหรือหน่วยความยาว CSS (เช่น`rem) (ว่างเปล่าสำหรับความสูงอัตโนมัติ)

  • class: คลาส CSS ใช้กับแท็ก` img`; <https://getbootstrap.com/docs/5.1/content/tables> `_ พร้อมใช้งาน

  • alt: ข้อความทางเลือกของภาพ

  • style: คุณลักษณะสไตล์; ด้วยคลาส bootstrap<https://getbootstrap.com/docs/5.1/content/tables> `_

แอตทริบิวต์เหล่านี้จะต้องมีสตริงเช่นข้อความที่แนบมาภายในคำพูดภายในคำพูดเช่น `t-options--------------Width = `(หรืออีกทางเลือกหนึ่งการแสดงออกของงูหลามที่ถูกต้อง)

Note

ไม่สามารถใช้วิดเจ็ตภาพบนแท็ก img คำสั่งเกี่ยวกับ span (สำหรับเนื้อหาอินไลน์) หรือ` div` (สำหรับเนื้อหาบล็อก)โหนด

ตัวอย่างเช่นลองเพิ่มคอลัมน์ด้วยภาพผลิตภัณฑ์ในใบเสนอราคาโต๊ะ:

<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"/>

แอตทริบิวต์ t-options 'คลาส bootstrap ที่ใช้ใน `t-options-class สร้างรูปขนาดย่อเหมือนชายแดนที่มีมุมโค้งมนและเงา

เพิ่มคอลัมน์ด้วยภาพผลิตภัณฑ์ในตารางใบเสนอราคา