Bonjour,
Est-il possible de créer une vue liste reprenant les champs de deux modèles différents ?
Merci d’avance
Bonjour,
Est-il possible de créer une vue liste reprenant les champs de deux modèles différents ?
Merci d’avance
Bonjour @csch,
Oui, il est possible de créer une vue liste qui reprend des champs de deux modèles différents, à condition que ces modèles soient liés par une relation <many-to-one>
.
Pour ce faire, vous pouvez référencer les champs des modèles en utilisant la notation pointée.
Par exemple, dans le modèle com.axelor.apps.sale.db.SaleOrderLineTax
, il existe une référence au modèle SaleOrder
:
<many-to-one name="saleOrder" ref="SaleOrder" title="Sale order"/>
À son tour, le modèle SaleOrder
contient une référence au modèle Currency
:
<many-to-one name="currency" ref="com.axelor.apps.base.db.Currency" title="Currency"/>
Ainsi, à partir de la vue grid sale-order-line-tax-grid
, vous pouvez accéder aux champs du modèle Currency
de la manière suivante :
<field name="saleOrder.currency.numberOfDecimals" hidden="true"/>
Voici la grille complète :
<grid name="sale-order-line-tax-grid" title="SO Tax lines" model="com.axelor.apps.sale.db.SaleOrderLineTax">
<field name="taxLine" width="400%" form-view="tax-line-form" grid-view="tax-line-grid"/>
<field name="saleOrder" hidden="true"/>
<field name="saleOrder.currency" hidden="true"/>
<field name="saleOrder.currency.numberOfDecimals" hidden="true"/>
<field name="exTaxBase" x-scale="saleOrder.currency.numberOfDecimals"/>
<field name="taxTotal" aggregate="sum" x-scale="saleOrder.currency.numberOfDecimals"/>
</grid>
En utilisant ce type de référence, vous pouvez afficher et utiliser des champs provenant de différents modèles dans une même vue liste.
Cordialement,