BIDS で SSRS レポートを作成しています。エンドユーザーが承認ステータスに基づいてレポートをフィルタリングできるようにする必要があります。ただし、各行には 4 つの個別の承認列があります。これらを ApprovalA、ApprovalB、ApprovalC、および ApprovalD と呼びます。それぞれのステータスによって、その行の全体的なステータスが決まります。4 つのそれぞれは、承認済み、進行中、拒否済み、または N/A の 4 つの値のいずれかを持つことができます。私のアプローチは、4 つの列すべてが承認済みと N/A または拒否と N/A の組み合わせであるかどうか、または進行中がいずれかの列にあるかどうかに基づいて、派生列を作成することでした。次に、その派生列に基づいてフィルター処理します。ただし、レポートを実行するたびに、次のエラー メッセージが表示されます。
「[rsRuntimeErrorInExpression] フィールド 'Approval_Status' の値式にエラーが含まれています: 入力文字列の形式が正しくありませんでした。」
私の知る限り、私のクエリは機能するはずですが、かなり複雑で、まだ SSRS に慣れていません。どんなアドバイスも素晴らしいでしょう。派生列の私の式は次のとおりです。
=Switch((Fields!ApprovalA.Value OR Fields!ApprovalB.Value OR Fields!ApprovalC.Value OR Fields!ApprovalD.Value) = "Accepted" OR (Fields!ApprovalA.Value OR Fields!ApprovalB.Value OR Fields!ApprovalC.Value OR Fields!ApprovalD.Value) = "N/A", "Accepted", (Fields!ApprovalA.Value OR Fields!ApprovalB.Value OR Fields!ApprovalC.Value OR Fields!IsPFApproved.Value) = "Rejected" OR (Fields!ApprovalA.Value OR Fields!ApprovalB.Value OR Fields!ApprovalC.Value OR Fields!ApprovalD.Value) = "N/A", "Rejected", (Fields!ApprovalA.Value OR Fields!ApprovalB.Value OR Fields!ApprovalC.Value OR Fields!ApprovalD.Value) = "In Progress", "In Progress")