Public Class Frm_V20091231_YK Dim T As String = "열관류율" Dim DT As DataTable Dim init As Boolean = False Dim pcode As String Dim UserCommin As Boolean = False Dim SrcDrv As DataRowView Dim keyUp1 As Boolean = False '//열전도율 사용자가 수정하려할시를 나타냄(110618) Public Sub New() ' 디자이너에서 이 호출이 필요합니다. InitializeComponent() With fxList .KeyActionEnter = C1.Win.C1FlexGrid.KeyActionEnum.None .KeyActionTab = C1.Win.C1FlexGrid.KeyActionEnum.None .SelectionMode = C1.Win.C1FlexGrid.SelectionModeEnum.Cell .ShowButtons = C1.Win.C1FlexGrid.ShowButtonsEnum.Always .DrawMode = C1.Win.C1FlexGrid.DrawModeEnum.OwnerDraw .ExtendLastCol = True .AllowSorting = C1.Win.C1FlexGrid.AllowSortingEnum.None .ShowSortPosition = C1.Win.C1FlexGrid.ShowSortPositionEnum.None .AutoGenerateColumns = False AddHandler .KeyPress, AddressOf fgrid_KeyPress AddHandler .AfterEdit, AddressOf fgrid_AfterEdit AddHandler .BeforeEdit, AddressOf fgrid_BeginEditS AddHandler .OwnerDrawCell, AddressOf flexOwnerDrawCell End With With fxData .KeyActionEnter = C1.Win.C1FlexGrid.KeyActionEnum.None .KeyActionTab = C1.Win.C1FlexGrid.KeyActionEnum.None .SelectionMode = C1.Win.C1FlexGrid.SelectionModeEnum.Cell .ShowButtons = C1.Win.C1FlexGrid.ShowButtonsEnum.Always .DrawMode = C1.Win.C1FlexGrid.DrawModeEnum.OwnerDraw .ExtendLastCol = False .AllowSorting = C1.Win.C1FlexGrid.AllowSortingEnum.None .ShowSortPosition = C1.Win.C1FlexGrid.ShowSortPositionEnum.None .AutoGenerateColumns = False AddHandler .KeyPress, AddressOf fgrid_KeyPress AddHandler .AfterEdit, AddressOf fgrid_AfterEdit AddHandler .BeforeEdit, AddressOf fgrid_BeginEditS AddHandler .OwnerDrawCell, AddressOf flexOwnerDrawCell End With Label3.Enabled = True Label4.Enabled = True Label5.Enabled = True 열관류율NTb.ReadOnly = True End Sub Private Function Refresh_열전도율목록() As String If bs_detail.Count < 1 Then Return String.Empty Dim Drv As DataRowView = CType(Me.bs_detail.Current, DataRowView) If Drv Is Nothing Then Return String.Empty Dim dr As DS.tbl_ykdetailRow = Drv.Row '//해당열전도율가져오기 Dim cmb As ComboBox = fxData.Cols("열전도율").Editor cmb.Items.Clear() Dim 재료코드 As String = String.Empty Dim Filter As String = String.Format("gubun='1089' and name='{0}'", dr.설명) Dim Drow() As DS.tbl_common_odRow = DSET1.tbl_common_od.Select(bS_재료.Filter) If Drow.GetUpperBound(0) = 0 Then 재료코드 = Drow(0).code cmb.Items.Add(Drow(0).valn1) cmb.Text = Drow(0).valn1 Else dr.커스텀 = "N" '//해당값이 아에없는경우 변경된걸로 확인 End If Return 재료코드 End Function #Region "FlexGRid Events" Private Sub fgrid_BeginEditS(sender As Object, e As C1.Win.C1FlexGrid.RowColEventArgs) Dim grid As C1.Win.C1FlexGrid.C1FlexGrid = DirectCast(sender, C1.Win.C1FlexGrid.C1FlexGrid) '//데이터입력전에 IME를 맞춘다. Select Case grid.Cols(e.Col).Name.ToLower() Case "name", "position", "dept", "bigo", "memo", "jname", "설명", "비고", "메모" grid.ImeMode = Windows.Forms.ImeMode.Hangul Case Else grid.ImeMode = Windows.Forms.ImeMode.Alpha End Select End Sub Private Sub fgrid_AfterEdit(sender As Object, e As C1.Win.C1FlexGrid.RowColEventArgs) Dim grid As C1.Win.C1FlexGrid.C1FlexGrid = DirectCast(sender, C1.Win.C1FlexGrid.C1FlexGrid) If Not grid Is fxData Then Return Dim data As Object = grid.GetData(e.Row, e.Col) Select Case grid.Cols(e.Col).Name.ToLower() Case "열전도율" '//열전도율이 바뀌었다면 목록내의 열전도율값과 비교하여 없다면 커스텀을 Y로 처리해준다. Dim o재료명 As Object = grid.GetData(e.Row, grid.Cols("설명").Index) Dim 재료명 As String = String.Empty If Not o재료명 Is Nothing Then 재료명 = o재료명.ToString() Dim o열전도율 As Object = grid.GetData(e.Row, e.Col) Dim 열전도율 As String = "" If Not o열전도율 Is Nothing Then 열전도율 = o열전도율.ToString() If String.IsNullOrEmpty(열전도율) OrElse String.IsNullOrEmpty(재료명) Then grid.SetData(e.Row, grid.Cols("커스텀").Index, "N") Else '//값이 들어있다면 목록내의 값인지 체크한다. Dim Filter As String = String.Format("gubun='1089' and name='{0}'", 재료명) Dim Drow() As DS.tbl_common_odRow = DSET1.tbl_common_od.Select(Filter) If Drow.GetUpperBound(0) = 0 Then Dim 기준값 As String = Drow(0).valn1 If 열전도율 <> 기준값 Then grid.SetData(e.Row, grid.Cols("커스텀").Index, "Y") '//해당값이 아에없는경우 변경된걸로 확인 Else grid.SetData(e.Row, grid.Cols("커스텀").Index, "N") '//해당값이 아에없는경우 변경된걸로 확인 End If Else grid.SetData(e.Row, grid.Cols("커스텀").Index, "N") '//해당값이 아에없는경우 변경된걸로 확인 End If End If Case "설명" '//재료명이 바뀌었다면 열전도율 목록과 해당 재료의 색상코드로 그 값을 변경해준다. Dim o재료명 As Object = grid.GetData(e.Row, e.Col) Dim 재료명 As String = String.Empty If Not o재료명 Is Nothing Then 재료명 = o재료명.ToString() '//해당열전도율가져오기 Dim cmb As ComboBox = fxData.Cols("열전도율").Editor cmb.Items.Clear() Dim 재료코드 As String = String.Empty Dim Filter As String = String.Format("gubun='1089' and name='{0}'", 재료명) Dim Drow() As DS.tbl_common_odRow = DSET1.tbl_common_od.Select(Filter) If Drow.GetUpperBound(0) = 0 Then 재료코드 = Drow(0).code cmb.Items.Add(Drow(0).valn1) cmb.Text = Drow(0).valn1 Else grid.SetData(e.Row, grid.Cols("커스텀").Index, "Y") '//해당값이 아에없는경우 변경된걸로 확인 End If '//색및 패턴명 가져오기 Dim Er As Boolean = False Dim Dr2() As DS.tbl_common_odRow = DSET1.tbl_common_od.Select("gubun='1090' and code='" & 재료코드 & "'") If Dr2.GetUpperBound(0) = -1 Then grid.SetData(e.Row, grid.Cols("전경색").Index, Color.Blue.ToArgb.ToString()) grid.SetData(e.Row, grid.Cols("후경색").Index, Color.White.ToArgb.ToString()) '//디비에 해당설ㅈㅇ이 없을경우 행하는 코드들 grid.SetData(e.Row, grid.Cols("구분").Index, "5") Else '//디비에 있을경우 Try grid.SetData(e.Row, grid.Cols("전경색").Index, Dr2(0)("name").ToString.Split(",")(0)) Catch ex As Exception grid.SetData(e.Row, grid.Cols("전경색").Index, Color.Black.ToArgb.ToString()) End Try Try grid.SetData(e.Row, grid.Cols("후경색").Index, Dr2(0)("name").ToString.Split(",")(1)) Catch ex As Exception grid.SetData(e.Row, grid.Cols("후경색").Index, Color.White.ToArgb.ToString()) End Try grid.SetData(e.Row, grid.Cols("구분").Index, CInt(Dr2(0)("valn1"))) End If '//이자료에 맞는 열전도율 값을 가져와서 콤보박스에 넣는다 If Not MoveCellDown(grid, e.Col) Then MoveCellRight(grid) Case Else If Not MoveCellDown(grid, e.Col) Then MoveCellRight(grid) End Select fxData.FinishEditing() bs_detail.EndEdit() ' grid.AutoSizeCols() RefreshCellFormat() refresh_Image() End Sub Private Function FindRowIndex(grid As C1.Win.C1FlexGrid.C1FlexGrid, IDX As Integer, Optional IDXField As String = "IDX") As Integer For i As Integer = 1 To grid.Rows.Count Dim oIDX As Integer = CInt(grid.GetData(i, grid.Cols(IDXField).Index)) If IDX = oIDX Then Return i End If Next Return -1 End Function Private Sub fgrid_KeyPress(sender As Object, e As KeyPressEventArgs) '일반선택상태일때 엔터키를 누른다면 If e.KeyChar = Chr(&HD) Then '엔터는 아래 혹은 우측으로 Dim grid As C1.Win.C1FlexGrid.C1FlexGrid = DirectCast(sender, C1.Win.C1FlexGrid.C1FlexGrid) e.Handled = True If Not MoveCellDown(grid) Then MoveCellRight(grid) End If ElseIf e.KeyChar = Chr(&H8) Then '탭은 우측으로 Dim grid As C1.Win.C1FlexGrid.C1FlexGrid = DirectCast(sender, C1.Win.C1FlexGrid.C1FlexGrid) e.Handled = True MoveCellRight(grid) End If End Sub Private Function MoveCellDown(grid As C1.Win.C1FlexGrid.C1FlexGrid, Optional firstcol As Integer = -1) As [Boolean] Dim colidx As Integer = grid.CursorCell.c1 '현재 If firstcol > -1 Then colidx = firstcol End If Dim rowidx As Integer = grid.CursorCell.TopRow Dim newidx As Integer = rowidx + 1 '다음셀을 찾는다. If newidx < grid.Rows.Count Then grid.[Select](newidx, colidx) Return True Else '마지막줄이므로 처리하지않ㄴ든다. Return False End If End Function Private Function MoveCellRight(grid As C1.Win.C1FlexGrid.C1FlexGrid) As [Boolean] Dim colidx As Integer = grid.CursorCell.c1 '현재 Dim newidx As Integer = colidx + 1 Dim find As [Boolean] = False '다음셀을 찾는다. While True If newidx + 1 <= grid.Cols.Count Then If Not grid.Cols(newidx).IsVisible OrElse Not grid.Cols(newidx).AllowEditing Then newidx += 1 Continue While Else grid.[Select](grid.CursorCell.TopRow, newidx) find = True Exit While End If Else Exit While End If End While Return find End Function Sub flexOwnerDrawCell(sender As Object, e As C1.Win.C1FlexGrid.OwnerDrawCellEventArgs) Dim grid As C1.Win.C1FlexGrid.C1FlexGrid = sender If e.Row >= grid.Rows.Fixed AndAlso e.Col = grid.Cols.Fixed - 1 Then e.Text = (e.Row - grid.Rows.Fixed) + 1 End If End Sub Private Sub RefreshCellFormat() For i As Integer = 1 To Me.fxData.Rows.Count - 1 Dim obj_admin As Object = Me.fxData.GetData(i, Me.fxData.Cols("후경색").Index) Dim str_admin As String = String.Empty If Not obj_admin Is Nothing Then str_admin = obj_admin.ToString() If String.IsNullOrEmpty(str_admin) Then str_admin = System.Drawing.Color.White.ToArgb().ToString() Dim newstyle As C1.Win.C1FlexGrid.CellStyle = fxData.Styles.Add(Nothing) newstyle.BackColor = Color.FromArgb(Int32.Parse(str_admin)) Dim obj_custom As Object = Me.fxData.GetData(i, Me.fxData.Cols("커스텀").Index) Dim str_custom As String = String.Empty If Not obj_custom Is Nothing Then str_custom = obj_custom.ToString() If String.IsNullOrEmpty(str_custom) Then str_custom = System.Drawing.Color.Black.ToArgb().ToString() If str_custom = "Y" Then newstyle.ForeColor = Color.Red Else newstyle.ForeColor = Color.Black End If fxData.Rows()(i).Style = newstyle Next End Sub #End Region Private Sub Frm_V20091231_YK_FormClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing Me.bs.EndEdit() Me.bs_detail.EndEdit() For Each Drow As DS.tbl_myounRow In DSET1.tbl_myoun.Select("isnull(열관류율2,'') <> ''") Dim Dr() As DS.tbl_ykRow = DSET1.tbl_yk.Select("code='" & Drow.열관류율2.ToString & "'") If Dr.Length < 1 Then Continue For '//대상자료가없는 경우 skip If Drow.열관류율2 = "0" OrElse Drow.열관류율2 = "" Then Else Select Case Dr(0).면형태 Case "외벽(직접)", "0" Drow.건축부위방식 = "외벽" Drow.열관류율 = Dr(0).열관류율 Case "지붕(직접)", "0001" Drow.건축부위방식 = "외벽" Drow.열관류율 = Dr(0).열관류율 Drow.방위 = "수평" Case "바닥(직접)", "0002" Drow.건축부위방식 = "외벽" Drow.열관류율 = Dr(0).열관류율 Drow.방위 = "일사없음" Case "외벽(간접)", "0003" Drow.건축부위방식 = "내벽" Drow.열관류율 = Dr(0).열관류율 Drow.방위 = "일사없음" Case "지붕(간접)", "0004" Drow.건축부위방식 = "내벽" Drow.열관류율 = Dr(0).열관류율 Drow.방위 = "일사없음" Case "바닥(간접)", "0005" Drow.건축부위방식 = "내벽" Drow.열관류율 = Dr(0).열관류율 Drow.방위 = "일사없음" Case "간벽", "0006" Drow.건축부위방식 = "간벽" Drow.열관류율 = Dr(0).열관류율 Drow.방위 = "일사없음" Case "창(직접)", "0007" Drow.건축부위방식 = "외부창" Drow.열관류율 = Dr(0).창호열관류율 Drow.투과율 = Dr(0).일사에너지투과율 Case "창(간접)", "0008" Drow.건축부위방식 = "내부창" Drow.열관류율 = Dr(0).창호열관류율 Drow.투과율 = Dr(0).일사에너지투과율 Case "문(직접)", "0010" Drow.건축부위방식 = "외부창" Drow.열관류율 = Dr(0).창호열관류율 Drow.투과율 = Dr(0).일사에너지투과율 Case "문(간접)", "0011" Drow.건축부위방식 = "내부창" Drow.열관류율 = Dr(0).창호열관류율 Drow.투과율 = Dr(0).일사에너지투과율 Case "지중벽", "0009" Drow.건축부위방식 = "내벽" Drow.열관류율 = Dr(0).열관류율 Drow.방위 = "일사없음" Case "세대현관문(직접)", "0012" Drow.건축부위방식 = "외부창" Drow.열관류율 = Dr(0).창호열관류율 Drow.투과율 = Dr(0).일사에너지투과율 Case "세대현관문(간접)", "0013" Drow.건축부위방식 = "내부창" Drow.열관류율 = Dr(0).열관류율 Drow.방위 = "일사없음" Case Else MsgBox("모르는값 " & Dr("면형태").ToString & "/" & Dr(0).면형태) End Select End If Next End Sub Private Sub MdiMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load 'TODO: 이 코드는 데이터를 'DS.tbl_common' 테이블에 로드합니다. 필요한 경우 이 코드를 이동하거나 제거할 수 있습니다. ' MdiMain.Toggle_Menu_Color(MdiMain.E_MenuIdx.열관류율) 'CEnergy.ARINCLASS.SaveLoad_FrmSetting(Me) '//프로필 관련 '//공유데이터셋에 연결한다. Me.bs.DataSource = DSET1 Me.bs_detail.DataSource = DSET1 Me.bs_gubun.DataSource = DSET1 Me.bS_재료.DataSource = DSET1 bS_재료.Filter = "gubun='1089'" bS_재료.Sort = "code" DT = DSET1.tbl_yk '//냉방분배 AddHandler DSET1.tbl_yk.TableNewRow, AddressOf AddNewDataRow_bunbae AddHandler DSET1.tbl_ykdetail.TableNewRow, AddressOf AddNewDataRow_Weatherilsa '//모든컨트롤의 cTrl_enter 를 추가합니다 BindProperty(CType(Me.Controls, Control.ControlCollection)) '//콤보컨트롤 바인딩 Binding_Zone() Me.bsmain = Me.bs Try Me.bsmain.Position = CEnergy.ARINCLASS.Read_LastPos_Frm(Me) Catch ex As Exception Me.bsmain.MoveFirst() End Try refresh_Image() Me.init = True bs_detail_CurrentChanged(Nothing, Nothing) '//제목줄 크기변경 fxList.Rows()(0).HeightDisplay *= 2 fxList.Rows()(0).StyleDisplay.WordWrap = True fxData.Rows()(0).HeightDisplay *= 2 fxData.Rows()(0).StyleDisplay.WordWrap = True '//열너비 ReadfGridColWidth(Me.Name, fxData) RefreshCellFormat() 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 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 #End Region #Region "기본" Private Sub MdiMain_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed CEnergy.ARINCLASS.SaveLoad_FrmSetting(Me, Me.bsmain.Position, True) End Sub Private Function GetMaxCode(ByVal dt As DataTable) As String Dim Drow() As DataRow = dt.Select("", "code desc") If Drow.GetUpperBound(0) = -1 Then Return "0001" Return Format(CInt(Drow(0)("code")) + 1, "0000") 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 AddNewDataRow_bunbae(ByVal sender As Object, ByVal e As System.Data.DataTableNewRowEventArgs) e.Row.Item("code") = GetMaxCode(DSET1.tbl_yk) ' MsgBox("22") End Sub Private Sub AddNewDataRow_Weatherilsa(ByVal sender As Object, ByVal e As System.Data.DataTableNewRowEventArgs) Dim NewCode As String Try Dim Dr As DataRow = DSET1.tbl_ykdetail.Select("pcode = '" & Me.pcode & "'", "code desc")(0) NewCode = Format(CInt(Dr("code")) + 1, "0000") Catch ex As Exception NewCode = ("0001") End Try Try e.Row.Item("pcode") = Me.pcode ' CType(bs.Current, DataRowView)("code") e.Row.Item("code") = NewCode 'MsgBox(e.Row.Item("code").ToString) Catch ex As Exception MsgBox("부모코드없음 선택다시") End Try End Sub Private Sub Binding_Zone() Dim bs_형태 As New BindingSource(DSET1, "tbl_common_od") bs_형태.Filter = "gubun='1088'" bs_형태.Sort = "code" Me.cmb_형태.DataSource = bs_형태 cmb_형태.DisplayMember = "name" cmb_형태.ValueMember = "code" Me.cmb_형태.DataBindings.Clear() Me.cmb_형태.DataBindings.Add("selectedvalue", Me.bs, "면형태") AddHandler cmb_형태.KeyDown, AddressOf Cmb_DeleteVal 'tbl_common_od bS_재료.Filter = "gubun='1089'" bS_재료.Sort = "code" '//이 값은 고정된 값이므로 그대로 적용한다. Dim cmd_재료List As New ComboBox For Each dr As DS.tbl_common_odRow In DSET1.tbl_common_od.Select("gubun='1089'", "code") cmd_재료List.Items.Add(dr.name) Next AddHandler cmd_재료List.SelectionChangeCommitted, AddressOf Selected_열전도율값 fxData.Cols("설명").Editor = cmd_재료List Dim cmd_열전도율List As New ComboBox AddHandler cmd_열전도율List.SelectionChangeCommitted, AddressOf Selected_열전도율값 fxData.Cols("열전도율").Editor = cmd_열전도율List bs_gubun.Filter = "gubun='1090'" bs_gubun.Sort = "code" End Sub Sub Selected_열전도율값(sender As Object, e As System.EventArgs) '//콤보박스를 선택했다면 입력을 완료한 것으로 간주한다. Me.Validate() bs_detail.EndEdit() 'fxData.FinishEditing() 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 #End Region Private Sub bt_Del_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_yk.Select(Me.bs.Filter, "") For i As Integer = dR.GetUpperBound(0) To 0 Step -1 dR(i).Delete() Next DSET1.tbl_yk.AcceptChanges() End If End If End Sub Private Sub dv_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles fxList.MouseUp If e.Button = Windows.Forms.MouseButtons.Right Then Frm_Filter.ColumTitle = getColCaption(Me.DT) Frm_Filter.ColumList = getColName(Me.DT) Frm_Filter.Colorlist = "" Frm_Filter.Numfield = "" '//20100618 Color 리스트처럼 , 구분해서 필드들을 모두 넣으세요.(=, >= 등을 사용하기 위해서는 해당 항목을 추가 요망) If Frm_Filter.ShowDialog <> Windows.Forms.DialogResult.OK Then Return '//창떳을떄 확인아ㅣ고 취소눌르면 다음을 수행하지않는다는거에요. Dim Filter As String = Frm_Filter.tb_filter.Text '//값은 아까 그 텍박에 잇구요. Try Me.bs.Filter = Filter '//바꾸기값이 있으면 변경 20100618 If Frm_Filter.cmb_fieldc.SelectedIndex >= 0 AndAlso Frm_Filter.cmb_fieldc.Text.ToLower <> "code" AndAlso Frm_Filter.tb_valuec.Text <> "" Then Dim Drow() As DataRow = Me.DT.Select(Filter) For Each Dr As DataRow In Drow Dr(Frm_Filter.cmb_fieldc.Text) = Frm_Filter.tb_valuec.Text Next MsgBox("바꾸기 완료", MsgBoxStyle.Information, "확인") End If Catch ex As Exception Me.bs.Filter = "" 'MsgBox("2. " & ex.Message.ToString) End Try End If End Sub Private Sub dv_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles fxList.KeyDown '//여기보시면 alt+d 누르면 한줄을 경고없이(falsE)삭제하도록 햇어요. Select Case e.KeyCode Case Keys.D If e.Alt Then 'Dbbase.DelCrow(Me.bs, False) Del_YKdetail(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 Func_Add() '//신규추가 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 '//하위데이터복제 Dim src_pcode As String = SrcDrv("code").ToString Dim new_pcode As String = NewDrv("code").ToString For Each Drow2 As DS.tbl_ykdetailRow In DSET1.tbl_ykdetail.Select("pcode='" & src_pcode & "'") Dim Newrow As DS.tbl_ykdetailRow = DSET1.tbl_ykdetail.Newtbl_ykdetailRow For Each C As DataColumn In DSET1.tbl_ykdetail.Columns Newrow(C.ColumnName) = Drow2(C.ColumnName) Next Newrow.pcode = new_pcode DSET1.tbl_ykdetail.Addtbl_ykdetailRow(Newrow) Next Me.bs.EndEdit() Me.bs_detail.EndEdit() Me.refresh_Image() bs.MoveLast() End If End Select End Sub Private Sub Del_YKdetail(ByVal prompt As Boolean) If prompt Then If MsgBox("선택된 줄을 삭제하시겠습니까?", MsgBoxStyle.OkCancel Or MsgBoxStyle.Information, "삭제확인") <> MsgBoxResult.Ok Then Return End If Dim Drv As DataRowView = CType(bs.Current, DataRowView) If Drv Is Nothing Then Return Dim DR() As DataRow = DSET1.tbl_ykdetail.Select("code <> '0' and code='" & Drv("code").ToString & "'") If DR.GetUpperBound(0) <> -1 Then For i As Integer = DR.GetUpperBound(0) To 0 Step -1 DR(i).Delete() Next End If Me.bs.RemoveCurrent() End Sub Private Sub bs_CurrentChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bs.CurrentChanged Try pcode = CType(bs.Current, DataRowView)("code").ToString Me.bs_detail.Filter = "pcode='" & pcode & "'" Me.DS.tbl_ykdetail.AcceptChanges() Me.refresh_Image() RefreshCellFormat() fxData.AutoSizeCols() Catch ex As Exception 'MsgBox("3. " & ex.Message.ToString) End Try Me.bs.EndEdit() End Sub Private Sub refresh_Image() ' MsgBox(Me.UserControl11.Vertical) Dim width As Decimal = 0 '//뭘고치던 여기 함수가 실행되므로 이곳에서 뭔가 작업하시는게 좋을것 같구요..어떤것을들 더하시려구요? Dim R_value As Decimal = 0 For Each Dr As DS.tbl_ykdetailRow In DSET1.tbl_ykdetail.Select(Me.bs_detail.Filter, "") '//세부내역중 두께를 합치는 루틴입니다. 'Try If Dr.설명 = "공기층" Then Dr.열전도율 = "" If TOSG(T, Dr.두께) > 10.0 Then Dr.열저항 = TOST(0.086) R_value += 0.086 Else Dr.열저항 = TOST(TOSG(T, Dr.두께) * 0.0086) R_value = R_value + TOSG(T, Dr.두께) * 0.0086 End If Else '//여기아래 추가하신거에요? If Dr.설명.IndexOf("열전달저항") <> -1 Then Dr.두께 = "" Dr.열전도율 = "" Select Case Dr.설명 Case "실내열전달저항(벽체)" Dr.열저항 = TOST(0.11) R_value += 0.11 Case "실외열전달저항(벽체,간접)" Dr.열저항 = TOST(0.11) R_value += 0.11 Case "실외열전달저항(벽체,직접)" Dr.열저항 = TOST(0.043) R_value += 0.043 Case "실내열전달저항(바닥)" Dr.열저항 = TOST(0.086) R_value += 0.086 Case "실외열전달저항(바닥,간접)" Dr.열저항 = TOST(0.15) R_value += 0.15 Case "실외열전달저항(바닥,직접)" Dr.열저항 = TOST(0.043) R_value += 0.043 Case "실내열전달저항(지붕)" Dr.열저항 = TOST(0.086) R_value += 0.086 Case "실외열전달저항(지붕,간접)" Dr.열저항 = TOST(0.086) R_value += 0.086 Case "실외열전달저항(지붕,직접)" Dr.열저항 = TOST(0.043) R_value += 0.043 End Select Else If Dr.열전도율 <> "" AndAlso TOSG(T, Dr.열전도율) <> 0 Then Dr.열저항 = TOSG(T, Math.Round(TOSG(T, Dr.두께) / 1000 / TOSG(T, Dr.열전도율), 4)).ToString R_value += TOSG(T, Dr.열저항) '//여부분에서는 나올수잇겟군요.?예 End If End If End If If Dr.설명.IndexOf("열전달저항") = -1 Then width += TOSG(T, Dr.두께) End If Next Try If cmb_형태.Text.StartsWith("문") OrElse cmb_형태.Text.StartsWith("세대현관문") Then Me.열관류율NTb.Text = Me.NTb_창호열관류율.Text Else Me.열관류율NTb.Text = CSng(Math.Round(1 / R_value, 3)).ToString End If Check열관류율() Catch ex As Exception Me.열관류율NTb.Text = "" 'MsgBox("4. " & ex.Message.ToString) End Try Try If cmb_형태.Text = "창(직접)" OrElse cmb_형태.Text = "창(간접)" Then If Me.chk_발코니여부.Checked Then Me.tb_투과율.Text = Math.Round(TOSG(tb_발코니투과율.Text) * TOSG(NTb_일사에너지투과율.Text), 3) Me.열관류율NTb.Text = Math.Round((1 / ((1 / TOSG(Me.NTb_창호열관류율.Text)) + (1 / TOSG(Me.tb_발코니열관류율.Text)) * 0.5)), 3) Else Me.tb_투과율.Text = NTb_일사에너지투과율.Text Me.열관류율NTb.Text = Me.NTb_창호열관류율.Text End If Else Me.열관류율NTb.Text = CSng(Math.Round(1 / R_value, 3)).ToString Me.tb_투과율.Text = "" End If Catch ex As Exception Me.열관류율NTb.Text = "" Me.tb_투과율.Text = "" End Try ' Me.MyTb1.Text = width.ToString("N2") Me.UserControl11.MaxSize = width 'MsgBox(width) ' Me.Label1.Text = Me.UserControl11.Width '// 0.51 : me.wid = x : ? ' Me.UserControl11.Vertical = True Dim FT(Me.fxData.Rows.Count - 1) As mn.UserControl1.SM For i As Integer = 1 To Me.fxData.Rows.Count - 1 '//아까 열표시해서 검정색 선택해보니 검정은 값이 0 이 나오더라구요 Dim o후경색 As Object = fxData.GetData(i, fxData.Cols("후경색").Index) Dim o구분 As Object = fxData.GetData(i, fxData.Cols("구분").Index) Dim o두께 As Object = fxData.GetData(i, fxData.Cols("두께").Index) Dim 후경색 As String = "" Dim 두께 As String = "" Dim 구분 As String = "" If Not o후경색 Is Nothing Then 후경색 = o후경색.ToString() If Not o구분 Is Nothing Then 구분 = o구분.ToString() If Not o두께 Is Nothing Then 두께 = o두께.ToString() Try FT(i).BColor = Color.FromArgb(후경색) Catch ex As Exception FT(i).BColor = Color.FromName("white") End Try Try FT(i).Style = Val(구분) Catch ex As Exception FT(i).Style = Drawing2D.HatchStyle.Cross End Try Try If 두께 <> "" Then FT(i).Width = 두께 End If Catch ex As Exception 'MsgBox("8. " & ex.Message.ToString) End Try Next Me.UserControl11.M1FillType = FT End Sub Sub 법적기준확인() '//법적기준 확인 170601 Dim drDesc As DS.tbl_DescRow = DSET1.tbl_Desc.Rows(0) Dim areaCode As String = drDesc.buildarea Dim drWGs() As DS.weather_groupRow = DSET1.weather_group.Select("code = '" + areaCode + "'") If drWGs.Length = 1 Then Dim drWG As DS.weather_groupRow = drWGs(0) Dim Area As String If Program = EProgram.총량평가 Then Area = drWG.area2 Select Case Area Case "중부1" Select Case cmb_형태.Text Case "외벽(직접)" tb법적기준.Text = "0.170" Case "지붕(직접)" tb법적기준.Text = "0.150" Case "바닥(직접)" If 체크바닥난방여부.Checked Then tb법적기준.Text = "0.150" Else tb법적기준.Text = "0.170" End If Case "창(직접)" tb법적기준.Text = "1.300" Case "창(간접)" tb법적기준.Text = "1.600" Case "문(직접)" tb법적기준.Text = "1.500" Case "문(간접)" tb법적기준.Text = "1.900" Case "외벽(간접)" tb법적기준.Text = "0.240" Case "지붕(간접)" tb법적기준.Text = "0.210" Case "바닥(간접)" If 체크바닥난방여부.Checked Then tb법적기준.Text = "0.210" Else tb법적기준.Text = "0.240" End If Case "지중벽" tb법적기준.Text = "0.240" Case "세대현관문(직접)" tb법적기준.Text = "1.400" Case "세대현관문(간접)" tb법적기준.Text = "1.800" Case Else tb법적기준.Text = "--" End Select Case "중부2" Select Case cmb_형태.Text Case "외벽(직접)" tb법적기준.Text = "0.240" Case "지붕(직접)" tb법적기준.Text = "0.150" Case "바닥(직접)" If 체크바닥난방여부.Checked Then tb법적기준.Text = "0.170" Else tb법적기준.Text = "0.200" End If Case "창(직접)" tb법적기준.Text = "1.500" Case "창(간접)" tb법적기준.Text = "1.900" Case "문(직접)" tb법적기준.Text = "1.500" Case "문(간접)" tb법적기준.Text = "1.900" Case "외벽(간접)" tb법적기준.Text = "0.340" Case "지붕(간접)" tb법적기준.Text = "0.210" Case "바닥(간접)" If 체크바닥난방여부.Checked Then tb법적기준.Text = "0.240" Else tb법적기준.Text = "0.290" End If Case "지중벽" tb법적기준.Text = "0.340" Case "세대현관문(직접)" tb법적기준.Text = "1.400" Case "세대현관문(간접)" tb법적기준.Text = "1.800" Case Else tb법적기준.Text = "--" End Select Case "남부" Select Case cmb_형태.Text Case "외벽(직접)" tb법적기준.Text = "0.320" Case "지붕(직접)" tb법적기준.Text = "0.180" Case "바닥(직접)" If 체크바닥난방여부.Checked Then tb법적기준.Text = "0.220" Else tb법적기준.Text = "0.250" End If Case "창(직접)" tb법적기준.Text = "1.800" Case "창(간접)" tb법적기준.Text = "2.200" Case "문(직접)" tb법적기준.Text = "1.800" Case "문(간접)" tb법적기준.Text = "2.200" Case "외벽(간접)" tb법적기준.Text = "0.450" Case "지붕(간접)" tb법적기준.Text = "0.260" Case "바닥(간접)" If 체크바닥난방여부.Checked Then tb법적기준.Text = "0.310" Else tb법적기준.Text = "0.350" End If Case "지중벽" tb법적기준.Text = "0.450" Case "세대현관문(직접)" tb법적기준.Text = "1.400" Case "세대현관문(간접)" tb법적기준.Text = "1.800" Case Else tb법적기준.Text = "--" End Select Case "제주" Select Case cmb_형태.Text Case "외벽(직접)" tb법적기준.Text = "0.410" Case "지붕(직접)" tb법적기준.Text = "0.250" Case "바닥(직접)" If 체크바닥난방여부.Checked Then tb법적기준.Text = "0.290" Else tb법적기준.Text = "0.330" End If Case "창(직접)" tb법적기준.Text = "2.200" Case "창(간접)" tb법적기준.Text = "2.800" Case "문(직접)" tb법적기준.Text = "2.200" Case "문(간접)" tb법적기준.Text = "2.800" Case "외벽(간접)" tb법적기준.Text = "0.560" Case "지붕(간접)" tb법적기준.Text = "0.350" Case "바닥(간접)" If 체크바닥난방여부.Checked Then tb법적기준.Text = "0.410" Else tb법적기준.Text = "0.470" End If Case "지중벽" tb법적기준.Text = "0.560" Case "세대현관문(직접)" tb법적기준.Text = "1.400" Case "세대현관문(간접)" tb법적기준.Text = "1.800" Case Else tb법적기준.Text = "--" End Select Case Else '//지정안된경우 tb법적기준.Text = "--" End Select Else '//친환경 Area = drWG.area3 'Area = drWG.area2 2018년 12월 친환경주택 지역 통일화 필요 Select Case Area Case "중부1" Select Case cmb_형태.Text Case "외벽(직접)" tb법적기준.Text = "0.150" Case "지붕(직접)" tb법적기준.Text = "0.150" Case "바닥(직접)" If 체크바닥난방여부.Checked Then tb법적기준.Text = "0.150" Else tb법적기준.Text = "0.170" End If Case "창(직접)" tb법적기준.Text = "0.900" Case "창(간접)" tb법적기준.Text = "1.300" Case "문(직접)" tb법적기준.Text = "0.900" Case "문(간접)" tb법적기준.Text = "1.300" Case "외벽(간접)" tb법적기준.Text = "0.210" Case "지붕(간접)" tb법적기준.Text = "0.210" Case "바닥(간접)" If 체크바닥난방여부.Checked Then tb법적기준.Text = "0.210" Else tb법적기준.Text = "0.240" End If Case "지중벽" tb법적기준.Text = "0.210" Case "세대현관문(직접)" tb법적기준.Text = "1.400" Case "세대현관문(간접)" tb법적기준.Text = "1.800" Case Else tb법적기준.Text = "--" End Select Case "중부2" Select Case cmb_형태.Text Case "외벽(직접)" tb법적기준.Text = "0.170" Case "지붕(직접)" tb법적기준.Text = "0.150" Case "바닥(직접)" If 체크바닥난방여부.Checked Then tb법적기준.Text = "0.170" Else tb법적기준.Text = "0.200" End If Case "창(직접)" tb법적기준.Text = "1.000" Case "창(간접)" tb법적기준.Text = "1.500" Case "문(직접)" tb법적기준.Text = "1.000" Case "문(간접)" tb법적기준.Text = "1.500" Case "외벽(간접)" tb법적기준.Text = "0.240" Case "지붕(간접)" tb법적기준.Text = "0.210" Case "바닥(간접)" If 체크바닥난방여부.Checked Then tb법적기준.Text = "0.240" Else tb법적기준.Text = "0.290" End If Case "지중벽" tb법적기준.Text = "0.240" Case "세대현관문(직접)" tb법적기준.Text = "1.400" Case "세대현관문(간접)" tb법적기준.Text = "1.800" Case Else tb법적기준.Text = "--" End Select Case "남부" Select Case cmb_형태.Text Case "외벽(직접)" tb법적기준.Text = "0.220" Case "지붕(직접)" tb법적기준.Text = "0.180" Case "바닥(직접)" If 체크바닥난방여부.Checked Then tb법적기준.Text = "0.220" Else tb법적기준.Text = "0.250" End If Case "창(직접)" tb법적기준.Text = "1.200" Case "창(간접)" tb법적기준.Text = "1.700" Case "문(직접)" tb법적기준.Text = "1.200" Case "문(간접)" tb법적기준.Text = "1.700" Case "외벽(간접)" tb법적기준.Text = "0.310" Case "지붕(간접)" tb법적기준.Text = "0.260" Case "바닥(간접)" If 체크바닥난방여부.Checked Then tb법적기준.Text = "0.310" Else tb법적기준.Text = "0.350" End If Case "지중벽" tb법적기준.Text = "0.310" Case "세대현관문(직접)" tb법적기준.Text = "1.400" Case "세대현관문(간접)" tb법적기준.Text = "1.800" Case Else tb법적기준.Text = "--" End Select Case "제주" Select Case cmb_형태.Text Case "외벽(직접)" tb법적기준.Text = "0.290" Case "지붕(직접)" tb법적기준.Text = "0.250" Case "바닥(직접)" If 체크바닥난방여부.Checked Then tb법적기준.Text = "0.290" Else tb법적기준.Text = "0.330" End If Case "창(직접)" tb법적기준.Text = "1.600" Case "창(간접)" tb법적기준.Text = "2.000" Case "문(직접)" tb법적기준.Text = "1.600" Case "문(간접)" tb법적기준.Text = "2.000" Case "외벽(간접)" tb법적기준.Text = "0.410" Case "지붕(간접)" tb법적기준.Text = "0.350" Case "바닥(간접)" If 체크바닥난방여부.Checked Then tb법적기준.Text = "0.410" Else tb법적기준.Text = "0.470" End If Case "지중벽" tb법적기준.Text = "0.410" Case "세대현관문(직접)" tb법적기준.Text = "1.400" Case "세대현관문(간접)" tb법적기준.Text = "1.800" Case Else tb법적기준.Text = "--" End Select Case Else '//지정안된경우 tb법적기준.Text = "--" End Select 'Select Case Area ' Case "중부1" ' Select Case cmb_형태.Text ' Case "외벽(직접)" ' tb법적기준.Text = "0.15" ' Case "지붕(직접)" ' tb법적기준.Text = "0.15" ' Case "바닥(직접)" ' tb법적기준.Text = "0.15" ' Case "창(직접)" ' tb법적기준.Text = "0.90" ' Case "창(간접)" ' tb법적기준.Text = "1.30" ' Case "문(직접)" ' tb법적기준.Text = "1.40" ' Case "문(간접)" ' tb법적기준.Text = "1.80" ' Case "외벽(간접)" ' tb법적기준.Text = "0.21" ' Case "지붕(간접)" ' tb법적기준.Text = "0.21" ' Case "바닥(간접)" ' tb법적기준.Text = "0.21" ' Case "지중벽" ' tb법적기준.Text = "0.21" ' End Select ' Case "중부2" ' Select Case cmb_형태.Text ' Case "외벽(직접)" ' tb법적기준.Text = "0.17" ' Case "지붕(직접)" ' tb법적기준.Text = "0.15" ' Case "바닥(직접)" ' tb법적기준.Text = "0.17" ' Case "창(직접)" ' tb법적기준.Text = "1.00" ' Case "창(간접)" ' tb법적기준.Text = "1.50" ' Case "문(직접)" ' tb법적기준.Text = "1.40" ' Case "문(간접)" ' tb법적기준.Text = "1.80" ' Case "외벽(간접)" ' tb법적기준.Text = "0.24" ' Case "지붕(간접)" ' tb법적기준.Text = "0.21" ' Case "바닥(간접)" ' tb법적기준.Text = "0.24" ' Case "지중벽" ' tb법적기준.Text = "0.24" ' End Select ' Case "남부" ' Select Case cmb_형태.Text ' Case "외벽(직접)" ' tb법적기준.Text = "0.22" ' Case "지붕(직접)" ' tb법적기준.Text = "0.18" ' Case "바닥(직접)" ' tb법적기준.Text = "0.22" ' Case "창(직접)" ' tb법적기준.Text = "1.20" ' Case "창(간접)" ' tb법적기준.Text = "1.70" ' Case "문(직접)" ' tb법적기준.Text = "1.40" ' Case "문(간접)" ' tb법적기준.Text = "1.80" ' Case "외벽(간접)" ' tb법적기준.Text = "0.31" ' Case "지붕(간접)" ' tb법적기준.Text = "0.26" ' Case "바닥(간접)" ' tb법적기준.Text = "0.31" ' Case "지중벽" ' tb법적기준.Text = "0.31" ' End Select ' Case "제주" ' Select Case cmb_형태.Text ' Case "외벽(직접)" ' tb법적기준.Text = "0.29" ' Case "지붕(직접)" ' tb법적기준.Text = "0.25" ' Case "바닥(직접)" ' tb법적기준.Text = "0.29" ' Case "창(직접)" ' tb법적기준.Text = "1.60" ' Case "창(간접)" ' tb법적기준.Text = "2.00" ' Case "문(직접)" ' tb법적기준.Text = "1.40" ' Case "문(간접)" ' tb법적기준.Text = "1.80" ' Case "외벽(간접)" ' tb법적기준.Text = "0.41" ' Case "지붕(간접)" ' tb법적기준.Text = "0.35" ' Case "바닥(간접)" ' tb법적기준.Text = "0.41" ' Case "지중벽" ' tb법적기준.Text = "0.41" ' End Select ' Case Else ' '//지정안된경우 ' tb법적기준.Text = "--" 'End Select End If Else '//지역코드가 연결되지 않은경우 tb법적기준.Text = "--" End If UpdateColor() End Sub Sub UpdateColor() '열관류율NTb,tb법적기준 NTb_창호열관류율.BackColor = Color.WhiteSmoke 열관류율NTb.BackColor = Color.WhiteSmoke If cmb_형태.Text = "창(간접)" Then If IsNumeric(tb법적기준.Text) AndAlso IsNumeric(NTb_창호열관류율.Text) Then Dim S1 As Single = TOSG(tb법적기준.Text) Dim S2 As Single = TOSG(NTb_창호열관류율.Text) If S2 > S1 Then NTb_창호열관류율.BackColor = Color.HotPink Label2.Text = "법적기준(부적합)" Label2.ForeColor = Color.Red Label2.Font = New Font("맑은 고딕", 9.75, FontStyle.Bold) Else NTb_창호열관류율.BackColor = Color.WhiteSmoke Label2.Text = "법적기준" Label2.ForeColor = Color.Black Label2.Font = New Font("맑은 고딕", 9.75, FontStyle.Regular) End If Else NTb_창호열관류율.BackColor = Color.WhiteSmoke Label2.Text = "법적기준" Label2.ForeColor = Color.Black Label2.Font = New Font("맑은 고딕", 9.75, FontStyle.Regular) End If Else If IsNumeric(tb법적기준.Text) AndAlso IsNumeric(열관류율NTb.Text) Then Dim S1 As Single = TOSG(tb법적기준.Text) Dim S2 As Single = TOSG(열관류율NTb.Text) If S2 > S1 Then 열관류율NTb.BackColor = Color.HotPink Label2.Text = "법적기준(부적합)" Label2.ForeColor = Color.Red Label2.Font = New Font("맑은 고딕", 9.75, FontStyle.Bold) Else 열관류율NTb.BackColor = Color.WhiteSmoke Label2.Text = "법적기준" Label2.ForeColor = Color.Black Label2.Font = New Font("맑은 고딕", 9.75, FontStyle.Regular) End If Else 열관류율NTb.BackColor = Color.WhiteSmoke Label2.Text = "법적기준" Label2.ForeColor = Color.Black Label2.Font = New Font("맑은 고딕", 9.75, FontStyle.Regular) End If End If End Sub Private Sub cmb_형태_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmb_형태.SelectedIndexChanged If cmb_형태.Text = "지붕(직접)" OrElse cmb_형태.Text = "바닥(직접)" OrElse cmb_형태.Text = "지붕(간접)" OrElse cmb_형태.Text = "바닥(간접)" Then Me.UserControl11.Vertical = False Else Me.UserControl11.Vertical = True End If If cmb_형태.Text.IndexOf("직접") <> -1 Then 체크열교방지구조.Enabled = True Else 체크열교방지구조.Enabled = False End If If cmb_형태.Text.StartsWith("바닥") Then 체크바닥난방여부.Enabled = True Else 체크바닥난방여부.Enabled = False End If '//형태가 바뀌었으므로 그림을 다시 그려준다. Me.refresh_Image() 법적기준확인() '//컨트롤 Enable If cmb_형태.Text.StartsWith("창") OrElse cmb_형태.Text.StartsWith("문") OrElse cmb_형태.Text.StartsWith("세대현관문") Then Me.NTb_창호열관류율.Visible = True Me.NTb_일사에너지투과율.Visible = True Me.NTb_창호세부설명.Visible = True Me.lbl_창호열관류율.ForeColor = Color.Black Me.lbl_일사에너지투과율.ForeColor = Color.Black Me.lbl_창호세부설명.ForeColor = Color.Black Else Me.NTb_창호열관류율.Visible = False Me.NTb_일사에너지투과율.Visible = False Me.NTb_창호세부설명.Visible = False Me.lbl_창호열관류율.ForeColor = Color.LightGray Me.lbl_일사에너지투과율.ForeColor = Color.LightGray Me.lbl_창호세부설명.ForeColor = Color.LightGray End If If cmb_형태.Text.StartsWith("창(직접)") OrElse cmb_형태.Text.StartsWith("창(간접)") Then Me.chk_발코니여부.ForeColor = Color.Black Application.DoEvents() Me.chk_발코니여부.Refresh() Application.DoEvents() Me.chk_발코니여부.Enabled = True Me.tb_투과율.Enabled = True Me.Label5.Enabled = True Me.tb_발코니투과율.Visible = True Me.tb_발코니열관류율.Visible = True Me.Label3.ForeColor = Color.Black Me.Label4.ForeColor = Color.Black Me.Label5.ForeColor = Color.Black Else 체크바닥난방여부.ForeColor = Color.LightGray Me.chk_발코니여부.Refresh() Application.DoEvents() Me.chk_발코니여부.Enabled = False Me.Label3.ForeColor = Color.LightGray Me.Label4.ForeColor = Color.LightGray Me.Label5.ForeColor = Color.LightGray Me.tb_투과율.Enabled = False 'Me.Label5.Enabled = False Me.tb_발코니투과율.Visible = False Me.tb_발코니열관류율.Visible = False End If End Sub Private Sub NTb_창호열관류율_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles NTb_창호열관류율.TextChanged If Not init Then Return If cmb_형태.Text.StartsWith("창") OrElse cmb_형태.Text.StartsWith("문") OrElse cmb_형태.Text.StartsWith("세대현관문") Then Me.열관류율NTb.Text = Me.NTb_창호열관류율.Text Check열관류율() End If End Sub Private Sub Check열관류율() '//MyTb1 에 지역그룹내의 area2 필드값을 참고하여 값을쓰고 그 값을 비교함 End Sub Private Sub bs_detail_CurrentChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bs_detail.CurrentChanged If Not init OrElse Me.bs_detail.Position < 0 Then Return '//선 Dim Drv As DataRowView = CType(Me.bs_detail.Current, DataRowView) If Drv Is Nothing Then Return '//선택된아이템이없으면 빠져나감 Dim dr As DS.tbl_ykdetailRow = Drv.Row '//열전도율목록을 갱신 Dim cmb열전도율 As ComboBox = fxData.Cols("열전도율").Editor cmb열전도율.Items.Clear() Dim Fil As String = "gubun='1089' and name='" & dr.설명 & "'" Dim Drow() As DS.tbl_common_odRow = DSET1.tbl_common_od.Select(Fil) If Drow.GetUpperBound(0) = 0 Then cmb열전도율.Items.Add(Drow(0).valn1) End If End Sub Public Overrides Function AcceptChanged() As Boolean fxList.FinishEditing() bs_detail.EndEdit() bs.EndEdit() DSET1.tbl_yk.AcceptChanges() DSET1.tbl_ykdetail.AcceptChanges() Return MyBase.AcceptChanged() End Function Private Sub RibbonButton1_Click(sender As Object, e As EventArgs) Handles btOK.Click AcceptChanged() Me.Close() End Sub Sub Func_Add() If Not EndEdit(Me.bs) Then Return Me.bs.AddNew() Me.bs.EndEdit() INitRow(Me.Controls) End Sub Private Sub RibbonButton2_Click(sender As Object, e As EventArgs) Handles btAdd1.Click Func_Add() ' Dim cnt As Integer = DSET1.tbl_ykdetail.Rows.Count End Sub Private Sub RibbonButton3_Click(sender As Object, e As EventArgs) Handles btDel1.Click Dbbase.DelCrow(Me.bs, True) If bs.Count = 0 Then DSET1.tbl_ykdetail.Clear() End If End Sub Private Sub RibbonButton4_Click(sender As Object, e As EventArgs) End Sub Private Sub RibbonButton5_Click(sender As Object, e As EventArgs) End Sub Private Sub RibbonButton6_Click(sender As Object, e As EventArgs) Handles RibbonButton6.Click Dim Drv As DataRowView = Me.bs_detail.Current Dim 전경 As String = String.Empty Try 전경 = Drv("전경색").ToString Catch ex As Exception End Try Dim 후경 As String = String.Empty Try 후경 = Drv("후경색").ToString Catch ex As Exception End Try Dim A As New Frm_DisplayGubun(전경, 후경) A.Show() End Sub Private Sub Button1_Click(sender As Object, e As EventArgs) RefreshCellFormat() End Sub Private Sub RibbonButton1_Click_1(sender As Object, e As EventArgs) Handles RibbonButton1.Click Dim drv As DataRowView = Me.bs.Current If drv Is Nothing Then Return Me.bs_detail.AddNew() Me.bs_detail.EndEdit() refresh_Image() End Sub Private Sub RibbonButon2_Click_1(sender As Object, e As EventArgs) Handles RibbonButton2.Click Dim drv As DataRowView = Me.bs.Current If drv Is Nothing Then Return If Me.bs_detail.Count > 0 Then Me.bs_detail.RemoveCurrent() Me.bs_detail.EndEdit() End If End Sub Private Sub 열너비저장ToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles 열너비저장ToolStripMenuItem.Click Dim MenuItem As ToolStripMenuItem = sender If Not MenuItem Is Nothing Then Dim cMenu As ContextMenuStrip = MenuItem.Owner If Not cMenu Is Nothing Then Dim grid As C1.Win.C1FlexGrid.C1FlexGrid = cMenu.SourceControl SavefGridColWidth(Me.Name, grid) End If End If End Sub Private Sub 열너비자동조정ToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles 열너비자동조정ToolStripMenuItem.Click Dim MenuItem As ToolStripMenuItem = sender If Not MenuItem Is Nothing Then Dim cMenu As ContextMenuStrip = MenuItem.Owner If Not cMenu Is Nothing Then Dim grid As C1.Win.C1FlexGrid.C1FlexGrid = cMenu.SourceControl grid.AutoSizeCols() End If End If End Sub Private Sub 열너비초기화ToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles 열너비초기화ToolStripMenuItem.Click Dim MenuItem As ToolStripMenuItem = sender If Not MenuItem Is Nothing Then Dim cMenu As ContextMenuStrip = MenuItem.Owner If Not cMenu Is Nothing Then Dim grid As C1.Win.C1FlexGrid.C1FlexGrid = cMenu.SourceControl '//모든데이터의 열너비를 초기화한다. ClearfGridColWidth(grid) End If End If End Sub Private Sub 체크바닥난방여부_Click(sender As System.Object, e As System.EventArgs) Handles 체크열교방지구조.Click, 체크바닥난방여부.Click 법적기준확인() End Sub Private Sub 열관류율NTb_TextChanged(sender As System.Object, e As System.EventArgs) Handles 열관류율NTb.TextChanged UpdateColor() End Sub Private Sub CheckBox1_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles chk_발코니여부.CheckedChanged refresh_Image() Me.tb_발코니열관류율.Enabled = chk_발코니여부.Checked Me.tb_발코니투과율.Enabled = chk_발코니여부.Checked 'Me.Label2.Enabled = chk_발코니여부.Checked 'Me.Label3.Enabled = chk_발코니여부.Checked End Sub Private Sub tb_발코니열관류율_TextChanged(sender As System.Object, e As System.EventArgs) Handles tb_발코니열관류율.TextChanged, tb_발코니투과율.TextChanged refresh_Image() End Sub Private Sub chk_발코니여부_EnabledChanged(sender As System.Object, e As System.EventArgs) Handles chk_발코니여부.EnabledChanged refresh_Image() If chk_발코니여부.Enabled = False Then Me.tb_발코니열관류율.Enabled = chk_발코니여부.Enabled Me.tb_발코니투과율.Enabled = chk_발코니여부.Enabled 'Me.Label2.Enabled = chk_발코니여부.Enabled 'Me.Label3.Enabled = chk_발코니여부.Enabled Else CheckBox1_CheckedChanged(sender, e) End If End Sub End Class