diff --git a/ar/features/report.mdx b/ar/features/report.mdx
index 24680a1..f9d4fb2 100644
--- a/ar/features/report.mdx
+++ b/ar/features/report.mdx
@@ -96,6 +96,7 @@ openyida append-chart APP_XXXXXX REPORT_XXXXX '{
| **pivot** | جدول محوري متقاطع | تحليل متعدد الأبعاد |
| **gauge** | مقياس | تتبع التقدم أو الأهداف |
| **funnel** | رسم بياني قمعي | التحويل عبر المراحل |
+| **radar** | رسم بياني رادار | مقارنة متعددة المتغيرات |
---
@@ -179,6 +180,99 @@ openyida append-chart APP_XXXXXX REPORT_XXXXX '{
}
```
+### مؤشر (KPI)
+
+```json
+{
+ "type": "indicator",
+ "title": "Total Revenue",
+ "cubeCode": "form_uuid",
+ "kpiField": "numberField_amount",
+ "aggregation": "sum"
+}
+```
+
+### مقياس
+
+```json
+{
+ "type": "gauge",
+ "title": "Completion Rate",
+ "cubeCode": "form_uuid",
+ "kpiField": "numberField_rate",
+ "aggregation": "avg"
+}
+```
+
+### رسم بياني رادار
+
+```json
+{
+ "type": "radar",
+ "title": "Performance Overview",
+ "cubeCode": "form_uuid",
+ "xField": "selectField_category_value",
+ "yField": [
+ { "fieldCode": "numberField_score1", "aggregateType": "AVG" },
+ { "fieldCode": "numberField_score2", "aggregateType": "AVG" }
+ ]
+}
+```
+
+---
+
+## رموز الحقول في التقارير
+
+عند الإشارة إلى حقول النموذج في تعريفات الرسوم البيانية للتقارير، تستخدم معظم أنواع الحقول معرّف الحقل مباشرة (مثل `textField_abc123`). ومع ذلك، تتطلب الحقول من نوع الاختيار — مثل `SelectField` و `RadioField` و `CheckboxField` و `EmployeeField` و `DepartmentSelectField` — إضافة اللاحقة `_value` إلى معرّف الحقل.
+
+| Field type | Field ID example | Report field code |
+|------------|------------------|-------------------|
+| TextField | textField_abc123 | textField_abc123 |
+| NumberField | numberField_abc123 | numberField_abc123 |
+| DateField | dateField_abc123 | dateField_abc123 |
+| SelectField | selectField_abc123 | selectField_abc123_value |
+| RadioField | radioField_abc123 | radioField_abc123_value |
+| CheckboxField | checkboxField_abc123 | checkboxField_abc123_value |
+| EmployeeField | employeeField_abc123 | employeeField_abc123_value |
+| DepartmentSelectField | departmentSelectField_abc123 | departmentSelectField_abc123_value |
+
+
+استخدم `openyida get-schema` للحصول على هيكل النموذج وتحديد رموز الحقول الصحيحة لرسومك البيانية.
+
+
+
+استخدام معرّف الحقل بدون اللاحقة `_value` للحقول من نوع الاختيار سيؤدي إلى بيانات فارغة أو غير صحيحة في الرسم البياني.
+
+
+---
+
+## تنسيق الحقل البديل
+
+بدلاً من استخدام `xField` و `yField` كسلاسل نصية، يمكنك استخدام مصفوفة `fields` لتحديد مقاييس متعددة مع أنواع تجميع فردية:
+
+```json
+{
+ "type": "bar",
+ "title": "Multi-measure Chart",
+ "cubeCode": "form_uuid",
+ "xField": "selectField_category_value",
+ "yField": [
+ { "fieldCode": "numberField_amount", "aggregateType": "SUM" },
+ { "fieldCode": "numberField_count", "aggregateType": "COUNT" }
+ ]
+}
+```
+
+هذا التنسيق مفيد بشكل خاص للرسوم البيانية المركبة ورسوم الرادار التي تحتاج إلى عرض مقاييس متعددة على نفس التصور.
+
+---
+
+## المرشحات
+
+تُنشئ الحقول من نوع الاختيار (SelectField و RadioField و CheckboxField وغيرها) مرشحات تلقائيًا في التقرير. عندما يستخدم الرسم البياني حقلاً من نوع الاختيار كـ `xField`، تعرض واجهة التقرير قائمة منسدلة للتصفية تتيح للمستخدمين تصفية بيانات الرسم البياني بشكل تفاعلي.
+
+لا حاجة لأي تكوين إضافي — يتم إنشاء المرشحات بناءً على نوع الحقل في هيكل النموذج.
+
---
## دوال التجميع
@@ -190,6 +284,7 @@ openyida append-chart APP_XXXXXX REPORT_XXXXX '{
| **count** | العد |
| **max** | القيمة القصوى |
| **min** | القيمة الدنيا |
+| **count_distinct** | عدد القيم الفريدة |
---
@@ -248,9 +343,22 @@ openyida create-report APP_XXXXXX "Sales Analysis Report" ./sales-report-charts.
---
+## التحقق من التكوين
+
+قبل إنشاء التقرير، تحقق من تكوين الرسوم البيانية لتجنب الأخطاء الشائعة:
+
+1. **تحقق من رموز الحقول** — قم بتشغيل `openyida get-schema` للتحقق من معرّفات الحقول والتأكد من أن الحقول من نوع الاختيار تتضمن اللاحقة `_value`.
+2. **تحقق من مصدر البيانات** — تأكد من أن `dataSource` أو `cubeCode` يطابق UUID نموذج صالح في تطبيقك.
+3. **تحقق من أنواع التجميع** — تأكد من أن دالة التجميع متوافقة مع نوع الحقل (مثلاً، `sum` يعمل فقط على الحقول الرقمية).
+4. **اختبر برسم بياني واحد** — ابدأ برسم بياني واحد للتحقق من التكوين قبل إضافة عدة رسوم بيانية.
+
+---
+
## أفضل الممارسات
1. **اختر نوع الرسم البياني المناسب** - الاتجاهات بالخطي، المقارنات بالعمودي، النسب بالدائري
2. **تحكم في عدد الرسوم البيانية** - يُنصح بعدم تجاوز 6 رسوم بيانية لكل تقرير
3. **استخدم جداول البيانات** - أكمل الرسوم البيانية بجداول لفحص البيانات المفصلة
4. **اضبط أحجام الصفحات المناسبة** - يُنصح بـ 10-20 سجلًا لكل صفحة للجداول
+5. **استخدم get-schema لاكتشاف الحقول** - قم بتشغيل `openyida get-schema` للحصول على رموز الحقول الصحيحة قبل بناء تعريفات الرسوم البيانية
+6. **استفد من المرشحات التلقائية** - تُنشئ الحقول من نوع الاختيار مرشحات تقارير تلقائيًا، استخدمها كـ `xField` للوحات المعلومات التفاعلية
diff --git a/ar/features/skills.mdx b/ar/features/skills.mdx
index 8abb53e..02e8a39 100644
--- a/ar/features/skills.mdx
+++ b/ar/features/skills.mdx
@@ -69,7 +69,7 @@ openyida create-form create "<اسم النموذج>"
-# الحصول على Schema النموذج
+# الحصول على Schema النموذج (يُرجع معرّفات الحقول ورموز حقول التقارير)
openyida get-schema
# تحديث تكوين النموذج
diff --git a/de/features/report.mdx b/de/features/report.mdx
index cab0797..f696633 100644
--- a/de/features/report.mdx
+++ b/de/features/report.mdx
@@ -96,6 +96,7 @@ openyida append-chart APP_XXXXXX REPORT_XXXXX '{
| **pivot** | Kreuz-Pivottabelle | Mehrdimensionale Analyse |
| **gauge** | Messgerät-Diagramm | Fortschritts- oder Zielverfolgung |
| **funnel** | Trichterdiagramm | Stufenweise Konversion |
+| **radar** | Radardiagramm | Mehrvariablenvergleich |
---
@@ -179,6 +180,99 @@ Das Setzen von `w` oder `h` auf `0` ist gültig und wird berücksichtigt. Bei Au
}
```
+### Kennzahl (KPI)
+
+```json
+{
+ "type": "indicator",
+ "title": "Total Revenue",
+ "cubeCode": "form_uuid",
+ "kpiField": "numberField_amount",
+ "aggregation": "sum"
+}
+```
+
+### Tachometer
+
+```json
+{
+ "type": "gauge",
+ "title": "Completion Rate",
+ "cubeCode": "form_uuid",
+ "kpiField": "numberField_rate",
+ "aggregation": "avg"
+}
+```
+
+### Radardiagramm
+
+```json
+{
+ "type": "radar",
+ "title": "Performance Overview",
+ "cubeCode": "form_uuid",
+ "xField": "selectField_category_value",
+ "yField": [
+ { "fieldCode": "numberField_score1", "aggregateType": "AVG" },
+ { "fieldCode": "numberField_score2", "aggregateType": "AVG" }
+ ]
+}
+```
+
+---
+
+## Feldcodes für Berichte
+
+Beim Referenzieren von Formularfeldern in Berichts-Diagrammdefinitionen verwenden die meisten Feldtypen ihre Feld-ID direkt (z.B. `textField_abc123`). Auswahlfelder — wie `SelectField`, `RadioField`, `CheckboxField`, `EmployeeField` und `DepartmentSelectField` — erfordern jedoch das Anhängen des Suffixes `_value` an die Feld-ID.
+
+| Field type | Field ID example | Report field code |
+|------------|------------------|-------------------|
+| TextField | textField_abc123 | textField_abc123 |
+| NumberField | numberField_abc123 | numberField_abc123 |
+| DateField | dateField_abc123 | dateField_abc123 |
+| SelectField | selectField_abc123 | selectField_abc123_value |
+| RadioField | radioField_abc123 | radioField_abc123_value |
+| CheckboxField | checkboxField_abc123 | checkboxField_abc123_value |
+| EmployeeField | employeeField_abc123 | employeeField_abc123_value |
+| DepartmentSelectField | departmentSelectField_abc123 | departmentSelectField_abc123_value |
+
+
+Verwenden Sie `openyida get-schema`, um das Formularschema abzurufen und die korrekten Feldcodes für Ihre Berichtsdiagramme zu ermitteln.
+
+
+
+Die Verwendung einer Feld-ID ohne das Suffix `_value` für Auswahlfelder führt zu leeren oder falschen Daten im Diagramm.
+
+
+---
+
+## Alternatives Feldformat
+
+Anstatt `xField` und `yField` als Zeichenketten zu verwenden, können Sie ein `fields`-Array verwenden, um mehrere Kennzahlen mit individuellen Aggregationstypen anzugeben:
+
+```json
+{
+ "type": "bar",
+ "title": "Multi-measure Chart",
+ "cubeCode": "form_uuid",
+ "xField": "selectField_category_value",
+ "yField": [
+ { "fieldCode": "numberField_amount", "aggregateType": "SUM" },
+ { "fieldCode": "numberField_count", "aggregateType": "COUNT" }
+ ]
+}
+```
+
+Dieses Format ist besonders nützlich für Kombi-Diagramme und Radardiagramme, die mehrere Kennzahlen in derselben Visualisierung anzeigen müssen.
+
+---
+
+## Filter
+
+Auswahlfelder (SelectField, RadioField, CheckboxField usw.) erzeugen automatisch Filter im Bericht. Wenn ein Diagramm ein Auswahlfeld als `xField` verwendet, zeigt die Berichts-UI ein Filter-Dropdown an, mit dem Benutzer die Diagrammdaten interaktiv filtern können.
+
+Es ist keine zusätzliche Konfiguration erforderlich — Filter werden basierend auf dem Feldtyp im Formularschema automatisch generiert.
+
---
## Aggregationsfunktionen
@@ -190,6 +284,7 @@ Das Setzen von `w` oder `h` auf `0` ist gültig und wird berücksichtigt. Bei Au
| **count** | Anzahl der Datensätze |
| **max** | Maximalwert |
| **min** | Minimalwert |
+| **count_distinct** | Anzahl eindeutiger Werte |
---
@@ -248,9 +343,22 @@ openyida create-report APP_XXXXXX "Sales Analysis Report" ./sales-report-charts.
---
+## Konfigurationsvalidierung
+
+Bevor Sie einen Bericht erstellen, validieren Sie Ihre Diagrammkonfiguration, um häufige Fehler zu vermeiden:
+
+1. **Feldcodes prüfen** — Führen Sie `openyida get-schema` aus, um Feld-IDs zu überprüfen und sicherzustellen, dass Auswahlfelder das Suffix `_value` enthalten.
+2. **Datenquelle überprüfen** — Stellen Sie sicher, dass `dataSource` oder `cubeCode` einer gültigen Formular-UUID in Ihrer Anwendung entspricht.
+3. **Aggregationstypen validieren** — Bestätigen Sie, dass die Aggregationsfunktion mit dem Feldtyp kompatibel ist (z.B. `sum` funktioniert nur bei Zahlenfeldern).
+4. **Mit einem einzelnen Diagramm testen** — Beginnen Sie mit einem Diagramm, um die Konfiguration zu überprüfen, bevor Sie mehrere hinzufügen.
+
+---
+
## Best Practices
1. **Wählen Sie den passenden Diagrammtyp** - Liniendiagramme für Trends, Balkendiagramme für Vergleiche, Kreisdiagramme für Anteile
2. **Begrenzen Sie die Diagrammanzahl** - Maximal 6 Diagramme pro Bericht
3. **Verwenden Sie Datentabellen** - Ergänzen Sie Diagramme mit Tabellen zur detaillierten Datenprüfung
4. **Legen Sie angemessene Seitengrößen fest** - Für Datentabellen 10-20 Zeilen pro Seite
+5. **Verwenden Sie get-schema zur Felderkennung** - Führen Sie `openyida get-schema` aus, um korrekte Feldcodes vor dem Erstellen von Diagrammdefinitionen abzurufen
+6. **Nutzen Sie automatische Filter** - Auswahlfelder erzeugen automatisch Berichtsfilter, verwenden Sie sie als `xField` für interaktive Dashboards
diff --git a/de/features/skills.mdx b/de/features/skills.mdx
index cf5fff1..40cb681 100644
--- a/de/features/skills.mdx
+++ b/de/features/skills.mdx
@@ -69,7 +69,7 @@ openyida create-form create "" \
# Formular aktualisieren
openyida create-form update <ÄnderungenJSON>
-# Formular-Schema abrufen
+# Formular-Schema abrufen (gibt Feld-IDs und Berichts-Feldcodes zurück)
openyida get-schema
# Formularkonfiguration aktualisieren
diff --git a/en/features/report.mdx b/en/features/report.mdx
index 625001e..46c405d 100644
--- a/en/features/report.mdx
+++ b/en/features/report.mdx
@@ -96,6 +96,7 @@ openyida append-chart APP_XXXXXX REPORT_XXXXX '{
| **pivot** | Cross pivot table | Multi-dimensional analysis |
| **gauge** | Gauge chart | Progress or target tracking |
| **funnel** | Funnel chart | Stage-based conversion |
+| **radar** | Radar chart | Multi-variable comparison |
---
@@ -179,6 +180,99 @@ Setting `w` or `h` to `0` is valid and will be respected. If omitted, the defaul
}
```
+### Indicator (KPI)
+
+```json
+{
+ "type": "indicator",
+ "title": "Total Revenue",
+ "cubeCode": "form_uuid",
+ "kpiField": "numberField_amount",
+ "aggregation": "sum"
+}
+```
+
+### Gauge
+
+```json
+{
+ "type": "gauge",
+ "title": "Completion Rate",
+ "cubeCode": "form_uuid",
+ "kpiField": "numberField_rate",
+ "aggregation": "avg"
+}
+```
+
+### Radar
+
+```json
+{
+ "type": "radar",
+ "title": "Performance Overview",
+ "cubeCode": "form_uuid",
+ "xField": "selectField_category_value",
+ "yField": [
+ { "fieldCode": "numberField_score1", "aggregateType": "AVG" },
+ { "fieldCode": "numberField_score2", "aggregateType": "AVG" }
+ ]
+}
+```
+
+---
+
+## Field codes in reports
+
+When referencing form fields in report chart definitions, most field types use their field ID directly (e.g. `textField_abc123`). However, select-like fields — such as `SelectField`, `RadioField`, `CheckboxField`, `EmployeeField`, and `DepartmentSelectField` — require a `_value` suffix appended to the field ID.
+
+| Field type | Field ID example | Report field code |
+|------------|------------------|-------------------|
+| TextField | textField_abc123 | textField_abc123 |
+| NumberField | numberField_abc123 | numberField_abc123 |
+| DateField | dateField_abc123 | dateField_abc123 |
+| SelectField | selectField_abc123 | selectField_abc123_value |
+| RadioField | radioField_abc123 | radioField_abc123_value |
+| CheckboxField | checkboxField_abc123 | checkboxField_abc123_value |
+| EmployeeField | employeeField_abc123 | employeeField_abc123_value |
+| DepartmentSelectField | departmentSelectField_abc123 | departmentSelectField_abc123_value |
+
+
+Use `openyida get-schema` to retrieve the form schema and identify the correct field codes for your report charts.
+
+
+
+Using a field ID without the `_value` suffix for select-like fields will result in empty or incorrect data in the chart.
+
+
+---
+
+## Alternative field format
+
+Instead of using `xField` and `yField` as strings, you can use a `fields` array to specify multiple measures with individual aggregation types:
+
+```json
+{
+ "type": "bar",
+ "title": "Multi-measure Chart",
+ "cubeCode": "form_uuid",
+ "xField": "selectField_category_value",
+ "yField": [
+ { "fieldCode": "numberField_amount", "aggregateType": "SUM" },
+ { "fieldCode": "numberField_count", "aggregateType": "COUNT" }
+ ]
+}
+```
+
+This format is especially useful for combo charts and radar charts that need to display multiple metrics on the same visualization.
+
+---
+
+## Filters
+
+Select-like fields (SelectField, RadioField, CheckboxField, etc.) automatically generate filters in the report. When a chart uses a select-like field as the `xField`, the report UI will display a filter dropdown allowing users to filter the chart data interactively.
+
+No additional configuration is needed — filters are generated based on the field type in the form schema.
+
---
## Aggregation functions
@@ -190,6 +284,7 @@ Setting `w` or `h` to `0` is valid and will be respected. If omitted, the defaul
| **count** | Count of records |
| **max** | Maximum value |
| **min** | Minimum value |
+| **count_distinct** | Count of unique values |
---
@@ -248,9 +343,22 @@ openyida create-report APP_XXXXXX "Sales Analysis Report" ./sales-report-charts.
---
+## Configuration validation
+
+Before creating a report, validate your chart configuration to avoid common errors:
+
+1. **Check field codes** — Run `openyida get-schema` to verify field IDs and ensure select-like fields include the `_value` suffix.
+2. **Verify data source** — Ensure the `dataSource` or `cubeCode` matches a valid form UUID in your application.
+3. **Validate aggregation types** — Confirm that the aggregation function is compatible with the field type (e.g., `sum` only works on number fields).
+4. **Test with a single chart** — Start with one chart to verify the configuration before adding multiple charts.
+
+---
+
## Best practices
1. **Choose appropriate chart types** - Use line charts for trends, bar charts for comparisons, pie charts for proportions
2. **Limit chart count** - Keep reports to 6 or fewer charts
3. **Include data tables** - Pair charts with tables for detailed data inspection
4. **Set reasonable page sizes** - For data tables, use 10-20 rows per page
+5. **Use get-schema for field discovery** - Run `openyida get-schema` to retrieve correct field codes before building chart definitions
+6. **Leverage auto-filters** - Select-like fields automatically generate report filters, so use them as `xField` for interactive dashboards
diff --git a/en/features/skills.mdx b/en/features/skills.mdx
index 897b5f1..d8ac9c6 100644
--- a/en/features/skills.mdx
+++ b/en/features/skills.mdx
@@ -69,7 +69,7 @@ openyida create-form create "