Я создал приложение на 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;
}
}