Ошибка при локальной обработке отчета недопустимое определение отчета

I have a report form "Form1ReportSale". On it's load event I want to generate RDLC report on the basis of an ID which comes from another form. When I put my program in debug mode, DataSet returns

I have a report form «Form1ReportSale». On it’s load event I want to generate RDLC report on the basis of an ID which comes from another form. When I put my program in debug mode, DataSet returns expected value but throws an error.

Please find an attachment Here is the error

My «Form1ReortSale» load event code is following:

public partial class Form1ReportSale : Form
{
    string CS;
    private string id;
    public string UserID
    {
        get { return id; }
        set { id = value; }
    }
    public Form1ReportSale()
    {
        InitializeComponent();
        CS = ConfigurationManager.ConnectionStrings["BikeDB"].ConnectionString;
    }

    private void Form1ReportSale_Load(object sender, EventArgs e)
    {
        this.WindowState = FormWindowState.Maximized;
        //DataSet1NewCustomerBike dsCustomers = GetData(id);
        reportViewer1.ProcessingMode = ProcessingMode.Local;
        reportViewer1.LocalReport.ReportPath = @"E:Working AreaDirectorate Of IT ProjectOwn PracticesBikeShowRoomBikeShowRoomReportsForm1ReportSale.cs";
        DataSet ds = new DataSet();
        ds = getDataByID(Convert.ToInt32(id));
        ReportDataSource datasource = new ReportDataSource("DataSet1Customer",ds.Tables[0]);
        this.reportViewer1.LocalReport.DataSources.Clear();
        reportViewer1.LocalReport.DataSources.Add(datasource);
        reportViewer1.LocalReport.Refresh();
        reportViewer1.RefreshReport();
    }

    private DataSet getDataByID(int ID)
    {
        DataSet ds = new DataSet();
        using (SqlConnection con = new SqlConnection(CS))
        {
            SqlCommand cmd = new SqlCommand("SELECT * FROM AddNewBike WHERE ID = '"+ID+"'", con);
            SqlDataAdapter ad = new SqlDataAdapter(cmd);
            con.Open();
            ad.Fill(ds);
        }
        return ds;
    }
}

Adarsh Ravi's user avatar

Adarsh Ravi

8931 gold badge16 silver badges38 bronze badges

asked Apr 26, 2017 at 6:38

Af'faq's user avatar

Check out the path that you have given:

reportViewer1.LocalReport.ReportPath = @"E:Working AreaDirectorate Of IT ProjectOwn PracticesBikeShowRoomBikeShowRoomReportsForm1ReportSale.cs";

Form1ReportSale report extension should be .rdlc instead of .cs … Copy the proper name which you have given to your report… or try this one

reportViewer1.LocalReport.ReportPath = "~/Reports/Form1ReportSale.rdlc";

answered Apr 26, 2017 at 6:46

Yahya Hussaini's user avatar

Yahya HussainiYahya Hussaini

881 gold badge1 silver badge12 bronze badges

3

I have a report form «Form1ReportSale». On it’s load event I want to generate RDLC report on the basis of an ID which comes from another form. When I put my program in debug mode, DataSet returns expected value but throws an error.

Please find an attachment Here is the error

My «Form1ReortSale» load event code is following:

public partial class Form1ReportSale : Form
{
    string CS;
    private string id;
    public string UserID
    {
        get { return id; }
        set { id = value; }
    }
    public Form1ReportSale()
    {
        InitializeComponent();
        CS = ConfigurationManager.ConnectionStrings["BikeDB"].ConnectionString;
    }

    private void Form1ReportSale_Load(object sender, EventArgs e)
    {
        this.WindowState = FormWindowState.Maximized;
        //DataSet1NewCustomerBike dsCustomers = GetData(id);
        reportViewer1.ProcessingMode = ProcessingMode.Local;
        reportViewer1.LocalReport.ReportPath = @"E:Working AreaDirectorate Of IT ProjectOwn PracticesBikeShowRoomBikeShowRoomReportsForm1ReportSale.cs";
        DataSet ds = new DataSet();
        ds = getDataByID(Convert.ToInt32(id));
        ReportDataSource datasource = new ReportDataSource("DataSet1Customer",ds.Tables[0]);
        this.reportViewer1.LocalReport.DataSources.Clear();
        reportViewer1.LocalReport.DataSources.Add(datasource);
        reportViewer1.LocalReport.Refresh();
        reportViewer1.RefreshReport();
    }

    private DataSet getDataByID(int ID)
    {
        DataSet ds = new DataSet();
        using (SqlConnection con = new SqlConnection(CS))
        {
            SqlCommand cmd = new SqlCommand("SELECT * FROM AddNewBike WHERE ID = '"+ID+"'", con);
            SqlDataAdapter ad = new SqlDataAdapter(cmd);
            con.Open();
            ad.Fill(ds);
        }
        return ds;
    }
}

Adarsh Ravi's user avatar

Adarsh Ravi

8931 gold badge16 silver badges38 bronze badges

asked Apr 26, 2017 at 6:38

Af'faq's user avatar

Check out the path that you have given:

reportViewer1.LocalReport.ReportPath = @"E:Working AreaDirectorate Of IT ProjectOwn PracticesBikeShowRoomBikeShowRoomReportsForm1ReportSale.cs";

Form1ReportSale report extension should be .rdlc instead of .cs … Copy the proper name which you have given to your report… or try this one

reportViewer1.LocalReport.ReportPath = "~/Reports/Form1ReportSale.rdlc";

answered Apr 26, 2017 at 6:46

Yahya Hussaini's user avatar

Yahya HussainiYahya Hussaini

881 gold badge1 silver badge12 bronze badges

3

как я могу решить приведенное ниже Сообщение об ошибке, которое я получаю, когда пытаюсь развернуть свой отчет на наш Reporting Server С помощью BIDS?

сообщение:

ошибка: определение отчета «/OrderAnalysis » является недопустимым.

Элемент Отчета:

 <Report xmlns:rd="http://schemas.microsoft.com/SQLServer/reporting/reportdesigner" xmlns:cl="http://schemas.microsoft.com/sqlserver/reporting/2010/01/componentdefinition" xmlns="http://schemas.microsoft.com/sqlserver/reporting/2010/01/reportdefinition">

10 ответов


Я только что получил это неясное сообщение при попытке развернуть отчет из BIDS.

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


Я нашел проблему в этом… из-за неправильной / неудачной ссылки.rdl к данным conns etc. Также выяснилось, что ставки не были довольны наличием пробелов в некоторых именах файлов проекта/отчета… поэтому любой, кто сталкивается с этой проблемой, убедитесь, что у вас нет пробелов в именовании и проверьте файлы rdl, соединения, все для неудачных/устаревших ссылок! Visual Studio кажется дерьмом при сохранении всех его ссылок в актуальном состоянии… не дай бог тебе что-нибудь переименовать!


Я просто изменил капитализацию одного символа в одном из параметров отчета и больше не мог развернуть. Изменение одного символа обратно в верхний регистр позволило мне повторно развернуть.
Замечательный.


У меня была такая же проблема во время разработки SSRS пользовательского отчета для MS CRM Dynamics 2011.

причина, потому что это произошло потому, что я использую некоторые Скрытых Параметров и для некоторых из них Я забыл дать значение по умолчанию.

Итак, из-за того, что у меня мало времени, чтобы закончить отчет, я забыл поставить значение по умолчанию для некоторых параметров, и я рисковал потерять больше времени, чтобы исправить это.

к счастью, я нашел его очень быстро, потому что ошибка показывает текстовое поле и абзац с первым неправильным параметром, но не показывает имя параметра:

«Я не могу опубликовать изображение ошибки, потому что этот сайт не позволяет мне»

вообще во время развития ССРС очень важно помнить:
— Поставить параметры отчета в правильную последовательность (указанные для первых Эс. параметры, унаследованные от основного отчета или параметров essentials for суб-наборы)
— Присвоить значение по умолчанию скрытию и внутренним параметрам.


очень загадочное сообщение для моей проблемы.

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


Это произошло для меня из-за изменения имен определенных полей набора данных в заявках, на которые ссылались параметры. Я забыл зайти в параметры и изменить значение по умолчанию (значение по умолчанию параметра не меняется автоматически на переименование полей набора данных. Вместо.


Я только что столкнулся с этой проблемой. Есть опция «обновить поля», которую я нашел полезной. Сначала я не нашел интуитивным, что нужно вводить значения, используемые для выполнения запроса, таким образом, чтобы обновить поля. Как только я понял это и обновил поля — все сработало. Наборы данных и вызываемый общий набор данных должны коррелировать.


определение отчета недопустимо или не поддерживается данной версией служб Reporting Services. Это может быть результатом публикации определения отчета более поздней версии служб Reporting Services или того, что определение отчета содержит неправильно сформированный XML-код или недопустимый XML-код на основе схемы определения отчета.

я получил эту ошибку, когда я использовал ReportSync для загрузки некоторых .файлы rdl для служб отчетов SQL Server. В моем случае проблема заключалась в том, что .rdl-файлы имели текстовое поле, содержащее такие символы, как ©, (прочерк), (тире) знаков и т. д. При загрузке .rdl файлы с помощью ReportSync, я должен был кодировать эти символы (&copy;, &mdash;, &ndash;, etc.) и используйте свойства-заполнители для установки типа разметки в HTML, чтобы избавиться от этой ошибки.

Я бы не получил эту ошибку, если бы я вручную загрузил каждый из них .файлы rdl один за другим с помощью служб SQL Server Reporting Services. Но у меня их много .rdl файлы и загрузка каждого из них по отдельности потребуют много времени, поэтому я использую ReportSync для массовой загрузки всех .RDL-файл.

Извините, если мой ответ не кажется актуальным, но я надеюсь, что это поможет кому-либо еще получить это сообщение об ошибке при работе с SSRS .RDL-файл.


Я получал эту ошибку и пробовал большинство предложений здесь. Наконец я произнес:»очистить » на проекте отчета и попробовал еще раз. Наконец-то сработало!!


Я получил эту ошибку в отчете, который я скопировал из другого проекта и изменил источник данных. Я решил это, открыв свойства моего набора данных, перейдя в раздел Параметры и буквально просто повторно выбрав все параметры в правом столбце, как будто я просто щелкнул раскрывающийся список и выбрал тот же столбец. Затем я нажал preview, и это сработало!


Вопрос:

У меня есть ReportViewer в моем проекте. Когда я создаю .exe этого файла в InstallShield в Vsual Studio 2012, я добавляю в Redistributables Microsoft ReportViewer 2010.

Когда я устанавливаю свое приложение в Windows 8 – каждый ReportViewer отображает его отчет правильно.

У меня проблема с Windows XP ReportViewer загружается правильно, но отображает эту ошибку вместо правильного отчета:

Произошла ошибка при обработке локального отчета. Определение отчет “недействителен. Неожиданная ошибка, возникшая в отчете Обработка.

Не удалось загрузить файл или сборку Microsoft.ReportViewer.ProcessingObjectMode. Версия = 11.0.0., Культура = нейтральная, PublicKeyToken = 89845dc8080cc91 или одна из ее зависимостей. эта система не может найти указанный файл.

Я гарантирую вам, что в references I have added Microsoft.ReportViewer.Winfroms 11.0.0.0 и Copy Local = true.

Как я могу решить эту проблему?

Лучший ответ:

Узнал, что эта ошибка означает, что вам не хватает Microsoft.ReportViewer.PorcessingObjectMode.dll version 11.0.0.0. Существует одно решение:

На вашем компьютере Windows 8 выполните следующие действия:

  • Откройте команду командной строки dos (нажмите START + R, затем введите cmd и нажмите ENTER)

  • Введите cd .., пока вы не включите C: > Введите Cd windowsassemblygac_msilMicrosoft.ReportViewer.pro* и нажмите enter

  • Просто введите cd 11*

  • Затем введите copy * c:

  • .dll будет скопирован в ваш каталог C.

  • Этот файл просто скопируйте в Program Files на Windows XP machine в папку, где установлено ваше приложение.

Надеюсь, что это поможет другим, поскольку я долгое время рассматривал эту проблему.

Ответ №1

Я подтвердил ответ, помеченный как ответ, потому что я был, infact, missing.dlls, но я не исправил его так, как предложил @Marek. Я использую VS2013, и установка пакета Microsoft.Reporting nuget устраняет проблему. Я бы предложил любому, у кого эта проблема, попробовать это. Таким образом, вы автоматически получаете все зависимости.

enter image description here

Ответ №2

Марек ответ велик и помог мне, я просто хотел добавить дополнительный файл, который мне нужен. В дополнение к

Microsoft.ReportViewer.ProcessingObjectModel.dll

Мне также понадобилось

Microsoft.SqlServer.Types.dll

(Я запускаю это с сервера, на котором есть SQLServer, но не для служб Reporting Services, поэтому, возможно, почему второй файл отсутствовал.)

Как указывал Марек, вам нужно скопировать файл с помощью командной строки, потому что библиотеки DLL в GAC_MSIL скрыты из Проводника Windows, поэтому вы не увидите их, если их искать с помощью проводника.
Я был в тупике, потому что я создаю PDF файл с ежедневной задачей, поэтому все, что я видел в моем файле журнала, было загадочной ошибкой "An error occurred during local report processing." Я никогда не видел FaceViewer, что, по крайней мере, говорит вам пропавший файл.

Чтобы устранить эту проблему, я создал тестовую программу quickie и отобразил ReportViewer, что сделало более понятным, какие DLL мне нужны:
enter image description here

Ответ №3

Для начала

Это необходимо для установки пакетов nuget “Microsoft.Report.Viewer”, “ReportViewer.WebForms”, “Microsoft.ReportViewer.WinForms”, а также “Microsoft.SqlServer.Types”.

https://www.nuget.org/packages/ReportViewer.WebForms/

https://www.nuget.org/packages/Microsoft.ReportViewer.WinForms/

https://www.nuget.org/packages/Microsoft.Report.Viewer/

https://www.nuget.org/packages/Microsoft.SqlServer.Types/

Затем следует проверить web.config на наличие каких-либо тегов.

<system.web>
<compilation debug="true" targetFramework="4.5">
<buildProviders>
<add extension=".rdlc" type="Microsoft.Reporting.RdlBuildProvider, Microsoft.ReportViewer.WebForms, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91" />
</buildProviders>
<assemblies>
<add assembly="Microsoft.ReportViewer.Common, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91" />
<add assembly="Microsoft.ReportViewer.WebForms, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91" />
</assemblies>
</compilation>
<add path="Reserved.ReportViewerWebControl.axd" verb="*" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91" validate="false" />
    <assemblyBinding>
<dependentAssembly>
<assemblyIdentity name="Microsoft.SqlServer.Types" publicKeyToken="89845dcd8080cc91" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-14.0.0.0" newVersion="14.0.0.0" />
</dependentAssembly>
</assemblyBinding>
<system.webServer>
<handlers>
<add name="ReportViewerWebControlHandler" verb="*" path="Reserved.ReportViewerWebControl.axd" preCondition="integratedMode" type="Microsoft.Reporting.WebForms.HttpHandler, Microsoft.ReportViewer.WebForms, Version=14.0.0.0, Culture=neutral, PublicKeyToken=89845DCD8080CC91" />
</handlers>
<modules runAllManagedModulesForAllRequests="true" />
</system.webServer>

Недопустимое определение отчета.

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

ответ дан 02 мая ’13, 00:05

Я столкнулся с почти аналогичной проблемой, но в другой версии Visual Studio (2012), и я обнаружил, что проблема связана с версией Microsoft.ReportViewer.WebForms.dll или winforms. Возможно, вы все еще ссылаетесь на старую версию, связанную с вашей текущей версией Visual Studio, поэтому проверьте версию dll и, если это так, удалите ее и добавьте последнюю версию.

ответ дан 05 мар ’15, в 11:03

Я столкнулся с этой же проблемой, и решение для меня состояло в том, чтобы отредактировать файл:

C:Program Files (x86)MSBuildMicrosoftVisualStudiov10.0
    ReportingServicesMicrosoft.ReportingServices.targets

И измените строку № 2, в которой ранее говорилось следующее:

<UsingTask TaskName="Microsoft.Reporting.RdlCompile" 
AssemblyName="Microsoft.ReportViewer.Common, Version=9.0.0.0, 
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>

К этому:

<UsingTask TaskName="Microsoft.Reporting.RdlCompile" 
AssemblyName="Microsoft.ReportViewer.WebForms, Version=10.0.0.0, 
Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a"/>

Как только это было сделано, моя программа снова начала компилироваться.

Создан 08 июля ’13, 18:07

У меня была точно такая же проблема. Для меня решением было исключить отчет из проекта и добавить его снова. После этого он успешно скомпилировался.

ответ дан 21 авг.

Я не совсем понимаю, почему за ответ @user2702793 проголосовали против, потому что это предложение только что спасло мою карьеру:

Рассматривать

  1. Создание пустого отчета SSRS 2008 и копирование всего содержимого из отчета SSRS 2005 в новый.
  2. скопируйте имя отчета SSRS 2005, если вы хотите сохранить имя отчета без изменений
  3. удалите этот отчет (SSRS 2005, из которого вы только что скопировали содержимое в новый отчет)
  4. переименуйте новый SSRS 2008 (с удаленным содержимым отчета SSRS 2005) и вставьте имя отчета.

У меня была очень похожая ситуация, упомянутая выше, за исключением того, что я хотел сохранить старые версии SSRS вместо их обновления. Что в основном заставило меня сделать копию старой версии, скопировать содержимое из случайно обновленного отчета и вставить его в скопированный отчет, а также скопировать имя обновленного отчета, удалить его и переименовать мой скопированный отчет, чтобы сохранить то же имя только что удаленного отчета.

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

Создан 10 июн.

Решение, которое сработало для меня, состояло в том, чтобы запустить инструмент очистки .NET, сначала я попробовал инструмент восстановления .NET framework, и он не сработал. Я прочитал предложения здесь

Создан 23 сен.

В свойствах ReportViewer в веб-форме разверните LocalReport/Path, в поле укажите правильный путь к отчету.

  • Это работает для меня …

Создан 25 фев.

Возможно проблема с конвертацией. Воссоздайте новый отчет за 2008 год. И я предлагаю использовать VS2010. У меня такая же проблема при редактировании отчета с VS2012.

ответ дан 12 дек ’13, 16:12

Не тот ответ, который вы ищете? Просмотрите другие вопросы с метками

c#
report
rdlc

or задайте свой вопрос.

Понравилась статья? Поделить с друзьями:
  • Ошибка при копировании файлов возможно диск temp переполнен корел
  • Ошибка при копировании файла или папки устройство недостижимо айфон
  • Ошибка при копировании файла или папки разрушительный сбой
  • Ошибка при копировании файла или папки присоединенное к системе устройство не работает андроид
  • Ошибка при копировании файла или папки недостаточно места на диске для завершения операции