プログラミング言語からSQLを扱う実例として、前回は販売(受注)データ入力処理の前半部分を紹介しました。今回はその続きとして、商品の確定と金額の計算、グリッドへの明細表示、テーブルへのレコード追加処理などを紹介します。
前回紹介した部分は処理全体から見れば「前準備」と言え、SQLもデータオブジェクトの扱いも、これまでのおさらい的なものでした。今回紹介する本質部分では、データオブジェクトとグリッドの連結や合計金額の計算など、応用を利かせなければならない処理が登場します。
プログラミングそのものは本コラムのテーマではないので、テクニックについてあまり詳しく紹介はできませんが、Visual Studio .NETとADO.NETを用いたデータベース・アプリケーションの参考になれば幸いです。
サンプル・データベースとサンプル・アプリケーションの扱いについて
第9回以降、新しいサンプル・データベースを使っているのでご注意ください。新しいサンプル・データベースの登録方法については、第9回の記事から「新しいサンプルデータベースの準備」の項をお読みください。
今回も、VB .NETによるサンプル・アプリケーションを作成します。プロジェクトファイルをダウンロードし、任意のフォルダに解凍してください。サンプルのプロジェクトは“ex01”という名前のフォルダに保存されます。フォルダ名は前回と同じなので、上書きしないように注意してください。
ソースコードを入力して実際にプログラミングを試す場合は、パソコンにVisual Studio .NETがインストールされている必要があります。
Visual Studio .NETでプロジェクト(ex01.sln)を開いてもフォームデザインやソースコードが表示されない場合は、「ソリューション エクスプローラ」で“Form1.vb”をダブルクリックしてください。フォームデザインが表示されます。この状態でフォームをダブルクリックすればソースコードが表示されます。
出来上がった実行形式ファイルを試すだけの場合は、拡張子.exeのファイル(ex01.exe)をダブルクリックしてください。なお、サンプルを実行するにはパソコンに .NET Frameworkがインストールされていなければなりません。
また、SQL Serverはローカルで稼働していることを前提にしています。環境が異なる場合は、ソースコードの該当箇所(ConnectionStringに与える接続文字列)を適宜書き換えてください。
なお、今回のプロジェクトは処理の前半部分のみとなっています。これだけでは全体が見通せないので、exeフォルダの中にex01.exeと共に完成したexeファイル“complete.exe”も含めてあります。
[注意1]
前回のサンプルを試してテーブル「売上ヘッダ」にレコードを追加した場合、今回のサンプルを試す前に、必ずEnterpriseManagerで「売上ヘッダ」の全レコードを削除しておいてください。そうしないと、今回のサンプルを試したとき、レコード件数に矛盾が発生します。
実際には、そのまま(「売上ヘッダ」のレコードを残したまま)でも処理は正常に実行されます。ただ、伝票番号の連番部分に「前飛び」が発生したり、明細の存在しない「売上ヘッダ」のレコードが残ったままになるなど、何となく『気持ちの悪い状態』になるだけです。そのあたりの理屈をわかっている人は、「売上ヘッダ」の全レコードを削除しなくても構いません。
[注意2]
サンプル・データベース“db1001ya”のテーブル「売上ヘッダ」は、初期状態(ダウンロードした直後の状態)で「伝票番号」フィールドが“IDENTITY”に指定されています。この状態だとアプリケーションから伝票番号の値を書き換えられないため、前回の《注意》を参考にしてIDENTITY指定を解除しておいてください。
[注意3]
今回取り上げているサンプルは、バーコードやOCRカードリーダーなどを使ってデータを連続的に入力していく仕様を前提にしているため、キーボード入力によるエラー発生時の対処などは省略してあります。サンプルを試す前に、前回の本コラム「サンプルのためのデザイン」のところに示した仕様の制約をご確認ください。
また、サンプルの仕様とフォームデザインなどについても、前回のコラムで確認してください。
|
|
- 目次 -
|
■ |
後半部分の概要 |
|
|
■ |
1.商品の特定 |
|
・ |
売上情報の入力~txtItemId_LostFocus |
・ |
商品情報を表示~SearchItem |
|
■ |
2.数量の入力~txtNumItems_LostFocus |
|
|
■ |
3.1件の追加 |
|
・ |
1件分の情報をグリッドに表示~btnAdd_Click |
・ |
明細をテーブルに追加~AddDetail |
・ |
DataGridに売上明細を表示~UpdateGrid |
・ |
売上の総合計金額を表示~DispTotal |
|
■ |
その他の処理 |
|
・ |
次の入力の準備(初期化)~btnNextCstm_Click |
・ |
終了処理~btnClose_Click |
|
■ |
補足 |
|
・ |
リレーションとレコードの定着 |
・ |
レコード定着のタイミング |
・ |
パフォーマンス低下を避ける手段 |
|
■ |
あとがき |
|