フォームロード [受注エントリー]

Visual Basic ADO.NET [Community Express]

Form Loadの実装

受注ヘッダー部の初期化、受注ディテール部の初期化、受注明細データグリッドビューの初期化処理を、受注エントリーのフォームロードプロシジャーにプログラミングします。

ヘッダー・明細の初期化

【受注明細データグリッドビューのカスタマイズ】

受注エントリー画面
  • 列を自動生成しない
  • 列幅を自動調整
  • 商品コード列・商品名列・受注数量列・受注単価列・受注金額列を作成
  • バインディングソース(BindingSource)を使って、明細行リストと連結
  • ボタンの活性不活性設定

【受注ヘッダー部の初期値】

  • システム日付の取得
  • ラベル・テキストボックスのクリア
  • フォーカスの設定
  • ボタンの活性不活性設定

【受注ディテール部の初期値】

  • 受注明細リストのクリア
  • 合計金額のクリア
  • ラベル・テキストボックスのクリア
  • ボタン

ソースリストの枠内をクリックすると全選択できます。

    ' データグリッドビューのデータ連結
    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
            '---<<データグリッドビューDgvOrderの列スタイル >>---
            ' 列を自動生成しない
            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, "例外発生")
        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