0

私は非常にユニークな質問があります&私はそれに無数のトピックを読んで、正解を見つけませんでした。 私を助けてください。SSRS値がしきい値よりも小さい場合の総計計算

  1. 私は私が、すべて満足の数を計算する非常にsafistied、満足でも不満または非常に不満や不満もないんだ行列を持っています。 カウント値が5未満であっても、以下のコードを使用して5のカウントを非表示にしています。

    =(スイッチ(カウント(フィールド!Q27_A_1.Value)< 5、 "*"、 カウント(フィールド!Q27_A_1.Value)> 5、カウント(フィールド!Q27_A_1.Value)))

と私は、カスタムコードのこれらの行をwritttenが、働いていない

But if it contains any "*" values 
then total will be "*" 
else display = Count(Fields!Q27_A_1.Value). 

を行の別のセルには、このセルの合計をカウントし、その値を表示する必要があります。 : 取得エラー:入力文字列が終わりに正しい形式

Public Function SafeConvert(ByVal num As String) As String 

Dim s as String 
IF IsNumeric(num) <5 
Then 
Return "*" 
Else : 
For i as integer = 0 to 4 
s += num 
Next 
Return s 
End IF 

End Function 

ではありませんでした、私はあなたのカスタムコードで

=Code.SafeConvert(ReportItems!Textbox4.Value) 

答えて

0

問題を使用して、そのセルにこの関数を呼んでいることはISNから余計そうですあなたがすでに持っていた表現以上の何かを達成しようとしていません。だから私はこれのためのカスタムコードを使用しないことをお勧めします。

ここでの主な問題は、他のセルの値の参照です。 SSRSにはこれが限定されています。グループ化された式を持つことはできません。グループ化された式を参照して再度集約することはできません。しかし、目的の最終結果を得るためには、それを回避する方法があります。

これを行う1つの方法は、SQLでサブクエリを使用して必要な追加値を取得することです。レポートでは、新しい列を参照して、フィルタリングされた値を数えます。可能であれば、このアプローチを使用することをお勧めします。

もう1つの方法は、データセットに計算フィールドを追加することです。データを行単位でフィルタリングする式を記述する必要があります。正確な要件によっては、これでは不十分な場合があります。ここでもテーブルのこの新しい列を参照します。

これは具体的な回答ではありませんが、正しい方向に指摘していただければと思います。

+0

このエラーメッセージ "エラーがあります:入力文字列が正しい形式ではありませんでした。エラーメッセージは、Forループ値から戻ったときにのみ発生します。型キャスティングが完全に行われたかどうかを確認できますか? –

+0

この関数にはいくつかの問題があります。 'IsNumeric'はtrueまたはfalseを返しますので、常に<5になります。' s + = num'をループしますが、同じ文字列を連結するようにnumを変更することはありません。あなたは値を反復しようとしているようですが、文字列を渡すだけで、配列ではありません。また、 "s"は決して開始されないので、nullも処理しません。しかし、再び、私は機能を修正しようとしないことをお勧めします、私はあなたの問題を解決するとは思わない。 – StevenWhite

+0

ありがとうstevenwhite このコメントのために。コードを更新してください。私はSSRSで新しく、多くのものについてはわからない –

関連する問題