得意先データ基本クラスの実装
得意先データ基本クラスClsTokuisakiBaseは、得意先マスター表の選択・更新・削除・追加の共通処理を実装します。
基本クラスメンバー
基本クラス(基底クラス)は抽象クラスなので、コンストラクタは実装しません。
- 定数メンバー:得意先マスター表、得意先コード
- 変数メンバー:得意先コード、得意先名称、得意先郵便番号、得意先住所
- プロパティ:得意先名称、得意先郵便番号、得意先住所
- メソッド:得意先コードのエラーチェック
ソースリストの枠内をクリックすると全選択できます。
Option Strict On Imports System.Data.SqlClient Imports System.Transactions ' 参照の追加 System.Transactions Imports System.Text.RegularExpressions Public Structure TokuisakiData Public tCode As String ' 得意先コード Public tName As String ' 得意先名称 Public tJusho As String ' 得意先住所 Public tYuBango As String ' 得意先郵便番号 End Structure '%%%%%%%%%%%%%%%% 基本抽象クラス:得意先データ %%%%%%%%%%%%%%%%% Public MustInherit Class ClsTokuisakiBase '--------------------< 定数メンバー >-------------------- Protected Const TABLE_NAME As String = "得意先マスター表" Protected Const KEY_FIELD As String = "得意先コード" '--------------------< 変数メンバー >-------------------- Protected tokuisakiValue As TokuisakiData ' 得意先データ ' MustInheritなのでコンストラクタを宣言しない '------------------------------------------------------- ' プロパティ:得意先名称 '------------------------------------------------------- Public Property TokuisakiMeisho() As String ' Getプロパティ Get Return tokuisakiValue.tName End Get ' Setプロパティ Set(ByVal tMeisho As String) ' 未入力ならエラー If tMeisho.Length > 0 Then tokuisakiValue.tName = tMeisho Else Throw New TokuisakiMeishoException("得意先名称が未入力です") End If End Set End Property '------------------------------------------------------- ' プロパティ:得意先住所 '------------------------------------------------------- Public Property TokuisakiJusho() As String ' Getプロパティ Get Return tokuisakiValue.tJusho End Get ' Setプロパティ Set(ByVal tJusho As String) ' 未入力ならエラー Dim jusho() As String
jusho = tJusho.Split(","c)
If tJusho.Length > 0 ThenIf jusho(0).Length > 0 And jusho(1).Length > 0 And _ ' バグ修正 jusho(2).Length > 0 Then tokuisakiValue.tJusho = tJusho Else Throw New TokuisakiJushoException("得意先住所が未入力です") End If End Set End Property '------------------------------------------------------- ' プロパティ:郵便番号 '------------------------------------------------------- Public Property YubinBango() As String ' Getプロパティ Get Return tokuisakiValue.tYuBango End Get ' Setプロパティ Set(ByVal tYuBango As String) ' 数字7桁以外はエラー If Regex.IsMatch(tYuBango, "^[0-9]{7}$") Then tokuisakiValue.tYuBango = tYuBango Else Throw New YubinBangoException _ ("郵便番号を7桁数字で入力してください") End If End Set End Property '******************************************************* ' 機能:得意先コードのエラーチェックメソッド ' 引数:得意先コード ' 戻値:なし ' 補足:エラーがあれば例外をスロー '******************************************************* Protected Sub CheckTokuisakiCode(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