受注伝票エントリー 第5回 (フォームロードと画面の初期化)
第77号(2009.10.14発行)
====================================================================
★★ -- VB.NETデータベースプログラミング奮闘記 -- ★★
(VB 2008 Express & SQL Server 2008 Express)
--------------------------------------------------------------------
いつもご購読ありがとうございます。ADO.NETの基本的なサンプルプログラ
ムをお届けします。今後ともよろしくお願い申し上げます。
やさしいVB2008 ADO.NET → https://adonetvb.com/index.html
====================================================================
■■ 受注伝票エントリー 第5回 ■■
フォームから入力した受注データを、受注ヘッダー表と受注ディテール表に
登録するプログラムを作成します。
フォーム → https://adonetvb.com/OrderEntry/index.html
テーブル定義 → https://adonetvb.com/OrderEntry/DB.html
バックナンバー → https://adonetvb.com/MailMagazine/index.html
--------------------------------------------------------------------
■ フォームロードの実装 ■
前号のデータグリッドビューの列スタイルの設定を含めて、フォームロード
処理の全プログラムリストを掲載します。
未実装クラスがあるので、次の行をコメントアウトしておきます(ソースリ
ストの◆◆の行)。
Private meisaiList As New List(Of ClsInsertDetailRow)
bindingSrc.DataSource = meisaiList
フォームロードでは、データグリッドビューの列スタイルの設定と、システ
ム日付の取得の他に、テキストボックスやラベルの初期化、ボタンの活性・
不活性、フォーカスの設定等を行っています。
--【プログラムソースリスト:FormJuchuEntry.vb】---------------------
Option Strict On
Public Class FormJuchuEntry
' データグリッドビューのデータ連結
Private bindingSrc As New BindingSource
' 受注明細行リスト
'◆◆Private meisaiList As New List(Of ClsInsertDetailRow)
'*******************************************************
' フォームロード処理
'*******************************************************
Private Sub FormJuchuEntry_Load( _
ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles MyBase.Load
' 受注明細データグリッドビュー初期化
InitialDgvMeisai()
' 受注ヘッダー部初期化
InitialHeader()
' 受注ディテール部初期化
InitialDetail()
End Sub
'*******************************************************
' 受注明細データグリッドビュー初期化
'*******************************************************
Sub InitialDgvMeisai()
Try
'---<< 列スタイルの設定 >>---
' 列を自動生成しない
DgvMeisai.AutoGenerateColumns = False
' 列幅を自動調整
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:データ連結設定 >>-----
'◆◆bindingSrc.DataSource = meisaiList
DgvMeisai.DataSource = bindingSrc
Catch ex As Exception
' 例外が発生した時の処理
MessageBox.Show(ex.ToString, "FormLoadで例外発生")
End Try
End Sub
'*******************************************************
' 受注ヘッダー部初期化
'*******************************************************
Sub InitialHeader()
Try
' システム日付を受注日にセット
LblJuchuBi.Text = _
CStr(ClsHanbaiKanriDBIO.GetSysDate)
' ヘッダー部クリア
TxtJuchuBango.Text = Nothing
TxtTokuisakiCode.Text = Nothing
LblTokuisakiMeisho.Text = Nothing
LblTokuisakiJusho.Text = Nothing
' 受注番号にフォーカス
TxtJuchuBango.Focus()
' 得意先コードを入力可能
TxtTokuisakiCode.Enabled = True
' 得意先確定ボタンを押下可能
BtnTokuisakiKakutei.Enabled = True
' 得意先変更ボタンを押下不可
BtnTokuisakiHenko.Enabled = False
Catch ex As DBIOException
' DBIO例外が発生した時の処理
MessageBox.Show(ex.Message, "DBIO例外発生")
Catch ex As Exception
' その他例外が発生した時の処理
MessageBox.Show(ex.ToString, "例外発生")
End Try
End Sub
'*******************************************************
' 受注ディテール部初期化
'*******************************************************
Sub InitialDetail()
Try
' 受注明細リストクリア
bindingSrc.Clear()
' 受注合計金額クリア
LblGokeiKingaku.Text = "0"
' 明細行クリア
TxtShohinCode.Text = Nothing
LblShohinMeisho.Text = Nothing
NudSuryo.Value = 1
LblJuchuTanka.Text = Nothing
lblJuchuKingaku.Text = Nothing
' 明細行削除ボタン押下不可
BtnGyoSakujo.Enabled = False
' 明細行変更ボタン押下不可
BtnGyoHenko.Enabled = False
Catch ex As Exception
' 例外が発生した時の処理
MessageBox.Show(ex.ToString, "例外発生")
End Try
End Sub
End Class
--------------------------------------------------------------------
次号:明細1行分クラスClsInsertDetailRowの実装
====================================================================
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」
などホームページに掲載されている会社名・製品名等は、各社の登録商標ま
たは商標です。
====================================================================