Сгенерирована ошибка отчета SSRS, но не знаю почему — BC30311 значение ошибки типа не может быть преобразовано в строку

#sql-server #reporting-services

#sql-server #службы отчетов

Вопрос:

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

 =IIF(ISNOTHING(Fields!RN) AND Fields!TermType = "New", Fields!WrittenPremium.Value, 0)
  

Поля!Writenpremium.Значение — это ДЕНЕЖНЫЙ тип данных из SQL Server 2017, и ошибка показывает следующее:

 The Value expression for the textrun "WrittenPremium.Paragraphs[0].TextRuns[0]' contains an error: [BC30311] Value of type 'Microsoft.ReportingServices.ReportProcessing.ReportObjectModel.Field' cannot be converted to 'String'. 
  

Я не уверен, почему генерируется эта ошибка преобразования, и может использовать любую помощь / направление. Спасибо.

Ответ №1:

Вам нужно указать свойство value, а не только поле. Итак, простое изменение на….

 =IIF(ISNOTHING(Fields!RN.Value) AND Fields!TermType.Value = "New", Fields!WrittenPremium.Value, 0)
  

… должно работать.

Комментарии:

1. Алан, большое тебе спасибо. Я чувствую себя довольно глупо. Ценю, что вы нашли время, чтобы посмотреть на это.

2. 🙂 Я занимаюсь этим уже больше лет, чем мне хочется помнить, и я все еще время от времени совершаю эту ошибку.

3. Не могли бы вы отметить этот ответ как принятый, если он решил вашу проблему. Спасибо.