Размер стола, thead и tbody в Qweb odoo 10 - PullRequest
0 голосов
/ 21 февраля 2019

У меня 2 проблемы с длинными таблицами в Qweb.

1 / если на первой странице нет места для всей таблицы, Qweb распечатает всю таблицу на второй странице.но я хочу, чтобы первая часть таблицы на первой странице и вторая часть на второй странице (см. img1 и img2).

2 /, если таблица слишком длинная, у меня проблемы с thead и tbody длявсе страницы (thead и tbody начинаются с одной и той же строки, поэтому для всех страниц первая строка неразборчива), кроме первой (смотрите img3 и img4).

img1 img2 img3 img4

я добавил комментарий, чтобы понять, о какой таблице я говорю (комментарий "Эта таблица"до таблицы и" Конец таблицы "после таблицы).

Спасибо

<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: 10px;
                       }

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

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

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


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

Ответы [ 2 ]

0 голосов
/ 23 февраля 2019

Привет, попробуйте изменить значения некоторых полей в этой записи,

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

Я столкнулся с той же проблемой и исправил, изменив некоторые значения здесь. Я не правильно помню, какое из них. Попробуйте изменить значенияиз page height и если это не работает, попробуйте другие поля.

0 голосов
/ 21 февраля 2019

Используйте <thead> тег для вашего требования.

...