0

私は、動的なクロスタブと列を備えたピボットテーブルを作成しようとしていましたが、運が悪かったです。上部に動的クロスタブ、左側に動的列があり、このように機能する必要があります。

1 http://img689.imageshack.us/img689/1812/crosstabs.jpg

また、選択した列とクロスタブのみを表示する必要があります。たとえば、1つの列と1つのクロスタブのみが選択されている場合は、それらだけが表示されます。SQLピボットとグリッドを試しましたが、2つの列カテゴリを上に重ねた状態で正しくフォーマットできません。クリスタルレポートも試しましたが、選択されていないときにクロスタブを非表示にする方法はありません。Telerikレポートコントロールを試しましたが、ドロップダウンでクロスタブを動的に生成できません。これにアプローチする方法についてのアドバイスを探しています。また、誰かがこのようなものを作成したり、方法を考えている場合は、共有してください。前もって感謝します。

4

1 に答える 1

0

Telerikを使用したことがないので、次のアドバイスはCrystalにのみ適用されます。

Crystalでは、少なくとも2つの異なる方法でクロス集計を条件付きで非表示にできます。

  1. [フォーマット]ダイアログ(クロスタブエキスパートではありません)から-クロスタブを右クリックし、メニューから[クロスタブのフォーマット...]を選択し、[x-2フォーマットエディター]ダイアログの[共通]タブで[抑制]の横のボタンを押して、適切な式(のようなもの{?crosstab1s1}="n/a")。
  2. クロスタブを独自のサブセクションに配置し、サブセクションを条件付きで非表示にすることにより、関連するサブセクションの[レポートデザイナーのデザイン]タブでレポートレイアウト領域の左側にある灰色の領域を右クリックし、[セクションエキスパート]を選択します。 ..メニューから、x-2[セクションエキスパート]ダイアログの[共通]タブにある[抑制(ドリルダウンなし)]の横のボタンを押して、適切な式を入力します。

これらの2つのアプローチの後者を使用することをお勧めします。クロスタブ自体を抑制しても、表示されるはずの空白が残ります。

クロス集計をそれぞれ独自のサブレポートに配置し、条件付きでそれらを抑制することもできます。ただし、これにより、現時点では必要ないと思われる複雑さが増します。

他のいくつかのコメント:

  • Crystalのパラメーターは、ASPで実現できるパラメーターよりもはるかに柔軟性が低いため、可能であれば、ASPですべてのパラメーターを選択し、パラメーターをCrystalに渡します。
  • Crystalのnullの処理はやや扱いにくいため、パラメーターのnullとしての評価に依存するのではなく、クロス集計が不要であることを示す特定の値を渡します。
  • クロス集計パラメータは現在、クロス集計1とクロス集計2として配置されており、それぞれセクション1、2、3に含まれています。これが、合計で最大6つのクロス集計があるのか​​、それとも2つだけであるのかは明確ではありません。
    • 前者の場合、行のグループ化、列のグループ化、および要約されたフィールドをどのように指定するかが明確ではありません。
    • 後者の場合は、セクション1、2、および3の名前を、行のグループ化、列のグループ化、および要約フィールドに変更することをお勧めします(これがこれらの表現であると想定しているため)。
  • 現在、[グループの合計を表示]オプションと[パーセンテージを表示]オプションがあります。これらはクロス集計に適用されているようです。これらのオプションはCrystalで指定できますが、レポートデザイナー内で条件付きで指定することはできません。
    • Crystal APIにアクセスできる場合は、実行時にこれらのオプションをプログラムで設定できるはずです。
    • それ以外の場合、各クロス集計に両方のオプションを含める場合の唯一のオプションは、各クロス集計の4つのバージョンをレポートに追加することです。各バージョンは、選択されたオプションに基づいて条件付きで抑制されます。(代替手段がない限り、このアプローチはお勧めしません。)
  • Crystalは動的データ構造を処理できないため(つまり、レポートを設計するときにデータ構造を知っている必要があります)、次のような構造で、指定されたパラメーターに基づいてSQLストアドプロシージャで結果セットを生成することをお勧めします。

Dataset structure

crosstab1Row
crosstab1Column
crosstab1SumValue
crosstab2Row
crosstab2Column
crosstab2SumValue
reportColumn1
reportColumn2
reportColumn3
reportColumn4
reportColumn5
于 2012-02-27T10:10:51.287 に答える