2017-06-20 4 views
1

nullチェックが壊れていると考えて、これを複数回調整しようとしました。ヌルチェックフォームここで参照:NTO私の場合のために働くように見えなかったIIF Statement Null CheckSRSSフィルター付きスイッチでエラーが発生する

。とにかく、誰かがすばやく見て、彼らが間違いを見ることができるかどうかを見ることができればそれは素晴らしいでしょう。

=SWITCH(
Fields!lmItemStatus.Value, "Additional Repair Proposal Submitted - Pending Award", Year(DateAdd(DateInterval.Day, (Fields!lmFinalDelvTerms.Value + 60), Today)), 

Fields!lmItemStatus.Value, "Repair Award*", Year(DateAdd(DateInterval.Day, (Fields!lmADelvTerms.Value + Fields!lmFinalDelvTerms.Value + 90), Today)), 

Fields!lmItemStatus.Value, "Award Received - Pending Shipment For Assessment" & Fields!vendor.Value, "H" or "I", Year(DateAdd(DateInterval.Day, (Fields!lmADelvTerms.Value + Fields!lmFinalDelvTerms.Value + 90), Fields!lmiiiSAAwardDate.Value)), 

Fields!lmItemStatus.Value, "Award Received - Pending Shipment For Assessment" & Fields!vendor.Value, "A" or "B" or "C" or "D" or "E" or "F" or "G", Year(DateAdd(DateInterval.Day, (Fields!lmADelvTerms.Value + Fields!lmFinalDelvTerms.Value + 30), Fields!lmiiiSAAwardDate.Value)), 

Fields!lmItemStatus.Value, "Undergoing Assessment at Repair Facility", Year(DateAdd(DateInterval.Day, (Fields!lmArmaDelvTerms.Value + fields!lmFinalDelvTerms.Value + 30), Fields!lmVendorStartDateAssess.Value)), 

Fields!lmItemStatus.Value, "Assessment Complete - Pending Action", Year(DateAdd(DateInterval.Day, (Fields!lmFinalDelvTerms.Value + 60), Fields!lmAssessCompleteDate.Value)), 

Fields!lmItemStatus.Value, "Final Repair Awarded" and Not(IsNothing(Fields!EstDelivDate.Value)), Year(Fields!EstDelivDate.Value), 

Fields!lmItemStatus.Value, "Final Repair Awarded" and IsNothing(Fields!EstDelivDate.Value), Year(Fields!lmFinalDelvTerms.Value + 30), Today) 

私が得続けるエラーは変換エラーです。「ロム」から「ロング」のタイプは有効です。

+0

あなたが犯人を見つけるまで、私は今それを試してみましょう – JohnHC

+0

それを修正した後、それぞれのケースを取り出します。 – Nate

+0

基本的にそれらのどれも働いていないので、私が最初のものだけに進むと、変換文字列Dispsoedがスローされます。 DRMO to Type Booleanは無効です。文字列が存在する場合、年を解析する別の方法を見つける必要がありますか? – Nate

答えて

-1

私のコードの中に複数のエラーがありました。ライン内

Fields!lmItemStatus.Value = "Award Received - Pending Shipment For Assessment" & Fields!vendor.Value, "A" or "B" or "C" or "D" or "E" or "F" or "G", Year(DateAdd(DateInterval.Day, (Fields!lmADelvTerms.Value + Fields!lmFinalDelvTerms.Value + 30), Fields!lmiiiSAAwardDate.Value)), 

スイッチの "or"または "and" insideを実際に使用できないことはわかりませんでした。私はこれを各文字列の別のスイッチに分割しなければならなかった:

Fields!lmItemStatus.Value = "Award Received - Pending Shipment For Assessment" & Fields!vendor.Value = "A", Year(DateAdd(DateInterval.Day, (Fields!lmADelvTerms.Value + Fields!lmFinalDelvTerms.Value + 30), Fields!lmiiiSAAwardDate.Value)), 
Fields!lmItemStatus.Value = "Award Received - Pending Shipment For Assessment" & Fields!vendor.Value = "B", Year(DateAdd(DateInterval.Day, (Fields!lmADelvTerms.Value + Fields!lmFinalDelvTerms.Value + 30), Fields!lmiiiSAAwardDate.Value)), 

また、私は日付を解析しようとしていました。私はそれをする必要はありませんでした。

+0

スイッチの誤った使い方については、StevenWhiteの提案を参照してください。また、OR、AND式も条件部のスイッチで使用できます。例:https://social.msdn.microsoft.com/Forums/sqlserver/en-US/8691c7fd-1526-426d-95fc-f9ecfc3d26cf/ssrs- case-statement?forum = sqlreportingservices – niktrs

+0

ええ、それで私は自分の答えを入れているのです。私はそれを理解して、再投稿しました。正解を投稿することに否定的な理由は何ですか?スティーブンスの答えは私の質問に部分的にしか答えなかったので、私は彼を代理しませんでした。 – Nate

+0

私はダウンボートしませんでしたが、あなたの答えは間違っていて、他の人を混乱させる可能性があります。 (Fields!lmItemStatus.Value = "受賞 - 審査のための未決発送" AND(Fields!vendor.Value = "A" ORフィールド!vendor.Value = "B")、...カッコを使用して条件評価の順序を制御する。 – niktrs

2

構文が間違っています。 Switch関数は引数のペアを取ります。これらは、trueまたはfalseに評価される式である必要があり、2番目が真であれば結果になります。だから、このようになります:

=Switch(Fields!lmItemStatus.Value = "Additional Repair Proposal Submitted - Pending Award" 
    , Year(DateAdd(DateInterval.Day, (Fields!lmFinalDelvTerms.Value + 60), Today)) 
    , ...) 
+0

Uhhh ...あなたの例と私の違いを確認できませんか?コンマを移動したようです。。次の下の行と他には何の上に – Nate

+0

お知らせ=記号の代わりにコンマの項目ステータス後のあなたは2つの引数ではなく、3 – StevenWhite

+0

ガッチャのペアを持っている必要があります - 私はそれが実現することなく、私の課題の一つであった気づい十分面白いですあなたの記事に=記号が付いていますが、それは完全に問題に答えるわけではありませんでしたが、それはIIFの声明と同じように構成されていたと思っていなかった部分的な問題でした。私のスイッチの。 – Nate

関連する問題