Skip to Content
Меню
Вам необхідно зареєструватися, щоб взаємодіяти зі спільнотою.
Це запитання позначене
2 Відповіді
10281 Переглядів

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>

Related Posts Відповіді Переглядів Дія
0
лист. 18
5140
3
вер. 23
21262
2
лип. 23
6500
1
черв. 23
4412
1
квіт. 23
5140