У меня есть отчет служб отчетов SQL Server, в котором есть таблица с множеством полей, а затем текстовое поле, в котором я хочу отобразить общий вес. Теперь общий вес определяется огромным выражением:
=Sum(Round(Code.ConvertWgt(Switch(Parameters!OrderLength.Value =
"T",Fields!TotalTheorWeight.Value
,Parameters!OrderLength.Value = "C",Fields!TotalCutWeight.Value
,Parameters!OrderLength.Value = "P",Fields!TotalPayWeight.Value
,Parameters!OrderLength.Value =
"OD",Switch(Fields!Calculate_Weight_Using_ID.Value =
"T",Fields!TotalTheorWeight.Value
,Fields!Calculate_Weight_Using_ID.Value = "C",Fields!TotalCutWeight.Value
,Fields!Calculate_Weight_Using_ID.Value = "P",Fields!TotalPayWeight.Value
)
),Switch(Parameters!WeightUnit.Value = "orderdflt"
,Fields!Default_Weight.Value,True,Parameters!WeightUnit.Value))
,CInt(IIF(Parameters!WeightPrecision.Value="uomdefault",Fields!Weight_Precision.Value,Parameters!WeightPrecision.Value))))
Однако при предварительном просмотре отчета я вижу следующую ошибку:
Выражение «Значение» для текстового поля «TotalWeight» использует статистическое выражение без области действия. Область действия требуется для всех агрегатов, используемых за пределами области данных, если отчет не содержит ровно один набор данных.
Поэтому я попытался исправить это, изменив его на:
=Sum(IiF(Round(Code.ConvertWgt(Switch(Parameters!OrderLength.Value =
"T",Fields!TotalTheorWeight.Value
,Parameters!OrderLength.Value = "C",Fields!TotalCutWeight.Value
,Parameters!OrderLength.Value = "P",Fields!TotalPayWeight.Value
,Parameters!OrderLength.Value = "OD",Switch(Fields!Calculate_Weight_Using_ID.Value = "T",Fields!TotalTheorWeight.Value
,Fields!Calculate_Weight_Using_ID.Value = "C",Fields!TotalCutWeight.Value
,Fields!Calculate_Weight_Using_ID.Value = "P",Fields!TotalPayWeight.Value
)
),Switch(Parameters!WeightUnit.Value = "orderdflt"
,Fields!Default_Weight.Value,True,Parameters!WeightUnit.Value))
,CInt(IIF(Parameters!WeightPrecision.Value="uomdefault",Fields!Weight_Precision.Value,Parameters!WeightPrecision.Value)))), "Order")
, где Order является именем набора данных, который я хочу использовать. Но тогда я вижу эту ошибку:
Выражение Value для textrun ‘TotalWeight.Paragraphs [0] .TextRuns [0]’ содержит ошибку: [BC30516] Не удалось разрешить перегрузку, поскольку ни один доступный «IIf» не принимает это количество аргументов.
Как мне исправить это? Спасибо!