gpt4 book ai didi

c# - 如何让 ReportViewer 显示多页(例如每个 DataRow 显示一页)?

转载 作者:行者123 更新时间:2023-11-30 13:37:49 26 4
gpt4 key购买 nike

我是 MS 报告的新手。我想要实现的是制作一个简单的报告,该报告将从 DataTable(以编程方式制作)中填充。这个想法是将每个页面的数据分配给 DataRow 中的值。 IE。报告页面 1 将从 DataTable.Rows[0] 获取其 TextBox 值,报告页面 2 将显示值来自 DataTable.Rows[1] 等。页数 = DataRows 的数量。

我编写了一个 WinForms 应用程序,该应用程序从 SQL 获取 DataTable 并根据用户提供的参数对其进行过滤,然后显示一个报告。

然后我创建了一个名为 ComplianceFormDataSet 的空虚拟 DataSet,其中包含我将进一步需要的所有字段名称。然后我做了一个 .rdlc,用这个表达式向它添加了一个 TextBox:

=Fields!CustomerCode.Value

下面是将数据传递给 ReportViewer 的逻辑:

DataTable MainDataTable = new DataTable();
MainDataTable.Columns.Add("CustomerCode", typeof(string));
MainDataTable.Rows.Add("Blah1");
MainDataTable.Rows.Add("Blah2");
ReportDataSource MainDataSource = new ReportDataSource("ComplianceFormDataSet", MainDataTable);
MainReportViewer.LocalReport.DataSources.Clear();
MainReportViewer.LocalReport.DataSources.Add(MainDataSource);
MainReportViewer.RefreshReport();

当我构建它时,会得到一份报告,其中一页显示 "Blah1"。我如何让它呈现两个页面:一个使用 "Blah1",第二个使用 "Blah2"?谢谢。

最佳答案

好的,我想通了:

  1. 向报表添加一个列表元素并将其拉伸(stretch)以填充报表正文。
  2. 将此列表元素的 Tablix 链接到我的数据集。
  3. 在 List 元素中添加一个 TextBox 元素。
  4. 选择 TextBox 元素的表达式:=Fields!CustomerCode.Value
  5. 右键单击外部报表主体并选择“查看”->“分组”。
  6. 添加行组。
  7. 在行组属性中的常规 -> 在 CustomerCode 字段上添加分组。
  8. 在行组属性中分页 -> 选择分页选项 -> 在组的每个实例之间。
  9. 如果报告总是生成一个包含空字段的额外页面 - 在 XML 查看器中打开 .rdlc 文件,找到分页符标记并将其删除。

很明显,不是吗?

关于c# - 如何让 ReportViewer 显示多页(例如每个 DataRow 显示一页)?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20581883/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com