gpt4 book ai didi

c# - 如何在运行时更改/创建 rldc、reportViewer 对象和数据集?

转载 作者:太空宇宙 更新时间:2023-11-03 11:26:48 24 4
gpt4 key购买 nike

我正在使用 ReportViewer 为我的网络应用程序创建一些报告,我想知道:

是否可以在不预先创建 .rdlc 文件...数据集...以及所有内容的情况下使用 ReportViewer?

我想创建这些对象的实例,在运行时设置它们的属性,以免在我的应用程序中包含太多文件(30 个报告 x 3 个文件 [dataSet、.rdlc 和 .aspx])

以下方法解释了我的一些想法:

protected void Page_Load(object sender, EventArgs e){

    //getting the string connection
string connString = ConfigurationManager.ConnectionStrings["ConnString"].ConnectionString;
//estabilishing connection
using (SqlConnection conn = new SqlConnection(connString))
{
string sql = @"EXEC SP_PRODUCTS"; // or another SQL command

//opening connection
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataAdapter adp = new SqlDataAdapter(cmd);
DataTable dte = new DataTable();

//filling the dataTable with the command above
adp.Fill(dte);

//closing connection
conn.Close();

//defining which report the component will render
ReportViewer1.LocalReport.ReportPath = "myReport.rdlc";

//adding the dataSource Adicionando o data source, it's important passing the same name you defined before
//at this moment, i didn't understood if the DataSource is being created populated by the dte datatable or
//if it is just binding the dte datatable to an existing dataSource named "Products
ReportViewer1.LocalReport.DataSources.Add(new Microsoft.Reporting.WebForms.ReportDataSource("Products", dte));

//without this it wont work
ReportViewer1.DataBind();
}

知道如何解决这个问题吗?提前致谢。

最佳答案

您必须制作一个 rdlc 文件,但您可以做的是用您需要的列填充此 rdlc,并根据您的需要显示/隐藏这些列。您可以为此使用参数。这样你就可以只使用一个 rdlc 文件。您还可以为您需要的所有列定义一个对象(并且只创建一个数据集),并根据报告填充它。

关于c# - 如何在运行时更改/创建 rldc、reportViewer 对象和数据集?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9077854/

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