У меня есть следующий оператор в одном из моих полей табликса, и я просто получаю #error при рендеринге отчета. Я не уверен, в чем именно проблема, но если бы кто-нибудь мог указать мне в правильном направлении, это было бы полезно;

=IIF(Fields!inflowType.Value="1",
    Switch(
          Fields!inflowTaxTreatment.Value = "0","Amount is Pre-Tax",     
          Fields!inflowTaxTreatment.Value = "1","Amount is Post-Tax/Not Taxed") ,Nothing) 
Or 
IIF(Fields!inflowType.Value = "3",
    Switch(
         Fields!inflowTaxTreatment.Value = "0","Tax Deferred",
         Fields!inflowTaxTreatment.Value="1","Tax Free"),Nothing) 
Or 
IIF(Fields!inflowType.Value="0",
    Switch(
         Fields!inflowTaxTreatment.Value="0","0% Taxable",
         Fields!inflowTaxTreatment.Value="1","50% Taxable",
         Fields!inflowTaxTreatment.Value="2","85% Taxable"),Nothing)

В основном я не знал, могу ли я использовать вложенные операторы switch для достижения того же, я видел это как предложение для другого потока, который был принят, но он работает / не работает для меня.

1
Nick G 25 Фев 2016 в 17:07
Это не работает, потому что вы неправильно используете оператор ИЛИ. у вас есть IIF () OR IIF () OR IIF () оператор или работает только в выражении предиката внутри IIF, IIF(this OR this, do this, IIF(this or this, do this, do that))
 – 
alejandro zuleta
25 Фев 2016 в 17:34
Спасибо за предложение, это на самом деле то, что у меня было сначала, и я получаю сообщение об ошибке: ни одно выражение не принимает столько аргументов, поэтому я искал альтернативный метод
 – 
Nick G
25 Фев 2016 в 17:51

1 ответ

Лучший ответ

Пытаться

=IIF(Fields!inflowType.Value="1",
    Switch(
          Fields!inflowTaxTreatment.Value = "0","Amount is Pre-Tax",     
          Fields!inflowTaxTreatment.Value = "1","Amount is Post-Tax/Not Taxed") ,  
IIF(Fields!inflowType.Value = "3",
    Switch(
         Fields!inflowTaxTreatment.Value = "0","Tax Deferred",
         Fields!inflowTaxTreatment.Value="1","Tax Free")
,
IIF(Fields!inflowType.Value="0",
    Switch(
         Fields!inflowTaxTreatment.Value="0","0% Taxable",
         Fields!inflowTaxTreatment.Value="1","50% Taxable",
         Fields!inflowTaxTreatment.Value="2","85% Taxable"),Nothing)
))

Я не уверен, но я думаю, что это то, что вы пытаетесь получить, дайте мне знать, если это вам поможет.

1
alejandro zuleta 25 Фев 2016 в 17:47
Это сработало отлично, спасибо за вашу помощь! поэтому я в основном рассматривал каждый IIF как отдельный оператор, а не как один большой с вложенными в него iifs, я ценю вашу помощь! идеально
 – 
Nick G
25 Фев 2016 в 17:56
1
Добро пожаловать, если вы не ожидаете лучшего ответа, вы можете выбрать мой ответ как правильный, чтобы уведомить сообщество, что на ваш вопрос был дан правильный ответ. Как выбрать правильный ответ
 – 
alejandro zuleta
25 Фев 2016 в 18:08