【问题标题】:how to make two reports(.rdlc) using single DataSet.xsd如何使用单个 DataSet.xsd 制作两个报告(.rdlc)
【发布时间】:2011-03-06 15:20:32
【问题描述】:

我正在用 C# 开发一个独立的 Windows 窗体应用程序。 我必须包含 5 个报告。[打算使用 Microsoft Report Viewer] 我认为表单上的单个报表查看器可以做到这一点。 我将需要 5 个报告文件 ( .rdlc )。 现在我需要创建 Dataset.xsd 文件对吗? 但是我需要 5 个 Dataset.xsd 文件还是单个 Dataset.xsd 可以做到这一点? 对于每个报告选择查询更改,那么该怎么办? 我也想在运行时做每一件事(尽可能)。

我只想创建一个 Dataset.xsd 文件并想在运行时更改查询, 然后将报告文件(.rdlc)分配给报告查看器。

我很困惑,这些东西是如何工作的! DataSet 和 Dataset.xsd 有什么区别。

我可以在不使用任何 DataSet.xsd 文件的情况下制作报告吗?

【问题讨论】:

    标签: c# report


    【解决方案1】:

    数据集的 XSD 通常用于指定数据集的数据类型(如下所示):

    DataSet ds = new DataSet();
    ds.ReadXmlSchema(@"...\Sample.xsd");
    ds.ReadXml(@"...\Sample.xml");
    
    ReportDataSource rds = new ReportDataSource();
    rds.Name = "Sample";
    rds.Value = ds.Tables[0];
    

    您可以使用任何DataTableIEnumerableBindingSourceSystem.Web.UI.IDataSource 作为ReportDataSource 的值。所以是的,您可以在不使用 DataSet.xsd 文件的情况下制作报告。

    然后您只需将ReportDataSource 添加到您的ReportViewer

    reportViewer.LocalReport.DataSources.Add(rds);
    

    也就是说,要使用多个报告定义生成多个报告,您只能使用一个数据源(如果您的数据相同)。

    【讨论】:

    • 感谢回复,去试试。
    • 如何在运行时为报表指定数据库路径,因为它会在用户计算机上更改。我不想将它存储在配置或任何文件的连接字符串中。
    • Sumit@:考虑到您的设置,您并不关心数据库!你只关心我的回答中的这条线rds.Value = data;。您可以从任何地方(xml、数组、列表、数据源等)读取data。如果您不知道如何在运行时连接到数据库(完全不知道),请在 SO 上提出一个新问题,因为该问题与该问题确实没有太多共同之处。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-12-30
    • 1970-01-01
    • 2016-12-23
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多