受注伝票エントリー 第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」 などホームページに掲載されている会社名・製品名等は、各社の登録商標ま たは商標です。 ====================================================================