2016-09-09 7 views
0

Служба C# Windows автоматически отправляет письма. Перед отправкой мне нужно преобразовать и приложить мой отчет в формате PDF. Я получаю исключение на линии ниже, когда я пытаюсь экспортировать PDF:Служба Windows не может открыть соединение

cr.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, savePath); 

Не удалось открыть соединение (ODBC)

Те же код функции должным образом в окнах форме заявки. Как я могу это решить?

public void GenerateReport(string rptpath, int no) 
{ 
    try 
    { 
    string savePath = ConfigurationManager.AppSettings["Savepath"]; 
    ReportDocument cr = new ReportDocument(); 

    cr.Load(rptpath); 

    TableLogOnInfo logInfo = new TableLogOnInfo(); 

    Tables crTables = cr.Database.Tables; 

    foreach (Table crTable in crTables) 
    { 
     logInfo.ConnectionInfo.UserID = "sa"; 
     logInfo.ConnectionInfo.DatabaseName = "SunVue"; 
     logInfo.ConnectionInfo.ServerName = "SunVue"; 
     logInfo.ConnectionInfo.Password = "sa"; 
     logInfo.ConnectionInfo.IntegratedSecurity = false; 
     crTable.ApplyLogOnInfo(logInfo); 

     DateTime enddate = DateTime.Today; 
     DateTime startdate = enddate.AddDays(-7); 
     string reportFormula = string.Empty; 

     if (no == 201) 
     { 
     cr.SetParameterValue("DateRange",startdate.ToString("dd'/'MM'/'yyyy") 
           + " to " + enddate.ToString("dd'/'MM'/'yyyy")); 

     reportFormula = "{spilInvNum.OrderDate} in DateTime (" 
         + startdate.Year.ToString() + "," 
         + startdate.Month.ToString() + "," + 
         + startdate.Day.ToString() + ", 00, 00, 00) to DateTime (" 
         + enddate.Year.ToString() + "," 
         + enddate.Month.ToString() + "," 
         + enddate.Day.ToString() + ", 00, 00, 00)"; 

     //reportFormula = "{spilInvNum.OrderDate} in Date(" + startdate.Year.ToString() + "," + startdate.Month.ToString() + "," + startdate.Day.ToString() + ") " + " to DateTime (" + enddate.Year.ToString() + "," + enddate.Month.ToString() + "," + enddate.Day.ToString() + ") " + " and {spilInvNum.DocState} <> 6 and {spilInvNum.DocType} = 4 and {spilInvNum.AccountID} <> 2592"; 
     cr.RecordSelectionFormula = reportFormula; 
     } 
     cr.ExportToDisk(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat, savePath); 
     WriteToFile(savePath); 
    } 
    } 
} 
+1

проверить файл 'savePath'. –

ответ

0

Как вы установили свое соединение в OBDC.

  1. Вы пытались протестировать соединение при установке на ODBC?
  2. Как вы это сделали, чтобы использовать соединение, в мастере отчетов? используя OBDC? - При подключении к CR-мастеру вы должны быть пропущены, если у вас создано ложное соединение.
+0

, пожалуйста, ознакомьтесь с моим кодом выше –

+0

. Сначала проверьте свое соединение odbc –

Смежные вопросы