- PR -

Datasetに追加した列の表示順を変更する

1
投稿者投稿内容
co.jp
常連さん
会議室デビュー日: 2004/03/19
投稿数: 20
投稿日時: 2005-01-13 16:12
いつもお世話になっています。
Windowsアプリケーション開発/DB:Access97使用で開発を行っています。

フィールド(kfkint)の値を条件に応じて変換し、新しいフィールド(kfkint2)をDataSet上に追加して、DataGridに表示させています。
追加されたフィールドは当然一番最後のフィールドとしてDataGrid表示されています。
このデータの列の配列を変更したいのですが、どのような手法を用いれば宜しいのでしょうか?
ASP.NETならDataGridのプロパティには配列の変更ができるような機能があったと思うのですが、Windowsアプリケーションに関しては調べても見つかりませんでした。
アドバイスを頂きたく、書き込みをさせて頂いた次第です。どうか宜しくお願い致します。
現時点でのコードは以下のように書いております。
_____________________________________________________________________________________________

Dim dtset As DataSet
Dim dttable As DataTable
Dim cSQL As String
Dim col As DataColumn

cSQL = "select kfscod, kfstat, kfkend, kfjstr, kfkint, kfjend, kfresn, kfsyon, kfrenb from ksinsem where kfscod = '" + TextBox3.Text + "'"

OleDbDataAdapter1.SelectCommand.CommandText = cSQL
OleDbDataAdapter1.Fill(Dataset11)

dtset = Dataset11
dttable = dtset.Tables("ksinsem")

    'データ変換

col = dttable.Columns.Add("kfkint2")
dttable.Columns("kfkint2").Expression = "iif(kfkint=0, '**', iif(kfkint=1, '国内', iif(kfkint=2, '駐在', iif(kfkint=3, '欠勤'))))"

'フィールドの非表示
Dim dc As DataColumn
dc = dttable.Columns("kfkint")
dc.ColumnMapping = MappingType.Hidden

Dim dc2 As DataColumn
dc2 = dttable.Columns("kfrenb")
dc2.ColumnMapping = MappingType.Hidden

Dim dc3 As DataColumn
dc3 = dttable.Columns("kfscod")
dc3.ColumnMapping = MappingType.Hidden


'レコードの並び替え
dtview = New DataView(dttable, "", "kfstat DESC", DataViewRowState.CurrentRows)
DataGrid1.DataSource = dtview


kanai
ベテラン
会議室デビュー日: 2004/09/13
投稿数: 98
投稿日時: 2005-01-13 16:44
DataGridのTableStylesプロパティを使えば列の表示順も制御できると思います。詳しくはヘルプを参照してください。

もうひとつ、列の表示順や別名など、すべてSQLで定義してしまう手もあります。
co.jp
常連さん
会議室デビュー日: 2004/03/19
投稿数: 20
投稿日時: 2005-01-13 16:53
kanaiさんアドバイス頂きありがとうございます。
DataGridのTableStylesプロパティにて列の表示順の制御を考えてみます。
1

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