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 = "" Public Sub New(_opentime) ' 이 호출은 디자이너에 필요합니다. InitializeComponent() OpenTime = _opentime ' InitializeComponent() 호출 뒤에 초기화 코드를 추가하십시오. End Sub #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 Init = False Me.Show() My.Application.DoEvents() 'Work_msg_timer("잠시만 기다려주세요") 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 Me.lbl_cnt4.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 Me.lbl_cnt4.Visible = False End If '//공유데이터셋에 연결한다. Me.bs.DataSource = DSET1 Me.bszone.DataSource = DSET1 '//입력면 AddHandler DSET1.tbl_myoun.TableNewRow, AddressOf TblAddNew '//AddHandler DSET1.tbl_myoun.ColumnChanged, AddressOf TblColumnChanged AddHandler DSET1.tbl_myoun.ColumnChanging, AddressOf TblColumnChanging '//콤보컨트롤 바인딩 Binding_Zone() Me.bszone.Filter = "code <> '0'" If Me.Parameter <> "" Then Me.bszone.Filter &= " and 그룹 ='" + Me.Parameter + "'" '//모든컨트롤의 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() AddDebug("form load ok") End Sub Private Sub TblAddNew(ByVal sender As Object, ByVal e As System.Data.DataTableNewRowEventArgs) AddDebug("♠TblAddNew") '//존분류값가져오기 '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(DSET1.tbl_myoun) 'e.Row.Item("열관류율2") = Me.cmb_gubun.Text '//선택된 그것의 값이 들어가도록..필드명만찾아서 입력하세요. e.Row.Item("sortkey") = GetNewSortKey(DSET1.tbl_myoun, Zone) '//동일존을 가지는 면데이터로부터 마지막 sortkey 를 가져와서 설정한다. 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 Private Function GetNewSortKey(ByRef dt As DS.tbl_myounDataTable, Optional Zone As String = "") As String AddDebug("GetNewSortKey") If Not String.IsNullOrWhiteSpace(Zone) Then Dim drows() As DS.tbl_myounRow = dt.Select("존분류='" + Zone + "' and code <> '0'", "sortkey desc") If drows.Length < 1 Then Return 1 Dim Dr As DS.tbl_myounRow = drows(0) Dim maxsortkey As Integer = Dr.sortkey Return maxsortkey + 1 Else Dim drows() As DS.tbl_myounRow = dt.Select("code <> '0'", "sortkey desc") If drows.Length < 1 Then Return 1 Dim Dr As DS.tbl_myounRow = drows(0) Dim maxsortkey As Integer = Dr.sortkey Return maxsortkey + 1 End If End Function #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 ShowHistory() AddDebug("ShowHistory") Dim drv As DataRowView = Me.bs.Current Dim f As New Frm_History("tbl_myoun", drv("code").ToString) If f.ShowDialog = DialogResult.OK Then drv(f.colname) = f.val Me.Validate() Me.bs.EndEdit() My.Application.DoEvents() MsgBox("값이 변경되었습니다", MsgBoxStyle.Information, "확인") End If End Sub Private Sub TblColumnChanging(ByVal sender As Object, ByVal e As System.Data.DataColumnChangeEventArgs) Dim oval As String = e.Row(e.Column.ColumnName).ToString Dim nval As String = e.ProposedValue.ToString AddDebug(String.Format("♠TblColumnChanging {0} {1}->{2}", e.Column.ColumnName, oval, nval)) If oval <> nval Then Dim newdr As DS2.historyRow = DSHistory.history.NewhistoryRow newdr.time = Now.ToString("yyyy-MM-dd HH:mm:ss") newdr.tablename = "tbl_myoun" newdr.ovalue = oval newdr.nvalue = nval newdr.column = e.Column.ColumnName newdr.code = e.Row("code").ToString DSHistory.history.AddhistoryRow(newdr) DSHistory.history.AcceptChanges() End If End Sub 'Private Sub TblColumnChanged(ByVal sender As Object, ByVal e As System.Data.DataColumnChangeEventArgs) ' AddDebug("♠TblColumnChanged") ' Dim oval As String = e.Row(e.Column.ColumnName).ToString ' Dim nval As String = e.ProposedValue.ToString ' Select Case e.Column.Caption.Trim ' Case "건축부위방식" ' If e.ProposedValue.ToString = "내벽" OrElse e.ProposedValue.ToString = "간벽" OrElse e.ProposedValue.ToString = "내부창" Then ' 'e.Row("방위") = "일사없음" '//언제바뀌엇는지 모름, 재확인 160327 ' 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 AddDebug("MdiMain_FormClosed") RemoveHandler DSET1.tbl_myoun.TableNewRow, AddressOf TblAddNew RemoveHandler DSET1.tbl_myoun.ColumnChanging, AddressOf TblColumnChanging 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 ShowHistory() Case Keys.A If e.Alt Then bt_add.PerformClick() End If End Select End Sub Private Function GetMaxCode(ByVal dt As DataTable) As String AddDebug("GetMaxCode") Try Dim Dr As DataRow = dt.Select("", "code desc")(0) Return Format(CInt(Dr("code")) + 1, "00000") Catch ex As Exception Return "00001" End Try End Function Private Sub Cmb_DeleteVal(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) AddDebug("Cmb_DeleteVal") If e.KeyCode = Keys.Delete Then CType(sender, ComboBox).SelectedValue = "" End If End Sub #Region "제어버튼" 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 = DSET1.tbl_yk.Select("설명='" & Me.cmb_gubun.Text & "'") If Dr1.GetUpperBound(0) = 0 Then '//해당데이터가 찾아졋을경우에 Dim dr2() As DS.tbl_commonRow = DSET1.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 = DSET1.tbl_yk.Select("code='" & Me.cmb_열관류율.SelectedValue & "'")(0) Me.tb_04.Text = Dr.투과율 Case Else MsgBox("모르는값 " & Dr1(0).면형태 & "/" & 면형태) End Select Else MsgBox("못찻음") End If MdiMain.RefreshMenuList(TreeTag) 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) MdiMain.RefreshMenuList(TreeTag) 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(DSET1.tbl_profile, Nothing) MdiMain.RefreshMenuList(TreeTag) End Sub #End Region Private Sub Binding_Zone() AddDebug("Binding_Zone") '//구분 콤봅박스 Me.cmb_gubun.Items.Clear() For Each Dr As DS.tbl_ykRow In DSET1.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(DSET1, "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(DSET1, "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(DSET1, "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(DSET1, "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(DSET1, "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(DSET1, "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(DSET1, "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(DSET1, "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(DSET1, "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(DSET1, "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() AddDebug("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 '//160327 방위와 활성화여부를 동일하게한다 Me.rad1.Enabled = Me.cmb_방위.Enabled Me.rad2.Enabled = Me.cmb_방위.Enabled Me.rad3.Enabled = Me.cmb_방위.Enabled Me.rad4.Enabled = Me.cmb_방위.Enabled Me.rad5.Enabled = Me.cmb_방위.Enabled Me.rad6.Enabled = Me.cmb_방위.Enabled Me.rad7.Enabled = Me.cmb_방위.Enabled Me.rad8.Enabled = Me.cmb_방위.Enabled Me.rad9.Enabled = Me.cmb_방위.Enabled Me.rad10.Enabled = Me.cmb_방위.Enabled Me.rad0.Enabled = Me.cmb_방위.Enabled 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 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 Display_info() End Sub Private Sub Display_info() AddDebug("Display_info") Dim WallArea As Decimal, WindowArea As Decimal WallArea = 0 WindowArea = 0 'If Me.cmb_열관류율.SelectedIndex > 0 Then' Dim 열관류율합 As Double Dim 존수 As Integer = 0 Dim 비연결 As Integer = 0 Dim 비연결존 As String = "" 'ToolStripLabel2 Dim 면데이터() As DS.tbl_myounRow = DSET1.tbl_myoun.Select("code <> '0' and (건축부위방식='외벽' or 건축부위방식 ='외부창' or 건축부위방식='내벽' or 건축부위방식 ='내부창')") ' Dim fn1 As String = My.Application.Info.DirectoryPath & "\t1.txt" 'Dim fn2 As String = My.Application.Info.DirectoryPath & "\t2.txt" Dim 열관없는갯수 As Integer = 0 Try For Each Dr입력면 As DS.tbl_myounRow In 면데이터 Dim 열관 As Single = 0 If Dr입력면.열관류율2 = "0" OrElse Dr입력면.열관류율2 = "" Then 열관없는갯수 += 1 End If Dim Dryk As DS.tbl_ykRow = Nothing If Dr입력면.열관류율2 <> "0" Then ' Dryk = DSET1.tbl_yk.Select("code='" & Dr입력면.열관류율2 & "'")(0) 열관 = TOSG(Dryk("열관류율").ToString) Else '//선택안된경우 열관 = TOSG(Dr입력면.열관류율) End If Dim 존코드 As String = Dr입력면.존분류 Dim dr존() As DS.tbl_zoneRow = DSET1.tbl_zone.Select("code='" + 존코드 + "'") If dr존.GetUpperBound(0) = -1 Then 존수 = 1 Else If IsNumeric(dr존(0).입력존의수) Then 존수 = CInt(dr존(0).입력존의수) Else 존수 = 1 End If End If Select Case Dr입력면.건축부위방식 Case "외벽" 열관류율합 += 열관 * 1 * TOSG(Dr입력면.건축부위면적) * 존수 Case "내벽" 열관류율합 += 열관 * 0.7 * TOSG(Dr입력면.건축부위면적) * 존수 Case "외부창" 열관류율합 += 열관 * 1 * TOSG(Dr입력면.건축부위면적) * 존수 Case "내부창" 열관류율합 += 열관 * 0.8 * TOSG(Dr입력면.건축부위면적) * 존수 End Select '// Debug.WriteLine(Dr입력면.열관류율2 + "/" + Dr입력면.code + "/" + 열관.ToString() + "/" + Dr입력면.설명 + "/" + Dr입력면.건축부위면적.ToCharArray() + "/" + 존수.ToString() + "/" + 열관류율합.ToString(), True) If Dryk Is Nothing Then 비연결 += 1 '//사용한 존 If dr존 Is Nothing Then Else 비연결존 = dr존(0).설명 + "의 " + Dr입력면.설명 End If '//열관류 선택안된경우 Select Case Dr입력면.건축부위방식 Case "외벽" If Dr입력면.방위 <> "수평" AndAlso Dr입력면.방위 <> "일사없음" AndAlso Dr입력면.방위 <> "(없음)" Then WallArea = WallArea + TOSG(Dr입력면.건축부위면적) * 존수 End If Case "내벽" ' WallArea = WallArea + TOSG(Dr입력면.건축부위면적) * 존수 Case "외부창" If Dr입력면.방위 <> "수평" AndAlso Dr입력면.방위 <> "일사없음" AndAlso Dr입력면.방위 <> "(없음)" Then WindowArea = WindowArea + TOSG(Dr입력면.건축부위면적) * 존수 End If Case "내부창" WindowArea = WindowArea + TOSG(Dr입력면.건축부위면적) * 존수 End Select Else Dim 면형태이름 As String = Get_CName("1088", Dryk.면형태) Select Case 면형태이름 Case "외벽(벽체)" WallArea = WallArea + TOSG(Dr입력면.건축부위면적) * 존수 Case "내벽(벽체)" WallArea = WallArea + TOSG(Dr입력면.건축부위면적) * 존수 Case "외부창" If Dr입력면.방위 <> "수평" AndAlso Dr입력면.방위 <> "일사없음" AndAlso Dr입력면.방위 <> "(없음)" Then WindowArea = WindowArea + TOSG(Dr입력면.건축부위면적) * 존수 End If Case "내부창" WindowArea = WindowArea + TOSG(Dr입력면.건축부위면적) * 존수 End Select End If 'Debug.WriteLine(Dr입력면.code + ":wall=" + WallArea.ToString() + ",win=" + WindowArea.ToString()) Next 'For Each Dr입력면 As DS.tbl_myounRow In DSET1.tbl_myoun.Select("건축부위방식='외부창'") ' WindowArea = WindowArea + TOSG(Dr입력면.건축부위면적) * 존수 'Next Catch ex As Exception End Try '//평균열관류율표시(140506) Dim 평균열관류율 As Single If WallArea + WindowArea = 0 Then 평균열관류율 = (0.0F) Else 평균열관류율 = 열관류율합 / (WallArea + WindowArea) End If 'ToolStripLabel2.Text = 면데이터.Length.ToString + "/" + 열관류율합.ToString lbl_cnt1.Text = TOST(WallArea) & " ㎡" lbl_cnt2.Text = TOST(WindowArea) & " ㎡" lbl_cnt4.Text = 평균열관류율.ToString("N3") & " W/㎡K" 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 If 비연결 > 0 Then ToolStrip1.Visible = False Me.lbl_cnt4.Visible = False If 비연결 > 1 Then Me.ToolStripLabel11.Text = "해당 부위 확인 요망(" + 비연결존 + " 외 " + (비연결 - 1).ToString() + " 개)" Else Me.ToolStripLabel11.Text = "해당 부위 확인 요망(" + 비연결존 + ")" End If Else ToolStrip1.Visible = True Me.lbl_cnt4.Visible = True Me.ToolStripLabel11.Text = "외벽평균열관류율:" End If End Sub Private Sub cmb_블라인드설치유무_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmb_블라인드설치유무.SelectedIndexChanged AddDebug("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 AddDebug("▶bs_CurrentChanged") If Not Init Then Return Me.bs.EndEdit() Dim drv As DataRowView = Me.bs.Current If drv Is Nothing Then Return Dim dr As DS.tbl_myounRow = drv.Row If dr.차양각선택 = "1" Then Me.rad_수평직입력.Checked = True Else Me.rad_차양각입력.Checked = True End If 'refresh차양각선택() 'If Me.cmb_방위.Enabled = False Then Me.rad0.Checked = True '======================2011.05.25 수정 End Sub Private Function R2d(radian As Double) As Double Return radian * 180 / Math.PI End Function Private Sub refresh차양각선택() AddDebug("refresh차양각선택") If rad_차양각입력.Checked Then If MyTb3.Text <> Me.tb_05.Text Then Me.tb_05.Text = MyTb3.Text If MyTb2.Text <> Me.tb_06.Text Then Me.tb_06.Text = MyTb2.Text Else If TOSG(MyTb7.Text) = 0 Then '==================================2014.03.04 수정 If Me.tb_05.Text <> "0" Then Me.tb_05.Text = "0" Else Dim datastr As String = Math.Round(R2d(Math.Atan(TOSG(MyTb5.Text) / TOSG(MyTb7.Text))), 1) If datastr <> Me.tb_05.Text Then Me.tb_05.Text = datastr ' = Math.Round(R2d(Math.Atan(TOSG(MyTb5.Text) / TOSG(MyTb7.Text))), 1) '==================================2014.03.04 수정 End If If TOSG(MyTb6.Text) = 0 Then '==================================2014.03.04 수정 If Me.tb_06.Text <> "0" Then Me.tb_06.Text = "0" Else Dim datastr As String = Math.Round(R2d(Math.Atan(TOSG(MyTb4.Text) / TOSG(MyTb6.Text))), 1) If datastr <> Me.tb_06.Text Then Me.tb_06.Text = datastr ' Math.Round(R2d(Math.Atan(TOSG(MyTb4.Text) / TOSG(MyTb6.Text))), 1) '==================================2014.03.04 수정 End If End If 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 = DSET1.tbl_myoun.Select(Me.bs.Filter, "") For i As Integer = dR.GetUpperBound(0) To 0 Step -1 dR(i).Delete() Next DSET1.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 AddDebug("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 = DSET1.tbl_myoun.Select(Me.bs.Filter, "") For i As Integer = dR.GetUpperBound(0) To 0 Step -1 dR(i).Delete() Next DSET1.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 AddDebug("dv_MouseUp-right") 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" OrElse Prj.UserAuthType = "BOTH0" 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 Dim newname As String = SrcDrv(C.ColumnName) & "#Copy" For i As Integer = 1 To 999 '//160327복제시 뒷부분을 자동 계산하도록 수정 Dim newname2 As String = SrcDrv(C.ColumnName) & "#" & i.ToString() If DSET1.tbl_myoun.Select("설명='" + newname2 + "'").Length < 1 Then NewDrv(C.ColumnName) = newname2 Exit For End If Next ElseIf C.ColumnName.ToUpper = "SORTKEY" Then NewDrv(C.ColumnName) = SrcDrv(C.ColumnName) ' 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 AddDebug("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 Not Init Then Return '//초기화전에는 작동하지 않는다. AddDebug("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 = DSET1.tbl_yk.Select("code='" & Me.cmb_열관류율.SelectedValue & "'")(0) Dim dr2() As DS.tbl_commonRow = DSET1.tbl_common.Select("gubun='1088' and code='" & Dr("면형태").ToString & "'") Dim 면형태 As String = dr2(0).name Me.MyTb1.Text = Dr("열관류율").ToString 'If 면형태.IndexOf("(지붕)") <> -1 Then ' rad9.Checked = True ' Me.tb_04.Text = "0" 'ElseIf 면형태.IndexOf("(바닥)") <> -1 Then ' rad10.Checked = True ' Me.tb_04.Text = "0" 'End If 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.투과율 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 Validate() Validate_Control() Me.bs.EndEdit() End Sub Private Sub bszone_CurrentChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bszone.CurrentChanged AddDebug("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 AddDebug("RadioButton2_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 AddDebug("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 AddDebug("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 Private Sub ToolStripLabel2_Click(sender As System.Object, e As System.EventArgs) End Sub Private Sub RadioButton1_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles rad_차양각입력.CheckedChanged, rad_수평직입력.CheckedChanged AddDebug("rad차양각,수평직입력 CheckedChanged") Me.MyTb2.Enabled = rad_차양각입력.Checked Me.MyTb3.Enabled = rad_차양각입력.Checked Me.Label1.Enabled = rad_차양각입력.Checked Me.Label8.Enabled = rad_차양각입력.Checked Me.MyTb4.Enabled = Not rad_차양각입력.Checked Me.MyTb5.Enabled = Not rad_차양각입력.Checked Me.MyTb6.Enabled = Not rad_차양각입력.Checked Me.MyTb7.Enabled = Not rad_차양각입력.Checked Me.Label9.Enabled = Not rad_차양각입력.Checked Me.Label10.Enabled = Not rad_차양각입력.Checked Me.Label12.Enabled = Not rad_차양각입력.Checked Me.Label13.Enabled = Not rad_차양각입력.Checked Dim drv As DataRowView = Me.bs.Current If Not drv Is Nothing Then drv("차양각선택") = IIf(rad_수평직입력.Checked, "1", "0") End If refresh차양각선택() End Sub Private Sub MyTb3_TextChanged(sender As System.Object, e As System.EventArgs) Handles MyTb2.TextChanged, MyTb3.TextChanged, MyTb4.TextChanged, MyTb5.TextChanged, MyTb6.TextChanged, MyTb7.TextChanged Dim tb As MyTb = CType(sender, MyTb) AddDebug(String.Format("[{0}] TextChanged", tb.Name)) refresh차양각선택() End Sub Private Sub ToolStrip2_MouseDoubleClick(sender As Object, e As System.Windows.Forms.MouseEventArgs) Handles ToolStrip2.MouseDoubleClick If Prj.UserAuthType = "ADMIN" OrElse Prj.UserAuthType = "BOTH2" OrElse Prj.UserAuthType = "BOTH1" Then If ToolStrip1.Visible = False Then If MsgBox("열관류율탭과 자동연결을 진행합니까?", MsgBoxStyle.Information Or MsgBoxStyle.OkCancel, "확인") = MsgBoxResult.Ok Then Try Dim 열관류율코드 As String = 0 Dim i As Integer = 0 Dim j As Integer = 0 DSET1.tbl_myoun.CaseSensitive = True Dim 면() As DS.tbl_myounRow = DSET1.tbl_myoun.Select("code<>'0' and (열관류율2 = '0' or 열관류율2='') and 설명 <> ''") For Each Dr As DS.tbl_myounRow In 면 'Dr(Frm_FilterA.cmb_fieldc.Text) = Frm_FilterA.tb_valuec.Text Dim Dryk() As DS.tbl_ykRow = DSET1.tbl_yk.Select("설명='" & Dr.설명 & "'") Dim Find As Boolean = False For Each Drykdetail As DS.tbl_ykRow In Dryk If Drykdetail.설명 = Dr.설명 Then 열관류율코드 = Drykdetail.code Dr.열관류율2 = 열관류율코드 Dr.열관류율 = "0" Find = True Exit For End If Next If Find Then '//있는 경우 i += 1 Else j += 1 '//없는 경우 End If Next Display_info() MsgBox("'" & i & "'개 바꾸기 완료", MsgBoxStyle.Information, "확인") Catch ex As Exception 'Me.bs.Filter = "" End Try End If End If End If End Sub Private Sub dv_DataError(sender As System.Object, e As System.Windows.Forms.DataGridViewDataErrorEventArgs) Handles dv.DataError AddDebug("dv_DataError") Dim ermsg As String = String.Format("입력값에 오류가 있습니다" + vbCrLf + vbCrLf + "줄번호:{0},열번호{1}" + vbCrLf + _ "메세지:{2}", e.RowIndex, e.ColumnIndex, e.Exception.Message) Select Case e.ColumnIndex Case 0 ermsg += vbCrLf + vbCrLf + "숫자만 입력하세요" End Select MsgBox(ermsg, MsgBoxStyle.Critical, "Error") End Sub End Class