2011-06-07 15 views
0

SSRSプロジェクト2008 3.5のフレームワークでは、データセットからレコードが提供されていない場合でもすべての数値フィールドを返すようにしています。レコードがデータセットから返されていないがある場合は、次の式では動作します:レポーティングサービス - ヌルデータ参照アセンブリでも0値を取得する

= IIF(IsNothing(フィールズLocation.Value)、 "0"、フィールドLocation.Value!!)

しかしに次の呼び出し外部アセンブリおよびデータセットのレコードがない場合は、二重が動作しない返すメソッド:

= SSRSHelper.Helper.NEValue(!フィールズLocation.Value)

と呼ばれている次のC#の方法で:

public static double NEValue(object val) 
    { 
     if (val != null) 
     { 
      string valStr = val.ToString(); 
      double valDbl; 

      if (double.TryParse(valStr,out valDbl)) 
       return valDbl; 
     } 

      return 0.0; 
    } 

このメソッドは、何も明示的に渡されず、有効な値が渡されたときに機能します。

ご協力いただき誠にありがとうございます。

修正:インライン式も機能しません。それにかかわらず、レポートではデータセットが空のときに0の値を入力する必要があり、多くのレポートで参照できるように外部アセンブリでこれを行うことをお勧めします。

フランク

答えて

0

データセットにレコード(行)を返すされていない場合は、レポートに表示されている任意のデータ行を持っていません。上のコードを置いた場所によっては、呼び出されていない可能性もあります。詳細データ・グループは、データ・セット内のレコードと同じ回数だけ繰り返されます。

レコードが返されていないときに行を表示したい場合は、テーブルのヘッダーやフッターなどのデータグループの外に行を置いて、データセット内のレコード数。視認性を何かに設定してください=IIF(CountRows("Dataset1")=0,false,true)

またはあなたの説明に何か不足していますか?

+0

あなたは正しいと思います。私はそれを行います。私を捨てていたのは、レコードが返されなくてもCount関数がデータを返すということです。私はあなたの助けに感謝します。 –

関連する問題