明細行の変更処理 [VB 2010]
Visual Basic 2010/2008 やさしいADO.NET DBプログラム
FormJuchuEntryクラスに、選択明細行変更ボタンクリック処理と明細行変更完了ボタンクリック処理を実装します。
明細行データ変更
選択明細行変更ボタンクリック処理
- CurrentRow.Indexプロパティで明細行インデックスを取得
- 元の行に戻すために Private変数updateMeisaiIndexに保存
- 明細行確認ボタンと明細行変更完了ボタンをクリック可能に設定
- 明細行追加ボタン、選択行削除ボタン、選択明細行変更ボタンをクリック不可に設定
選択明細行変更完了ボタンクリック処理
- バインディングソースから変更前明細行を削除し、変更行を明細行リストの元の位置に追加
- 受注合計金額を再計算
- 明細行入力エリアをクリア
- 商品コードにフォーカス
- ボタンのクリック可能・不可設定
Private Sub BtnGyoHenko_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles BtnGyoHenko.Click
Try
Dim gyo As ClsInsertDetailRow
gyo = meisaiList(DgvMeisai.CurrentRow.Index)
TxtShohinCode.Text = gyo.ShohinCode
NudSuryo.Value = gyo.JuchuSuryo
LblShohinMeisho.Text = gyo.ShohinMeisho
LblJuchuTanka.Text = CStr(gyo.JuchuTanka)
LblJuchuKingaku.Text = CStr(gyo.JuchuKingaku)
updateMeisaiIndex = DgvMeisai.CurrentRow.Index
TxtShohinCode.Focus()
BtnGyoHenkoKanryo.Enabled = True
BtnGyoKakunin.Enabled = True
BtnGyoTsuika.Enabled = False
BtnGyoSakujo.Enabled = False
BtnGyoHenko.Enabled = False
Catch ex As Exception
MessageBox.Show(ex.ToString, "例外発生")
End Try
End Sub
Private Sub BtnGyoHenkouKanryo_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles BtnGyoHenkoKanryo.Click
Try
bindingSrc.RemoveAt(updateMeisaiIndex)
Dim dr As DataRow
dr = ClsInsertDetailRow.CreateDataRow
dr("商品コード") = TxtShohinCode.Text
dr("受注数量") = NudSuryo.Value
Dim meisaiGyo As New ClsInsertDetailRow(dr)
bindingSrc.Insert(updateMeisaiIndex, meisaiGyo)
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.Text = Nothing
LblShohinMeisho.Text = Nothing
NudSuryo.Value = 1
LblJuchuTanka.Text = Nothing
LblJuchuKingaku.Text = Nothing
TxtShohinCode.Focus()
If meisaiList.Count > 0 Then
BtnGyoSakujo.Enabled = True
BtnGyoHenko.Enabled = True
End If
BtnGyoHenkoKanryo.Enabled = False
BtnGyoKakunin.Enabled = True
BtnGyoTsuika.Enabled = True
BtnGyoSakujo.Enabled = True
BtnGyoHenko.Enabled = True
updateMeisaiIndex = -1
Catch ex As ShohinCodeException
MessageBox.Show(ex.Message, "商品コードエラー")
TxtShohinCode.Focus()
Catch ex As Exception
MessageBox.Show(ex.ToString, "例外発生")
End Try
End Sub