データベース千夜一夜第16回

プログラミングとSQL(4)
~販売データの入力処理(前編)
長谷川裕行
有限会社 手國堂

下請け処理~コントロールと変数の初期化

処理の実質部分を作る前に、テキストボックスなどフォーム上のコントロールとグローバル変数を初期化する処理を作っておきます。


- 顧客情報の初期化~ClearCustomerData -

お客様IDを入力するテキストボックスと、検索結果の顧客情報を表示するラベルの表示内容(Textプロパティの値)を初期値に設定します。同時に、構造体strucMemberInfo型の変数Customerのメンバにも初期値を代入しておきます。これらはすべて文字列なので、初期値は空文字列("")としておきます。

併せて伝票番号を保持するstrSlipNumberにも、ここで初期値を設定しておきます。このアプリケーションでは、顧客を確定した時点で伝票番号を生成します。従って、次の顧客の販売情報入力に移行する直前=お客様IDを初期値にした時点=顧客情報を初期化した時点で伝票番号も初期値にし、次の顧客が特定された後に新しく生成された伝票番号を保持することになります。

なお、strSlipNumberの初期値は"00000000"という文字列です。伝票番号が8桁であるため、初期値も「0を8個」にしています。顧客情報が変更された段階で伝票番号(strSlipNumberの値)をキーにしてテーブル「売上明細」からレコードを抽出し、画面下部のグリッド(DataGrid)にその内容を表示します。そのため初期値は、どのレコードにも合致しない値でなければなりません。従って、実際には""でも"0"でも構いません。DataGridの扱いは次回紹介します。

  Private Sub ClearCustomerData()
txtCstmId.Text = ""
lblCstmName.Text = ""
lblCstmZip.Text = ""
lblCstmAddr1.Text = ""
lblCstmAddr2.Text = ""
lblCstmPhone.Text = ""

With Customer
  .strDate = ""
  .strName = ""
  .strZip = ""
  .strAddr1 = ""
  .strAddr2 = ""
  .strPhone = ""
End With
strSlipNumber = "00000000"
lblSlipNumber.Text = strSlipNumber
End Sub


- 伝票情報の初期化~ClearSlipData -

商品IDと数量を入力するテキストボックスと、品名、販売単価、合計金額を表示するラベルの表示内容(Textプロパティの値)を初期値に設定します。

同時に、構造体strucMemberInfo型の変数Customerのメンバにも初期値を代入しておきます。

文字列は空文字列("")、数量や金額は0を初期値とします。

   Private Sub ClearSlipData()
   txtItemId.Text = ""
txtNumItems.Text = "0"
lblItemName.Text = ""
lblItemValue.Text = "0"
lblTotalValue.Text = "0"

With SlipData
   .strItemName = ""
.intItemValue = 0
.intNumItems = 0
.lngTotalValue = 0
End With
End Sub


- フォームの初期化~InitForm -

日付と総合計に初期値を代入し、その他のコントロールは先に紹介したClearCustomerData(顧客情報の初期化)とClearSlipData(伝票情報の初期化)を呼び出して初期化します。

日付は処理当日の年月日(Today関数の戻り値)をFormat関数でスラッシュ区切りに変換して表示しています。

   Private Sub InitForm()
   txtDate.Text = Format("yy/mm/dd", CStr(Today)) -- 日付
lblGndTotal.Text = "0" --------------- 総合計額
ClearCustomerData() ---------------- 顧客情報の初期化
ClearSlipData() ---------------------- 販売情報の初期化
   End Sub


- InitFormの呼び出し -

SubプロシージャInitFormは、アプリケーションの開始時(フォーム“Form1”のLoadイベント処理時)に呼び出します。

UpdateGridは販売(受注)した商品の情報を表示するDataGridの内容をクリアする処理です。具体的な処理については次回説明します。

また、1人の顧客に対する販売(受注)処理が終わって次の顧客の処理(お客様IDの再入力)に移行する直前――[次の伝票]ボタン“btnNextCstm”のクリック時にも、同じプロシージャを呼び出します。

・フォームの初期化~Form1_Load
   Private Sub Form1_Load _
   (ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
  InitForm()
  UpdateGrid()
End Sub

・次の顧客の処理
   Private Sub btnNextCstm_Click _
   (ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles btnNextCstm.Click
  InitForm()
  UpdateGrid()
End Sub


- 処理の終了~btnClose_Click -

処理を終了するときには、単純に自分自身(Me)のCloseメソッドを呼び出します。

   Private Sub btnClose_Click _
   (ByVal sender As System.Object, ByVal e As System.EventArgs) _
Handles btnClose.Click
  Me.Close()
End Sub



トップページ
全体の仕様を把握する
フォームのデザイン
データの準備
下請け処理~コントロールと変数の初期化
顧客情報の初期化~ClearCustomerData
伝票情報の初期化~ClearSlipData
フォームの初期化~InitForm
InitFormの呼び出し
処理の終了~btnClose_Click
伝票番号の生成
顧客情報と伝票番号の表示
レコードの追加~AddHeader
あとがき
Copyright © MESCIUS inc. All rights reserved.