如何在C# WinForm应用中使用程序参数创建无数据库依赖的RDLC报表
无数据库绑定RDLC报表表格实现方案(C# WinForms 环境)
步骤1:定义自定义数据实体类
先创建一个普通C#类,属性和你报表表格的列一一对应即可,示例如下:
public class ReportItem { // 属性名和后续报表数据集列名保持一致即可 public int SerialNumber { get; set; } public string Content { get; set; } public decimal Amount { get; set; } public string Remark { get; set; } }
步骤2:RDLC报表端配置数据集与表格
- 打开RDLC报表设计界面,在【报表数据】面板右键点击【数据集】→【添加数据集】
- 数据源类型选择对象,在列表里找到你刚才创建的
ReportItem类,确认后即可生成对应字段的数据集,全程不需要连接数据库 - 从工具箱拖入【表】控件到报表画布,绑定刚创建的数据集,将对应字段拖到表格列中完成表格设计
步骤3:代码侧传递数据填充报表
在嵌入ReportViewer控件的窗体逻辑中,构造数据列表绑定到报表即可,示例代码:
private void ReportForm_Load(object sender, EventArgs e) { // 自行构造报表数据,完全不需要读取数据库 List<ReportItem> reportData = new List<ReportItem> { new ReportItem{ SerialNumber = 1, Content = "测试项1", Amount = 100.5m, Remark = "正常"}, new ReportItem{ SerialNumber = 2, Content = "测试项2", Amount = 200.0m, Remark = "正常"}, new ReportItem{ SerialNumber = 3, Content = "测试项3", Amount = 50.8m, Remark = "待确认"} }; // 第一个参数必须和RDLC中定义的数据集名称完全一致 ReportDataSource dataSource = new ReportDataSource("CustomReportDataSet", reportData); reportViewer1.LocalReport.ReportPath = @"你的RDLC文件本地存储路径"; reportViewer1.LocalReport.DataSources.Clear(); reportViewer1.LocalReport.DataSources.Add(dataSource); // 若需要传递单值参数(比如报表标题、统计日期),可调用以下方法 // reportViewer1.LocalReport.SetParameters(new ReportParameter("ReportTitle", "测试报表")); reportViewer1.RefreshReport(); }
注意:如果报表设计界面找不到【报表数据】面板,可在打开RDLC文件的状态下,使用快捷键
Ctrl+Alt+D调出来。
内容的提问来源于stack exchange,提问作者Adnan abid
相关产品推荐
相关产品推荐

