簡體   English   中英

使用Crystal Reports ReportDocument

[英]using Crystal Reports ReportDocument

我最近開始在ac#windows應用程序(表單)中使用Visual Studio 2010和SharpDevelop的最新版本的Crystal Reports。 我從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 ,但智能感知不僅沒有向我顯示任何方法或屬性對象,我得到以下編譯器錯誤,讓我難過:

無效的標記'('在類,結構或接口成員聲明中

它將上述陳述稱為違規行......

任何人都可以對此有所了解嗎? 如果我查看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;
    }
}

}

試着擺脫@符號。 我目前正在圍繞同樣的想法建立一個程序,我沒有包含這個標志,沒有任何問題。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM