受注伝票エントリー 第4回(DataGridView列スタイル)
第76号(2009.9.15発行) ==================================================================== ★★ -- VB.NETデータベースプログラミング奮闘記 -- ★★ (VB 2008 Express & SQL Server 2008 Express) -------------------------------------------------------------------- いつもご購読ありがとうございます。ADO.NETの基本的なサンプルプログラ ムをお届けします。今後ともよろしくお願い申し上げます。 やさしいVB2008 ADO.NET → https://adonetvb.com/index.html ==================================================================== ■■ 受注伝票エントリー 第4回 ■■ フォームから入力した受注データを、受注ヘッダー表と受注ディテール表に 登録するプログラムを作成します。 フォームはこちら↓(一部名称の変更やコントロ-ルの追加があります) https://adonetvb.com/OrderEntry/index.html テーブル定義はこちら → https://adonetvb.com/OrderEntry/DB.html -------------------------------------------------------------------- ■ DataGridViewの列スタイル ■ 今号では、データグリッドビューの列スタイルを設定します。入力した明細 行を表示するデータグリッドビューの列スタイルは、フォームロードで設定 します。 まず、列が自動的に作成されないように、 DgvMeisai.AutoGenerateColumns = False とします。こうすると、DataSourceプロパティに設定したデータを、自由に 表示できようになります。 また、明細行に商品コード、商品名、数量、単価、金額を表示するので、別 途、明細行基本クラスClsDetailRowBaseにプロパティを実装する必要があり ます。ClsDetailRowBaseは次号以降に実装します。 それでは、列をカスタマイズしていきます。 列幅は、セルの値に合わせて幅を自動的に調整できるように、 AutoSizeColumnsModeプロパティに DataGridViewAutoSizeColumnsMode.AllCells をセットします。 データグリッドビューの列として、商品コード、商品名、数量、単価、金額 を追加する必要があるので、DataGridViewTextBoxColumnを5列宣言します。 Dim textColumn(4) As DataGridViewTextBoxColumn 商品コード列 textColumn(0)から、順次インスタンスを生成して、列スタイ ルを設定します。 textColumn(0) = New DataGridViewTextBoxColumn() 商品コードを表示するためには、DataPropertyNameプロパティに、バインド するプロパティ名をセットします。 textColumn(0).DataPropertyName = "ShohinCode" ShohinCodeは、明細行基本クラスClsDetailRowBaseに実装します。 列タイトルはHeaderTextプロパティに設定します。 textColumn(0).HeaderText = "商品コード" 以下同様に他の列も作成します。 数値項目は、カンマ右詰め表示するので、DefaultCellStyle の Alignment プロパティに、DataGridViewContentAlignment.MiddleRightを設定し、 Formatプロパティに、カスタム数値書式指定文字列 "#,##0" を設定します。 --【プログラムソースリスト:FormJuchuEntry.vb】------------- '******************************************************* ' データグリッドビュー初期化 '******************************************************* Sub InitialDgvDesign() Try '---<< データグリッドビュー列スタイル設定 >>--- ' 列を自動生成しない Me.DgvMeisai.AutoGenerateColumns = False ' 列幅を自動調整 Me.DgvMeisai.AutoSizeColumnsMode = _ DataGridViewAutoSizeColumnsMode.AllCells ' テキストボックス列の生成 Dim textColumn(4) As DataGridViewTextBoxColumn '【商品コード】列を作成する textColumn(0) = New DataGridViewTextBoxColumn ' データソース項目とバインド textColumn(0).DataPropertyName = "ShohinCode" ' DataGridViewのヘッダータイトル設定 textColumn(0).HeaderText = "商品コード" '【商品名】列を作成する。テーブル項目に存在しない textColumn(1) = New DataGridViewTextBoxColumn ' データソース項目とバインド textColumn(1).DataPropertyName = "ShohinMeisho" ' DataGridViewのヘッダータイトル設定 textColumn(1).HeaderText = "商品名" '【注文数量】列を作成する textColumn(2) = New DataGridViewTextBoxColumn() ' データソース項目とバインド textColumn(2).DataPropertyName = "JuchuSuryo" ' DataGridViewのヘッダータイトル設定 textColumn(2).HeaderText = "数量" ' DataGridViewセルの文字列右詰め設定 textColumn(2).DefaultCellStyle.Alignment = _ DataGridViewContentAlignment.MiddleRight '【販売単価】列を作成する textColumn(3) = New DataGridViewTextBoxColumn() ' データソース項目とバインド textColumn(3).DataPropertyName = "JuchuTanka" ' DataGridViewのヘッダータイトル設定 textColumn(3).HeaderText = "単価" ' DataGridViewセルの文字列右詰め設定 textColumn(3).DefaultCellStyle.Alignment = _ DataGridViewContentAlignment.MiddleRight ' DataGridViewセルの書式設定 textColumn(3).DefaultCellStyle.Format = "#,##0" '【価格】列を作成する。テーブル項目に存在しない textColumn(4) = New DataGridViewTextBoxColumn() ' データソース項目とバインド textColumn(4).DataPropertyName = "JuchuKingaku" ' DataGridViewのヘッダータイトル設定 textColumn(4).HeaderText = "金額" ' DataGridViewセルの文字列右詰め設定 textColumn(4).DefaultCellStyle.Alignment = _ DataGridViewContentAlignment.MiddleRight ' DataGridViewセルの書式設定 textColumn(4).DefaultCellStyle.Format = "#,##0" ' 生成列を追加する DgvMeisai.Columns.AddRange(textColumn) '---<< BindingSource:データ連結設定 >>--- ' 以下2行はとりあえずコメントアウト 'bindingSrc.DataSource = meisaiList 'Me.DgvMeisai.DataSource = bindingSrc Catch ex As Exception ' 例外が発生した時の処理 MessageBox.Show(ex.ToString, "例外発生") End Try End Sub -------------------------------------------------------------------- 次号:フォームロードの実装 ==================================================================== VB.NET データベースプログラミング奮闘記 発行者:ウェブ実験室(adonet‾live.jp ‾はあっとマーク) http://park5.wakwak.com/‾weblab/ -------------------------------------------------------------------- このメールマガジン(マガジンID: 0000128094)は、 インターネットの本屋さん『まぐまぐ』から配信されています。 http://www.mag2.com/ 【購読中止の方法】購読の中止は次のホームページからお願い致します。 http://park5.wakwak.com/‾weblab/ http://www.mag2.com/m/0000128094.htm -------------------------------------------------------------------- このメールマガジン及び「すぐ使えるADO.NET」「やさしいBV2008 ADO.NET」 などのホームページで公開しているソースプログラム・データの利用により 生じた損害等については、発行者は一切責任を負いません。ソースプログラ ムの再利用は自由です。著作権は発行者が所有します。 このメールマガジン及び「すぐ使えるADO.NET」「やさしいBV2008 ADO.NET」 などホームページに掲載されている会社名・製品名等は、各社の登録商標ま たは商標です。 ====================================================================