C# 使用Crystal Reports ReportDocument

C# 使用Crystal Reports ReportDocument,c#,crystal-reports,C#,Crystal Reports,我最近开始在c#windows应用程序(表单)中使用Visual Studio 2010和SharpDevelop的最新版本Crystal Reports。我从SAP下载了最新的Crystal DLL for Visual Studio 2010,并手动创建了对以下内容的引用 using CrystalDecisions.CrystalReports; using CrystalDecisions.CrystalReports.Engine; using CrystalDecisions.Rep

我最近开始在c#windows应用程序(表单)中使用Visual Studio 2010和SharpDevelop的最新版本Crystal Reports。我从SAP下载了最新的Crystal DLL for Visual Studio 2010,并手动创建了对以下内容的引用

using CrystalDecisions.CrystalReports;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.ReportSource;
然后,我创建一个ReportDocument,以便打开rpt文件:

ReportDocument rptDoc = new ReportDocument();
这一切都很好。当我尝试使用rtpDoc对象做任何事情时,问题就出现了

rptDoc.Load(@"c:\DialLeadsByDistributor.rpt");
这就好像编译器没有意识到它是一个类对象,尽管当我将鼠标移到变量上时,它会正确地将其报告为
CrystalDecisions.CrystalReports.Engine.ReportDocument
,但intellisense不仅没有向我显示对象的任何方法或属性,我遇到了以下编译器错误,这让我很困惑:

类、结构或接口成员声明中的标记“(”无效

其中引用了上述语句作为冒犯的一行


有人能解释一下吗?如果我看一下ReportDocument类的元数据,它确实包含三个加载方法,第一个加载方法使用一个字符串,即rpt文件路径。Visual Studio 2010和SharpDevelop中都出现了这个问题,这一点至少是一致的,但对我来说仍然没有意义。

尝试摆脱它@sign。我目前正在围绕这个想法构建一个程序,我没有包括这个符号,也没有问题。

试试这段代码……它在VS2010和sharpdevelop4中都能工作:

using System;
using System.Drawing;
using System.Windows.Forms;
using CrystalDecisions.CrystalReports;
using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.ReportSource;
using CrystalDecisions.Windows.Forms;

namespace myapp
{

public partial class tstfrm1 : Form
{
    public tstfrm1()
    {

        InitializeComponent();

        ReportDocument rptDoc = new ReportDocument();
        rptDoc.Load(@"C:\CrystalReport1.rpt");
        /*If you have a datasource, link it like below*/
        //rptDoc.SetDataSource(dataset.Tables["tripsheet"]);
        CrystalReportViewer crystalReportViewer1 = new CrystalReportViewer();
        crystalReportViewer1.ReportSource = rptDoc;
        crystalReportViewer1.Refresh(); 
        this.Controls.Add(crystalReportViewer1);
        crystalReportViewer1.Dock = DockStyle.Fill;
    }
}

}

将字符串作为文本需要@符号。在c中,\是转义字符。某个地方出现语法错误?发布更多代码…您将rptDoc.Load()放在哪里了?