Crystal Report возвращает «Неверное имя вложенного отчета».когда приложение C # создает отчет - PullRequest
0 голосов
/ 30 апреля 2019

Я создал приложение на C #, которое генерирует отчет Crystal Report.При тестировании на моей локальной машине все работает нормально.При развертывании приложения на сервере появляется сообщение об ошибке

"Ошибка в файле MyStatement 9272_6832_ {19C497DB-52A4-4A4F-B642-5B31AF3F710D} .rpt: Неверное имя вложенного отчета. System.Runtime.InteropServices.COMException (0x80000232): Ошибка в файле MyStatement 9272_6832_ {19C497DB-52A4-4A4F-B642-5B31AF3F710D} .rpt: Неверное имя подотчета. "

Это приложение должно генерировать операторы, которые, как предполагается, генерируютпакетной очереди и будет отправлять электронное письмо людям после создания отчетов.Он работает на моей локальной виртуальной машине, но не на удаленном сервере.MyStatement.rpt существует на удаленном сервере, а также в файлах подчиненных отчетов, которые ему принадлежат.Поэтому я не уверен, почему возникает «Неверное имя подотчета».

using CrystalDecisions.CrystalReports.Engine;
using CrystalDecisions.Shared;
private void generateCrystalReport(string filename, string selection, string reportName)
{
    string reportPath;
    string exportPath;
    reportPath = ConfigurationManager.AppSettings.Get("report_path");
    exportPath = ConfigurationManager.AppSettings.Get("export_path");

    ReportDocument rd = new ReportDocument();
    try
    {
        rd.Load(reportPath + reportName);

        ConnectionInfo crConnectionInfo = new ConnectionInfo();
        TableLogOnInfos crtableLogoninfos = new TableLogOnInfos();
        TableLogOnInfo crtableLogoninfo = new TableLogOnInfo();
        Tables CrTables = rd.Database.Tables;

        foreach (Table tbl in CrTables)
        {
            var tblLogInf = tbl.LogOnInfo;
            crConnectionInfo.ServerName = ConfigurationManager.AppSettings.Get("db_server");
            crConnectionInfo.DatabaseName = "";
            crConnectionInfo.UserID = ConfigurationManager.AppSettings.Get("cr_user");
            crConnectionInfo.Password = ConfigurationManager.AppSettings.Get("cr_pw");
            crtableLogoninfo.ConnectionInfo = crConnectionInfo;
            tbl.ApplyLogOnInfo(tblLogInf);
        }
        rd.RecordSelectionFormula = selection;

        ExportOptions CrExportOptions;
        DiskFileDestinationOptions CrDiskFileDestinationOptions = new DiskFileDestinationOptions();
        PdfRtfWordFormatOptions CrFormatTypeOptions = new PdfRtfWordFormatOptions();
        CrDiskFileDestinationOptions.DiskFileName = exportPath + filename;
        CrExportOptions = rd.ExportOptions;
        {
            CrExportOptions.ExportDestinationType = ExportDestinationType.DiskFile;
            CrExportOptions.ExportFormatType = ExportFormatType.PortableDocFormat;
            CrExportOptions.DestinationOptions = CrDiskFileDestinationOptions;
            CrExportOptions.FormatOptions = CrFormatTypeOptions;
        }
        rd.Export();
        rd.Close();
    }
    catch (Exception ex)
    {
        rd.Close();
        throw ex;
    }
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...