跳至內容
選單
此問題已被標幟
6 回覆
110860 瀏覽次數

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.





頭像
捨棄
最佳答案

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,

頭像
捨棄
作者

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.

最佳答案

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

頭像
捨棄
作者

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.

作者

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

作者 最佳答案

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


頭像
捨棄
最佳答案

Dear it is the same conndition test of python 

頭像
捨棄
最佳答案

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

頭像
捨棄
相關帖文 回覆 瀏覽次數 活動
1
9月 21
9628
1
6月 16
7262
1
7月 25
1928
1
5月 25
2023
1
4月 25
2429