¿Cómo puedo hacer un "for-loop" con un número específico de bucles en QWEB? -- xml campo con for-loop campo con odoo campo con odoo-8 campo con qweb camp Relacionados El problema

How can I make a “for-loop” with a specific number of loops in Qweb?


7
vote

problema

Español

Me gustaría hacer un bucle para imprimir elementos una cantidad exacta de veces. Algo así:

  <t t-for="o.label_qty" > ... </t>   

Dónde o.label_qty es un número entero.

pero puedo usar solo un loop en QWeb:

  <t t-foreach="o.pack_operation_ids" t-as="l" > ... </t>   

¿Hay alguna manera de hacer esto?

Si no, estoy pensando que la única solución es crear una lista de diamantes con elementos o.label_qty y escríbelo en el foreach.

Original en ingles

I would like to make a loop to print elements an exact amount of times. Something like this:

<t t-for="o.label_qty" > ... </t> 

Where o.label_qty is an integer number.

But I can use only a t-foreach loop in qweb:

<t t-foreach="o.pack_operation_ids" t-as="l" > ... </t> 

Is there a way to do this?

If not I'm thinking the only solution is to create a dummy list with o.label_qty elements and write it in the foreach.

              

Lista de respuestas

10
 
vote
vote
La mejor respuesta
 

La directiva t-foreach acepta una expresión de Python. Por lo tanto, puede usar range() Al igual que en Python for Loops:

  <t t-foreach="range(o.label_qty)" t-as="l"> ... </t>   
 

The t-foreach directive accepts a Python expression. So, you could use range() just like in Python for loops:

<t t-foreach="range(o.label_qty)" t-as="l"> ... </t> 
 
 
   
   
7
 
vote

Sí, es totalmente posible en ODOO QWeb Informe, solo necesita agregar la forma de abajo para hacer algunas cosas como esta

       <t t-foreach="o.pack_operation_ids" t-as="l" >          <td class="col-xs-1">              <span t-esc="l_index+1"/>          </td>      </t>   

Escuche el <span> tag está imprimible El número total de tiempos se ejecutará mientras estamos imprimiendo nuestro informe QWEB. índice es la parte de Qweb Template Engine , así que escuche que siempre se inicie con 0 element .

Espero que mi respuesta pueda ayudarle :)

 

yes it totally possible in Odoo Qweb Report you just need to add the below way to do somethings like this

     <t t-foreach="o.pack_operation_ids" t-as="l" >          <td class="col-xs-1">              <span t-esc="l_index+1"/>          </td>      </t> 

hear the <span> tag is print the total no of times loop will be executed while we are printing our qweb report. index is the part of Qweb Template Engine so hear it is always start with 0 element.

I hope my answer may help you :)

 
 
2
 
vote

La función () aumentará el error para el valor flotante.

Por ejemplo:

  >>>a=1.0 >>>range(a) >>>Traceback (most recent call last):    File "<stdin>", line 1, in <module>    TypeError: range() integer end argument expected, got float.   

Para los bucles variables dinámicos, hay dos posibilidades de bucle con un número específico.

  1. número entero (según respondido por @daniel reis)
  2. Número de flotador (intente con seguir)

      <t t-set="i" t-value="int(o.label_qty)"/> <t t-foreach="range(i)" t-as="l"> ... </t>    

Para obtener más detalles de la función de rango ().

 

range() function will raise error for floating value.

For example:

>>>a=1.0 >>>range(a) >>>Traceback (most recent call last):    File "<stdin>", line 1, in <module>    TypeError: range() integer end argument expected, got float. 

For dynamic variable loops, there are two possibility for looping with specific number.

  1. Integer number (as answered by @Daniel Reis)
  2. Float number (try with following)

    <t t-set="i" t-value="int(o.label_qty)"/> <t t-foreach="range(i)" t-as="l"> ... </t> 

for more details of range() function.

 
 
 
 

Relacionados problema

1  ODOO11: agregue el atributo a un elemento de vista de Kanban existente  ( Odoo11 add attribute to an existing kanban view element ) 
Estoy trabajando con $data['breadcrumbs'][] = array( 'text' => $this->language->get('text_home'), 'href' => $this->url->link('common/...

0  ¿Cómo establecer el tamaño de la fuente o en negrita en la descripción de la fila del registro en el informe de venta de QWEB?  ( How to set font size or bold on description record row on qweb sale report ) 
<?xml version="1.0" encoding="utf-8"?><odoo> <data> <template id="id_document" inherit_id="sale.report_saleorder_document"> <xpath expr="//tbody[@class=...

0  Incluya el número de documento en el encabezado en cada página después de la primera página QWeb  ( Include document number in header on every page after first page qweb ) 
Cómo agregar el número de página en el lado derecho con el mismo nivel que el nombre de una empresa stdClass Object ( [message] => %fieldName is a required...

0  ¿Cómo agregar marca de agua a ODOO INFORME?  ( How to add watermark to odoo report ) 
Estoy tratando de agregar marca de agua a todas las páginas de esta manera <template id="report_layout" inherit_id="web.external_layout_background"> ...

2  ¿Cómo obtener Sysdate en QWEB / ODOO 11?  ( How to get sysdate in qweb odoo 11 ) 
¿Cómo hacer referencia a Sysdate en QWeb en ODOO 11? Necesito comparar una fecha con "sysdate" en Qweb, pero no puedo obtener la fecha actual. ...

1  ¿Cómo heredar el sitio web.HOMEPAGE y agregar contenido HTML dentro DIV id = "Wrap" en ODOO 12?  ( How to inherit website homepage and add html content inside div id wrap in odo ) 
Estoy tratando de insertar algunos bloques HTML en la página de inicio ODOO12. Así que intenté heredar el sitio web . HomePage . Pero esto no está funcionando...

0  ¿Cómo incluir una imagen de la casilla de verificación en un informe QWEB?  ( How to include a checkbox image in a qweb report ) 
¿Hay manera de cambiar la imagen de la casilla de verificación en el informe QWEB? Por ejemplo, quiero cambiar "V" estándar a imagen así: ¿Es posible? ...

6  ¿Cómo puedo emitir un campo DateTime ODOO 8 sin tiempo en un informe QWEB?  ( How can i output a odoo 8 datetime field without time on a qweb report ) 
Quiero generar un campo DateTime ODOO 8 en el formato de localización pero sin tiempo. Extendido el t-field con la opción hide_time . ¿Hay una solución i...

0  ODOO 11 Comparación de fecha en XML (QWEB)  ( Odoo 11 date comparison in xml qweb ) 
Hola tiene el siguiente código: Date: <t t-esc="Date()" /><br/><br/> BirthDate: <t t-esc="record.x_birth_date.raw_value" /><br/><br/> Due Date: <span...

-1  ODOO 10 Módulo de envío de correo electrónico personalizado  ( Odoo 10 custom email send module ) 
He creado un módulo que enviará un correo electrónico al usuario y aquí está mi plantilla.xml, pero no pude hacer un método de Python. Miré el método de corre...




© 2022 respuesta.top Reservados todos los derechos. Centro de preguntas y respuestas reservados todos los derechos