c# - 使用 Crystal Reports ReportDocument

标签 c# crystal-reports

我最近开始在 C# Windows 应用程序(窗体)中使用最新版本的 Crystal Reports 和 Visual Studio 2010 和 SharpDevelop。我已经从 SAP 下载了适用于 Visual Studio 2010 的最新 Crystal DLL,并手动创建了对以下内容的引用

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 没有向我显示对象的任何方法或属性,我收到以下编译器错误,这让我很困惑:

Invalid token '(' in class, struct, or interface member declaration

将上述语句引用为违规行...

任何人都可以阐明这一点吗?如果我查看 ReportDocument 类的元数据,确实包含三个 Load 方法,第一个方法采用一个字符串,它是 rpt 文件路径。这个问题出现在 Visual Studio 2010 和 SharpDevelop 中的事实至少是一致的,但对我来说仍然没有意义。

最佳答案

试试这个代码...它在 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# - 使用 Crystal Reports ReportDocument,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9285114/

相关文章:

c# - 使用 Crystal Reports for .net 时出错

c# - 可以在Thread.Sleep期间引发ThreadAbortException吗?

c# - NancyFx 将接口(interface)传递给模块构造函数导致错误

c# - 在 c# 中读取 excel 文件时, 'microsoft.ace.oledb.12.0' 提供程序未在本地计算机上注册

c# - 模拟只读索引器属性

crystal-reports - 检测 x86/x64 并安装正确的 .msi

c# - 如何使用 C# Asp.net 将 Crystal Report 直接打印到客户端机器

c# - 使用 AddMonth 方法的 LINQ to Entities

java - 在 Java 中将 Crystal 报表导出为 PDF

asp.net - Crystal Reports 未出现在 VS 2013 中