受注伝票エントリー 第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」 などホームページに掲載されている会社名・製品名等は、各社の登録商標ま たは商標です。 ====================================================================