问题描述
我很难提出一种生成报告的方法(通过xlsx或MS报表查看器)。最大的问题是我的数据集是动态创建的。这就是我所拥有的:
一个或多个终端会定期向云托管的数据库填充有关信息来自何处,全局密钥以及与该对(起源,密钥)相对应的值的信息。
所以我最终得到一个像这样的表:
(?= \|)
我制作了一个应用程序,将其转换为每个TERMINAL_NO都有一列的数据集,每一行都是每个不同的GLOBAL_KEY,并为每对存储了对应的DECIMAL_VALUES。但是,这就是问题所在-我找不到一种使用动态创建的数据集生成报告或xlsx文件的方法,因为我知道它们都需要使用类型化的数据集才能使用。
是否有更简单的方法来收集这些数据,或者我做错了吗?
08-15-20编辑 按照@jdweng,我确实尝试了此处描述的方法,但是无法使reportViewer显示实际数据。目前,我有以下内容:
TERMINAL_NO|GLOBAL_KEY|DECIMAL_VALUE
===========|==========|=============
123 |9876 |1.00
123 |9875 |0.50
123 |9872 |-4.00
234 |9876 |3.00
234 |9875 |5.45
234 |9872 |2.50
但是,我所得到的只是winformshost控件中的一个空报表查看器。
解决方法
按照@nbk的建议,我使用了Nadir(https://www.codeproject.com/Tips/888174/Dynamically-Creating-an-RDLC-Report-Just-Using-a-D)通过使用提供的.cs文件制作的报告生成器代码。
只需在xaml上进行一些更改,因为我没有使用徽标图像。我已经有了我的数据集(只需将列名更改为与cls兼容),它就可以完美地工作。我不必使用userControl文件夹,因为我正在使用WPF,并且已经有一个带有formformviewer控件的winforms宿主控件。