バックナンバー 第82号:VB2008 データベースプログラミング

VB 2008 Express Editiont と、SQL Server 2008 Express with Advanced Services を使って、フォームから入力した受注データを、受注ヘッダー表と受注ディテール表に登録する、受注伝票エントリープログラムを作成していきます。
受注伝票エントリー 第10回(得意先確定ボタン・変更ボタン)
第82号(2010.3.09発行)
====================================================================
       ★★ -- VB.NETデータベースプログラミング奮闘記 -- ★★
           (VB 2008 Express & SQL Server 2008 Express)
--------------------------------------------------------------------
いつもご購読ありがとうございます。ADO.NETの基本的なサンプルプログラ
ムをお届けします。これからもよろしくお願いいたします。

やさしいVB2008 ADO.NET → http://adonetvb.com/index.html
====================================================================
                ■■ 受注伝票エントリー 第10回 ■■

フォームから入力した受注データを、受注ヘッダー表と受注ディテール表に
登録するプログラムを作成します。

フォーム    → http://adonetvb.com/OrderEntry/index.html

テーブル定義  → http://adonetvb.com/OrderEntry/DB.html

バックナンバー → http://adonetvb.com/MailMagazine/index.html

--------------------------------------------------------------------
              ■ 得意先確定ボタンと得意先変更ボタン ■

今回は、得意先確定ボタンクリック処理と得意先変更ボタンクリック処理を
実装します。

得意先コードを入力して、得意先確定ボタンをクリックすると、得意先名称
と住所をラベルに表示します。

得意先コードを入力
    ┌――――┐ ┌――――――――――――┐
 得意先│0001│ │            │
    └――――┘ └――――――――――――┘
    ┌―――――――――――――――――――┐
    │                   │
    └―――――――――――――――――――┘

得意先確定ボタンクリック時
    ┌――――┐ ┌――――――――――――┐
 得意先│0001│ │得意先0001     │
    └――――┘ └――――――――――――┘
    ┌―――――――――――――――――――┐
    │東京都千代田区大手町1−X−XX   │
    └―――――――――――――――――――┘

【得意先確定ボタンクリック処理】
得意先コードを引数に指定して、得意先確定クラスのインスタンスを生成し
します。得意先名称プロパティから得意先名称、得意先住所プロパティから
得意先住所を取得し、ラベルにセットします。

得意先コード入力不可、得意先確定ボタンクリック不可、得意先変更ボタン
クリック可能に設定します。

得意先コードにエラーがあると、TokuisakiCodeException例外がスローされ
ます。

明細行確認ボタンクリック処理とほぼ同様な処理になります。

  ' 得意先クラスのインスタンス生成
  Dim tokuisaki As ClsTokuisaki
  tokuisaki = New ClsTokuisaki(TxtTokuisakiCode.Text)
  ' 得意先名称と住所をプロパティから取得し画面に表示
  LblTokuisakiMeisho.Text = tokuisaki.TokuisakiMeisho
  LblTokuisakiJusho.Text = tokuisaki.TokuisakiJusho


得意先を変更するときは、得意先変更ボタンをクリックします。

得意先変更ボタンクリック時
    ┌――――┐ ┌――――――――――――┐
 得意先│    │ │            │
    └――――┘ └――――――――――――┘
    ┌―――――――――――――――――――┐
    │                   │
    └―――――――――――――――――――┘

【得意先変更ボタンクリック処理】
得意先コード・名称・住所をクリアし、得意先コードを入力可能、得意先
コードにフォーカス、得意先確定ボタンをクリック可能、得意先変更ボタン
をクリック不可に設定します。

得意先確定ボタンクリック処理と得意先変更ボタンクリック処理を、
FormJuchuEntryクラスに追加します。

--【プログラムソースリスト:FormJuchuEntry.vb】---------------------
    '*******************************************************
    ' 得意先確定ボタンクリック処理
    '*******************************************************
    Private Sub BtnTokuisakiKakutei_Click _
        (ByVal sender As System.Object, _
         ByVal e As System.EventArgs) _
        Handles BtnTokuisakiKakutei.Click

        Try
            ' 得意先名称と住所を取得し画面に表示
            Dim tokuisaki As ClsTokuisaki
            tokuisaki = New ClsTokuisaki(TxtTokuisakiCode.Text)
            LblTokuisakiMeisho.Text = tokuisaki.TokuisakiMeisho
            LblTokuisakiJusho.Text = tokuisaki.TokuisakiJusho

            ' 得意先コード入力不可
            TxtTokuisakiCode.Enabled = False
            ' 得意先確定ボタン押下不可
            BtnTokuisakiKakutei.Enabled = False
            ' 得意先変更ボタン押下可能
            BtnTokuisakiHenko.Enabled = True

        Catch ex As TokuisakiCodeException
            ' 得意先コードエラー処理
            MessageBox.Show(ex.Message, "得意先コードエラー")
            ' 得意先コードにフォーカス
            TxtTokuisakiCode.Focus()

        Catch ex As DBIOException
            MessageBox.Show(ex.Message, "DBIO例外発生")

        Catch ex As Exception
            MessageBox.Show(ex.ToString, "その他例外発生")

        End Try

    End Sub

    '*******************************************************
    ' 得意先変更ボタンクリック処理
    '*******************************************************
    Private Sub BtnTokuisakiHenkou_Click _
        (ByVal sender As System.Object, _
         ByVal e As System.EventArgs) _
         Handles BtnTokuisakiHenko.Click

        Try
            ' 得意先コード・名称・住所をクリア
            TxtTokuisakiCode.Text = Nothing
            LblTokuisakiMeisho.Text = Nothing
            LblTokuisakiJusho.Text = Nothing

            ' 得意先コードを入力可能
            TxtTokuisakiCode.Enabled = True
            ' 得意先コードにフォーカス
            TxtTokuisakiCode.Focus()

            ' 得意先確定ボタンを押下可能
            BtnTokuisakiKakutei.Enabled = True
            ' 得意先変更ボタンを押下不可
            BtnTokuisakiHenko.Enabled = False

        Catch ex As Exception
            MessageBox.Show(ex.ToString, "その他例外発生")

        End Try

    End Sub

--------------------------------------------------------------------
次号:明細行変更ボタンと明細行変更完了ボタンを実装します。

====================================================================
VB.NET データベースプログラミング奮闘記
  発行者:
          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」
などホームページに掲載されている会社名・製品名等は、各社の登録商標ま
たは商標です。
====================================================================