- PR -

DataGrid(画面)上のデータ取得方法

1
投稿者投稿内容
NEKO
常連さん
会議室デビュー日: 2004/08/27
投稿数: 21
投稿日時: 2004-09-01 14:54
お世話になります。
ご存知の方がいらしゃいましたら、教えてください。

画面上のグリッドに、表示しているデータを
表示順に取り出す方法がよくわかりません。

@グリッド上に、データを表示

印刷バッチ   伝票枚数   伝票種別
------------------------------------------
 20040831_001 100      佐川急便
 20040831_002 2       佐川急便
 20040901_001 2       宅急便

A画面上(グリッドをクリック)で、ソート

印刷バッチ   伝票枚数   伝票種別
------------------------------------------
 20040901_001 2       宅急便
 20040831_002 2       佐川急便
 20040831_001 100      佐川急便

B印刷ボタンで、上から順番に印刷

 Aの状態をデータテーブルへコピー(下記のように記述)

 Dim objDataSource As DataTable
 objDataSource = DirectCast(dgdDataList.DataSource, DataTable)

 データソースの中を確認したが、ソート前の状態がデータテーブルに
 セットされる。

 記述したが、画面上でソートする前の状態で印刷されます。
 記述の仕方がわるいのかもしれません。

よろしくお願いします。

さかもと
ぬし
会議室デビュー日: 2004/05/14
投稿数: 586
投稿日時: 2004-09-02 08:02
NEKO 様

さかもと と申します。
ご質問の件ですが、詳細はうまく説明できませんが・・・。

@でグリッド上に、データを表示(Fillメソッドか何か)
でデータをセットする時に印刷したい順(ソートして)
でセットをしておかないといけないはずです。

Aでグリッドをクリックしてのソートは簡単に言うと
見た目だけの問題であって、データがどの順序で
セットされているかどうかは、@でソート済みの結果
をセットするかどうかが重要です。

つまり、印刷時にどの順序で印刷を掛けるかを設定
したい場合は、そのソート順でデータを再セットする
必要があります。

なんだか的を得ない返答ですいません・・・。
IKA
会議室デビュー日: 2003/10/20
投稿数: 3
投稿日時: 2004-09-02 12:45
DataTableのDefaultViewプロパティで実現可能です。
NEKO
常連さん
会議室デビュー日: 2004/08/27
投稿数: 21
投稿日時: 2004-09-02 17:49
どうもありがとうございます。
下記のように書き換えてみました。

修正前
objDataSource = DirectCast(dgdDataList.DataSource, DataTable)
objDataView = New DataView(objDataSource)

修正後
Dim objCurrencyManager As CurrencyManager

objCurrencyManager = DirectCast(Me.BindingContext(dgdDataList.DataSource), CurrencyManager)
objDataView = DirectCast(objCurrencyManager.List, DataView)

1

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