在Visual Studio 2010中使用视图作为水晶报表数据源

本文关键字:水晶 报表 数据源 视图 Studio Visual 2010 | 更新日期: 2023-09-27 18:11:53

我想在我的网站中使用Crystal Reports,我想在我的报告中显示两个不同的表。正如我所理解的,我应该使用视图,但是我不知道我应该如何使用它,或者我应该在Crystal Report查看器的代码中编写什么代码?

你能告诉我从这里我该怎么做吗?

在Visual Studio 2010中使用视图作为水晶报表数据源

您不需要创建视图来显示来自多个表的数据。在水晶报表中添加表,然后提供表之间的连接。这些连接为水晶报表提供单个结果集。

可以从结果中选择数据

我假设你正在使用SQLServer,为了创建一个视图,使用" create view "语句使用以下约定:

CREATE VIEW dbo.vStoreAccountNum
AS
SELECT AccountNumber
FROM Sales.Customer
WHERE CustomerType = 'S'

如果你对Crystal Reports完全陌生,我建议你在Visual Studio中使用Crystal之前,先玩一下附在Crystal Reports Xtreme.mdb上的样本数据库。

要在应用程序中使用CR,请遵循以下一步一步的教程:

步骤1:右键单击解决方案资源管理器并单击添加新项

步骤2:从对话框中添加水晶报表。

步骤3:选择单选按钮(使用报告向导)从Crystal Reports Gallery,然后选择一个标准专家,然后单击OK按钮。

第4步:这里我们必须添加数据库..选择Create New从可用的数据源窗口连接,然后单击OLEDB(ADO)

步骤5:选择一个新的连接,然后从list (Microsoft OLEDB提供程序)

步骤6:输入服务器名称,选择Database,单击综合安全,然后按下一步,然后单击完成按钮。

步骤7:现在,回到标准报表创建向导并选择表。

步骤8:选择所需字段to显示在水晶报表中的表

步骤9:从可用样式窗口选择样式(例如:标准)点击完成

步骤10:现在我们必须从添加新项目中添加一个WebForm并按添加。

第11步:这里,我们必须导入两个引用

CrystalDecisions.CrystalReports。引擎CrystalDecisions。共享

Step12:现在,从工具箱中添加一个水晶报表查看器

Step13:现在我们必须在defalut.aspx.cs

使用CrystalDecisions.CrystalReports.Engine

,
使用CrystalDecisions.Shared;
使用System.Data.SqlClient;

Step14:声明变量ReportDocument report = newReportDocument ();

步骤15:接下来,在页面Load Event

中编写以下代码

pt.Load(@"E: '实践' AppTestdetails ' crystalreports ' CrystalReport.rpt");crystalReportViewer1。ReportSource =报告;

crystalReportViewer1.RefreshReport ();

祝你好运!

您需要将CrystalReportViewer控件添加到您想要显示Crystal Report的页面:

    <CR:CrystalReportViewer ID="CrystalReportViewer1" 
                            runat="server" AutoDataBind="true" />

然后在你的代码中:

    ReportDocument myReportDocument = new ReportDocument();
    myReportDocument.Load("TheNameOfYourCrystalReportFile.rpt");
    myReportDocument.SetDataSource(yourDataSet);
    CrystalReportViewer1.ReportSource = myReportDocument;

设置了ReportSource之后,它应该提示您输入参数。

查看这里的CrystalReportViewer和ReportDocument的参考。

将xsd文件加载到数据集中:

    DataSet yourDataSet = new DataSet();
    dataSet.ReadXmlSchema("DataSet1.xsd");