Public Class Frm_V20091231_Myoun
    Dim isCopy As Boolean = False
    Dim Init As Boolean = False
    Dim SrcDrv As DataRowView
    Dim SelectedZone As String = ""
    Dim SelectedZoneName As String = ""
#Region "data Base 변경여부및 적용방법"
    '''변경된내용을적용한다.
    Public Overrides Function AcceptChanged() As Boolean
        bs.EndEdit()
        Dim BaseDS As DataSet = CType(bs.DataSource, DataSet)
        Dim BaseDT As DataTable = BaseDS.Tables(bs.DataMember)
        BaseDT.AcceptChanges()
        Return True
    End Function
    '''변경된내용이있다면 취소한다.
    Public Overrides Function RejectChanged() As Boolean
        Dim BaseDS As DataSet = CType(bs.DataSource, DataSet)
        Dim BaseDT As DataTable = BaseDS.Tables(bs.DataMember)
        BaseDT.RejectChanges()
        Return True
    End Function
    '''데이터에변형이있었는가?
    Public Overrides Function HasChanged() As Boolean
        bs.EndEdit()
        Dim BaseDS As DataSet = CType(bs.DataSource, DataSet)
        Dim BaseDT As DataTable = BaseDS.Tables(bs.DataMember)
        Dim ChangeDT As DataTable = BaseDT.GetChanges
        If Not ChangeDT Is Nothing Then Return True
        Return False
    End Function
    '''기본데이터테이블을 반환합니다.
    Public Function DT() As DataTable
        Dim BaseDS As DataSet = CType(bs.DataSource, DataSet)
        Return BaseDS.Tables(bs.DataMember)
    End Function
#End Region
    Private Sub MdiMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        
        'MdiMain.Toggle_Menu_Color(MdiMain.E_MenuIdx.입력면)
        '//프로필 관련
        If Prj.UserAuthType = "ADMIN" OrElse Prj.UserAuthType = "BOTH" OrElse Prj.UserAuthType = "BOTH2" OrElse Prj.UserAuthType = "BOTH1" Then  '//2011.03.08 추가
            Me.ToolStripLabel1.Visible = True
            Me.ToolStripLabel3.Visible = True
            Me.ToolStripLabel5.Visible = True
            Me.lbl_cnt1.Visible = True
            Me.lbl_cnt2.Visible = True
            Me.lbl_cnt3.Visible = True
        Else
            Me.ToolStripLabel1.Visible = False
            Me.ToolStripLabel3.Visible = False
            Me.ToolStripLabel5.Visible = False
            Me.lbl_cnt1.Visible = False
            Me.lbl_cnt2.Visible = False
            Me.lbl_cnt3.Visible = False
        End If
        '//공유데이터셋에 연결한다.
        Me.bs.DataSource = DSET
        Me.bszone.DataSource = DSET
        '//입력면
        AddHandler DSET.tbl_myoun.TableNewRow, AddressOf AddNewDataRow_new
        AddHandler DSET.tbl_myoun.ColumnChanged, AddressOf AddNewDataRow_Zone_Changed
        '//콤보컨트롤 바인딩
        Binding_Zone()
        '//모든컨트롤의 cTrl_enter 를 추가합니다
        BindProperty(CType(Me.SplitContainer1.Panel2.Controls, Control.ControlCollection))
        Me.Init = True
        Try
            Me.bszone.Position = CEnergy.ARINCLASS.Read_LastPos_Frm(Me.Name & "1")
        Catch ex As Exception
            Me.bszone.MoveFirst()
        End Try
        '//마지막저장된 존의이름이 일치하면 면의 레코드를 이동
        Dim LastZoneName As String = CEnergy.ARINCLASS.Read_LastZone(Me.Name)
        Dim DRv As DataRowView = Me.bszone.Current
        If Not DRv Is Nothing Then
            Dim CurZoneName As String = DRv("설명").ToString
            If LastZoneName = CurZoneName Then
                Try
                    Me.bs.Position = CEnergy.ARINCLASS.Read_LastPos_Frm(Me)
                Catch ex As Exception
                    Me.bs.MoveFirst()
                End Try
            Else
                Me.bs.MoveFirst()
            End If
        Else
            Me.bs.MoveFirst()
        End If
        bs_CurrentChanged(sender, e)
        Validate_Control()
    End Sub
    Private Sub AddNewDataRow_new(ByVal sender As Object, ByVal e As System.Data.DataTableNewRowEventArgs)
        '//존분류값가져오기
        'If Me.FilterMode Then
        '    If MsgBox("현재 필터적용상태에서는 추가할 수 없습니다" & vbCrLf & "필터상태를 해제하시겠습니까?", MsgBoxStyle.Information Or MsgBoxStyle.OkCancel, "확인") <> MsgBoxResult.Ok Then
        '        Return  '//필터상태에서는 추가불가 / 다른존의 값이 들어갈수있음(방지코드)
        '    Else
        '        Me.FilterMode = False
        '        MsgBox("추가할 존을 다시 선택하세요", MsgBoxStyle.Information, "확인")
        '        Return
        '    End If
        'End If
        If Me.SelectedZone = "" Then
            'MsgBox("선택된 존이없으므로 추가할 수 없습니다!", MsgBoxStyle.Critical, "확인")
            Return
        End If
        Dim Zone As String = Me.SelectedZone
        e.Row.Item("존분류") = Zone
        e.Row.Item("code") = GetMaxCode(DSET.tbl_myoun)
        'e.Row.Item("열관류율2") = Me.cmb_gubun.Text  '//선택된 그것의 값이 들어가도록..필드명만찾아서 입력하세요.
        Try
            If Me.cmb_gubun.SelectedIndex = -1 OrElse Me.cmb_gubun.Text = "(없음)" Then
                e.Row.Item("설명") = bs.Count + 1 & "_" & Me.SelectedZoneName
            Else
                e.Row.Item("설명") = Me.cmb_gubun.Text & "_" & Me.SelectedZoneName
            End If
        Catch ex As Exception
            e.Row.Item("설명") = Me.SelectedZoneName
        End Try
        'Select Case Me.cmb_gubun.Text
        '    Case "외벽"
        '        e.Row.Item("설명") = DRv("설명").ToString & "_외벽" & bs.Count + 1
        '    Case "외부창"
        '        e.Row.Item("설명") = DRv("설명").ToString & "_외부창" & bs.Count + 1
        '    Case "내벽"
        '        e.Row.Item("설명") = DRv("설명").ToString & "_내벽" & bs.Count + 1
        '    Case "간벽"
        '        e.Row.Item("설명") = DRv("설명").ToString & "_간벽" & bs.Count + 1
        '    Case "내부창"
        '        e.Row.Item("설명") = DRv("설명").ToString & "_내부창" & bs.Count + 1
        'End Select
    End Sub
#Region "Control_Enter"
    Private Sub BindProperty(ByVal Ctl As Control.ControlCollection)
        For Each C As Control In Ctl
            If C.Controls.Count > 1 Then
                BindProperty(C.Controls)
            Else
                If C.GetType.ToString.ToUpper.IndexOf("MYTB") <> -1 Then
                    AddHandler CType(C, MyTb).KeyDown, AddressOf TextBOx_KeyDown
                ElseIf C.GetType.ToString.ToUpper.IndexOf("MYCMB") <> -1 Then
                    AddHandler CType(C, MyCmb).KeyDown, AddressOf Cmd_KeyDown
                    AddHandler CType(C, MyCmb).MouseHover, AddressOf ComboBox_MouseHover
                End If
            End If
        Next
    End Sub
    Private Sub TextBOx_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)
        If e.KeyCode = Keys.Enter AndAlso e.Control Then
            Try
                Dim Field As String = (CType(sender, MyTb).DataBindings.Item("text").BindingMemberInfo.BindingField)
                For Each Dr As DataRow In Dt.Select(Me.bs.Filter, "")
                    Dr(Field) = CType(sender, MyTb).Text
                Next
                Work_msg_timer("모든값이 변경되었습니다", 25)
            Catch ex As Exception
            End Try
        End If
    End Sub
    Private Sub Cmd_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)
        If e.KeyCode = Keys.Enter AndAlso e.Control Then
            Try
                Dim Field As String = (CType(sender, MyCmb).DataBindings.Item("selectedvalue").BindingMemberInfo.BindingField)
                For Each Dr As DataRow In Dt.Select(Me.bs.Filter, "")
                    Dr(Field) = CType(sender, MyCmb).SelectedValue
                Next
                Work_msg_timer("모든값이 변경되었습니다", 25)
            Catch ex As Exception
            End Try
        End If
    End Sub
    Private Sub ComboBox_MouseHover(ByVal sender As Object, ByVal e As System.EventArgs)
        If CType(sender, ComboBox).SelectedIndex = -1 Then Return
        Me.ToolTip1.SetToolTip(CType(sender, ComboBox), CType(sender, ComboBox).DataBindings("selectedvalue").BindingMemberInfo.BindingMember & vbCrLf & CType(sender, ComboBox).SelectedValue.ToString)
    End Sub
#End Region
#Region "ComboxBox Binding"
    Private Sub AddNewDataRow_Zone_Changed(ByVal sender As Object, ByVal e As System.Data.DataColumnChangeEventArgs)
        '//값이바뀐다면 조명의실지수값을 재계산한다.
        'MsgBox(e.Column.ToString)
        Select Case e.Column.Caption.Trim
            Case "건축부위방식"
                If e.ProposedValue.ToString = "내벽" OrElse e.ProposedValue.ToString = "간벽" OrElse e.ProposedValue.ToString = "내부창" Then
                    'e.Row("방위") = "일사없음"
                End If
                Me.bs.EndEdit()
        End Select
    End Sub
    Private Sub MdiMain_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
        CEnergy.ARINCLASS.SaveLoad_FrmSetting(Me, Me.bs.Position, True)
        CEnergy.ARINCLASS.Save_LastPos_Frm(Me.Name & "1", Me.bszone.Position)
        CEnergy.ARINCLASS.Save_LastZone(Me.Name, Me.SelectedZoneName) '//선택된 존의 이름을 저장
    End Sub
    Private Sub Frm_V20091231_Zone_MouseWheel(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseWheel
        If e.Delta < 0 Then
            If Me.bs.Position < Me.bs.Count Then Me.bs.Position += 1
        Else
            If Me.bs.Position > 0 Then Me.bs.Position -= 1
        End If
        Me.Validate()
        My.Application.DoEvents()
    End Sub
    Private Sub MdiMain_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
        Select Case e.KeyCode
            Case Keys.F12
        End Select
    End Sub
    Private Function GetMaxCode(ByVal dt As DataTable) As String
        Try
            Dim Dr As DataRow = dt.Select("", "code desc")(0)
            Return Format(CInt(Dr("code")) + 1, "0000")
        Catch ex As Exception
            Return "0001"
        End Try
    End Function
    Private Sub Cmb_DeleteVal(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)
        If e.KeyCode = Keys.Delete Then
            CType(sender, ComboBox).SelectedValue = ""
        End If
    End Sub
    Private Sub ToolStripButton48_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_add.Click
        If Not EndEdit(Me.bs) Then Return
        'If Me.FilterMode Then
        '    If MsgBox("현재 필터적용상태에서는 추가할 수 없습니다" & vbCrLf & "필터상태를 해제하시겠습니까?", MsgBoxStyle.Information Or MsgBoxStyle.OkCancel, "확인") <> MsgBoxResult.Ok Then
        '        Return  '//필터상태에서는 추가불가 / 다른존의 값이 들어갈수있음(방지코드)
        '    Else
        '        Me.FilterMode = False
        '        MsgBox("추가할 존을 다시 선택하세요", MsgBoxStyle.Information, "확인")
        '        Return
        '    End If
        'End If
        If Me.SelectedZone = "" Then
            MsgBox("선택된 존이없으므로 추가할 수 없습니다.", MsgBoxStyle.Critical, "확인")
            Return
        End If
        '//Me.cmb_gubun.SelectedIndex = 0
        Me.bs.AddNew()
        INitRow(Me.Controls)
        '//추가한후에
        Me.cmb_열관류율.Text = Me.cmb_gubun.Text
        '//이게 콤보넣을떄인데요. 면의형태의 값을.. 어디다가 넣으시게요?
        Dim Dr1() As DS.tbl_ykRow = DSET.tbl_yk.Select("설명='" & Me.cmb_gubun.Text & "'")
        If Dr1.GetUpperBound(0) = 0 Then   '//해당데이터가 찾아졋을경우에
            Dim dr2() As DS.tbl_commonRow = DSET.tbl_common.Select("gubun='1088' and code='" & Dr1(0).면형태 & "'")
            Dim 면형태 As String = dr2(0).name
            Select Case 면형태
                Case "외벽(벽체)"
                    Me.cmb_건축부위방식.Text = "외벽"
                Case "외벽(지붕)"
                    Me.cmb_건축부위방식.Text = "외벽"
                    Me.cmb_방위.Text = "수평"
                Case "외벽(바닥)"
                    Me.cmb_건축부위방식.Text = "외벽"
                    Me.cmb_방위.Text = "일사없음"
                Case "내벽(벽체)"
                    Me.cmb_건축부위방식.Text = "내벽"
                    Me.cmb_방위.Text = "일사없음"
                Case "내벽(지붕)"
                    Me.cmb_건축부위방식.Text = "내벽"
                    Me.cmb_방위.Text = "일사없음"
                Case "내벽(바닥)"
                    Me.cmb_건축부위방식.Text = "내벽"
                    Me.cmb_방위.Text = "일사없음"
                Case "간벽"
                    Me.cmb_건축부위방식.Text = "간벽"
                    Me.cmb_방위.Text = "일사없음"
                Case "외부창", "내부창"
                    If 면형태 = "외부창" Then
                        Me.cmb_건축부위방식.Text = "외부창"
                    Else
                        Me.cmb_건축부위방식.Text = "내부창"
                        Me.cmb_방위.Text = "일사없음"
                    End If
                    Dim Dr As DS.tbl_ykRow = DSET.tbl_yk.Select("code='" & Me.cmb_열관류율.SelectedValue & "'")(0)
                    Me.tb_04.Text = Dr("일사에너지투과율").ToString
                Case Else
                    MsgBox("모르는값 " & Dr1(0).면형태 & "/" & 면형태)
            End Select
        Else
            MsgBox("못찻음")
        End If
    End Sub
    Private Sub ToolStripButton49_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_Del.Click
        'MsgBox(Me.bs.ToString)
        Dbbase.DelCrow(Me.bs, True)
    End Sub
    Private Sub ToolStripButton51_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_cancel.Click
        If Not EndEdit(Me.bs) Then Return
        Data_Cancel(DSET.tbl_profile, Nothing)
    End Sub
    Private Sub Binding_Zone()
        '//구분 콤봅박스
        Me.cmb_gubun.Items.Clear()
        For Each Dr As DS.tbl_ykRow In DSET.tbl_yk.Select("")
            Me.cmb_gubun.Items.Add(Dr.설명)
        Next
        '//콤보의 리스트가없는데 0번 지정하려니 오류난거에요 콤보는 여기서 만들어지니.. 이렇게 해야겟죠
        If Me.cmb_gubun.Items.Count > 0 Then Me.cmb_gubun.SelectedIndex = 0
        Dim bs_건축부위방식 As New BindingSource(DSET, "tbl_common")
        bs_건축부위방식.Filter = "gubun='1067'"
        bs_건축부위방식.Sort = "code"
        Me.cmb_건축부위방식.DataSource = bs_건축부위방식
        cmb_건축부위방식.DisplayMember = "name"
        cmb_건축부위방식.ValueMember = "name"
        Me.cmb_건축부위방식.DataBindings.Add("selectedvalue", Me.bs, "건축부위방식")
        AddHandler cmb_건축부위방식.KeyDown, AddressOf Cmb_DeleteVal
        Dim bs_블라인드유무 As New BindingSource(DSET, "tbl_common")
        bs_블라인드유무.Filter = "gubun='1032'"
        bs_블라인드유무.Sort = "code"
        Me.cmb_블라인드설치유무.DataSource = bs_블라인드유무
        cmb_블라인드설치유무.DisplayMember = "name"
        cmb_블라인드설치유무.ValueMember = "name"
        Me.cmb_블라인드설치유무.DataBindings.Add("selectedvalue", Me.bs, "블라인드유무")
        AddHandler cmb_블라인드설치유무.KeyDown, AddressOf Cmb_DeleteVal
        Dim bs_블라인드위치 As New BindingSource(DSET, "tbl_common")
        bs_블라인드위치.Filter = "gubun='1068'"
        bs_블라인드위치.Sort = "code"
        Me.cmb_블라인드위치.DataSource = bs_블라인드위치
        cmb_블라인드위치.DisplayMember = "name"
        cmb_블라인드위치.ValueMember = "name"
        Me.cmb_블라인드위치.DataBindings.Add("selectedvalue", Me.bs, "블라인드위치")
        AddHandler cmb_블라인드위치.KeyDown, AddressOf Cmb_DeleteVal
        Dim bs_방위 As New BindingSource(DSET, "tbl_common")
        bs_방위.Filter = "gubun='1007'"
        bs_방위.Sort = "code"
        Me.cmb_방위.DataSource = bs_방위
        cmb_방위.DisplayMember = "name"
        cmb_방위.ValueMember = "name"
        Me.cmb_방위.DataBindings.Add("selectedvalue", Me.bs, "방위")
        AddHandler cmb_방위.KeyDown, AddressOf Cmb_DeleteVal
        Dim bs_블라인드종류 As New BindingSource(DSET, "tbl_common")
        bs_블라인드종류.Filter = "gubun='1069'"
        bs_블라인드종류.Sort = "code"
        Me.cmb_블라인드종류.DataSource = bs_블라인드종류
        cmb_블라인드종류.DisplayMember = "name"
        cmb_블라인드종류.ValueMember = "name"
        Me.cmb_블라인드종류.DataBindings.Add("selectedvalue", Me.bs, "블라인드빛종류")
        AddHandler cmb_블라인드종류.KeyDown, AddressOf Cmb_DeleteVal
        Dim bs_블라인드색상 As New BindingSource(DSET, "tbl_common")
        bs_블라인드색상.Filter = "gubun='1070'"
        bs_블라인드색상.Sort = "code"
        Me.cmb_블라인드색상.DataSource = bs_블라인드색상
        cmb_블라인드색상.DisplayMember = "name"
        cmb_블라인드색상.ValueMember = "name"
        Me.cmb_블라인드색상.DataBindings.Add("selectedvalue", Me.bs, "블라인드색상")
        AddHandler cmb_블라인드색상.KeyDown, AddressOf Cmb_DeleteVal
        Dim bs_블라인드각도 As New BindingSource(DSET, "tbl_common")
        bs_블라인드각도.Filter = "gubun='1071'"
        bs_블라인드각도.Sort = "code"
        Me.cmb_블라인드각도.DataSource = bs_블라인드각도
        cmb_블라인드각도.DisplayMember = "name"
        cmb_블라인드각도.ValueMember = "name"
        Me.cmb_블라인드각도.DataBindings.Add("selectedvalue", Me.bs, "블라인드각도")
        AddHandler cmb_블라인드각도.KeyDown, AddressOf Cmb_DeleteVal
        Dim bs_존분류 As New BindingSource(DSET, "tbl_zone")
        bs_존분류.Sort = "code"
        Me.cmb_존분류.DataSource = bs_존분류
        cmb_존분류.DisplayMember = "설명"
        cmb_존분류.ValueMember = "code"
        Me.cmb_존분류.DataBindings.Add("selectedvalue", Me.bs, "존분류")
        AddHandler cmb_존분류.KeyDown, AddressOf Cmb_DeleteVal
        Dim bs_대차존 As New BindingSource(DSET, "tbl_zone")
        bs_대차존.Sort = "code"
        Me.cmb_대차존.DataSource = bs_대차존
        cmb_대차존.DisplayMember = "설명"
        cmb_대차존.ValueMember = "code"
        Me.cmb_대차존.DataBindings.Add("selectedvalue", Me.bs, "대차대조존")
        AddHandler cmb_대차존.KeyDown, AddressOf Cmb_DeleteVal
        '//존연결해야한다.
        '//여긴괜찮아요 보이는게아네요 
        Dim bs_열관류율2 As New BindingSource(DSET, "tbl_yk")
        bs_열관류율2.Sort = "code"
        Me.cmb_열관류율.DataSource = bs_열관류율2
        cmb_열관류율.DisplayMember = "설명"
        cmb_열관류율.ValueMember = "code"
        Me.cmb_열관류율.DataBindings.Add("selectedvalue", Me.bs, "열관류율2")
        AddHandler cmb_열관류율.KeyDown, AddressOf Cmb_DeleteVal
    End Sub
#End Region
    ''' 
    ''' 콤보박스등에의한 개체의 활성화여부를 확인
    ''' 
    ''' 
    Private Sub Validate_Control()
        If Not Init Then Return
        If Me.isCopy Then Return
        Try
            If Me.cmb_블라인드설치유무.Text = "유" Then
                Me.cmb_블라인드위치.Enabled = True
                Me.cmb_블라인드각도.Enabled = True
                Me.cmb_블라인드색상.Enabled = True
                Me.cmb_블라인드종류.Enabled = True
            Else
                Me.cmb_블라인드위치.Enabled = False
                Me.cmb_블라인드각도.Enabled = False
                Me.cmb_블라인드색상.Enabled = False
                Me.cmb_블라인드종류.Enabled = False
            End If
            Me.bs.EndEdit()
        Catch ex As Exception
            Me.cmb_블라인드설치유무.SelectedIndex = 1
        End Try
        Try
            If Me.cmb_열관류율.Text = "(없음)" OrElse Me.cmb_열관류율.Text = "" Then
                Me.tb_03.Enabled = True
                Me.cmb_건축부위방식.Enabled = True
            Else
                Me.tb_03.Enabled = False
                Me.cmb_건축부위방식.Enabled = False
            End If
        Catch ex As Exception
        End Try
        Try
            If Me.cmb_건축부위방식.Text = "내벽" OrElse Me.cmb_건축부위방식.Text = "간벽" Then
                'Me.cmb_방위.Text = "(없음)" '=========================2011.05.25 수정
                Me.cmb_방위.Enabled = False
            Else
                Me.cmb_방위.Enabled = True
            End If
            bs.EndEdit()
        Catch ex As Exception
        End Try
        Try
            If Me.cmb_건축부위방식.Text = "외부창" OrElse Me.cmb_건축부위방식.Text = "내부창" Then
                Me.tb_04.Enabled = True
                Me.tb_05.Enabled = True
                Me.tb_06.Enabled = True
            Else
                Me.tb_04.Enabled = False
                Me.tb_05.Enabled = False
                Me.tb_06.Enabled = False
            End If
        Catch ex As Exception
        End Try
        Display_info()
        Try
            If Me.cmb_건축부위방식.Text = "외부창" OrElse Me.cmb_건축부위방식.Text = "내부창" Then
                Me.GroupBox3.Enabled = True
                Me.GroupBox4.Enabled = True
            Else
                Me.GroupBox3.Enabled = False
                Me.GroupBox4.Enabled = False
            End If
        Catch ex As Exception
        End Try
    End Sub
    Private Sub Display_info()
        Dim WallArea As Decimal, WindowArea As Decimal
        WallArea = 0
        WindowArea = 0
        Try
            For Each Dr입력면 As DS.tbl_myounRow In DSET.tbl_myoun.Select("건축부위방식='외벽' or 건축부위방식 ='외부창'")
                If Dr입력면.건축부위방식 = "외벽" Then
                    If Dr입력면.방위 <> "수평" AndAlso Dr입력면.방위 <> "일사없음" AndAlso Dr입력면.방위 <> "(없음)" Then
                        WallArea = WallArea + TOSG(Dr입력면.건축부위면적)
                    End If
                Else
                    If Dr입력면.방위 <> "수평" AndAlso Dr입력면.방위 <> "일사없음" AndAlso Dr입력면.방위 <> "(없음)" Then
                        WindowArea = WindowArea + TOSG(Dr입력면.건축부위면적)
                    End If
                End If
            Next
            'For Each Dr입력면 As DS.tbl_myounRow In DSET.tbl_myoun.Select("건축부위방식='외부창'")
            '    WindowArea = WindowArea + TOSG(Dr입력면.건축부위면적)
            'Next
        Catch ex As Exception
        End Try
        lbl_cnt1.Text = TOST(WallArea) & "m2"
        lbl_cnt2.Text = TOST(WindowArea) & "m2"
        Dim r As Decimal
        Try
            r = WindowArea / (WallArea + WindowArea) * 100
        Catch ex As Exception
            r = 0 '//게삭과정에 오류가낫다면 0처리합니다.
        End Try
        If WallArea + WindowArea = 0 Then
            lbl_cnt3.Text = "0%"
        Else
            lbl_cnt3.Text = r.ToString("N1") & "%" '//N1은 소수점 1자리 N0ㄴ소수점 없음 N다음에 숫자가 소수점 자릿수에요
        End If
    End Sub
    Private Sub cmb_블라인드설치유무_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmb_블라인드설치유무.SelectedIndexChanged
        Validate_Control()
    End Sub
    Private Sub cmb_건축부위방식_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles cmb_건축부위방식.KeyDown
        If e.KeyCode = Keys.V And e.Control Then
            Me.isCopy = True
            Dim StartPos As Integer = Me.bs.Position  '//현재 바인딩셋의 위치정보를 확인
            Dim CurPos As Integer = StartPos
            e.Handled = True
            e.SuppressKeyPress = False
            '//클립보드붙여넣기
            Dim CB() As String = My.Computer.Clipboard.GetText.Split(CChar(vbCrLf))
            If CB.GetUpperBound(0) <> 18 Then
                MsgBox("붙여넣기가 호환되는 데이터가 아닙니다.", MsgBoxStyle.Information, "확인")
                Return
            End If
            '//면개의 입력면이 존재하는지확인한다.
            For ii As Integer = 0 To CType(CB(0).Split(CChar(vbTab)), String()).GetUpperBound(0)
                If Me.bs.Count = 0 OrElse ii > 0 Then Me.BT_ADD.PerformClick() '//한줄추가
                Dim Cnt As Short = 0
                For i As Integer = 0 To CB.GetUpperBound(0)
                    Select Case i
                        Case 0 '//설명
                            CType(Me.bs.Current, DataRowView)("설명") = CB(i).Split(CChar(vbTab))(ii).Trim
                        Case 0 + 3  '//사용프로필 앞에 두개를 숫자4자로변환
                            If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
                                Me.cmb_건축부위방식.SelectedIndex = 0
                            Else
                                Me.cmb_건축부위방식.Text = CB(i).Split(CChar(vbTab))(ii).Trim
                            End If
                            ' Me.cmb_건축부위방식.Text = CStr(IIf(CB(i).Trim = "", "0", CB(i).Trim))
                        Case 1 + 3  '//공란
                            If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
                                Me.cmb_방위.SelectedIndex = 0
                            Else
                                Me.cmb_방위.Text = CB(i).Split(CChar(vbTab))(ii).Trim
                            End If
                            'Me.cmb_방위.Text = CStr(IIf(CB(i).Trim = "", "0", CB(i).Trim))
                        Case 2 + 3  '//면적
                            Me.tb_02.Text = CB(i).Split(CChar(vbTab))(ii).Trim
                        Case 3 + 3
                            Me.cmb_열관류율.SelectedIndex = 0  '//사용자입력이므로 사용안함으로 변경
                            Me.tb_03.Text = CB(i).Split(CChar(vbTab))(ii).Trim
                        Case 4 + 3
                            Me.tb_04.Text = CB(i).Split(CChar(vbTab))(ii).Trim
                        Case 5 + 3
                            Me.tb_05.Text = Val(CB(i).Split(CChar(vbTab))(ii).Trim).ToString
                        Case 6 + 3
                            Me.tb_06.Text = Val(CB(i).Split(CChar(vbTab))(ii).Trim).ToString
                        Case 7 + 3
                            If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
                                Me.cmb_블라인드설치유무.SelectedIndex = 0
                            Else
                                Me.cmb_블라인드설치유무.Text = CB(i).Split(CChar(vbTab))(ii).Trim
                            End If
                            'Me.cmb_블라인드설치유무.Text = CStr(IIf(CB(i).Trim = "", "0", CB(i).Trim))
                        Case 8 + 3
                            If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
                                Me.cmb_블라인드위치.SelectedIndex = 0
                            Else
                                Me.cmb_블라인드위치.Text = CB(i).Split(CChar(vbTab))(ii).Trim
                            End If
                            'Me.cmb_블라인드위치.Text = CStr(IIf(CB(i).Trim = "", "0", CB(i).Trim))
                        Case 9 + 3
                            If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
                                Me.cmb_블라인드각도.SelectedIndex = 0
                            Else
                                Me.cmb_블라인드각도.Text = CB(i).Split(CChar(vbTab))(ii).Trim
                            End If
                            'Me.cmb_블라인드각도.Text = CStr(IIf(CB(i).Trim = "", "0", CB(i).Trim))
                        Case 10 + 3
                            If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
                                Me.cmb_블라인드종류.SelectedIndex = 0
                            Else
                                Me.cmb_블라인드종류.Text = CB(i).Split(CChar(vbTab))(ii).Trim
                            End If
                            ' Me.cmb_블라인드종류.Text = CStr(IIf(CB(i).Trim = "", "0", CB(i).Trim))
                        Case 11 + 3
                            If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
                                Me.cmb_블라인드색상.SelectedIndex = 0
                            Else
                                Me.cmb_블라인드색상.Text = CB(i).Split(CChar(vbTab))(ii).Trim
                            End If
                            'Me.cmb_블라인드색상.Text = CStr(IIf(CB(i).Trim = "", "0", CB(i).Trim))
                        Case 12 + 3
                        Case 13 + 3
                            If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
                                Me.cmb_존분류.SelectedIndex = 0
                            Else
                                Me.cmb_존분류.Text = CB(i).Split(CChar(vbTab))(ii).Trim
                            End If
                            ' Me.cmb_존분류.Text = CStr(IIf(CB(i).Trim = "", "0", CB(i).Trim))
                        Case 14 + 3
                            If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
                                Me.cmb_대차존.SelectedIndex = 0
                            Else
                                Me.cmb_대차존.Text = CB(i).Split(CChar(vbTab))(ii).Trim
                            End If
                            ' Me.cmb_대차존.Text = CStr(IIf(CB(i).Trim = "", "0", CB(i).Trim))
                    End Select
                Next
            Next
            Me.bs.EndEdit()
            Me.isCopy = False
            Me.Validate_Control()
        End If
    End Sub
    Private Sub bs_CurrentChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bs.CurrentChanged
        If Not Init Then Return
        Me.bs.EndEdit()
        'If Me.cmb_방위.Enabled = False Then Me.rad0.Checked = True '======================2011.05.25 수정
    End Sub
    Private Sub ToolStripButton49_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
        If e.Button = Windows.Forms.MouseButtons.Right Then
            If MsgBox("전체삭제를 하시겠습니까?", MsgBoxStyle.Information Or MsgBoxStyle.OkCancel, "확인") = MsgBoxResult.Ok Then
                Dim dR() As DataRow = DSET.tbl_myoun.Select(Me.bs.Filter, "")
                For i As Integer = dR.GetUpperBound(0) To 0 Step -1
                    dR(i).Delete()
                Next
                DSET.tbl_myoun.AcceptChanges()
            End If
        End If
    End Sub
    'Private Sub ToolStripComboBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmb_gubun.SelectedIndexChanged
    '    If Me.cmb_gubun.Text = "전체" Then
    '        bs.Filter = "code <> '0'"
    '    Else
    '        bs.Filter = "code <> '0' and 건축부위방식 like '" & Me.cmb_gubun.Text & "%'"
    '    End If
    'End Sub
    Private Sub cmb_건축부위방식_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmb_건축부위방식.SelectedIndexChanged
        Validate_Control()
    End Sub
    Private Sub bt_Del_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles bt_Del.MouseDown
        If e.Button = Windows.Forms.MouseButtons.Right Then
            If MsgBox("전체삭제를 하시겠습니까?", MsgBoxStyle.Information Or MsgBoxStyle.OkCancel, "확인") = MsgBoxResult.Ok Then
                Dim dR() As DataRow = DSET.tbl_myoun.Select(Me.bs.Filter, "")
                For i As Integer = dR.GetUpperBound(0) To 0 Step -1
                    dR(i).Delete()
                Next
                DSET.tbl_myoun.AcceptChanges()
            End If
        End If
    End Sub
    Private Sub dv_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles dv.MouseUp
        If Prj.UserAuthType = "ADMIN" OrElse Prj.UserAuthType = "BOTH" OrElse Prj.UserAuthType = "BOTH2" OrElse Prj.UserAuthType = "BOTH1" Then  '//2011.03.08 추가
            If e.Button = Windows.Forms.MouseButtons.Right Then
                Dim Frm_FilterA As New Frm_Filter
                Frm_FilterA.ColumTitle = getColCaption(Me.Dt)
                Frm_FilterA.ColumList = getColName(Me.Dt)
                Frm_FilterA.Colorlist = "존분류,대차대조존"
                Frm_FilterA.Numfield = "건축부위면적,열관류율,투과율"    '//20100618  Color 리스트처럼 , 구분해서 필드들을 모두 넣으세요.(=, >= 등을 사용하기 위해서는 해당 항목을 추가 요망)
                Frm_FilterA.Default_Filter = "code <> '0'"
                '//Frm_Filter.Default_Filter = "존분류='" & Me.SelectedZone & "' and code <> '0'"
                'Me.FilterMode = False
                MsgBox("화면필터값은 적용이 되지않습니다" & vbCrLf & "바꾸기 기능만 사용가능", MsgBoxStyle.Information, "확인")
                If Frm_FilterA.ShowDialog <> Windows.Forms.DialogResult.OK Then Return '//창떳을떄 확인아ㅣ고 취소눌르면 다음을 수행하지않는다는거에요.
                'Me.FilterMode = True
                Dim Filter As String = Frm_FilterA.tb_filter.Text   '//값은 아까 그 텍박에 잇구요.
                Try
                    'Me.bs.Filter = Filter
                    '//바꾸기값이 있으면 변경 20100618
                    If Frm_FilterA.cmb_fieldc.SelectedIndex >= 0 AndAlso Frm_FilterA.cmb_fieldc.Text.ToLower <> "code" AndAlso _
                    Frm_FilterA.tb_valuec.Text <> "" Then
                        Dim Drow() As DataRow = Me.Dt.Select(Filter)
                        Dim i As Integer = 0
                        For Each Dr As DataRow In Drow
                            Dr(Frm_FilterA.cmb_fieldc.Text) = Frm_FilterA.tb_valuec.Text
                            i += 1
                        Next
                        MsgBox("'" & i & "'개 바꾸기 완료", MsgBoxStyle.Information, "확인")
                    End If
                Catch ex As Exception
                    'Me.bs.Filter = ""
                End Try
            End If
        End If
    End Sub
    Private Sub dv_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles dv.KeyDown
        '//여기보시면   alt+d 누르면  한줄을 경고없이(falsE)삭제하도록 햇어요.. 사실원래 밋alt +d 인데.. ㅎㅎ 잘못해서 ctrl 됫다는
        If Prj.UserAuthType = "ADMIN" OrElse Prj.UserAuthType = "BOTH" OrElse Prj.UserAuthType = "BOTH2" OrElse Prj.UserAuthType = "BOTH1" Then  '//2011.03.08 추가
            Select Case e.KeyCode
                Case Keys.D
                    If e.Alt Then
                        Dbbase.DelCrow(Me.bs, False)
                    End If
                Case Keys.C
                    If e.Control Then
                        Me.SrcDrv = Me.bs.Current
                        If Me.SrcDrv Is Nothing Then
                            MsgBox("저장할 ROW가 없습니다", MsgBoxStyle.Information, "확인")
                            Return
                        End If
                        ' My.Computer.Clipboard.SetData("ZDATA", Drv)
                    End If
                Case Keys.V
                    If e.Control Then
                        If Me.SrcDrv Is Nothing Then Return
                        Me.bt_add.PerformClick()  '//신규추가
                        Dim NewDrv As DataRowView = Me.bs.Current
                        For Each C As DataColumn In Me.Dt.Columns
                            If C.ColumnName.ToUpper = "CODE" Then
                            ElseIf C.ColumnName.ToUpper = "설명" Then
                                NewDrv(C.ColumnName) = SrcDrv(C.ColumnName) & "#1"
                            Else
                                NewDrv(C.ColumnName) = SrcDrv(C.ColumnName)
                            End If
                        Next
                        Me.bs.EndEdit()
                        bs.MoveLast()
                    End If
            End Select
        End If
    End Sub
    Private Sub tb_02_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles tb_02.TextChanged
        Display_info() 'Validate_Control()
    End Sub
    Private Sub cmb_열관류율_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmb_열관류율.SelectedIndexChanged
        If Me.cmb_열관류율.SelectedIndex > 0 Then
            ' Me.tb_03.Text = ""
            Me.tb_03.Enabled = False
            Me.cmb_건축부위방식.Enabled = False
            ' MsgBox(Me.cmb_열관류율.SelectedValue)
            Try
                Dim Dr As DS.tbl_ykRow = DSET.tbl_yk.Select("code='" & Me.cmb_열관류율.SelectedValue & "'")(0)
                '    Dim dr2() As DS.tbl_commonRow = DSET.tbl_common.Select("gubun='1088' and code='" & Dr("면형태").ToString & "'")
                '    Dim 면형태 As String = dr2(0).name
                Me.MyTb1.Text = Dr("열관류율").ToString
                '    Select Case 면형태
                '        Case "외벽(벽체)"
                '            Me.cmb_건축부위방식.Text = "외벽"
                '            'Me.tb_04.Text = "0"
                '        Case "외벽(지붕)"
                '            Me.cmb_건축부위방식.Text = "외벽"
                '            'Me.cmb_방위.Text = "수평"
                '            'Me.tb_04.Text = "0"
                '        Case "외벽(바닥)"
                '            Me.cmb_건축부위방식.Text = "외벽"
                '            'Me.cmb_방위.Text = "일사없음"
                '            'Me.tb_04.Text = "0"
                '        Case "내벽(벽체)"
                '            Me.cmb_건축부위방식.Text = "내벽"
                '            'Me.cmb_방위.Text = "일사없음"
                '            'Me.tb_04.Text = "0"
                '        Case "내벽(지붕)"
                '            Me.cmb_건축부위방식.Text = "내벽"
                '            'Me.cmb_방위.Text = "일사없음"
                '            'Me.tb_04.Text = "0"
                '        Case "내벽(바닥)"
                '            Me.cmb_건축부위방식.Text = "내벽"
                '            'Me.cmb_방위.Text = "일사없음"
                '            'Me.tb_04.Text = "0"
                '        Case "간벽"
                '            Me.cmb_건축부위방식.Text = "간벽"
                '            'Me.cmb_방위.Text = "일사없음"
                '            'Me.tb_04.Text = "0"
                '        Case "외부창", "내부창"
                '            If 면형태 = "외부창" Then
                '                Me.cmb_건축부위방식.Text = "외부창"
                '            Else
                '                Me.cmb_건축부위방식.Text = "내부창"
                '                'Me.cmb_방위.Text = "일사없음"
                '            End If
                '            'Me.tb_04.Text = Dr("일사에너지투과율").ToString
                '        Case Else
                '            MsgBox("모르는값 " & Dr("면형태").ToString & "/" & 면형태)
                '    End Select
            Catch ex As Exception
                Me.MyTb1.Text = ex.Message.ToString
            End Try
        ElseIf Me.cmb_열관류율.SelectedIndex = -1 Then
            Me.cmb_열관류율.SelectedIndex = 0  '//ㅣ본없음으로
            Me.tb_03.Enabled = True
            'Me.tb_03.Focus()
            Me.MyTb1.Text = ""
            Me.cmb_건축부위방식.Enabled = True
        Else
            Me.tb_03.Enabled = True
            'Me.tb_03.Focus()
            Me.MyTb1.Text = ""
            Me.cmb_건축부위방식.Enabled = True
        End If
    End Sub
    Private Sub bszone_CurrentChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bszone.CurrentChanged
        'If Me.FilterMode Then
        '    Me.FilterMode = False
        '    MsgBox("필터적용상태가 해제되었습니다", MsgBoxStyle.Information, "확인")
        'End If
        Dim drv As DataRowView = Me.bszone.Current
        If drv Is Nothing Then
            Me.SelectedZone = ""
            Me.SelectedZoneName = ""
        Else
            Me.SelectedZone = drv("code").ToString
            Me.SelectedZoneName = drv("설명").ToString
        End If
        Dim Filter As String
        'Me.FilterMode = False
        Filter = "존분류='" & SelectedZone & "' and code <> '0'"
        Try
            Me.bs.Filter = Filter
        Catch ex As Exception
            Me.bs.Filter = "code <> '0'"
        End Try
    End Sub
    Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rad1.CheckedChanged, rad2.CheckedChanged, rad3.CheckedChanged, _
    rad4.CheckedChanged, rad5.CheckedChanged, rad6.CheckedChanged, rad7.CheckedChanged, rad8.CheckedChanged, rad9.CheckedChanged, rad10.CheckedChanged, rad0.CheckedChanged
        Dim Drv As DataRowView = Me.bs.Current
        If Drv Is Nothing Then Return
        '//콤보박스으 실제값하고 비교하셔서 이름 바꾸시구요.
        If rad1.Checked Then Me.cmb_방위.Text = "북서"
        If rad2.Checked Then Me.cmb_방위.Text = "서"
        If rad3.Checked Then Me.cmb_방위.Text = "남서"
        If rad4.Checked Then Me.cmb_방위.Text = "남"
        If rad5.Checked Then Me.cmb_방위.Text = "남동"
        If rad6.Checked Then Me.cmb_방위.Text = "동"
        If rad7.Checked Then Me.cmb_방위.Text = "북동"
        If rad8.Checked Then Me.cmb_방위.Text = "북"
        If rad9.Checked Then Me.cmb_방위.Text = "수평"
        If rad10.Checked Then Me.cmb_방위.Text = "일사없음"
        If rad0.Checked Then Me.cmb_방위.Text = "(없음)"
        Me.bs.EndEdit()
        Me.Dt.AcceptChanges()
        '//여기까지 라디오를 건들면 콤보가 움직이는게 됬구요..
    End Sub
    Private Sub cmb_방위_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmb_방위.SelectedIndexChanged
        '//콤보의 값에따라서 라디오를 변경?
        Select Case Me.cmb_방위.Text
            Case "(없음)", ""
                Me.rad0.Checked = True
            Case "북서"
                Me.rad1.Checked = True
            Case "서"
                Me.rad2.Checked = True
            Case "남서"
                Me.rad3.Checked = True
            Case "남"
                Me.rad4.Checked = True
            Case "남동"
                Me.rad5.Checked = True
            Case "동"
                Me.rad6.Checked = True
            Case "북동"
                Me.rad7.Checked = True
            Case "북"
                Me.rad8.Checked = True
            Case "수평"
                Me.rad9.Checked = True
            Case "일사없음"
                Me.rad10.Checked = True
        End Select
    End Sub
    Private Sub cmb_존분류_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmb_존분류.SelectedIndexChanged
        Me.bs.EndEdit()
    End Sub
    Private Sub dv_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dv.CellContentClick
    End Sub
    Private Sub Arindv1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles Arindv1.CellContentClick
    End Sub
End Class