gpt4 book ai didi

c# - 如何在 WPF 项目中将 rdlc 文件添加到 ReportViewer

转载 作者:太空狗 更新时间:2023-10-29 17:56:18 26 4
gpt4 key购买 nike

我通过主窗口的 XAML 设计器在 WPF 应用程序中添加了一个 ReportViewer,我想添加一个现有的 rdlc 文件。

我希望我的 reportviewer 在启动时显示一个空的 rdlc 文件(没有参数),稍后从我的数据网格中选择一行(绑定(bind)到一个 observablecollection)相应地改变它的参数并显示填充的报告定义而不是空的。

我将制作一个按钮,将所选行作为命令参数以及相关事件和所有内容,我只需要能够将数据传递给报告。我意识到这不是一个简单的问题,所以我会尽量简化:

  1. 如何将现有的 rdlc 文件添加到 ReportViewer(MVVM、WPF)?
  2. 我按下一个按钮 -> 相关命令从我的 observablecollection 中获取项目作为参数(我的数据网格中的一行) -> 如何将此项目的数据部分传递给未填充(或者如果填充当然覆盖)的部分报告?

我希望我已经说清楚了。提前感谢您的回答!

最佳答案

在使用正确的报告路径和数据集名称设置 initilizeMethod 之后。

private void initializeReport()
{
this.mform_components = new System.ComponentModel.Container();
Microsoft.Reporting.WinForms.ReportDataSource reportDataSource1 = new Microsoft.Reporting.WinForms.ReportDataSource();

this.ProductBindingSource = new System.Windows.Forms.BindingSource(this.mform_components);
((System.ComponentModel.ISupportInitialize)(this.ProductBindingSource)).BeginInit();

reportDataSource1.Name = "DataSet4";
reportDataSource1.Value = this.ProductBindingSource;

this.viewerInstance.LocalReport.DataSources.Add(reportDataSource1);
this.viewerInstance.LocalReport.ReportEmbeddedResource = "YourReport.rdlc";
this.viewerInstance.ZoomPercent = 95;
this.windowsFormsHost1.Width = 680;

((System.ComponentModel.ISupportInitialize)(this.ProductBindingSource)).EndInit();
}

唯一应该留下的是指定您要在报告中使用的对象。

private System.Windows.Forms.BindingSource ProductBindingSource;
private void startReport()
{
YourClass item = (YourClass)DataGridView.SelectedItem;
this.ProductBindingSource.DataSource = item;

this.viewerInstance.RefreshReport();
this.viewerInstance.Refresh();
}

关于c# - 如何在 WPF 项目中将 rdlc 文件添加到 ReportViewer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17709811/

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