明細1行分クラスのClsInsertDetailRowは、入力した1行分のデータを明細行リストに追加し、データグリッドビューに表示できるようにするためのクラスです 。

ClsInsertDetailRowクラスは、基本クラス(基底クラス)ClsDetailRowBaseを継承したクラスで、明細行追加ボタンを押したときに、入力データをClsInsertDetailRowから明細行リストに追加し、データグリッドビューに表示できるようにするためのクラスです。
これらのクラスに実装したプロパティとデータグリッドビューの列をバインドして、フォームに表示します。
基本クラスClsDetailRowBaseは、MustInheritを付加し、抽象クラスとします。インスタンスは生成できません。
インスタンスは、派生クラスClsInsertDetailRowから生成します。
商品名称・受注単価・受注金額は、データグリッドビューに表示するためだけに使用するので、ReadOnlyプロパティにします。
エラーチェックは、Setプロパティに実装します。エラーがあれば、例外をスローします。
Option Strict On Imports System.Text.RegularExpressions '%%%%%%%%%%%%%%% 基本クラス:受注ディテール行 %%%%%%%%%%%%%%%% Public MustInherit Class ClsDetailRowBase '--------------------< メンバ:変数 >-------------------- Private shohinCodeValue As String ' 商品コード Private shohinMeishoValue As String ' 商品名称 Private juchuSuryoValue As Integer ' 受注数量 Private juchuTankaValue As Integer ' 受注単価 '======================================================= ' 機能:コンストラクタ ' 引数:なし '======================================================= Protected Sub New() ' 最初に基本クラスのコンストラクタを呼び出す MyBase.New() End Sub '------------------------------------------------------- ' プロパティ:商品コード '------------------------------------------------------- Public Property ShohinCode() As String ' Getプロパティ Get Return shohinCodeValue End Get ' Setプロパティ Set(ByVal sCode As String) ' 商品インスタンスの生成 ' 商品コードエラーチェック(エラー時は例外スロー) Dim shohin As New ClsShohin(sCode) ' 商品コードを変数メンバーにセット shohinCodeValue = sCode ' 商品名称を変数メンバーにセット shohinMeishoValue = shohin.ShohinMeisho ' 商品単価を変数メンバーにセット juchuTankaValue = shohin.Tanka End Set End Property '------------------------------------------------------- ' プロパティ:商品名称(読取専用) '------------------------------------------------------- Public ReadOnly Property ShohinMeisho() As String ' Getプロパティ Get Return shohinMeishoValue End Get End Property '------------------------------------------------------- ' プロパティ:受注数量 '------------------------------------------------------- Public Property JuchuSuryo() As Integer ' Getプロパティ Get Return juchuSuryoValue End Get ' Setプロパティ Set(ByVal value As Integer) ' 【エラーチェック】1から100なら正常 If value >= 0 And value <= 100 Then juchuSuryoValue = value Else Throw New JuchuSuryoException _ ("受注数量は1から100を入力してください") End If End Set End Property '------------------------------------------------------- ' プロパティ:受注単価(読取専用) '------------------------------------------------------- Public ReadOnly Property JuchuTanka() As Integer ' Getプロパティ Get Return juchuTankaValue End Get End Property '------------------------------------------------------- ' プロパティ:受注金額(読取専用) '------------------------------------------------------- Public ReadOnly Property JuchuKingaku() As Integer ' Getプロパティ Get Return juchuTankaValue * juchuSuryoValue End Get End Property End Class '/////////// 派生クラス:受注ディテール追加クラス //////////// Public Class ClsInsertDetailRow Inherits ClsDetailRowBase '======================================================= ' 機能:コンストラクタ ' 引数:ディテール表に追加する行データ ' 戻値:なし '======================================================= Protected Sub New(ByVal row As DataRow) ' 最初に基本クラスのコンストラクタを呼び出す MyBase.New() ' エラーチェックとデータセット ShohinCode = CStr(row("商品コード")) JuchuSuryo = CInt(row("受注数量")) End Sub 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アクセス基本クラス |
| 商品クラス |
| 得意先クラス |
| 受注ディテールクラス |
| 受注ヘッダークラス |
| 受注伝票データクラス |
| 受注伝票アクセスクラス |
| 行確認・追加ボタン |
| 得意先確認・変更ボタン |
| 明細行変更・完了ボタン |
| 明細行削除ボタン |
| 受注登録ボタン |
| クリアボタン |