- PR -

dataGrid 横軸への展開方法

1
投稿者投稿内容
たくみ
常連さん
会議室デビュー日: 2003/03/05
投稿数: 20
投稿日時: 2003-04-22 14:46
いつもこのスレッドにはお世話になっております。

ASP.NETにての開発を行っているのですが、集計結果を
datagridを用いて表示する画面を作成する必要が出てきました。

検索条件と致しまして、期間(From〜To)の条件に該当する月間データ
を表示するだけなのですが、データを縦持ちで無く、横持ちで表現
する要望があり、列行を可変長とする必要があります。

プロパティビルダでの設定では無理なように思い、HTMLコードを
書く必要があると思うのですが、実際問題どこにどう書くべきか
全く手探り状態に陥ってしまいました。

過去のスレッドも検索してみたのですが、コードを書くとの事のみで
具体的な部分を発見するに当たりませんでした。

もし経験がある方がいらっしゃいましたら、ポイントもしくは
テクニック的なヒントでも構いませんので教えていただけたら
助かります。

よろしくお願いします。。。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-04-22 17:15
こんにちは。
引用:

たくみさんの書き込み (2003-04-22 14:46) より:

ASP.NETにての開発を行っているのですが、集計結果を
datagridを用いて表示する画面を作成する必要が出てきました。

データを縦持ちで無く、横持ちで表現
する要望があり、列行を可変長とする必要があります。


 DataGridは、バインドしたテーブルを表示します。したがって、DataTableを変更してやれば、HTMLはさわらなくてもかまいません。

 縦横入れ替えなので、DataAdapterで取ってきたテーブルを元に新しいテーブルを作ります。元のテーブルの行数分だけ列を作り、行のループ内で列のループを回しながら、新しいテーブルに行を追加し、列のデータを設定します。

 縦横を入れ替えたテーブルができたら、DataGridにバインドします。
たくみ
常連さん
会議室デビュー日: 2003/03/05
投稿数: 20
投稿日時: 2003-04-22 17:54
Jittaさん、お返事ありがとうございます。

引用:
--------------------------------------------------------------------------------

縦横入れ替えなので、DataAdapterで取ってきたテーブルを元に新しいテーブルを作ります。元のテーブルの行数分だけ列を作り、行のループ内で列のループを回しながら、新しいテーブルに行を追加し、列のデータを設定します。
--------------------------------------------------------------------------------

Jittaさんの書かれている事を見て、目からうろこな状態なんですが、もう少し質問
させてください。
と言うのは、そのdatagridには、ヘッダ行も存在してましてそのヘッダ行テキストも
編集しなければいけません。
私もこの書き込みを行った後、再度調べてみたところ、datagridにあるBoundColumn
を編集することにより実現出来そうな事をかいてあったのですが、ヘッダ行の編集は
これで直しても構わないのでしょうか??

なんだか沢山の情報の中で溺れている感じがして上手く表現出来ないのですが
データ部の部分はJittaさんのご指導ありました方法で行けそうな気がします。

Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-04-23 15:39
引用:

たくみさんの書き込み (2003-04-22 17:54) より:

と言うのは、そのdatagridには、ヘッダ行も存在してましてそのヘッダ行テキストも
編集しなければいけません。


 それは、たとえば、

支店名\月|04月|05月|・・・
−−−−−−−−−−−−−−−−−
支店1__|***|***|・・・
支店2__|***|***|・・・

とかなっていて、「04月」をユーザが「卯_月」に書き換える、ということでしょうか。
たくみ
常連さん
会議室デビュー日: 2003/03/05
投稿数: 20
投稿日時: 2003-04-23 20:33
今晩は、Jittaさん

いえいえ、説明不足でしたが検索対象期間をヘッダ部では表示したいと
考えています。

対象期間 2003/1 〜 2003/4 の場合

 ヘッダ
 2003/1 2003/2 2003/3 2003/4
 XXXXX XXXXX XXXXX XXXXX

となり、書きたかった事としましては、対象期間の値により、ヘッダの内容も
変わると言うことなのです。

通常のdatagridであればプロパティビルダ使用で、列メニューにあるヘッダーテキスト
の部分に表示内容を設定すると言うパターンでしか経験が無かったもので、可変行に
併せてヘッダテキストも修正してあげなければいけないものだと思ってました。

言葉足らずですみませんが、Jittaさんの指導頂いた横持ち様に再構築した
テーブルは作成出来たつもり^^ ですので、なんとかやってみようと思います。
 
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-04-24 10:18
引用:

たくみさんの書き込み (2003-04-23 20:33) より:

言葉足らずですみませんが、Jittaさんの指導頂いた横持ち様に再構築した
テーブルは作成出来たつもり^^ ですので、なんとかやってみようと思います。


その、テーブル再構築の時に、DataColumn.Captionを替えてやればいけると思います。
たくみ
常連さん
会議室デビュー日: 2003/03/05
投稿数: 20
投稿日時: 2003-04-25 12:38
お返事がおそくなりました

Jittaさんのヒントポイントで教えて頂いたdatatable、datasetを用いて
datagridのデータ構築をするテクニックの中で、クラスライブラリを
再度確認してみました。

私のミス( 怠慢 ^^; )ですが、それなりにサンプルコードがあったのと
やはりJittaさんの指摘でポイントを集中して調べる事が出来ましたので
助かりました。

DataColumn.Captionも気が付きませんでした。
ありがとうございます。

1

スキルアップ/キャリアアップ(JOB@IT)