Основываясь на приведенном ниже примере json, я пытаюсь определить отчет Telerik, используя как основной отчет, так и подотчет, где se second подается с подмножеством данных json основного отчета.
По сути, поток данных имитирует что-то вроде:
Проблемы возникли на шаге 4, когда я получаю сообщение об ошибке [Недопустимое значение параметра отчета 'jsonData'] при отображении основного отчета.
Похоже, что Telerik Report не может преобразовать данные выбранного поля узла json в правильную строку.
Для полного контекста:
В обоих отчетах:
Имеется параметр отчета jsonData строкового типа данных;
Определен JsonDataSource;
Привязка между строковым параметром jsonData и основным JsonDataSource основана на:
В основном отчете:
Name — строка, представляющая название компании;
Employes — объект, содержащий список сотрудников компании.
По подотчету:
Опять же, в основном отчете я использую следующее сопоставление параметров подотчета:
Я использую конструктор отчетов Telerik v15.1.21.716 (настольный компьютер).
Кажется, что селектор данных преобразует дату узла json Employes в System.Object [], что доставляет мне немало хлопот, пытаясь понять, как преобразовать ее обратно в строку json.
Я уже много искал в документации, Интернете,
Хотя я больше всего ценю усилия тех, кто пытается мне помочь:
{
"Companies": [
{
"Name": "Company1",
"Employes": [
{
"Name": "Joe",
"Wage": 1000
},
{
"Name": "Jack",
"Wage": 2000
}
]
},
{
"Name": "Company2",
"Employes": [
{
"Name": "Mary",
"Wage": 3000
},
{
"Name": "Mike",
"Wage": 4000
}
]
}
]
}

Действительно, передача объекта «Employes» в параметр «jsonData» подотчета не должна работать, поскольку объект нельзя напрямую преобразовать в строку JSON. Вы должны преобразовать его через функцию CStr().
Однако вместо использования параметра для установки источника данных вложенного отчета вы можете использовать привязку, описанную в статье Как представлять иерархические вложенные данные KB.
Также хочу отметить, что в релизе R3 2022 SP1 свойство DataSource было добавлено и в элемент SubReport. Это делает предложенный выше подход устаревшим, поскольку позволяет привязать источник данных подотчета прямо в основном отчете. Например:
Property path: DataSource
Expression: = Fields.Employes
В предоставленном @Julio примере, который позволяет вводить узел json в качестве параметра подотчета вместо прямого источника данных, вы должны использовать следующий подход.
Property path: jsonData
Expression: = CStr(Fields.Employes)
Решение 1 не требует явной привязки внутреннего подотчета к источнику данных;
Решение 2 требует дополнительной привязки между подотчетом параметр и его источник данных, как указано в исходном сообщении.
Для получения дополнительной информации по этой теме, проверьте оригинальный оригинальный пост Телерика