33

私たちが遭遇した Reporting Services の多くの癖の 1 つは、CheckBox コントロールまたはリモートで同様のものが完全に完全に欠如していることです。

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

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

  1. ウイングスを使う
  2. 画像を使用する
  3. 境界線のあるテキスト ボックスを使用し、空白/スペースまたは大文字の X を印刷します

3 つのアプローチはすべて、IIF表現の悪ふざけを必要とします。

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

ピクセルベースのラスターである画像は、テキストなどのベクター素材と一緒に印刷するとうまくいきません。注意して取り扱わないと、それらは伸びたり、ピクセル化したり、その他のプロらしくない動きをする傾向があります。

これらの方法は機能しますが (上記のように制限のあるものもあります)、特に洗練されたものはありません。

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

4

8 に答える 8

20

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

私が使用した別のオプションは、翼のアイデアに似ていますが、単純な古い「X」を使用しています。少なくとも私たちのフォームでは、誰かがボックス内にチェック マークの代わりに X を使用することは珍しくありません。さらに、印刷時に変な文字を気にする必要はありません。

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

于 2008-11-03T18:24:50.057 に答える
17

チェック ボックス (または投票ボックス) を表示するために使用したもの:
1- テキスト ボックスを作成します (チェック ボックスになります)
2- フォントを Arial Unicode MS に変更します
3- 式ウィンドウで:
ChrW(&H2611) を使用して塗りつぶします-空のチェックボックスのチェックボックス
ChrW(&H2610)

于 2010-03-31T22:26:15.510 に答える
12

既に提示されているさまざまな方法に加えて、SQL Server 2008 R2 の時点で、チェックボックスに似た機能に使用できる組み込みのコントロールがあります: Indicator !

使用方法の詳細については、https: //web.archive.org/web/20190916105459/http ://blog.hoegaerden.be/2012/08/04/displaying-checkboxes-in-an- をご覧ください。 ssrs-レポート/

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

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

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

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

フィールドの意味 (False が良いか悪いか) に応じて、0 と 100 を入れ替える必要がある場合があります。

于 2012-10-13T12:16:44.700 に答える
3

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

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

ACCESS 97はこの種のことを行うことができますが、SQLSERVER2012はできません。

于 2013-02-19T12:33:54.277 に答える
2

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

テキストボックスに境界線とオプションの X を付けるという NY のアイデアが気に入っています。これはシンプルで効果的です。

于 2009-06-01T14:15:26.550 に答える