У меня есть отчет, в котором есть 6 параметров. Я бы хотел сделать эти параметры частью заголовка моего отчета. Мои параметры следующие:
@BMDataType1 Text
@BMDataComp1 Float
@BMDataType2 Text
@BMDataComp2 Float
@BMDataType3 Text
@BMDataComp3 Float
Всегда будут передаваться параметры @ BMDataType1 и @ BMDataComp1, остальные могут иметь значение NULL. Мне нужно, чтобы заголовок выглядел так: если переданы только @ BMDataType1 и @ BMdataComp1, тогда заголовок должен быть, например:
Бенчмарк1 100% контрольный компонент
До сих пор я кодировал это ниже:
=Parameters!BMDataType1.Value + " " + Parameters!BMDataComp1.Value.ToString + "%" + " Benchmark Constituents"
Однако, если заполнены @ BMDataType2 и @ BMDataComp2, мне нужно, чтобы заголовок выглядел так:
Контрольный показатель1 50% Контрольный показатель2 50% составляющие контрольного показателя
То же самое, если передано 3, то:
Контрольный показатель1 50% Контрольный показатель2 30% Контрольный показатель3 20% Составляющие контрольного показателя
Никогда не будет, скажем, Контрольного показателя 1 и Контрольного показателя 3. Он будет всегда только 1, или 1 и 2, или 1, 2 и 3.
Может ли кто-нибудь указать мне в правильном направлении, как написать инструкцию IIF для этой проверки, чтобы увидеть, являются ли параметры Benchmark2 и Benchmark3 NULL?
Спасибо
РЕДАКТИРОВАТЬ:
После некоторой работы над этим я придумал следующий код, но все еще получаю:
"Object reference not set to an instance of an object"
Мой код следующий:
=IIF(
IIF(IsNothing(Parameters!BMDataType1.Value),1,0)=0 AND IIF(IsNothing(Parameters!BMDataType2.Value),1,0)=1 AND IIF(IsNothing(Parameters!BMDataType3.Value),1,0)=1
, Parameters!BMDataType1.Value + " " + Parameters!BMDataComp1.Value.ToString + "%" + " Benchmark Constituents"
, IIF(
IIF(IsNothing(Parameters!BMDataType1.Value),1,0)=0 AND IIF(IsNothing(Parameters!BMDataType2.Value),1,0)=0 AND IIF(IsNothing(Parameters!BMDataType3.Value),1,0)=1
, Parameters!BMDataType1.Value + " " + Parameters!BMDataComp1.Value.ToString + "%" + " " + Parameters!BMDataType2.Value + " " + Parameters!BMDataComp2.Value.ToString + "%" + " Benchmark Constituents"
, IIF(
IIF(IsNothing(Parameters!BMDataType1.Value),1,0)=0 AND IIF(IsNothing(Parameters!BMDataType2.Value),1,0)=0 AND IIF(IsNothing(Parameters!BMDataType3.Value),1,0)=0
, Parameters!BMDataType1.Value + " " + Parameters!BMDataComp1.Value.ToString + "%" + " " + Parameters!BMDataType2.Value + " " + Parameters!BMDataComp2.Value.ToString + "%" + " " + Parameters!BMDataType3.Value + " " + Parameters!BMDataComp3.Value.ToString + "%" + " Benchmark Constituents"
, " ")))
Однако, если все 3 параметра не равны нулю, он не возвращает ошибки и заполняет заголовок так, как я бы хотел, чтобы он отображался. Как это может быть?
BMDataComp2
илиBMDataComp2
в этом контексте? - person Jonnus   schedule 25.11.2015Isnothing()
- person pedram   schedule 25.11.2015