web-dev-qa-db-ja.com

SQL Server Reporting ServicesでCheckBoxを最適に表示するにはどうすればよいですか?

私たちが遭遇したReporting Servicesの多くの奇妙な点の1つは、CheckBoxコントロールまたは完全にリモートで類似したものの完全な完全な欠如です。

データベースから取得した情報に基づいて自動的に入力されるフォームが表示されます。いくつかのビットデータ型フィールドがあります。 「True」または「False」を印刷すると、自動入力されたフォームのように見えるため、ばかげているように見えるため、一連のチェックボックスとラベルをオンまたはオフにする必要があります。

SSRS 2005を実行していますが、SSRS 2008がCheckBoxコントロールを追加したことは知りません。仮にそうだったとしても、当面は代替手段が必要です。これまでに見つけた最高のものは次のとおりです。

  1. wingdingsを使用する
  2. 画像を使用
  3. ボーダー付きのテキストボックスを使用し、空白/スペースまたは大文字のXを印刷する

3つのアプローチはすべてIIF表現の変態を必要とします。

Wingdingsのアプローチは問題なく機能するように見え、何らかの理由で常に正しく印刷されなかった場合を除いて、最も美的に満足できる方法でした。さらに重要なことに、PDFエクスポートは、何らかの理由で、すべてのフォントを(一般に)Arialに変換したため、Windingsの文字の代わりにファンキーな文字が得られました。

ピクセルベースのラスターである画像は、テキストのようなサイドベクターのものに沿って印刷された場合、うまく機能しません。注意深く取り扱わない限り、彼らは伸びたり、ピクセル化したり、その他の専門外のように見える傾向があります。

これらの方法は機能しますが(上記のようにいくつかの制限があります)、特にエレガントな方法はありません。

明らかなものが欠けていますか?それほど明白ではありませんか? Microsoftの誰かが、そのような制御がSSRS 2000で提供されなかった、2バージョンと8年後はもちろんのこと、正当な理由がありますか?この問題が発生したのはこれが初めてではありません...

30
Sean Hanley

私は、ショップの他のユーザーとともに、画像を使用して、フィールド値(trueまたはfalse)に基づいて非表示属性を切り替えました。画像のスケールを100%を超えて拡大しようとしない限り、ぼやけやスケーリングの問題はありませんでした。

私が使用した別のオプションはwingdingsのアイデアに似ていますが、私は単純な古い "X"を使用します。少なくとも私たちのフォームでは、チェックマークの代わりにボックスでXを使用するのは珍しいことではないので、完全に許容できるように見えます。さらに、印刷するときに奇妙な文字について心配する必要はありません。

Microsoftにチェックボックスコントロールが含まれていない理由については、私は長い間同じことを自分自身で考えていたので、それに答えることはできません。

19
DCNYAM

チェックボックス(または投票箱)を表示するために使用したもの:
1-テキストボックスを作成します(それがチェックボックスになります)
2-フォントをArial Unicode MSに変更
3-式ウィンドウでの使用:
ChrW(&H2611):入力済みチェックボックス
空のチェックボックスの場合はChrW(&H2610)

12
Matthew

SQL Server 2008 R2では、既に提示されているさまざまなメソッドに加えて、チェックボックスのような機能に使用できる組み込みのコントロールがあります:Indicator

使用方法の詳細については、こちらをご覧ください: http://blog.hoegaerden.be/2012/08/04/displaying-checkboxes-in-an-ssrs-report/

タイプbitのフィールドを使用できるようにするには、まずintにキャストする必要があります。これは、データセットクエリで、または計算フィールドをデータセットに追加することで実行できます。

NULLを黄色にしたい場合は、そのように式を作成して、その要件も考慮する必要があります。

計算フィールドの可能な式は次のとおりです。

=Switch(
    IsNothing(Fields!YourBoolean.Value), 50,
    Fields!YourBoolean.Value = False, 0,
    Fields!YourBoolean.Value = True, 100)

フィールドの意味に応じて(False goodまたはbad)、ゼロと100を交換する必要がある場合があります。

9

このブログでアイデアを共有したいだけです。 SSRS:レポートにチェックボックスを表示する方法

  1. まずテキストボックスを作成します
  2. 次に、フォントファミリーをWingdingsに変更します。
  3. テキストボックスに式を挿入し、この式を記述します。

    =IIF(Fields!Active.Value,chr(254),"o")
    

    Fields!Active.Valueは、ブール値1または0を返す必要のあるクエリの任意のものです。

  4. 次に、[プレビュー]をクリックしてチェックボックスを表示します;)

上記で共有したブログでは、より多くのスタイルを選択できます。

これが私の出力の例です enter image description here

9
bot

「[X]」や「[]」などの文字列計算フィールドを使用することもできます。ボーダー付きのテキストボックスほどきれいではありませんが、値に特定のコントロールを配置する必要はなく、テーブルまたはマトリックスをこれで埋めることができます。

少なくともチェックボックスにはいくつかの解決策があります。私はまだ私のテキストの完全な正当化を探しています(実際、私はSSRSが知っている以外の解決策を探しています)。

ACCESS 97はこの種のことはできますが、SQL SERVER 2012はできません。

3
Marco Guignard

SSRSと128を超えるフォント文字の埋め込みにバグがあると思います(ANSIエンコーディングでやるべきこと)。基本的には1-128の細かいものを使用でき、残りは背の高い長方形のブロックとして表示されます。

私は境界線とオプションのXを備えたテキストボックスのNYのアイデアが好きです-これはシンプルで効果的に聞こえます。

2
AndyM

これを行う別の方法は、TextBoxの「プレースホルダープロパティ」に移動し、Html - Interpret HTML tag as stylesを確認することです

次に、Value-Expressionに、次のコード行をオンにしてチェックします。

="<font face=""Wingdings 2"" color=""green"">" & Chr(81) &"</font>" & "some other text"

または、未チェックのコードサンプル:

="<font face=""Wingdings 2"" color=""red"">" & Chr(163) &"</font>" & "some other text"

このようにして、チェックボックスとテキストを同じテキストボックスに入れることができます。

Palceholder properties

Later edit:

AzureでWingdings 2の表示に問題がある場合は、Wingdingsを使用してください。

どうやらそれは動作します。

="<font face=""Wingdings"" color=""green"">" & Chr(253) &"</font>" & "some other text"

または、未チェックのコードサンプル:

="<font face=""Wingdings"" color=""red"">" & Chr(168) &"</font>" & "some other text"
2
Dragos Durlut