从动态构建的数据集创建报告
Create report from dynamically built dataset
我无法想出生成报告的方法(通过 xlsx 或 MS 报告查看器)。最大的问题是我的数据集是动态创建的。这是我拥有的:
一个或多个终端定期向云托管数据库中填充有关信息来源、全局键和对应于 (origin, key) 对的值的信息。
所以我得到了一个 table 像:
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
我制作了一个应用程序,将其转换为每 TERMINAL_NO 一列的数据集,每一行都是不同的 GLOBAL_KEY,为每一对存储相应的 DECIMAL_VALUES .但是,这就是问题所在 - 我找不到使用动态创建的数据集生成报告或 xlsx 文件的方法,因为我知道它们都需要类型化的数据集才能使用。
有没有更简单的方法来收集这些数据,还是我做错了?
08-15-20 编辑
根据@jdweng,我确实尝试了那里描述的方法,但我无法让 reportViewer 显示实际数据。目前我有以下内容:
ReportDataSource rds = new ReportDataSource("DataSetStock", LoadData());
//LoadData() returns a filled datatable.
RView.ProcessingMode = ProcessingMode.Local;
RView.LocalReport.DataSources.Clear();
RView.LocalReport.DataSources.Add(rds);
RView.LocalReport.ReportPath = "StockReport.rdlc";
RView.RefreshReport();
然而,我得到的只是 winformshost 控件中的一个空报告查看器。
根据@nbk 的建议,我使用了 Nadir (https://www.codeproject.com/Tips/888174/Dynamically-Creating-an-RDLC-Report-Just-Using-a-D) 提供的 .cs 文件制作的报告生成器代码。
只需对 xaml 进行一些更改,因为我没有使用徽标图像。我已经有了我的数据集(只需要将列名更改为 cls-compliant)并且它运行完美。我不必使用 userControl 文件夹,因为我在 WPF 上工作并且已经有一个带有 reportviewer 控件的 winforms 主机控件。
我无法想出生成报告的方法(通过 xlsx 或 MS 报告查看器)。最大的问题是我的数据集是动态创建的。这是我拥有的:
一个或多个终端定期向云托管数据库中填充有关信息来源、全局键和对应于 (origin, key) 对的值的信息。
所以我得到了一个 table 像:
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
我制作了一个应用程序,将其转换为每 TERMINAL_NO 一列的数据集,每一行都是不同的 GLOBAL_KEY,为每一对存储相应的 DECIMAL_VALUES .但是,这就是问题所在 - 我找不到使用动态创建的数据集生成报告或 xlsx 文件的方法,因为我知道它们都需要类型化的数据集才能使用。
有没有更简单的方法来收集这些数据,还是我做错了?
08-15-20 编辑 根据@jdweng,我确实尝试了那里描述的方法,但我无法让 reportViewer 显示实际数据。目前我有以下内容:
ReportDataSource rds = new ReportDataSource("DataSetStock", LoadData());
//LoadData() returns a filled datatable.
RView.ProcessingMode = ProcessingMode.Local;
RView.LocalReport.DataSources.Clear();
RView.LocalReport.DataSources.Add(rds);
RView.LocalReport.ReportPath = "StockReport.rdlc";
RView.RefreshReport();
然而,我得到的只是 winformshost 控件中的一个空报告查看器。
根据@nbk 的建议,我使用了 Nadir (https://www.codeproject.com/Tips/888174/Dynamically-Creating-an-RDLC-Report-Just-Using-a-D) 提供的 .cs 文件制作的报告生成器代码。
只需对 xaml 进行一些更改,因为我没有使用徽标图像。我已经有了我的数据集(只需要将列名更改为 cls-compliant)并且它运行完美。我不必使用 userControl 文件夹,因为我在 WPF 上工作并且已经有一个带有 reportviewer 控件的 winforms 主机控件。