2016-06-09 2 views
1

Я создаю отчет в Microsoft SQL Server Report Builder 3.0, работающий в Microsoft SQL Server Reporting Services версии 11.0.2100.60.SSRS Report Builder Как разобрать JSON из поля Dataset?

Я хотел бы проанализировать значения JSON, хранящиеся в некоторых полях из моего DataSet. Ниже представлен предварительный просмотр моего отчета с указанием значений JSON.

enter image description here

Выражение я ожидал (хотя и не добавляется) будет что-то вроде ниже,

=Newtonsoft.Json.Linq.JArray.Parse(Fields!MyFieldName.Value).ToString() 

Поскольку мне нужно add custom or embedded code to my report быть вызвана из любого выражения, я должен add an Assembly Reference to a Report. Ссылка: Using Custom Assemblies with Reports

Итак, в свойствах моего отчета была добавлена ​​ссылка на сборку Json.net (Newtonsoft.Json.4.5.6), как описано ниже.

enter image description here

Путь к сборке является C:\Program Files (x86)\Microsoft ASP.NET\ASP.NET MVC 4\Packages\Newtonsoft.Json.4.5.6\lib\net40\Newtonsoft.Json.dll.

Я также попытался добавить сборку в C:\Program Files (x86)\Microsoft Visual Studio 11.0\Common7\IDE\PrivateAssemblies\, а также C:\Program Files\Microsoft SQL Server\MSRS10_50.SQL2008\Reporting Services\ReportServer\bin\ и изменить ссылку на путь, но безрезультатно.

Также упоминается, что the assembly has no dependency.

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

enter image description here

System.Web.Services.Protocols.SoapException: Error while loading code module: ‘Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed’. Details: Could not load file or assembly 'Newtonsoft.Json, Version=4.5.0.0, Culture=neutral, PublicKeyToken=30ad4fe6b2a6aeed' or one of its dependencies. The system cannot find the file specified. 
    at Microsoft.ReportingServices.Library.ReportingService2010Impl.CreateReportEditSession(String Report, String Parent, Byte[] Definition, String& EditSessionID, Warning[]& Warnings) 
    at Microsoft.ReportingServices.WebServer.ReportingService2010.CreateReportEditSession(String Report, String Parent, Byte[] Definition, String& EditSessionID, Warning[]& Warnings) 

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

Что я делаю неправильно? Или есть ли какой-либо рабочий пример для разбора JSON в отчете SSRS?

Любая помощь будет очень полезной.

ответ

0

Возможно, я могу упростить здесь, но это сборка ddl, расположенная на Клиенте, сервер отчетов или и то, и другое, как я нашел в прошлом, если у меня нет сборок на клиенте и сервере, я получаю нечетные сообщения об ошибках. Также после добавления ddl в каталог bin моя выглядит следующим образом (C: \ Program Files \ Microsoft SQL Server \ MSRS12.MSSQLSERVER \ Reporting Services \ ReportServer \ bin), служба сервера отчетов должна быть скопирована для сбора сборки

+1

Кто-нибудь решил эту проблему? Я столкнулся с подобной проблемой –

0

Ошибка указывает, что он может найти Version 4.5.0.0; изображение, которое вы указали для Version 4.5.6 Это не взаимозаменяемые, если явно не указано так.

Так у вас есть два варианта:

  1. удалить текущую ссылку на NewtonSoft.Json.длл; очистите свою папку (ы) от всех версий этой DLL и начните сначала.

  2. Указать assemblyBinding на уровне машины - machine.config. Вот как вы это делаете < assemblyBinding > Element for < runtime >. Сосредоточьтесь на первом примере. bindingRedirect - это то, что вы ищете.

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