
Partial Class MstMenu
    Inherits System.Web.UI.Page

#Region "******************** ページイベント ********************"

    ''' <summary>
    ''' ページロード時
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Private Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
        '更新ボタンに確認ダイアログをハンドル
        btn_更新.Attributes("onclick") = "return Dialog_YN(""更新してもよろしいですか？"")"
    End Sub

#End Region

#Region "***************** コントロールイベント *****************"

    ''' <summary>
    ''' 更新ボタン押下時
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Protected Sub btn_更新_Click(sender As Object, e As EventArgs) Handles btn_更新.Click
        'マスタ一覧の行数分、ループ処理
        For Each lv As ListViewItem In lv_Mst.Items
            'マスタ更新処理
            Mst更新(lv)
        Next

        'ページを再読み込み
        Response.Redirect(Request.RawUrl.ToString)
    End Sub

    ''' <summary>
    ''' マスタ一覧データバインド時
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Protected Sub lv_Mst_DataBound(sender As Object, e As EventArgs) Handles lv_Mst.DataBound
        '追加ボタンに確認ダイアログをハンドル
        CType(lv_Mst.InsertItem.FindControl("btn_追加"), Button).Attributes("onclick") = "return Dialog_YN(""追加してもよろしいですか？"")"

        'マスタ一覧の行数分、ループ処理
        For Each lv As ListViewItem In lv_Mst.Items
            '削除ボタンに確認ダイアログをハンドル
            CType(lv.FindControl("btn_削除"), Button).Attributes("onclick") = "return Dialog_YN(""削除してもよろしいですか？"")"
        Next
    End Sub

    ''' <summary>
    ''' マスタ一覧レコード挿入前
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Protected Sub lv_Mst_ItemInserting(sender As Object, e As ListViewInsertEventArgs) Handles lv_Mst.ItemInserting
        '画面項目より値を取得
        Dim 機能CD As String = CType(lv_Mst.InsertItem.FindControl("txt_機能CD"), TextBox).Text
        Dim PORTAL区分 As String = CType(lv_Mst.InsertItem.FindControl("ddl_PORTAL区分"), DropDownList).SelectedValue
        Dim 機能名 As String = CType(lv_Mst.InsertItem.FindControl("txt_機能名"), TextBox).Text
        Dim 実装FLG As Boolean = CType(lv_Mst.InsertItem.FindControl("cb_実装FLG"), CheckBox).Checked
        Dim MENUCD As String = CType(lv_Mst.InsertItem.FindControl("txt_MENUCD"), TextBox).Text
        Dim 機能分類CD As String = CType(lv_Mst.InsertItem.FindControl("txt_機能分類CD"), TextBox).Text
        Dim CONTENT_PATH As String = CType(lv_Mst.InsertItem.FindControl("txt_CONTENT_PATH"), TextBox).Text
        Dim CONTENT_PARAM As String = CType(lv_Mst.InsertItem.FindControl("txt_CONTENT_PARAM"), TextBox).Text
        Dim UC1_PATH As String = CType(lv_Mst.InsertItem.FindControl("txt_UC1_PATH"), TextBox).Text
        Dim UC1_DEFAULT As String = CType(lv_Mst.InsertItem.FindControl("ddl_UC1_DEFAULT"), DropDownList).SelectedValue
        Dim UC1_TITLE As String = CType(lv_Mst.InsertItem.FindControl("txt_UC1_TITLE"), TextBox).Text
        Dim 表示FLG As Boolean = CType(lv_Mst.InsertItem.FindControl("cb_表示FLG"), CheckBox).Checked
        Dim 表示順 As String = CType(lv_Mst.InsertItem.FindControl("txt_表示順"), TextBox).Text

        '------------------
        '-- 入力チェック --
        '------------------
        '必須チェック
        If String.IsNullOrEmpty(機能CD) OrElse String.IsNullOrEmpty(PORTAL区分) OrElse String.IsNullOrEmpty(CONTENT_PATH) Then
            lb_Err.Text = "必須項目が入力されていません。"
            e.Cancel = True
        Else
            Mst追加(機能CD, PORTAL区分, 機能名, 実装FLG, _
                    MENUCD, 機能分類CD, _
                    CONTENT_PATH, CONTENT_PARAM, _
                    UC1_PATH, UC1_DEFAULT, UC1_TITLE, 表示FLG, 表示順)
        End If
    End Sub

    ''' <summary>
    ''' マスタ一覧レコード挿入後
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Protected Sub lv_Mst_ItemInserted(sender As Object, e As ListViewInsertedEventArgs) Handles lv_Mst.ItemInserted
        'ページを再読み込み
        Response.Redirect(Request.RawUrl.ToString)
    End Sub

    ''' <summary>
    ''' マスタ一覧レコード削除後
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    ''' <remarks></remarks>
    Protected Sub lv_Mst_ItemDeleted(sender As Object, e As ListViewDeletedEventArgs) Handles lv_Mst.ItemDeleted
        'ページを再読み込み
        Response.Redirect(Request.RawUrl.ToString)
    End Sub

#End Region

#Region "******************* Sub及びFunction ********************"

    ''' <summary>
    ''' マスタ追加処理
    ''' </summary>
    ''' <param name="str機能CD"></param>
    ''' <param name="strPORTAL区分"></param>
    ''' <param name="str機能名"></param>
    ''' <param name="bol実装FLG"></param>
    ''' <param name="strMENUCD"></param>
    ''' <param name="strContent_Path"></param>
    ''' <param name="str機能分類CD"></param>
    ''' <param name="strContent_Param"></param>
    ''' <param name="strUc1_Path"></param>
    ''' <param name="strUc1_Default"></param>
    ''' <param name="strUc1_Title"></param>
    ''' <param name="bol表示FLG"></param>
    ''' <param name="str表示順"></param>
    ''' <remarks></remarks>
    Private Sub Mst追加(ByVal str機能CD As String, _
                        ByVal strPORTAL区分 As String, _
                        ByVal str機能名 As String, _
                        ByVal bol実装FLG As Boolean, _
                        ByVal strMENUCD As String, _
                        ByVal str機能分類CD As String, _
                        ByVal strContent_Path As String, _
                        ByVal strContent_Param As String, _
                        ByVal strUc1_Path As String, _
                        ByVal strUc1_Default As String, _
                        ByVal strUc1_Title As String, _
                        ByVal bol表示FLG As Boolean, _
                        ByVal str表示順 As String)
        Using spm As New StoredProcedureManager("SA_マスタ_機能_INSERT")
            spm.AddPrmIn("@機能CD", Data.SqlDbType.VarChar, str機能CD)
            spm.AddPrmIn("@PORTAL区分", Data.SqlDbType.VarChar, strPORTAL区分)
            spm.AddPrmIn("@機能名", Data.SqlDbType.VarChar, str機能名)
            spm.AddPrmIn("@実装FLG", Data.SqlDbType.Bit, bol実装FLG)
            spm.AddPrmIn("@MENUCD", Data.SqlDbType.VarChar, strMENUCD)
            spm.AddPrmIn("@機能分類CD", Data.SqlDbType.VarChar, str機能分類CD)
            spm.AddPrmIn("@CONTENT_PATH", Data.SqlDbType.VarChar, strContent_Path)
            spm.AddPrmIn("@CONTENT_PARAM", Data.SqlDbType.VarChar, strContent_Param)
            spm.AddPrmIn("@UC1_PATH", Data.SqlDbType.VarChar, strUc1_Path)
            spm.AddPrmIn("@UC1_DEFAULT", Data.SqlDbType.VarChar, strUc1_Default)
            spm.AddPrmIn("@UC1_TITLE", Data.SqlDbType.VarChar, strUc1_Title)
            spm.AddPrmIn("@表示FLG", Data.SqlDbType.Bit, bol表示FLG)
            Dim intWork As Integer
            Dim obj表示順 As Object
            If Integer.TryParse(str表示順, intWork) Then
                obj表示順 = intWork
            Else
                obj表示順 = DBNull.Value
            End If
            spm.AddPrmIn("@表示順", Data.SqlDbType.Int, obj表示順)
            spm.Exec()
        End Using
    End Sub

    ''' <summary>
    ''' マスタ更新処理
    ''' </summary>
    ''' <param name="lv"></param>
    ''' <remarks></remarks>
    Private Sub Mst更新(ByVal lv As ListViewItem)
        '画面項目より値を取得
        Dim 機能CD As String = CType(lv.FindControl("lbl_機能CD"), Label).Text
        Dim PORTAL区分 As String = CType(lv.FindControl("lbl_PORTAL区分"), Label).Text
        Dim 機能名 As String = CType(lv.FindControl("txt_機能名"), TextBox).Text
        Dim 実装FLG As Boolean = CType(lv.FindControl("cb_実装FLG"), CheckBox).Checked
        Dim MENUCD As String = CType(lv.FindControl("txt_MENUCD"), TextBox).Text
        Dim 機能分類CD As String = CType(lv.FindControl("txt_機能分類CD"), TextBox).Text
        Dim CONTENT_PATH As String = CType(lv.FindControl("txt_CONTENT_PATH"), TextBox).Text
        Dim CONTENT_PARAM As String = CType(lv.FindControl("txt_CONTENT_PARAM"), TextBox).Text
        Dim UC1_PATH As String = CType(lv.FindControl("txt_UC1_PATH"), TextBox).Text
        Dim UC1_DEFAULT As String = CType(lv.FindControl("ddl_UC1_DEFAULT"), DropDownList).SelectedValue
        Dim UC1_TITLE As String = CType(lv.FindControl("txt_UC1_TITLE"), TextBox).Text
        Dim 表示FLG As Boolean = CType(lv.FindControl("cb_表示FLG"), CheckBox).Checked
        Dim 表示順 As String = CType(lv.FindControl("txt_表示順"), TextBox).Text

        Using spm As New StoredProcedureManager("SA_マスタ_機能_UPDATE")
            spm.AddPrmIn("@機能CD", Data.SqlDbType.VarChar, 機能CD)
            spm.AddPrmIn("@PORTAL区分", Data.SqlDbType.VarChar, PORTAL区分)
            spm.AddPrmIn("@機能名", Data.SqlDbType.VarChar, 機能名)
            spm.AddPrmIn("@実装FLG", Data.SqlDbType.Bit, 実装FLG)
            spm.AddPrmIn("@MENUCD", Data.SqlDbType.VarChar, MENUCD)
            spm.AddPrmIn("@機能分類CD", Data.SqlDbType.VarChar, 機能分類CD)
            spm.AddPrmIn("@CONTENT_PATH", Data.SqlDbType.VarChar, CONTENT_PATH)
            spm.AddPrmIn("@CONTENT_PARAM", Data.SqlDbType.VarChar, CONTENT_PARAM)
            spm.AddPrmIn("@UC1_PATH", Data.SqlDbType.VarChar, UC1_PATH)
            spm.AddPrmIn("@UC1_DEFAULT", Data.SqlDbType.VarChar, UC1_DEFAULT)
            spm.AddPrmIn("@UC1_TITLE", Data.SqlDbType.VarChar, UC1_TITLE)
            spm.AddPrmIn("@表示FLG", Data.SqlDbType.Bit, 表示FLG)
            Dim intWork As Integer
            Dim obj表示順 As Object
            If Integer.TryParse(表示順, intWork) Then
                obj表示順 = intWork
            Else
                obj表示順 = DBNull.Value
            End If
            spm.AddPrmIn("@表示順", Data.SqlDbType.Int, obj表示順)
            spm.Exec()
        End Using
    End Sub

#End Region

End Class