受注伝票エントリー 第12回 (明細選択行削除ボタン)
第84号(2010.5.12発行)
====================================================================
★★ -- VB.NETデータベースプログラミング奮闘記 -- ★★
(VB 2008 Express & SQL Server 2008 Express)
--------------------------------------------------------------------
いつもご購読ありがとうございます。ADO.NETの基本的なサンプルプログラ
ムをお届けします。これからもよろしくお願いいたします。
やさしいVB2008 ADO.NET → https://adonetvb.com/index.html
====================================================================
■■ 受注伝票エントリー 第12回 ■■
フォームから入力した受注データを、受注ヘッダー表と受注ディテール表に
登録するプログラムを作成します。
フォーム → https://adonetvb.com/OrderEntry/index.html
テーブル定義 → https://adonetvb.com/OrderEntry/DB.html
バックナンバー → https://adonetvb.com/MailMagazine/index.html
--------------------------------------------------------------------
■ 選択行削除ボタン ■
今回は、選択行削除ボタンクリック処理を実装します。
受注明細行を削除するときは、削除する行を選択して、選択行削除ボタンを
クリックします。
┌────────────────────────────┐
│ 商品コード 商品名 数量 単価 金額│
├────────────────────────────┤
│ 00001 商品00001 1 100 100│
│ 00002 商品00002 2 200 400│
たとえば、1行目を選択し、選択行削除ボタンをクリックすれば、次のよう
に削除確認のメッセージボックスが表示されます。
┌────────────────┬─┐
│明細行削除 │x│
├────────────────┴─┤
│ │
│1行目を削除してもよろしいですか │
│ │
│ ┌―――――┐ ┌―――――┐ │
│ │はい(Y)│ │いいえ(N) │
│ └―――――┘ └―――――┘ │
「はい」をクリックすると、選択行が削除されます。
【選択行削除ボタンクリック処理】
選択行は、CurrentRow.Indexプロパティに設定されるので、この値を使って
バインディングソースから選択行を削除します。同時に明細リストからも、
この行が削除されます。
選択行削除ボタンクリック処理を、FormJuchuEntryクラスに追加します。
--【プログラムソースリスト:FormJuchuEntry.vb】---------------------
'*******************************************************
' 選択行削除ボタンクリック処理
'*******************************************************
Private Sub BtnGyoSakujo_Click _
(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles BtnGyoSakujo.Click
Try
' 選択行インデックスの取得
Dim gyoNo As Integer
gyoNo = DgvMeisai.CurrentRow.Index + 1
' 確認メッセージ表示
Dim yesNo As DialogResult
yesNo = MessageBox.Show _
(gyoNo.ToString & _
"行目を削除してもよろしいですか", _
"明細行削除", MessageBoxButtons.YesNo)
' 「はい」を選択したら選択行を削除
If yesNo = Windows.Forms.DialogResult.Yes Then
' バインディングソースから削除
bindingSrc.RemoveAt _
(DgvMeisai.CurrentRow.Index)
End If
' 受注合計金額を計算
Dim sum As Integer = 0
For i As Integer = 0 To meisaiList.Count - 1
sum += meisaiList(i).JuchuKingaku
Next
LblGokeiKingaku.Text = sum.ToString("#,##0")
' 商品コードにフォーカス
TxtShohinCode.Focus()
' 明細行有無によるボタンの活性不活性
If meisaiList.Count > 0 Then
' 選択行削除ボタン押下可能
BtnGyoSakujo.Enabled = True
' 選択行変更ボタン押下可能
BtnGyoHenko.Enabled = True
Else
' 選択行削除ボタン押下不可
BtnGyoSakujo.Enabled = False
' 選択行変更ボタン押下不可
BtnGyoHenko.Enabled = False
End If
Catch ex As Exception
' 例外が発生した時の処理
MessageBox.Show(ex.ToString, "例外発生")
End Try
End Sub
--------------------------------------------------------------------
次号:受注登録ボタンクリック処理の実装です。
====================================================================
VB.NET データベースプログラミング奮闘記
発行者:
http://park5.wakwak.com/‾weblab/
--------------------------------------------------------------------
このメールマガジン(マガジンID: 0000128094)は、
インターネットの本屋さん『まぐまぐ』から配信されています。
http://www.mag2.com/
【購読中止の方法】購読の中止は次のホームページからお願い致します。
http://park5.wakwak.com/‾weblab/
http://www.mag2.com/m/0000128094.htm
--------------------------------------------------------------------
このメールマガジン及び「すぐ使えるADO.NET」「やさしいBV2008 ADO.NET」
などのホームページで公開しているソースプログラム・データの利用により
生じた損害等については、発行者は一切責任を負いません。ソースプログラ
ムの再利用は自由です。著作権は発行者が所有します。
このメールマガジン及び「すぐ使えるADO.NET」「やさしいBV2008 ADO.NET」
などホームページに掲載されている会社名・製品名等は、各社の登録商標ま
たは商標です。
====================================================================