2017-10-26 6 views
0

ためのSSRSの最初のLookupSetの結果の値でない場合はnullを取得し、私は次の式を使用するMicrosoft Dynamicsの365バージョン1612(8.2.2.113)のレポートを書いている:ダイナミック365

=IIF(LookupSet("Test", Fields!new_product_name.Value, Fields!new_product_code.Value, "Test_DataSet").Length = 0, 
    "", 
    LookupSet("Test", Fields!new_product_name.Value, Fields!new_product_code.Value, "Test_DataSet")(0) 
) 

名前が "Test"の最初の製品のコードを返し、一致がなければ空白に戻すことです。

しかし、SSRSのIIFは短絡しないので、一致がない場合でも、LookupSetから最初の(index = 0)要素を取得してからエラーをスローします。

私は何をしようとしているのですか?

答えて

1

最初の結果が必要な場合は、Lookupを使用してください。あなたはそれを試しましたか?

Lookup結果がある場合は最初の結果を返し、結果がない場合はNothingを返します。

+0

ありがとう、それは私の問題を修正しました。しかし、最初の結果がもっと必要な場合は、2つ以上の結果がある場合は1番目と2番目のコードを表示し、1つまたは2つの結果がない場合はNothingを表示するとします。 – tsukumogami

+0

そのような状況では、可能であれば、データセットを変更する方がよいでしょう。しかし、それが不可能であれば、 'Join'と' Split'の組み合わせを使うことができます。おそらく正規表現のロジックと一緒に使うことができますので、 'LookupSet'の結果配列要素を直接参照する必要はありません。テストされていないので、それらの関数が 'Nothing'にどのように反応するのか正確にはわかりません。主な問題(および最初のエラーの理由)は、結果がない場合はエラーをスローする 'LookupSet'結果の最初の結果を直接参照していることです。 –