Imports AppVariable
Imports System.Data
Imports AppCommon

''' <summary>
''' 訪問入力画面
''' </summary>
Partial Class InputVisit
    Inherits System.Web.UI.Page

#Region "変数宣言"
    ''' <summary>
    ''' 検索画面で選択した訪問履歴キー情報を保持
    ''' </summary>
    Private _selectedParam As VisitParam

    ''' <summary>
    ''' 更新モードかどうか
    ''' </summary>
    Private _isUpdateMode As Boolean = False
#End Region

#Region "イベントメソッド"
    ''' <summary>
    ''' ページロードイベント
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
        lblMessage.Visible = False
        ValidationSummary1.Visible = True

        If Session(S_Visit_Message) IsNot Nothing Then
            lblMessage.Visible = True
            lblMessage.Text = Session(S_Visit_Message)

            Session.Remove(S_Visit_Message)
        End If

        '新規か更新か
        If Session(S_Visit_Selected_History) Is Nothing Then
            _isUpdateMode = False
            _selectedParam = Nothing
        Else
            _isUpdateMode = True
            _selectedParam = CType(Session(S_Visit_Selected_History), VisitParam)
        End If

        '初期表示時
        If Not IsPostBack Then
            If Session(S_Visit_ShowBackButton) IsNot Nothing AndAlso Convert.ToBoolean(Session(S_Visit_ShowBackButton)) Then
                btnBack.Visible = True
            Else
                btnBack.Visible = False
            End If
            Session.Remove(S_Visit_ShowBackButton)

            SetDropDown学校訪問資料(ddl資料)
            SetDropDown訪問担当(ddl訪問者)
            If Session(S_COM_UserCD) IsNot Nothing And Session(S_COM_User_Name) IsNot Nothing Then
                Dim userCd As String = Convert.ToString(Session(S_COM_UserCD))
                Dim userName As String = Convert.ToString(Session(S_COM_User_Name))
                ddl訪問者.SelectedValue = userCd
                If String.IsNullOrEmpty(ddl訪問者.SelectedValue) Then
                    Dim item As New ListItem
                    item.Text = userCd & ":" & userName
                    item.Value = userCd
                    ddl訪問者.Items.Add(item)
                    ddl訪問者.SelectedValue = userCd
                End If
            End If
            If _isUpdateMode Then
                '編集モード
                _selectedParam = CType(Session(S_Visit_Selected_History), VisitParam)
                btnNew.Visible = True
                btnDel.Visible = True
                hdnIsEditMode.Value = "1"

                btnUpdate.Text = "更新"
                btnUpdate.OnClientClick = "return confirm('学校訪問データを更新します。\r\nよろしいですか？');"

                SetSelectedValue()

            Else
                '新規モード
                btnNew.Visible = False
                btnDel.Visible = False
                hdnIsEditMode.Value = "0"
                btnUpdate.Text = "登録"
                btnUpdate.OnClientClick = "return confirm('学校訪問データを登録します。\r\nよろしいですか？');"

            End If

            SetHeaderInfo()
        Else
            '学校選択でポストバック戻り時
            If Not (String.IsNullOrEmpty(hdn分類CD.Text) Or String.IsNullOrEmpty(hdn学校CD.Text)) Then
                If (lbl学校CD.Text <> hdn学校CD.Text & ":" & hdn学校名.Text) Then
                    lbl学校CD.Text = hdn学校CD.Text & ":" & hdn学校名.Text
                    SetHeaderInfo()
                    ValidationSummary1.Visible = False
                Else
                    tabMain.Style.Remove("display")
                    'tblHeaderInfo.Visible = True
                    fv学校基本情報.Visible = True
                    div過去履歴.Visible = True
                End If
            Else
                SetHeaderInfo()
            End If

            '既読にしますか？でOK選択時
            If hdnExecuteRead.Value = "1" Then
                '既読処理
                ExecuteRead()
                hdnExecuteRead.Value = "0"
            End If
        End If

        '訪問担当者以外ボタン利用不可
        Dim is訪問担当 As Boolean = Get訪問担当Flg(Session(S_COM_UserCD))
        If Not is訪問担当 Then
            btnNew.Enabled = False
            btnUpdate.Enabled = False
            btnDel.Enabled = False
            btnSearchSchool.Disabled = True

            '文字色調整
            setDisabledBtnColor(is新規使用不可:=True, is更新使用不可:=True, is削除使用不可:=True, is学校選択不可:=True)
        End If

    End Sub

    ''' <summary>
    ''' 新規作成ボタンクリックイベント
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    Protected Sub btnNew_Click(sender As Object, e As EventArgs)
        Session.Remove(S_Visit_Search_Param)
        Session.Remove(S_Visit_Selected_History)

        Session(S_Visit_ShowBackButton) = btnBack.Visible
        Response.Redirect(Request.RawUrl.ToString)
    End Sub

    ''' <summary>
    ''' 更新ボタンクリックイベント
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    Protected Sub btnUpdate_Click(sender As Object, e As EventArgs)
        If Not Page.IsValid Then
            ValidationSummary1.Visible = True
            Return
        End If

        Try
            If _isUpdateMode Then
                'UPDATEモード
                Using spm As New StoredProcedureManager("学校_学校訪問資料_DELETE")
                    spm.BeginTransaction()

                    spm.AddPrmIn("@分類CD", Data.SqlDbType.VarChar, _selectedParam.分類CD)
                    spm.AddPrmIn("@学校CD", Data.SqlDbType.VarChar, _selectedParam.学校CD)
                    spm.AddPrmIn("@担当CD", Data.SqlDbType.VarChar, _selectedParam.担当CD)
                    spm.AddPrmIn("@訪問日", Data.SqlDbType.DateTime, _selectedParam.訪問日)
                    spm.Exec()

                    spm.Reset("学校_学校訪問_UPDATE")
                    spm.AddPrmIn("@旧分類CD", Data.SqlDbType.VarChar, _selectedParam.分類CD)
                    spm.AddPrmIn("@旧学校CD", Data.SqlDbType.VarChar, _selectedParam.学校CD)
                    spm.AddPrmIn("@旧担当CD", Data.SqlDbType.VarChar, _selectedParam.担当CD)
                    spm.AddPrmIn("@旧訪問日", Data.SqlDbType.DateTime, _selectedParam.訪問日)
                    spm.AddPrmIn("@新分類CD", Data.SqlDbType.VarChar, hdn分類CD.Text)
                    spm.AddPrmIn("@新学校CD", Data.SqlDbType.VarChar, hdn学校CD.Text)
                    spm.AddPrmIn("@新担当CD", Data.SqlDbType.VarChar, ddl訪問者.SelectedValue)
                    spm.AddPrmIn("@新訪問日", Data.SqlDbType.DateTime, txt日付.Text)
                    spm.AddPrmIn("@区分", Data.SqlDbType.VarChar, ddl区分.SelectedValue)
                    spm.AddPrmIn("@面談", Data.SqlDbType.VarChar, ddl面談.SelectedValue)
                    spm.AddPrmIn("@面談者", Data.SqlDbType.VarChar, txt面談者.Text)
                    spm.AddPrmIn("@役職", Data.SqlDbType.VarChar, txt役職.Text)
                    spm.AddPrmIn("@特記事項", Data.SqlDbType.VarChar, txt報告詳細.Text)
                    spm.AddPrmIn("@開始時間", Data.SqlDbType.VarChar, ddl_開始時間.SelectedValue + ddl_開始分.SelectedValue)
                    spm.AddPrmIn("@終了時間", Data.SqlDbType.VarChar, ddl_終了時間.SelectedValue + ddl_終了分.SelectedValue)
                    spm.AddPrmIn("@時間", Data.SqlDbType.Int, txt分.Text)
                    spm.AddPrmIn("@資料1", Data.SqlDbType.Bit, chk資料1.Checked)
                    spm.AddPrmIn("@資料2", Data.SqlDbType.Bit, chk資料2.Checked)
                    spm.Exec()

                    '未読の場合
                    If lbl閲覧ログ.Text = "未読" Then
                        spm.Reset("SP閲覧済IN")
                        spm.AddPrmIn("@分類CD", Data.SqlDbType.VarChar, hdn分類CD.Text)
                        spm.AddPrmIn("@学校CD", Data.SqlDbType.VarChar, hdn学校CD.Text)
                        spm.AddPrmIn("@担当CD", Data.SqlDbType.VarChar, ddl訪問者.SelectedValue)
                        spm.AddPrmIn("@訪問日", Data.SqlDbType.DateTime, txt日付.Text)
                        spm.AddPrmIn("@利用者", Data.SqlDbType.VarChar, Convert.ToString(Session(S_COM_UserCD)))
                        spm.Exec()
                    End If

                    If lb資料.Items.Count > 0 Then
                        For Each item As ListItem In lb資料.Items
                            spm.Reset("学校_学校訪問資料_INSERT")
                            spm.AddPrmIn("@分類CD", Data.SqlDbType.VarChar, hdn分類CD.Text)
                            spm.AddPrmIn("@学校CD", Data.SqlDbType.VarChar, hdn学校CD.Text)
                            spm.AddPrmIn("@担当CD", Data.SqlDbType.VarChar, ddl訪問者.SelectedValue)
                            spm.AddPrmIn("@訪問日", Data.SqlDbType.DateTime, txt日付.Text)
                            spm.AddPrmIn("@送付CD", Data.SqlDbType.VarChar, item.Value)
                            spm.Exec()
                        Next
                    End If
                    spm.Commit()
                End Using

                _selectedParam.分類CD = hdn分類CD.Text
                _selectedParam.学校CD = hdn学校CD.Text
                _selectedParam.担当CD = ddl訪問者.SelectedValue
                _selectedParam.訪問日 = txt日付.Text
                Session(S_Visit_Selected_History) = _selectedParam

                'キー値が変わった場合、検索側がバグるので再検索するためRedirect
                'ただし更新完了メッセージは出したいのでSessionに格納しておく
                Session(S_Visit_Message) = "更新しました。"
                Session(S_Visit_ShowBackButton) = btnBack.Visible
                Response.Redirect(Request.RawUrl.ToString)
            Else
                'INSERTモード
                Using spm As New StoredProcedureManager("学校_学校訪問_INSERT")
                    spm.BeginTransaction()

                    spm.AddPrmIn("@分類CD", Data.SqlDbType.VarChar, hdn分類CD.Text)
                    spm.AddPrmIn("@学校CD", Data.SqlDbType.VarChar, hdn学校CD.Text)
                    spm.AddPrmIn("@担当CD", Data.SqlDbType.VarChar, ddl訪問者.SelectedValue)
                    spm.AddPrmIn("@訪問日", Data.SqlDbType.DateTime, txt日付.Text)
                    spm.AddPrmIn("@区分", Data.SqlDbType.VarChar, ddl区分.SelectedValue)
                    spm.AddPrmIn("@面談", Data.SqlDbType.VarChar, ddl面談.SelectedValue)
                    spm.AddPrmIn("@面談者", Data.SqlDbType.VarChar, txt面談者.Text)
                    spm.AddPrmIn("@役職", Data.SqlDbType.VarChar, txt役職.Text)
                    spm.AddPrmIn("@特記事項", Data.SqlDbType.VarChar, txt報告詳細.Text)
                    spm.AddPrmIn("@開始時間", Data.SqlDbType.VarChar, ddl_開始時間.SelectedValue + ddl_開始分.SelectedValue)
                    spm.AddPrmIn("@終了時間", Data.SqlDbType.VarChar, ddl_終了時間.SelectedValue + ddl_終了分.SelectedValue)
                    spm.AddPrmIn("@時間", Data.SqlDbType.Int, txt分.Text)
                    spm.AddPrmIn("@資料1", Data.SqlDbType.Bit, chk資料1.Checked)
                    spm.AddPrmIn("@資料2", Data.SqlDbType.Bit, chk資料2.Checked)
                    spm.Exec()

                    spm.Reset("SP閲覧済IN")
                    spm.AddPrmIn("@分類CD", Data.SqlDbType.VarChar, hdn分類CD.Text)
                    spm.AddPrmIn("@学校CD", Data.SqlDbType.VarChar, hdn学校CD.Text)
                    spm.AddPrmIn("@担当CD", Data.SqlDbType.VarChar, ddl訪問者.SelectedValue)
                    spm.AddPrmIn("@訪問日", Data.SqlDbType.DateTime, txt日付.Text)
                    spm.AddPrmIn("@利用者", Data.SqlDbType.VarChar, Convert.ToString(Session(S_COM_UserCD)))
                    spm.Exec()

                    If lb資料.Items.Count > 0 Then
                        For Each item As ListItem In lb資料.Items
                            spm.Reset("学校_学校訪問資料_INSERT")
                            spm.AddPrmIn("@分類CD", Data.SqlDbType.VarChar, hdn分類CD.Text)
                            spm.AddPrmIn("@学校CD", Data.SqlDbType.VarChar, hdn学校CD.Text)
                            spm.AddPrmIn("@担当CD", Data.SqlDbType.VarChar, ddl訪問者.SelectedValue)
                            spm.AddPrmIn("@訪問日", Data.SqlDbType.DateTime, txt日付.Text)
                            spm.AddPrmIn("@送付CD", Data.SqlDbType.VarChar, item.Value)
                            spm.Exec()
                        Next
                    End If

                    spm.Commit()
                End Using

                Dim params As New VisitParam
                params.分類CD = hdn分類CD.Text
                params.学校CD = hdn学校CD.Text
                params.担当CD = ddl訪問者.SelectedValue
                params.訪問日 = txt日付.Text

                Session(S_Visit_Selected_History) = params
                btnNew.Visible = True
                btnDel.Visible = True
                hdnIsEditMode.Value = "1"

                btnUpdate.Text = "更新"
                btnUpdate.OnClientClick = "return confirm('更新します。よろしいですか？');"
                _isUpdateMode = True
                lblMessage.Text = "登録しました。"

                If (Not ddl訪問者.SelectedValue.Equals(Convert.ToString(Session(S_COM_UserCD)))) Then
                    btnDel.Enabled = False
                    btnSearchSchool.Disabled = True
                    btnUpdate.Enabled = False

                    '文字色調整
                    setDisabledBtnColor(is更新使用不可:=True, is削除使用不可:=True, is学校選択不可:=True)
                    
                End If
                lbl閲覧ログ.Text = "既読"
                lblMail送信.Text = "未送信"
            End If

            Set学校訪問履歴()
        Catch ex As System.Data.SqlClient.SqlException
            Dim msg As String
            If ex.Number = 2627 Then
                msg = "同じ学校・日付の訪問履歴が既に登録されています。"
            Else
                msg = "データベースでエラーが発生しました。"
            End If

            CustomValidator1.ErrorMessage = msg
            CustomValidator1.IsValid = False
            Return
        End Try

        lblMessage.Visible = True
    End Sub

    ''' <summary>
    ''' 削除ボタンクリックイベント
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    Protected Sub btnDel_Click(sender As Object, e As EventArgs)
        ExecuteDelete()
    End Sub

    ''' <summary>
    ''' 規定のValidationでチェックできない入力チェックイベント(バイト数など)
    ''' </summary>
    ''' <param name="source"></param>
    ''' <param name="args"></param>
    Protected Sub CustomValidator1_ServerValidate(source As Object, args As ServerValidateEventArgs)
        '面談者のバイト数チェック
        Dim byteCount As Integer = Encoding.GetEncoding("shift_jis").GetByteCount(txt面談者.Text)
        Dim msg As String
        If byteCount > 50 Then
            msg = "面談者は全角25文字以内で入力してください。"
            CustomValidator1.ErrorMessage = msg
            args.IsValid = False
            Return
        End If

        byteCount = Encoding.GetEncoding("shift_jis").GetByteCount(txt報告詳細.Text)
        If byteCount > 1000 Then
            msg = "報告詳細は全角500文字以内で入力してください。"
            CustomValidator1.ErrorMessage = msg
            args.IsValid = False
            Return
        End If

        '面談時間チェック
        If Not String.IsNullOrEmpty(ddl_開始時間.SelectedValue) Or Not String.IsNullOrEmpty(ddl_開始分.SelectedValue) Or _
            Not String.IsNullOrEmpty(ddl_終了時間.SelectedValue) Or Not String.IsNullOrEmpty(ddl_終了分.SelectedValue) Then
            Dim cvttimeS As DateTime
            Dim cvttimeE As DateTime
            If DateTime.TryParse(txt日付.Text & " " & ddl_開始時間.SelectedValue & ":" & ddl_開始分.SelectedValue, cvttimeS) And
               DateTime.TryParse(txt日付.Text & " " & ddl_終了時間.SelectedValue & ":" & ddl_終了分.SelectedValue, cvttimeE) Then
                If cvttimeS >= cvttimeE Then
                    msg = "面談時間が矛盾しています。"
                    CustomValidator1.ErrorMessage = msg
                    args.IsValid = False
                    Return
                End If
            Else
                msg = "面談時間の入力が不正です。"
                CustomValidator1.ErrorMessage = msg
                args.IsValid = False
                Return
            End If
        End If

    End Sub

#Region "資料関連"
    ''' <summary>
    ''' (資料)追加ボタンクリックイベント
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    Protected Sub btnAddDoc_Click(sender As Object, e As EventArgs)
        If ddl資料.SelectedIndex < 0 OrElse String.IsNullOrEmpty(ddl資料.SelectedValue) Then
            Return
        End If

        For Each nowItem As ListItem In lb資料.Items
            If nowItem.Value = ddl資料.SelectedValue Then
                Return
            End If
        Next

        Dim item As New ListItem()
        item.Value = ddl資料.SelectedValue
        item.Text = ddl資料.SelectedItem.Text
        lb資料.Items.Add(item)
    End Sub

    ''' <summary>
    ''' 資料削除クリックイベント
    ''' </summary>
    ''' <param name="sender"></param>
    ''' <param name="e"></param>
    Protected Sub btnDelDoc_Click(sender As Object, e As EventArgs)
        If lb資料.SelectedIndex < 0 Then
            Return
        End If

        lb資料.Items.RemoveAt(lb資料.SelectedIndex)
    End Sub
#End Region

#End Region

#Region "ユーザメソッド"
    ''' <summary>
    ''' 既読処理
    ''' </summary>
    Private Sub ExecuteRead()
        学校訪問_既読処理(_selectedParam.分類CD, _selectedParam.学校CD, _selectedParam.担当CD, _selectedParam.訪問日, Convert.ToString(Session(S_COM_UserCD)))
        lbl閲覧ログ.Text = "既読"
    End Sub

    ''' <summary>
    ''' ヘッダーの学校情報表示処理
    ''' </summary>
    Private Sub SetHeaderInfo()
        If String.IsNullOrEmpty(hdn分類CD.Text) Or String.IsNullOrEmpty(hdn学校CD.Text) Then
            'tblHeaderInfo.Visible = False
            tabMain.Style.Add("display", "none")
            fv学校基本情報.Visible = False
            div過去履歴.Visible = False
            Return
        Else
            'tblHeaderInfo.Visible = True
            tabMain.Style.Remove("display")
            fv学校基本情報.Visible = True
            div過去履歴.Visible = True
        End If

        Set学校基本情報()
        Set学校訪問履歴()
        Set3学年生徒数()
        Set入学者実績()
        Setイベント参加状況()
    End Sub

    ''' <summary>
    ''' 訪問履歴削除処理
    ''' </summary>
    Private Sub ExecuteDelete()
        Using spm As New StoredProcedureManager("学校_訪問履歴_DELETE")
            spm.AddPrmIn("@分類CD", Data.SqlDbType.VarChar, _selectedParam.分類CD)
            spm.AddPrmIn("@学校CD", Data.SqlDbType.VarChar, _selectedParam.学校CD)
            spm.AddPrmIn("@担当CD", Data.SqlDbType.VarChar, _selectedParam.担当CD)
            spm.AddPrmIn("@訪問日", Data.SqlDbType.DateTime, _selectedParam.訪問日)
            spm.Exec()
        End Using

        Session.Remove(S_Visit_Selected_History)

        '選択していたIndexだけ削除する
        If Session(S_Visit_Search_Param) IsNot Nothing Then
            Dim searchParam As SearchVisitParam = CType(Session(S_Visit_Search_Param), SearchVisitParam)
            searchParam.SelectedIndex = -1
            Session(S_Visit_Search_Param) = searchParam
        End If

        Session(S_Visit_ShowBackButton) = btnBack.Visible
        Response.Redirect(Request.RawUrl.ToString)
    End Sub

    ''' <summary>
    ''' (検索コントロールからデータ選択時)選択データの表示処理
    ''' </summary>
    Private Sub SetSelectedValue()
        Dim ds As DataSet
        Using spm As New StoredProcedureManager("学校_訪問履歴_単体_SELECT")
            spm.AddPrmIn("@分類CD", SqlDbType.VarChar, _selectedParam.分類CD)
            spm.AddPrmIn("@学校CD", SqlDbType.VarChar, _selectedParam.学校CD)
            spm.AddPrmIn("@担当CD", SqlDbType.VarChar, _selectedParam.担当CD)
            spm.AddPrmIn("@訪問日", SqlDbType.DateTime, _selectedParam.訪問日)
            spm.AddPrmIn("@利用者", SqlDbType.VarChar, Session(S_COM_UserCD))
            spm.Fill()
            ds = spm.ds()
        End Using

        Dim tblMain As DataTable = ds.Tables(0)
        Dim tblDoc As DataTable = ds.Tables(1)

        Dim mainRow As DataRow = tblMain.Rows(0)
        lbl閲覧ログ.Text = Convert.ToString(mainRow("閲覧ログ"))

        If lbl閲覧ログ.Text.Equals("未読") Then
            'ClientScript.RegisterStartupScript(Me.GetType(), "key", "ConfirmRead();", True)
            hdnExecuteRead.Value = "1"
        End If

        lblMail送信.Text = Convert.ToString(mainRow("送信済"))
        hdn分類CD.Text = Convert.ToString(mainRow("分類CD"))
        hdn学校CD.Text = Convert.ToString(mainRow("学校CD"))
        txt日付.Text = Convert.ToDateTime(mainRow("訪問日")).ToString("yyyy/MM/dd")

        '面談開始時間～終了時間を設定
        If Not String.IsNullOrEmpty(Convert.ToString(mainRow("開始時間"))) Then
            Dim str開始時間 As String = Right("0000" + Convert.ToString(mainRow("開始時間")), 4).Substring(0, 2)
            Dim str開始分 As String = Right("0000" + Convert.ToString(mainRow("開始時間")), 4).Substring(2, 2)

            If ddl_開始時間.Items.FindByValue(str開始時間) Is Nothing Then
                ddl_開始時間.Items.Add(New ListItem(str開始時間, str開始時間))
            End If
            If ddl_開始分.Items.FindByValue(str開始分) Is Nothing Then
                ddl_開始分.Items.Add(New ListItem(str開始分, str開始分))
            End If

            ddl_開始時間.SelectedValue = str開始時間
            ddl_開始分.SelectedValue = str開始分

        End If

        If Not String.IsNullOrEmpty(Convert.ToString(mainRow("終了時間"))) Then
            Dim str終了時間 As String = Right("0000" + Convert.ToString(mainRow("終了時間")), 4).Substring(0, 2)
            Dim str終了分 As String = Right("0000" + Convert.ToString(mainRow("終了時間")), 4).Substring(2, 2)

            If ddl_終了時間.Items.FindByValue(str終了時間) Is Nothing Then
                ddl_終了時間.Items.Add(New ListItem(str終了時間, str終了時間))
            End If
            If ddl_終了分.Items.FindByValue(str終了分) Is Nothing Then
                ddl_終了分.Items.Add(New ListItem(str終了分, str終了分))
            End If

            ddl_終了時間.SelectedValue = str終了時間
            ddl_終了分.SelectedValue = str終了分

        End If

        txt分.Text = Convert.ToString(mainRow("時間"))
        ddl区分.SelectedValue = Convert.ToString(mainRow("区分"))
        ddl面談.SelectedValue = Convert.ToString(mainRow("面談"))
        txt面談者.Text = Convert.ToString(mainRow("面談者"))
        ddl面談.SelectedValue = Convert.ToString(mainRow("面談"))
        txt役職.Text = Convert.ToString(mainRow("役職"))
        chk資料1.Checked = Convert.ToBoolean(mainRow("資料1"))
        chk資料2.Checked = Convert.ToBoolean(mainRow("資料2"))
        txt報告詳細.Text = Convert.ToString(mainRow("特記事項"))

        Dim tantoCd As String = Convert.ToString(mainRow("担当CD"))
        If ddl訪問者.Items.FindByValue(mainRow("担当CD")) Is Nothing Then
            Dim item As New ListItem
            item.Text = tantoCd
            item.Value = tantoCd
            ddl訪問者.Items.Add(item)
        End If
        ddl訪問者.SelectedValue = mainRow("担当CD")

        For Each row As DataRow In tblDoc.Rows
            Dim cd As String = Convert.ToString(row("送付CD"))
            Dim item As ListItem = ddl資料.Items.FindByValue(cd)
            If item Is Nothing Then
                item = New ListItem
                item.Value = cd
                item.Text = String.Format("コード不明(コード:{0})", cd)
            End If
            lb資料.Items.Add(item)
        Next

        If Session(S_COM_UserCD) IsNot Nothing Then
            Dim userCd As String = Convert.ToString(Session(S_COM_UserCD))
            If userCd = ddl訪問者.SelectedValue Then
                btnUpdate.Enabled = True
                btnDel.Enabled = True
                btnSearchSchool.Disabled = False
            Else
                btnUpdate.Enabled = False
                btnDel.Enabled = False
                btnSearchSchool.Disabled = True

                '文字色調整
                setDisabledBtnColor(is更新使用不可:=True, is削除使用不可:=True, is学校選択不可:=True)
            End If
        Else
            btnUpdate.Enabled = False
            btnDel.Enabled = False
            btnSearchSchool.Disabled = True

            '文字色調整
            setDisabledBtnColor(is更新使用不可:=True, is削除使用不可:=True, is学校選択不可:=True)
        End If

    End Sub

    ''' <summary>
    ''' 学校基本情報
    ''' </summary>
    Private Sub Set学校基本情報()
        WebControlsUtil.DeclareSP(sds学校基本情報, "学校_単体_SELECT")
        With sds学校基本情報
            .SelectParameters.Add("分類CD", hdn分類CD.Text)
            .SelectParameters.Add("学校CD", hdn学校CD.Text)
        End With

        fv学校基本情報.DataBind()

    End Sub

    Private Sub Set学校訪問履歴()
        WebControlsUtil.DeclareSP(sds過去履歴, "学校_訪問履歴リスト_SELECT")

        Dim nowDate As DateTime = DateTime.Now
        Dim pastDate As DateTime = DateTime.Now.AddYears(-1)

        With sds過去履歴
            .SelectParameters.Add("未読", "")
            .SelectParameters.Add("日付01", pastDate.ToString("yyyy/MM/dd"))
            .SelectParameters.Add("日付02", nowDate.ToString("yyyy/MM/dd"))
            .SelectParameters.Add("区分", "")
            .SelectParameters.Add("担当CD", "")
            .SelectParameters.Add("学校名", "")
            .SelectParameters.Add("利用者", "")
            .SelectParameters.Add("指定校", "")
            .SelectParameters.Add("県CD", "")
            .SelectParameters.Add("分類CD", hdn分類CD.Text)
            .SelectParameters.Add("新着", "0")
            .SelectParameters.Add("学校CD", hdn学校CD.Text)
        End With

        gv過去履歴.DataBind()

    End Sub

    '' <summary>
    '' 生徒数グリッドをセット
    '' </summary>
    Private Sub Set3学年生徒数()
        WebControlsUtil.DeclareSP(sds生徒数, "学校_生徒数_SELECT")
        With sds生徒数
            .SelectParameters.Add("分類CD", hdn分類CD.Text)
            .SelectParameters.Add("学校CD", hdn学校CD.Text)
        End With

        gv生徒数.DataBind()
    End Sub

    ''' <summary>
    ''' 入学者実績をセット
    ''' </summary>
    Private Sub Set入学者実績()
        WebControlsUtil.DeclareSP(sds入学者実績, "学校_入学者実績_SELECT")
        With sds入学者実績
            .SelectParameters.Add("分類CD", hdn分類CD.Text)
            .SelectParameters.Add("学校CD", hdn学校CD.Text)
        End With

        gv入学者実績.DataBind()
    End Sub

    ''' <summary>
    ''' イベント参加状況をセット
    ''' </summary>
    Private Sub Setイベント参加状況()
        WebControlsUtil.DeclareSP(sdsイベント参加状況, "学校_イベント参加状況_SELECT")
        With sdsイベント参加状況
            .SelectParameters.Add("分類CD", hdn分類CD.Text)
            .SelectParameters.Add("学校CD", hdn学校CD.Text)
        End With

        gvイベント参加状況.DataBind()
    End Sub

    ''' <summary>
    ''' 使用不可ボタンの文字色を変更
    ''' </summary>
    ''' <param name="is新規使用不可"></param>
    ''' <param name="is更新使用不可"></param>
    ''' <param name="is削除使用不可"></param>
    ''' <param name="is学校選択不可"></param>
    ''' <remarks></remarks>
    Private Sub setDisabledBtnColor(Optional ByVal is新規使用不可 As Boolean = False, _
                                    Optional ByVal is更新使用不可 As Boolean = False, _
                                    Optional ByVal is削除使用不可 As Boolean = False, _
                                    Optional ByVal is学校選択不可 As Boolean = False)
        If is新規使用不可 Then
            btnNew.CssClass = "button"
            btnNew.ForeColor = Drawing.Color.Gray
        End If

        If is更新使用不可 Then
            btnUpdate.CssClass = "button"
            btnUpdate.ForeColor = Drawing.Color.Gray
        End If

        If is削除使用不可 Then
            btnDel.CssClass = "button"
            btnDel.ForeColor = Drawing.Color.Gray
        End If

        If is学校選択不可 Then
            btnSearchSchool.Style("color") = "Gray"
        End If
    End Sub
#End Region


End Class
