2017-03-05 3 views
0

私はレポートビューアの表現に助けが必要です。 私は自分の価値のデータ型がわからないこの特定の状況におります。なぜなら、ユーザーは別の場所からデータ型を選択するからです。 しかし、値がDateTimeであるか、Doubleであるかを知る必要があります。 DateTimeの場合はLongDateFormat、倍長の場合は4小数点以下を記述したいと思います。 私はこの式を書いています。それは私のTablixの値ではなく#Errorという結果になります。 iif( IsDate(Fields(First(Fields!Value.Value,"DataSet1")).Value) ,DateValue(Fields(First(Fields!Value.Value,"DataSet1")).Value).ToLongDateString() ,Round(Fields(First(Fields!Value.Value,"DataSet1")).Value,4) ) 私は必要な情報がなくてもifを使うと、#Errorなしの結果が得られます。レポートビューアの式、値がDateTimeかdoubleかどうかを確認する方法は?

答えて

0

IIfを使用すると、両側(TruePartFalsePart)は常に評価されるため、日付を四捨五入したり、長い日付としてダブルを書式設定すると#Errorが発生することに注意してください。

Public Function strFormatValue(objValue As Object) As String 

    If IsDate(objValue) Then 
     strFormatValue = CDate(objValue).ToLongDateString 
    Else 
     strFormatValue = Format(Round(CDbl(objValue), 4), "f4").ToString 
    End If 

End Function 

そして、このような表現を使用してTablixからそれを呼び出す:

=Code.strFormatValue(Fields!Value1.Value) 
あなたは(右レポート> Report Properties > Code外デザインサーフェイスをクリック)し、 If/Then/ElseIIfを置き換えるカスタムコードを使用することができます

+0

ありがとう、私はあなたの助けなしにはできませんでした –

関連する問題