得意先データ基本クラス [VB]

Visual Basic ADO.NET [Community Express]

得意先データ基本クラスの実装

得意先データ基本クラス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 Then If 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