gcogco10 Ответов: 1

Crystaldecisions.shared.crystalreportsexception: "ошибка загрузки отчета".


Привет Приятель

Я создаю отчет, используя CrystalDecisions, и он выбрасывает исключение для метода Load.

Что я уже пробовал:

&низкотемпературный;
pre lang="c#"><pre>
        [HttpPost]
        [ValidateAntiForgeryToken]
        public ActionResult AdvertReport(FormCollection fc)
        {
            DataSet ds = obIlReports.Generate_AdvertDetailsReport();
            ds.Tables[0].TableName = "DtTest";

            if(ds.Tables[0].Rows.Count > 0)
            {
                ReportClass rptH = new ReportClass();
                rptH.FileName = Server.MapPath("-/Reports/AdvertReport.rpt");
                rptH.Load();
                rptH.SetDataSource(ds.Tables[0]);
                Response.Buffer = false;
                Response.ClearContent();
                Response.ClearHeaders();


                Stream stream = rptH.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat);
                stream.Seek(0, SeekOrigin.Begin);
                return File(stream, "application/pdf", "AdvertReport.pdf");
            }
            return View();
        }
    }


public class ReportsMaster : IlReports
   {
       public DataSet Generate_AdvertDetailsReport()
       {
           using(SqlConnection con = new SqlConnection(ConfigurationManager.ConnectionStrings["eNtsaOnlineRegistrationDB"].ToString()))
           {
               con.Open();
               DataSet ds = new DataSet();

               // Handling Exception
               try
               {
                   SqlCommand cmd = new SqlCommand("GetAdvertReport", con);
                   cmd.CommandType = CommandType.StoredProcedure;
                   SqlDataAdapter da = new SqlDataAdapter();
                   da.SelectCommand = cmd;
                   da.Fill(ds);

                   if(ds.Tables.Count > 0)
                   {
                       return ds;
                   }
                   else
                   {
                       return ds = null;
                   }

               }
               catch(Exception )
               {
                   throw;
               }
               finally
               {
                   ds.Dispose();
               }
           }
       }
   }


<connectionStrings>
    <add name="eNtsaOnlineRegistrationDB" connectionString="Data Source=GcobaniM-L\SQLEXPRESS; DataBase=eNtsaOnlineRegistrationDB; Integrated Security=True" providerName="System.Data.SqlClient" />
  </connectionStrings>

Richard Deeming

Так во что же нам верить?

Как работать с crystaldecision в ASP.NET MVC для отчета в формате файла?[^]
"да я делал отладку более 10 раз ошибок нет"

Или:
"это выбрасывание исключения из метода загрузки"


Если это последнее, то вам нужно предоставить полную информацию об исключении.

Вы также должны удалить свою предыдущую - и теперь неточную - копию этого вопроса.

1 Ответов

Рейтинг:
1

phil.o

Длинный, длинный выстрел, но я думаю, что у вас есть дефис (-) где вам нужна Тильда (~):

rptH.FileName = Server.MapPath("~/Reports/AdvertReport.rpt");


gcogco10

Моя клавиатура не использует тот дефис, который я пробовал использовать несколько раз, его только - не ~ на VS 2019

phil.o

Если вы не хотите использовать Тильду, то попробуйте указать абсолютный полный путь к ресурсу.

gcogco10

Но Фил это не имеет никакого отношения к path, я проверяю другие вещи, такие как моя connectionString. Потому что сначала была проблема с тем, что прикрепленный не хотел загружаться. Вот моя соединительная строка. <соединительные нити>
&ЛТ;добавить имя="eNtsaOnlineRegistrationDB" свойства connectionString="источник данных=GcobaniM-л папку\sqlexpress; базы данных=eNtsaOnlineRegistrationDB; Комплексная безопасность=истина" имя_поставщика="системы.Данных.Sqlclient как"&ГТ;

phil.o

Ну, как я уже сказал, это рискованно. Вы не указали, какое исключение вы получаете, его сообщение или трассировку стека. Так что это просто дикая игра в угадайку.
Пожалуйста, отредактируйте свой вопрос и предоставьте информацию об этом исключении.