0

SSRS 2005 でレポート サーバーを開発しています。このレポートには、いくつかの条項契約があります。この句の 1 つだけが一定ではないため、表示される場合と表示されない場合があります。データセットのいずれかの列の値が null でない場合に表示されます。

すべての節の前に char と括弧を付ける必要があります。たとえば、最初の句の前に a ) 、 2 番目の句の前にb)、3 番目の句の前にc) ...を付ける必要があります。

問題は、その句を表示するかどうかは、表示される場合は a である必要があり、他の定数句がそれに続く必要があることです。ただし、変数句が表示されない場合、最初の定数句はa句でなければなりません。

私は次のことを考えました。私のデータセットのSQLコードで、句が表示されるかどうかを示す列をテストするときにケースを作成しました.nullの場合、句は表示されず、データセットの選択時に整数値96を返します. null でない場合、句が表示され、データセットの選択時に整数値 97 を返します。

この整数値をcharに変換したい。したがって、97 はaになります。

レポート サーバー要素の TextBox を使用してこの整数値を受け取っているので、このようなことをしたいと考えています。

=Convert.ToChar(First(Fields!FIRSTLETTER.Value, "DataSetAditionalInformation"))

C# でConvert.ToChar(value)を使用していますが、Report Server で使用する同等のコマンドを知りたいです。

レポートの最初の定数句で、次のことを行います。

=Convert.ToChar(First(Fields!FIRSTLETTER.Value + 1, "DataSetAditionalInformation"))

そして、定数句ごとに、プラス信号の後の数字を 1 ずつ増やします。

したがって、変数句が表示される場合、FIRSTLETTER は 97 になり、2 番目の句は 98 になり、これらの数値を変換すると文字aおよびbになります。変数句が表示されない場合、FIRSTLETTER は 96 になり、最初の定数句は 97 になり、変換後は次ようになります。

これが可能かどうかさえわからないので、この問題を解決するためのアイデアをいただければ幸いです。

前もって感謝します。

アップデート

契約条項がどのように機能するかの例:

私はこれを選択しています:

SELECT CASE WHEN ADDITIONAL_CLAUSE IS NULL THEN  96 ELSE 97 END AS FIRST_LETTER,
ADDITIONAL_CLAUSE
FROM TBLADDITIONALDATA
WHERE (NUMBER_CONTRACT = @NUMBER_CONTRACT)

select が 96 を返す場合 (これは、追加の句がないことを意味します)、句は次のようになります。

a) 毎月の熟考の量は、ミーティンググループ実現のそれぞれの月のグループのクレジットの処分に応じて定義されます。

b) プロットの総量は、オブジェクトの価格の変動に応じて計算されるため、定数ではありません。

select が 97 を返す場合 (これは、追加の句があることを意味します)、句は次のようになります。

a)この句のテキストは定数ではなく、列 ADDITIONAL_CLAUSE に格納されている値に依存します

b) 毎月の熟考の量は、ミーティンググループ実現のそれぞれの月のグループのクレジットの処分に応じて定義されます。

c) プロットの総量は、オブジェクトの価格の変動に応じて計算されるため、定数ではありません。

他にも多くの定数句がありますが、それらは例示する必要はないと思います。

そのため、句の前にある文字を一定にしないようにする必要があるため、すべての文字がテキスト ボックスになります。

追加句のテキスト ボックスは、ADDITIONAL_CLAUSE が null でない場合にのみ表示されます。これは、テキスト ボックスの Visibility Expression で既に行っています。そして、このテキストボックスは FIRST_LETTER の値を受け取ります。

ただし、すべての定数句の他のテキストボックスは、FIRST_LETTER の値に最初の定数句に 1 を加えた値、2 番目の定数句に 2 を加えた値、3 番目の定数句に 3 を加えた値などを受け取ります。しかし、FIRST_LETTER の値は整数なので、char に変換する必要があります。

再度、感謝します。

4

0 に答える 0