データ管理派生クラス[VB]

Visual Basic ADO.NET [Community Express]

派生クラスも抽象クラス

社員データ管理基本クラスから派生した社員データ選択更新削除クラスを作成します。この派生クラスも抽象クラスにします。

社員データ派生選択更新削除クラス

クラス図

基本クラスで実装しなかった社員コードプロパティーを実装するクラスです(クラス図のオレンジ色)。

この派生クラスも抽象クラスなので、インスタンスを生成しません。したがってMustInheritキーワードを付加する必要があります。

インスタンスを生成しないので、コンストラクタに、Protected修飾子を明示します。実装しなくても問題はありません。

  • コンストラクタの中で、社員マスターレコード取得メソッドを呼び出して、社員氏名など社員データを内部変数メンバーに保存
  • ReadOnlyの社員コードプロパティーを実装し、このプロパティから社員コードを取得

サンプルプログラム

ソースリストの枠内をクリックすると全選択できます。

>Option Strict On
Imports System.Text.RegularExpressions

'////////// 基本クラス:社員データクラス //////////
Public MustInherit Class ClsShainBase

    '<< ◆ソースリストはこちら◆ >>

End Class

'//////// サブ抽象クラス:社員データ選択更新削除クラス ////////
Public MustInherit Class ClsShainSub
    Inherits ClsShainBase

    '=======================================================
    ' 機能:コンストラクタ
    ' 引数:なし
    '=======================================================
    Protected Sub New()

        MyBase.New()   ' 基本クラスのコンストラクタを呼び出す

    End Sub

    '=======================================================
    ' 機能:コンストラクタ
    ' 引数:社員コード
    '=======================================================
    Protected Sub New(ByVal shainCode As String)

        MyBase.New()  ' 基本クラスのコンストラクタを呼び出す

        ' ---<< 社員テーブルからレコード取得 >>---
        Dim shainTable As New ClsShainTableIO
        Dim dt As DataTable

        ' レコード取得メソッド呼出
        dt = shainTable.GetKeyData(shainCode)
        If dt.Rows.Count = 1 Then
            ' レコードがあった時
            MyBase.ShainCodeValue = shainCode
            MyBase.ShainShimei = CStr(dt.Rows(0)("社員氏名"))
            MyBase.ShainKana = CStr(dt.Rows(0)("社員カナ"))
            MyBase.BushoCode = CStr(dt.Rows(0)("部署コード"))
            MyBase.KoushinNichijiValue = _
            CDate(dt.Rows(0)("更新日時"))
        Else
            ' レコードが無かった時
            Throw New myShainCodeException _
            ("社員テーブルにレコードがありません")
        End If

    End Sub

    '--------------------------------------------------------
    ' プロパティ:社員コード
    '--------------------------------------------------------
    Public ReadOnly Property ShainCode() As String

        ' Getプロパティ
        Get
            Return shainCodeValue
        End Get

    End Property

End Class