تخطي للذهاب إلى المحتوى
القائمة
لقد تم الإبلاغ عن هذا السؤال
2 الردود
490 أدوات العرض

Hello,

I am trying to add custom fields in the list of measures in Odoo 18.0. Below is my sale_report.py and sale_report_views.xml.



I get below error when entering the view:
Caused by: Error: No aggregate function has been provided for the measure 'rct_origin'

Can someone help me identify the problem?

Thanks.

الصورة الرمزية
إهمال
أفضل إجابة

Hi,


You are getting the error because rct_origin is a Char field and cannot be used as a measure in a pivot view.

Pivot measures must be of type float or integer since they need to support aggregate functions like sum, average, etc.

Using type="measure" on a Char field causes Odoo to throw: "No aggregate function has been provided for the measure".

To fix the issue, you should use type="row" or type="col" instead of type="measure" for Char or Selection fields.

Update your XML view as follows:

<field name="rct_origin" type="row"/>

<field name="rct_destination" type="row"/>

This will allow the pivot table to group data by origin and destination, which is appropriate for string-type fields.

If you need an actual measure, you can create a numeric computed field (e.g., a count or boolean flag as integer) and use that instead.


Hope it helps.

الصورة الرمزية
إهمال
الكاتب

Thanks for the reply. Was very useful.

أفضل إجابة

You'll need to define an aggregator attribute on that field. See options here: https://www.odoo.com/documentation/18.0/developer/reference/backend/orm.html#fields -> aggregator

For example:

x = fields.Float(aggregator='sum')
الصورة الرمزية
إهمال