After80s 发表于 2021-4-1 11:42:38

【AR15】【将JSON数据集转换为动态对象集合后,报表无法正确读取数据】

本帖最后由 Crystal.Li 于 2021-4-1 14:21 编辑

数据服务器返回的是JSON格式数据集,例如:[{"ID":"1"},{"ID":"2"}]

报表服务器接收到到这个JSON数据集后,转换为动态对象数组,例如:

var ReportData = Newtonsoft.Json.JsonConvert.DeserializeObject<A[]>(JsonData);

其中 A 类型继承自 System.Dynamic.DynamicObject

此时在代码里可以正确访问并打印 ReportData 集合中的数据,但如果将 ReportData 作为 LocateDataSource 方法的返回值提供给报表,就无法正确显示。

Crystal.Li 发表于 2021-4-1 14:21:44

您这个ReportData打印出来是什么样子的?

After80s 发表于 2021-4-1 14:27:33

Crystal.Li 发表于 2021-4-1 14:21
您这个ReportData打印出来是什么样子的?
是一片空白,没有任何数据,正常应该是有数据的。

这是我直接返回RemoteData时的结果。


Crystal.Li 发表于 2021-4-1 14:33:55

我可能没说清楚,我指的是您在程序里边生成的这个数据打印出来应该是什么样的?就是在代码里面经过您那个转换之后,生成的那个reportdata是什么样的?

After80s 发表于 2021-4-1 14:57:32

Crystal.Li 发表于 2021-4-1 14:33
我可能没说清楚,我指的是您在程序里边生成的这个数据打印出来应该是什么样的?就是在代码里面经过您那个转 ...

生成的 ReportData 是一个数组,元素类型是继承自 System.Dynamic.DynamicObject 的对象。

After80s 发表于 2021-4-1 15:09:17

Crystal.Li 发表于 2021-4-1 14:33
我可能没说清楚,我指的是您在程序里边生成的这个数据打印出来应该是什么样的?就是在代码里面经过您那个转 ...



这是测试代码

Crystal.Li 发表于 2021-4-1 17:29:50

After80s 发表于 2021-4-1 15:09
这是测试代码

好的,收到。我们先调试看看

Crystal.Li 发表于 2021-4-2 11:30:29

本帖最后由 Crystal.Li 于 2021-4-2 11:31 编辑

Crystal.Li 发表于 2021-4-1 17:29
好的,收到。我们先调试看看
我看了您的demo,您应该保证startUp程序里面返回的数据和报表设计时配置的数据源要对应上。数据源配置也不需要配置存储过程:如果您想看如果配置各种类型的数据源,我们官方示例下载下来有demo,可以参考这些demo看看:

页: [1]
查看完整版本: 【AR15】【将JSON数据集转换为动态对象集合后,报表无法正确读取数据】