8

SSRS 2005 レポートを、列ヘッダーにスペースが含まれる CSV としてエクスポートする必要があります。

現在、CSV ヘッダー列のタイトルは textBox プロパティ名から派生し、スペースの代わりにアンダースコアを使用しています。別のより良いアプローチはありますか?

たとえば、現在私は持っています:

  • SSRS レポート ヘッダー : 発効日
  • テキストボックス名: 発効日
  • CSV ヘッダー: 発効日

私はを頂きたい:

  • SSRS レポート ヘッダー : 発効日
  • テキストボックス名: 発効日
  • CSV ヘッダー: 発効日
4

3 に答える 3

2

もう少し掘り下げて、次のスタックオーバーフローの投稿を見つけました。

于 2013-01-04T14:16:52.510 に答える
1

組み込みの CSV レンダリング拡張機能をカスタマイズして、テキスト ボックスの ToolTip プロパティを列ヘッダーとして使用することで、この問題を自分で解決しました。ToolTip プロパティではスペースやその他の句読点を使用できるため、列に好きな名前を付けることができます。これには、ヘッダーが表示されない可能性がある長いレポートで、どの列を見ているかを思い出させる、関連するツール ヒントを提供するという素晴らしい副作用もあります。

注: デザイナーでは、ヘッダーのテキスト ボックスではなく、データ行のテキスト ボックスのツールヒントを設定します。

すべての表示拡張機能がシール クラスとしてマークされているため、これは簡単には達成できません。これを実装するために、逆コンパイラを使用して、CSV レンダリングに関連するすべてのコードを自分のプロジェクトに抽出しました。次に、ヘッダー テキストを書き込む行を、テキスト ボックスの ToolTip プロパティから読み取るように変更しました。

CsvColumnHeaderHandler という名前のクラスで、OnTextBoxBegin メソッド、特に次の行を探しています。

this.m_visitor.WriteValue(textBox.DataElementName, this.m_excelMode);

これを次のように変更するだけです。

this.m_visitor.WriteValue(textBox.ToolTip, this.m_excelMode);

このカスタム表示拡張機能をレポート サーバーに配置すると、完全に機能します。

前述のように、コードをコピー (逆コンパイル) しただけなので、このための表示拡張機能の作成方法を知る必要はありません。ただし、カスタム表示拡張機能アセンブリを展開する方法を知っておく必要があります。デプロイの詳細については、https ://msdn.microsoft.com/en-us/library/ms154516.aspx を参照してください。

于 2015-01-27T16:35:56.053 に答える