콘텐츠로 건너뛰기
메뉴
커뮤니티에 참여하려면 회원 가입을 하시기 바랍니다.
신고된 질문입니다
2 답글
10506 화면

Hello
i have 2 problemes with long tables in Qweb.
1/ if there is no place for all table on first page , Qweb print all the table on seconde page . but i want the first part of table on the first page  and the seconde part on the seconde page.

2/if the table is too long i have probleme with thead and tbody for all pages(
thead and tbody start from the same line so for all pages the first ligne is illisible ) except the first one.
Thanks

아바타
취소

Can you post the code for your template? It’s easier to help when we can see the code.

작성자 베스트 답변

This is all my code
i added a comment to understand which table i'm talking about it

아바타
취소
작성자

<odoo>

<data>

<record id="facture_cadre_format" model="report.paperformat">

<field name="name">European A4</field>

<field name="default" eval="True" />

<field name="format">A4</field>

<field name="page_height">0</field>

<field name="page_width">0</field>

<field name="orientation">Portrait</field>

<field name="margin_top">80</field>

<field name="margin_bottom">23</field>

<field name="margin_left">7</field>

<field name="margin_right">7</field>

<field name="header_line" eval="False" />

<field name="header_spacing">70</field>

<field name="dpi">90</field>

</record>

<report id="new_factures"

string="Facture (new)"

model="account.invoice"

report_type="qweb-pdf"

name="livraison_report.new_facture"

paperformat="facture_cadre_format"

/>

<template id="new_facture">

<t t-call="report.html_container">

<t t-call="facture_layout.facture_layout">

<div class="page">

<!-- Report page content -->

<style>

tbody {

font-size: 11.5px;

}

.police {

font-size: 10px;

}

.tableau {

page-break-inside: avoid;

}

</style>

<t t-foreach="docs" t-as="o">

<h2>

<span t-if="o.type == 'out_invoice' and (o.state == 'open' or o.state == 'paid')">Facture</span>

<span t-if="o.type == 'out_invoice' and o.state == 'proforma2'">PRO-FORMA</span>

<span t-if="o.type == 'out_invoice' and o.state == 'draft'">Draft Invoice</span>

<span t-if="o.type == 'out_invoice' and o.state == 'cancel'">Cancelled Invoice</span>

<span t-if="o.type == 'out_refund'">Refund</span>

<span t-if="o.type == 'in_refund'">Vendor Refund</span>

<span t-if="o.type == 'in_invoice'">Vendor Bill</span>

<span t-field="o.number"/>

</h2>

<div class="row mt32 mb32">

<div class="col-xs-2" t-if="o.name">

<strong>Description:</strong>

<p t-field="o.name"/>

</div>

<div class="col-xs-2" t-if="o.date_invoice">

<strong>Date de la facture:</strong>

<p t-field="o.date_invoice"/>

</div>

<div class="col-xs-2" t-if="o.date_due and o.type == 'out_invoice' and (o.state == 'open' or o.state == 'paid')">

<strong>Date d'échéance:</strong>

<p t-field="o.date_due"/>

</div>

<div class="col-xs-2" t-if="o.origin">

<strong>Origine:</strong>

<p t-field="o.origin"/>

</div>

<div class="col-xs-2" t-if="o.partner_id.ref">

<strong>BL:</strong>

<span t-esc="', '.join(map(lambda x: (x.name), o.picking_id))"/>

</div>

<div name="reference" class="col-xs-2" t-if="o.reference">

<strong>Reference:</strong>

<p t-field="o.reference"/>

</div>

</div>

<table class="table table-condensed table-bordered ">

<thead>

<tr style="background-color:#A9E2F3;">

<th>Description</th>

<th class="hidden">Source Document</th>

<th class="text-right">P.U</th>

<th class="text-right">PPA</th>

<th class="text-right">PPH</th>

<th class="text-right">Qté</th>

<th class="text-center">UM</th>

<th class="text-center">Mnt Brut</th>

<th class="text-right">RM(%)</th>

<th class="text-right">Tax Excluded Price</th>

</tr>

</thead>

<!---------------------------------------- This TABLE ---------------------------------------------------------->

<tbody>

<tr t-foreach="o.invoice_line_ids" t-as="l">

<td>

<span t-field="l.name"/>

<t t-if="(l.lot_formatted_note is not False)">

<div style="margin-left:25px;" t-field="l.lot_formatted_note" />

<br/>

</t>

</td>

<td class="hidden"><span t-field="l.origin"/></td>

<td class="text-right">

<span t-field="l.price_unit"/>

</td>

<td class="text-right">

<span t-field="l.ppa"/>

</td>

<td class="text-right">

<span t-field="l.prix_pharmacien"/>

</td>

<td class="text-right">

<span t-esc="'%.0f'%(l.quantity)"/>

</td>

<td class="text-center">

<span t-field="l.uom_id" groups="product.group_uom"/>

</td>

<td class="text-right">

<span t-field="l.price_subtotal_brut"/>

</td>

<td class="text-right">

<span t-field="l.discount"/>

</td>

<td class="text-right">

<span t-field="l.price_subtotal" t-options="{&quot;widget&quot;: &quot;monetary&quot;, &quot;display_currency&quot;: o.currency_id}"/>

</td>

</tr>

</tbody>

</table>

<!---------------------------------------- END ---------------------------------------------------------->

<div class="row">

<div class="col-xs-4 pull-right">

<table class="table table-condensed table-bordered tableau">

<tr class="border-black" >

<td><strong>Montant BRUT</strong></td>

<td class="text-right">

<span t-field="o.amount_untaxed_brut" t-options="{&quot;widget&quot;: &quot;monetary&quot;, &quot;display_currency&quot;: o.currency_id}"/>

</td>

</tr>

<tr class="border-black" >

<td><strong>Montant Remise</strong></td>

<td class="text-right">

<span t-field="o.amount_discount" t-options="{&quot;widget&quot;: &quot;monetary&quot;, &quot;display_currency&quot;: o.currency_id}"/>

</td>

</tr>

<tr class="border-black">

<td><strong>Montant HT</strong></td>

<td class="text-right">

<span t-field="o.amount_untaxed" t-options="{&quot;widget&quot;: &quot;monetary&quot;, &quot;display_currency&quot;: o.currency_id}"/>

</td>

</tr>

<t t-foreach="o._get_tax_amount_by_group()" t-as="amount_by_group">

<tr>

<td><span t-esc="amount_by_group[0] if len(o.tax_line_ids) &gt; 1 else (o.tax_line_ids.tax_id.description or o.tax_line_ids.tax_id.name)"/></td>

<td class="text-right">

<span t-esc="amount_by_group[1]" t-options="{&quot;widget&quot;: &quot;monetary&quot;, &quot;display_currency&quot;: o.currency_id}"/>

</td>

</tr>

</t>

<tr class="border-black">

<td><strong>Montant TTC</strong></td>

<td class="text-right">

<span t-field="o.amount_total" t-options="{&quot;widget&quot;: &quot;monetary&quot;, &quot;display_currency&quot;: o.currency_id}"/>

</td>

</tr>

</table>

</div>

</div>

<p class="police">

<strong>ARRETEE LA PRESENTE FACTURE A LA SOMME DE:</strong>

<span t-field="o.amount_to_text"/>

</p>

<p t-if="o.comment">

<strong>Comment:</strong>

<span t-field="o.comment"/>

</p>

<p t-if="o.payment_term_id">

<span t-field="o.payment_term_id.note"/>

</p>

<p t-if="o.fiscal_position_id.note">

<strong>Fiscal Position Remark:</strong>

<span t-field="o.fiscal_position_id.note"/>

</p>

<table class="table table-condensed table-bordered tableau">

<thead>

<tr >

<th class="text-center"><strong>Commercial</strong></th>

<th class="text-center"><strong>Client</strong></th>

</tr>

</thead>

<tbody>

<tr>

<td>

<br/>

<br/>

</td>

<td>

<br/>

<br/>

</td>

</tr>

</tbody>

</table>

</t>

</div>

</t>

</t>

</template>

</data>

</odoo>

관련 게시물 답글 화면 활동
0
11월 18
5378
3
9월 23
21620
2
7월 23
7036
1
6월 23
4730
1
4월 23
5471