2

私は次のコードを書きました、

CrystalDecisions.CrystalReports.Engine.ReportDocument report = new CrystalDecisions.CrystalReports.Engine.ReportDocument();
report.Load(@"C:\Users\XXX\Desktop\Backup1\Project\ReportsFolder\ReportSalesInvoice.rpt");

レポートは上記のコードで正常に機能しますが、パスを変更せずに複数のマシンにインストールできるように、相対パスを指定したいと思います。次のパスも試しました

string loc = AppDomain.CurrentDomain.BaseDirectory;
string loc2 = Application.StartupPath;
string loc3 = Application.UserAppDataPath;
string loc4 = Application.CommonAppDataPath;                

それらを次のように使用しました。

report.Load(loc2 + "\\ReportSalesInvoice.rpt");

しかし、ファイルにアクセスできません。助けてください。

4

2 に答える 2

3

Windowsアプリではテストしていませんが、これは私がMVC3で使用しているものです。ただし、相対パスはアプリケーションのルート内にある必要があると思います

    using CrystalDecisions.CrystalReports.Engine;
    using CrystalDecisions.Shared;

    using (var report = new ReportClass { FileName = Server.MapPath("/AppName/Reports/MyReport.rpt") })
    {
        report.Load();
    ...
于 2012-06-27T21:14:56.147 に答える