Skip to Content
Menu
Musisz się zarejestrować, aby móc wchodzić w interakcje z tą społecznością.
To pytanie dostało ostrzeżenie
6 Odpowiedzi
110899 Widoki

Hi,

Currently I am doing this

 <tbody>
<t t-foreach="get_payslip_lines(o.line_ids)" t-as="p">
<tr>
<t t-if="p.code == 'BASIC' or p.code == 'GROSS' or p.code == 'NET' or p.code == 'TOTAL' ">
<td><b><span t-field="p.code"/></b></td>
<td><b><span t-field="p.name"/></b></td>
<!-- <td><span t-field="p.quantity"/></td> -->
<td><b><span t-esc="formatLang(p.amount, currency_obj=o.company_id.currency_id)"/></b></td>
<td><b><span t-esc="formatLang(p.total, currency_obj=o.company_id.currency_id)"/></b></td>
</t>
<t t-if="p.code != 'BASIC' and p.code != 'GROSS' and p.code != 'NET' and p.code != 'TOTAL' ">
<td><span t-field="p.code"/></td>
<td><span t-field="p.name"/></td>
<!-- <td><span t-field="p.quantity"/></td> -->
<td><span t-esc="formatLang(p.amount, currency_obj=o.company_id.currency_id)"/></td>
<td><span t-esc="formatLang(p.total, currency_obj=o.company_id.currency_id)"/></td>
</t>
</tr>
</t>
</tbody>


I tried to search there isn't an example on Qweb's if else example.





Awatar
Odrzuć
Najlepsza odpowiedź

Hello,

Generally we use ,

<t t-if="p.code == 'BASIC'">

    executable statement..

</t>

for false condition,

<t t-if="not p.code == 'BASIC'">

    executable statement..

</t>

Regards,

Awatar
Odrzuć
Autor

Thanks. How, this solution doesn't seem much difference to my except you use "not" to negate the condition. I still have to specify the list of conditions to do that.

Najlepsza odpowiedź

hi

this is my invoice Report.In this Report if condition available if amount to text filed is yes then it's print  amount to text in report and if no then condition false so, it's not print.


<?xml version="1.0" encoding="utf-8"?>

<openerp>

<data>

<template id="report_invoice_document_inherit" inherit_id="account.report_invoice_document">

<xpath expr="//p[@t-if='o.fiscal_position']" position="after">

<p>

<span t-if="o.amount_text_need == 'yes'">

<!--<span t-if="o.currency_id == '21'">-->

<strong>Amount in Word:</strong>

<span t-esc="o.amount_to_text(o.amount_total, 'USD')"/></span>

</p>

</xpath>

</template>

</data>

</openerp>



and in your code

if condition is

<t t-if="p.code == 'BASIC' or p.code == 'GROSS' or p.code == 'NET' or p.code == 'TOTAL' "> 

Awatar
Odrzuć
Autor

Thanks. if you read my code, what I am trying to achieve is to bold Basic,Gross,Net and Total, and leave the rest unbold.

first you have to check p.code value is coming from print p.code value in report and see what actually values are come.

Autor

that is what my code is doing and works, but that I need a more elegant way for doing conditions.

Autor Najlepsza odpowiedź

This post is already marked resolved.
Sorry to be rude. I can't understand people replying me here didn't even read and understand my question and posting me useless(sorry again to be blunt) suggestion.

Please read again. My question is asking if there is a else conditional instead of me negating my previous condition(s).

Anyway again. This post is closed. Please do not answer. And I stopped using Odoo already. Thank you


Awatar
Odrzuć
Najlepsza odpowiedź

Dear it is the same conndition test of python 

Awatar
Odrzuć
Najlepsza odpowiedź

how to create custom reports in odoo using qweb reporting engine. In this post we will learn how to create simple custom reports and its template.

  1. http://learnopenerp.blogspot.com/2016/09/how-to-create-custom-reports-in-odoo.html

  2. http://learnopenerp.blogspot.com/2016/11/how-to-create-qweb-reports-in-openerp.html

Awatar
Odrzuć
Powiązane posty Odpowiedzi Widoki Czynność
1
wrz 21
9631
1
cze 16
7272
1
lip 25
1956
1
maj 25
2040
1
kwi 25
2474