C#以编程方式创建报告

C#以编程方式创建报告,c#,crystal-reports,report,C#,Crystal Reports,Report,我想创建一个报告,使用Crystal reports或RDLC,不管是哪一个。我可以将所有数据源作为一系列动态生成的文本框等组合在一起,但如何将其添加到报表中 例如,我想在一份报告中列出客户姓名和他们订购的所有物品。现在我可以得到数组中的所有信息。。。然后我如何将其放入水晶报告中 任何涵盖Crystal Reports非向导的好介绍都会令人惊讶。您报告的每个数据源都有一个名称(菜单“报告”->“数据源”,可能不准确,因为我的vs不是英语) 假设您的一个数据源名为prj_folder_classS

我想创建一个报告,使用Crystal reports或RDLC,不管是哪一个。我可以将所有数据源作为一系列动态生成的文本框等组合在一起,但如何将其添加到报表中

例如,我想在一份报告中列出客户姓名和他们订购的所有物品。现在我可以得到数组中的所有信息。。。然后我如何将其放入水晶报告中


任何涵盖Crystal Reports非向导的好介绍都会令人惊讶。

您报告的每个数据源都有一个名称(菜单“报告”->“数据源”,可能不准确,因为我的vs不是英语)

假设您的一个数据源名为prj_folder_classSample,classSample是项目的一个类。然后您需要向报告中添加一个列表

让我们做吧

List<classSanple> lst = new List<classSample>
lst.Add(...) //Add various instances of classSample
BindingSource thisIsABindingSource = new BindingSource();
thisIsABindingSource.DataSource = lst;
reportDataSource rds = new ReportDataSource("prj_folder_classSample", thisIsABindingSource);

ReportViewer1.ProcessingMode = ProcessingMode.Local;
ReportViewer1.LocalReport.EnableExternalImages = true;
ReportViewer1.LocalReport.ReportEmbeddedResource = "YourProject.Folder.reportName.rdlc";
ReportViewer1.LocalReport.DataSources.Add(rds)
List lst=新列表
lst.Add(…)//添加classSample的各种实例
BindingSource ThisisBindingSource=新BindingSource();
ThisisBindingSource.DataSource=lst;
reportDataSource rds=新的reportDataSource(“prj_文件夹_类样本”,此为绑定源);
ReportViewer1.ProcessingMode=ProcessingMode.Local;
ReportViewer1.LocalReport.EnableExternalImages=true;
ReportViewer1.LocalReport.ReportEmbeddedResource=“YourProject.Folder.reportName.rdlc”;
ReportViewer1.LocalReport.DataSources.Add(rds)

我是这样做的。希望它能帮助您。

如果您想动态更改报告,请查看此链接。在呈现报表之前调用此扩展名。Microsoft已经创建了一个RDL对象模型。有了这个,您可以自定义整个报告。但也许你不需要这个分机。只需在报表设计器中首先尝试您的东西。

为什么您的示例中需要RDLC?我并不特别想知道-只是想知道如何做到这一点。我基本上只需要创建一个自定义报告,就像你在Access中看到的那样。这看起来很好,但接下来我如何更改报告的显示-显示内容的位置等。转到报告设计器中的文本框,搜索名为value的属性。第一个选项是表达式。它将打开一个表达式设计器。有一个名为Categories的部分,其中有一个类别(dataset、datasource或类似的内容),其中包含已添加到报表中的所有数据源。选择一个数据源和该数据源的一个字段,然后该字段将在运行时显示所选的值。因此,没有办法只分配值,如Report.Textbox1=Form.Textbox1?如果有办法。。。我不知道。很抱歉但您也可以将参数传递给报表。您可以动态设置文本框的值(使用RDLC)