используя Crystal Reports ReportDocument - PullRequest
8 голосов
/ 15 февраля 2012

Я недавно начал использовать последнюю версию Crystal Reports с Visual Studio 2010 и SharpDevelop в приложении c # windows (формы). Я загрузил последние версии Crystal DLL для Visual Studio 2010 из SAP и вручную создал ссылки на следующие

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, он содержит три метода Load, первый из которых принимает строку, которая является путем к файлу rpt. Тот факт, что эта проблема возникает как в Visual Studio 2010, так и в SharpDevelop, по крайней мере согласован, но все же не имеет смысла для меня.

Ответы [ 2 ]

1 голос
/ 22 июня 2015

попробуйте этот код ... он работает как в 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;
    }
}

}

0 голосов
/ 06 марта 2014

Попробуйте избавиться от знака @. В настоящее время я строю программу на основе этой же идеи, и я не включил этот знак, и проблем нет.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...