Подтвердить что ты не робот

Документ, обработанный механизмом JRC, не может быть открыт в стеке С++

Я создал отчет о кристалле в vs2010 с .net4.0. при публикации веб-сайта он выдает ошибку "Документ, обработанный механизмом JRC, не может быть открыт в стеке С++". Я опубликовал веб-сайт на сервере, и я пытаюсь получить к нему доступ от клиента, я сделал keet файл .rpt в app_code, но снова получил ту же ошибку. Поэтому я создал папку wwwroot, и в этой папке я сохранил папку asp_client и веб-сайта, и я дал физический путь к wwwroot. все работает отлично, кроме кристалла. Код файла .cs выглядит следующим образом:

    ReportDocument rptDoc = new ReportDocument();
    DataSetForCrystalReport ds = new DataSetForCrystalReport();
    DataSetForCrystalReport dsHeader = new DataSetForCrystalReport();
    DataTable dt = new DataTable();
    DataTable dtHeader = new DataTable();
    dt.TableName = "dtBill";
    string ReceiptNo = Request.QueryString["ReceiptNo"];
    dt = getAllOrders(ReceiptNo).Tables[0];
    dtHeader = TblcompanysettingsService.GetOrganizationDetails();
    ds.Tables[1].Merge(dt);
    ds.Tables[2].Merge(dtHeader);
    rptDoc.Load(Server.MapPath("crBill.rpt"));
    rptDoc.SetDataSource(ds);
    CrystalReportViewer1.ReportSource = rptDoc;

ошибка трассировки стека:

[COMException (0x80041811): Unsupported Operation. A document processed by the JRC engine cannot be opened in the C++ stack.]
   CrystalDecisions.ReportAppServer.ClientDoc.ReportClientDocumentClass.Open(Object& DocumentPath, Int32 Options) +0
   CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.Open(Object& DocumentPath, Int32 Options) +147
   CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened() +422

[CrystalReportsException: Load report failed.]
   CrystalDecisions.ReportAppServer.ReportClientDocumentWrapper.EnsureDocumentIsOpened() +549
   CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename, OpenReportMethod openMethod, Int16 parentJob) +1613
   CrystalDecisions.CrystalReports.Engine.ReportDocument.Load(String filename) +189
   GenerateBill.Page_Load(Object sender, EventArgs e) in e:\ShareFolder\Movie\wwwroot\Website\GenerateBill.aspx.cs:33
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +25
   System.Web.UI.Control.LoadRecursive() +71
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +3064
4b9b3361

Ответ 1

Проверьте свой путь к файлу .rpt! Описание ошибки не имеет ничего общего с реальной причиной. Он просто не может найти ваш .rpt файл!

В моем случае путь должен быть для файла .rpt, сидящего в подпапке Reports:

Server.MapPath("~/Reports/InvoiceRegular.rpt");

Работал для меня.

Ответ 2

эта работа для меня

  • Щелкните правой кнопкой мыши файл Rpt.
  • Выберите свойства
  • Изменено

    а. Построить действие как "Содержимое"

    б. Скопируйте в выходной каталог как "Не копировать"

    с. Пустой для пользовательского инструмента и пользовательского пространства имен инструментов

Ответ 3

Я не знаю, поможет ли это кому-то другому или нет, но у меня была эта проблема, и оказалось, что это такое простое решение для такого глупого движения. Я ошибся filename файла .rpt... в имени файла было пробел между двумя словами (чего я обычно не делал по этой причине), но когда я включил это имя в свой код, я оставил пространство вне. исправлено имя файла, проблема исчезла.

Ответ 4

Просто сделайте эти шаги

(1) Щелкните правой кнопкой мыши на файле ".rpt". Выберите " Свойства"

1.a) Построить действие как " Контент"

1.b) Скопируйте в выходной каталог как " Копировать всегда"

(2) Проверьте свой путь к файлу .rpt   Server.MapPath( "Ваш путь" );

например: Server.MapPath("~/Reports/MyReport.rpt");

Примечание: если обе страницы rpt и aspx с программой просмотра отчетов находятся в одной папке, тогда вам не нужно указывать полный путь, вы можете указать только имя_файла .rpt в Server.MapPath.

Ответ 5

Обнаружено решение, Сначала я использовал Visual Studio 2005 со своим собственным хрустальным отчетом, а затем я усовершенствовал VS2010 с отдельным отчетным кристаллом, который я загрузил из SAP. Я исследовал и нашел в SAP:

Поскольку каждая версия Crystal Reports имеет свою собственную специфическую среду выполнения, которая должна быть правильно развернута, крайне важно, чтобы развернутая среда выполнения была согласована с сборками Crystal Reports для Visual Studio.NET, указанными в вашем проекте.

так что я удалил простую версию и использовал только одну версию, и она сработала.:) спасибо ta.speot.is за вашу заботу. Это никогда не было проблемой кодирования.

Ответ 6

Я нашел еще один набор обстоятельств, при которых появляется эта довольно бесполезная ошибка.

Если вы F5 запускаете/отлаживаете свое веб-приложение в Visual Studio, но все же отчет открыт в Crystal Reports (2011), вы получите сообщение об ошибке.

Погодили мне орехи около часа сегодня!

Ответ 7

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

Ответ 8

скопируйте и вставьте папку (aspnet_client) из (C:\inetpub\wwwroot) в папку веб-сайта и убедитесь, что файл .rpt находится в той же папке

Ответ 9

Убедитесь, что путь к файлу верен, как указано в @serop. Также я заметил, что папка с отчетами не будет опубликована. Поэтому пришлось вручную публиковать папку отчета.

Ответ 10

Работай для меня: копируй .rpt файлы с локальной машины, перезаписывай .rpt файлы на хосте, тогда все будет хорошо.

Ответ 11

Пожалуйста, проверьте, присутствует ли ваш файл .rpt. Если вы не скопируете его из локальной папки в хостинг, он начнет работу.

Ответ 12

Просто скопируйте файл .rpt (шаблон отчета crystl) с локального компьютера в определенную папку сервера/компьютера, и я уверен, что вы можете запустить и решить проблему CrystalDecisions.Shared.CrystalReportsException: загрузка отчета не удалась.

Для меня это работало хорошо и без ошибок на стороне сервера. Мое приложение может хранить PDF файл для совместного использования пути в соответствии с кодом.