受注エントリーで使用する得意先ClsTokuisakiは、コンストラ クタの引数に指定した得意先コードのレコードを、得意先マスター表から取得し、プロパティを介して得意先名称や得意先住所を取得したり、セットしたりするクラスです。

基本クラス(基底クラス)ClsTokuisakiBaseに、得意先マスター表の選択・更新・削除・追加処理で共通で使うメンバーを実装します。抽象クラスなので、コンストラクタは実装しません。
派生クラスClsTokuisakiに、得意先マスター表の選択・更新・削除用のメンバーを実装します。コンストラクタでは、得意先マスター表からレコードを取得します。
Option Strict On Imports System.Text.RegularExpressions '%%%%%%%%%%%%%%%% 基本抽象クラス:得意先データ %%%%%%%%%%%%%%%%% Public MustInherit Class ClsTokuisakiBase '--------------------< 定数メンバー >-------------------- Protected Const TABLE_NAME As String = "得意先マスター表" Protected Const KEY_FIELD As String = "得意先コード" '--------------------< 変数メンバー >-------------------- Protected tCodeValue As String ' 得意先コード Protected tMeishoValue As String ' 得意先名称 Protected tJushoValue As String ' 得意先住所 ' MustInheritなのでコンストラクタを宣言しない '------------------------------------------------------- ' プロパティ:得意先名称 '------------------------------------------------------- Public Property TokuisakiMeisho() As String ' Getプロパティ Get Return tMeishoValue End Get ' Setプロパティ Set(ByVal tMeisho As String) ' 未入力ならエラー If tMeisho.Length > 0 Then tMeishoValue = tMeisho Else Throw New TokuisakiMeishoException("得意先名称が未入力です") End If End Set End Property '------------------------------------------------------- ' プロパティ:得意先住所 '------------------------------------------------------- Public Property TokuisakiJusho() As String ' Getプロパティ Get Return tJushoValue End Get ' Setプロパティ Set(ByVal tJusho As String) ' 未入力ならエラー If tJusho.Length > 0 Then tJushoValue = tJusho Else Throw New TokuisakiJushoException("得意先住所が未入力です") End If End Set End Property '******************************************************* ' 機能:得意先コードのエラーチェックメソッド(プロシ-ジャ) ' 引数:得意先コード ' 戻値:なし ' 補足:エラーがあれば例外をスロー '******************************************************* Protected Sub CheckTokuisakiCode(ByVal tCode As String) ' 引数設定チェック If tCode.Length = 0 Then Throw New TokuisakiCodeException("得意先コードが未入力です") End If ' 数字以外はエラー If Not Regex.IsMatch(tCode, "^[0-9]+$") Then Throw New TokuisakiCodeException _ ("得意先コードに数字以外の文字があります") End If ' 得意先コード長さチェック(4桁以外はエラー) If Not tCode.Length = 4 Then Throw New TokuisakiCodeException _ ("得意先コードの桁数が正しくありません") End If End Sub End Class '/////////////// 派生クラス:得意先選択更新削除 //////////////// Public Class ClsTokuisaki Inherits ClsTokuisakiBase '======================================================= ' 機能:コンストラクタ ' 引数:得意先コード '======================================================= Public Sub New(ByVal tCode As String) ' 最初に基本クラスのコンストラクタを呼び出す MyBase.New() ' 得意先コードエラーチェック CheckTokuisakiCode(tCode) ' 得意先マスター表からレコード取得 Dim dbIO As New ClsHanbaiKanriDBIO(TABLE_NAME, KEY_FIELD, tCode) Dim dt As DataTable = dbIO.GetRowsData() If dt.Rows.Count = 1 Then ' レコードがあった時は正常 tCodeValue = tCode ' 得意先コード tMeishoValue = CStr(dt.Rows(0)("得意先名称")) tJushoValue = CStr(dt.Rows(0)("得意先住所")) Else ' レコードがなかった時は例外スロー Throw New TokuisakiCodeException _ ("得意先マスター表にレコードがありません") End If End Sub '------------------------------------------------------- ' プロパティ:得意先コード(読取専用) '------------------------------------------------------- Public ReadOnly Property TokuisakiCode() As String ' Getプロパティ Get Return tCodeValue End Get End Property End Class
| ◆ DBアクセス TOP頁へ ◆ |
|---|
| ◆ SQL Server ◆ |
| Sql ExecuteScalar |
| Sql ExecuteReader |
| Sql ComboBox |
| Sql ListBox |
| Sql DataGridView |
| ◆ MDB ◆ |
| Ole ExecuteScalar |
| Ole ExecuteReader |
| Ole ComboBox |
| Ole ListBox |
| Ole DataGridView |
| ◆得意先マスター保守 TOP◆ |
|---|
| 得意先基本クラス |
| 得意先派生クラス |
| 販売管理DBアクセスクラス |
| 得意先マスターアクセス |
| 独自例外クラス |
| ●レコード追加仕様 |
| レコード追加画面 |
| 得意先マスター追加アクセス |
| ◆ 受注エントリー TOP頁 ◆ |
|---|
| テーブル定義 |
| データ接続の追加 |
| システム日付取得 |
| DataGridView列スタイル |
| フォームロード・初期化 |
| DBアクセス基本クラス |
| 商品クラス |
| 得意先クラス |
| 受注ディテールクラス |
| 受注ヘッダークラス |
| 受注伝票データクラス |
| 受注伝票アクセスクラス |
| 行確認・追加ボタン |
| 得意先確認・変更ボタン |
| 明細行変更・完了ボタン |
| 明細行削除ボタン |
| 受注登録ボタン |
| クリアボタン |