Недавно я начал использовать последнюю версию Crystal Reports как с Visual Studio 2010, так и с SharpDevelop в приложении Windows C # (формах). Я загрузил последние версии 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 не показывает мне какие-либо методы или свойства объекта, я получаю следующую ошибку компилятора, которая меня озадачила:
Invalid token '(' in class, struct, or interface member Declaration
, в котором указанное выше утверждение упоминается как оскорбительная строка ...
Может ли кто-нибудь пролить свет на это? Если я посмотрю на метаданные для класса ReportDocument, они действительно содержат три метода Load, первый из которых принимает строку, - это путь к файлу rpt. Тот факт, что эта проблема возникает как в Visual Studio 2010, так и в SharpDevelop, по крайней мере согласован, но для меня все еще не имеет смысла.