Files
ECO2/ArinWarev1/Forms_Input/Frm_YK.vb

1124 lines
45 KiB
VB.net

Public Class Frm_YK
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(_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()
'// 입력면데이터중에 열관류율을 사용한 데이터 업데이트(131009)
For Each dr As DS.tbl_myounRow In DSET1.tbl_myoun.Select("열관류율2 <> '0'")
Dim ykcode As String = dr.열관류율2
Dim ykrow() As DS.tbl_ykRow = DSET1.tbl_yk.Select("code='" + ykcode + "'")
If ykrow.Length = 1 Then
dr.투과율 = ykrow(0).투과율
End If
dr.AcceptChanges()
Next
Update_열관류율_140409()
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 ColumChange_YK_Detail(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
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_yk"
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 Update_열관류율_140409()
Me.Validate()
Me.dv.EndEdit()
Me.arindv1.EndEdit()
Me.bs.EndEdit()
Pub.Update_열관류율_140409()
End Sub
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()
Me.Update_열관류율_140409()
End Sub
Private Sub MdiMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Show()
My.Application.DoEvents()
' Work_msg_timer("잠시만 기다려주세요")
'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"
'//냉방분배
AddHandler DSET1.tbl_yk.TableNewRow, AddressOf addNewDataRow_YK
AddHandler DSET1.tbl_ykdetail.TableNewRow, AddressOf AddNewDataRow_YK_Detail
AddHandler DSET1.tbl_ykdetail.ColumnChanging, AddressOf ColumChange_YK_Detail
'//모든컨트롤의 cTrl_enter 를 추가합니다
BindProperty(CType(Me.SplitContainer1.Panel2.Controls, Control.ControlCollection))
'//콤보컨트롤 바인딩
Binding_Zone()
Me.bs.Filter = "code <> '0'"
If Me.Parameter <> "" Then Me.bs.Filter &= " and 면형태 ='" + Me.Parameter + "'"
' Me.lb_grpname.Text = Get_CName("1088", Me.Parameter)
Try
Me.bs.Position = CEnergy.ARINCLASS.Read_LastPos_Frm(Me)
Catch ex As Exception
Me.bs.MoveFirst()
End Try
refresh_Image()
Me.init = True
'Try '//열전도갱신
Me.cmb_열전도율.Items.Clear()
Dim 재료명 As String = ""
If Me.bs_detail.Count > 0 Then '//현재선택된 개체의 열전도율을 가져온다.
Dim Drv As DataRowView = Me.bs_detail.Current
재료명 = Drv("설명").ToString
Else
If Me.cmb_재료.Items.Count > 0 AndAlso Me.cmb_재료.SelectedIndex >= 0 Then 재료명 = CType(Me.cmb_재료.Items(Me.cmb_재료.SelectedIndex), DataRowView)("name").ToString
End If
Dim Filter = "gubun='1089' and name='" & 재료명 & "'"
Dim Drow() As DS.tbl_commonRow = DSET1.tbl_common.Select(Filter)
Try
If Drow.GetUpperBound(0) <> -1 Then Me.cmb_열전도율.Items.Add(Drow(0).valn1)
Catch ex As Exception
End Try
'Me.cmb_열전도율.Items.Clear()
'Dim Fil As String = "gubun='1089' and name='" & Me.cmb_재료.Text & "'"
'Try
' If Me.cmb_재료.Text <> "" Then
' Dim Dr As DS.tbl_commonRow = DSET1.tbl_common.Select(Fil)(0)
' 'Dim Dr As DS.tbl_commonRow = DSET1.tbl_common.Select("gubun='1089' and name='" & Me.cmb_재료.Text & "'")(0)
' If Me.cmb_재료.Text.IndexOf("공기층") = -1 Then
' Me.cmb_열전도율.Items.Add(Dr.valn1)
' End If
' End If
'Catch ex As Exception
' 'MsgBox("1. " & ex.Message.ToString)
'End Try
AddDebug("▲ Form Load")
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.bs.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" '//데이터가 없을경위 최소 0001으로 반환 2011-05-06(a)
'//데이터가있을경우 해당 데이터+1로 반환
Return Format(CInt(Drow(0)("code")) + 1, "0000")
'Try
' Dim Dr As DataRow = dt.Select("", "code desc")(0)
' Dim Dr_ykdetail As DataRow = dt_ykdetail.Select("", "code desc")(0)
' If Dr("code") >= Dr_ykdetail("code") Then
' Else
' Return Format(CInt(Dr_ykdetail("code")) + 1, "0000")
' End If
'Catch ex As Exception
' MsgBox(ex.Message.ToString)
' 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 addNewDataRow_YK(ByVal sender As Object, ByVal e As System.Data.DataTableNewRowEventArgs)
e.Row.Item("code") = GetMaxCode(DSET1.tbl_yk)
e.Row.Item("설명") = "신규데이터"
End Sub
Private Sub AddNewDataRow_YK_Detail(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
' bs_detail.Position = bs_detail.Count
'MsgBox(e.Row.Item("code").ToString)
Catch ex As Exception
MsgBox("부모코드없음 선택다시")
End Try
End Sub
Private Sub bt_add_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_add.Click
If Not EndEdit(Me.bs) Then Return
Me.bs.AddNew()
Me.bs.EndEdit()
INitRow(Me.Controls)
'ToolStripButton1.PerformClick() '//2011.04.20 열관류율 생성시 세부 레이어를 기본적으로 추가
End Sub
Private Sub bt_Del_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_Del.Click
'Dbbase.DelCrow(Me.bs, True)
Del_YKdetail(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(DSET1.tbl_profile, Nothing)
End Sub
Private Sub Binding_Zone()
Dim bs_형태 As New BindingSource(DSET1, "tbl_common")
bs_형태.Filter = "gubun='1088'"
bs_형태.Sort = "code"
Me.cmb_형태.DataSource = bs_형태
cmb_형태.DisplayMember = "name"
cmb_형태.ValueMember = "code"
Me.cmb_형태.DataBindings.Add("selectedvalue", Me.bs, "면형태")
AddHandler cmb_형태.KeyDown, AddressOf Cmb_DeleteVal
'Me.bS_재료.DataSource = DSET1.tbl_common
bS_재료.Filter = "gubun='1089'"
bS_재료.Sort = "code"
Me.cmb_재료.DataSource = bS_재료
cmb_재료.DisplayMember = "name"
cmb_재료.ValueMember = "name"
Me.cmb_재료.DataBindings.Add("text", Me.bs_detail, "설명")
AddHandler cmb_재료.KeyDown, AddressOf Cmb_DeleteVal
'Me.cmb_재료.Text = ""
'Me.bs_gubun.DataSource = DSET1.tbl_common
bs_gubun.Filter = "gubun='1090'"
bs_gubun.Sort = "code"
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) 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_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_DataError(sender As Object, e As System.Windows.Forms.DataGridViewDataErrorEventArgs) Handles dv.DataError
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.Default_Filter = "code <> '0'"
Frm_FilterA.Numfield = "" '//20100618 Color 리스트처럼 , 구분해서 필드들을 모두 넣으세요.(=, >= 등을 사용하기 위해서는 해당 항목을 추가 요망)
If Frm_FilterA.ShowDialog <> Windows.Forms.DialogResult.OK Then Return '//창떳을떄 확인아ㅣ고 취소눌르면 다음을 수행하지않는다는거에요.
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)
For Each Dr As DataRow In Drow
Dr(Frm_FilterA.cmb_fieldc.Text) = Frm_FilterA.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 If
End Sub
Private Sub dv_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles dv.KeyDown
'//여기보시면 alt+d 누르면 한줄을 경고없이(falsE)삭제하도록 햇어요.
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)
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
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
'//하위데이터복제
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 If
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 & "'"
DSET1.tbl_ykdetail.AcceptChanges()
Me.refresh_Image()
Me.lb_code.Text = "[" + pcode + "]"
My.Application.DoEvents()
'//해당데이터의 열관류율이상여부를 체크한다.
For Each dr As DS.tbl_ykdetailRow In DSET1.tbl_ykdetail.Select(Me.bs_detail.Filter)
Dim CUrvalue As String = dr.열전도율
If CUrvalue <> "" Then
Dim Drs() As DS.tbl_commonRow = DSET1.tbl_common.Select("gubun='1089' and name='" & dr.설명 & "' and valn1='" & CUrvalue.Trim & "'")
If Drs.GetUpperBound(0) = -1 Then '//일치하는것이 없다면
dr.커스텀 = "Y"
Else
dr.커스텀 = "N"
End If
End If
Next
DS.tbl_ykdetail.AcceptChanges()
My.Application.DoEvents()
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(Dr.두께) > 10.0 Then
Dr.열저항 = TOST(0.086)
R_value += 0.086
Else
Dr.열저항 = TOST(TOSG(Dr.두께) * 0.0086)
R_value = R_value + TOSG(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(Dr.열전도율) <> 0 Then
Dr.열저항 = TOSG(Math.Round(TOSG(Dr.두께) / 1000 / TOSG(Dr.열전도율), 4)).ToString
R_value += TOSG(Dr.열저항) '//여부분에서는 나올수잇겟군요.?예
End If
End If
End If
If Dr.설명.IndexOf("열전달저항") = -1 Then
width += TOSG(Dr.두께)
End If
Next
'Try
' If TOSG(Me.NTb_창호열관류율.Text) = 0.0F OrElse TOSG(Me.tb_발코니열관류율.Text) = 0.0F Then
' Me.열관류율NTb.Text = ""
' Me.tb_투과율.Text = ""
' Else
' If cmb_형태.Text = "외부창" OrElse cmb_형태.Text = "내부창" Then
' If Me.chk_발코니여부.Checked Then
' Me.열관류율NTb.Text = Math.Round((1 / ((1 / TOSG(Me.NTb_창호열관류율.Text)) + (1 / TOSG(Me.tb_발코니열관류율.Text)) * 0.5)), 3)
' Me.tb_투과율.Text = Math.Round(TOSG(tb_발코니투과율.Text) * TOSG(NTb_일사에너지투과율.Text), 3)
' Else
' Me.열관류율NTb.Text = Me.NTb_창호열관류율.Text
' Me.tb_투과율.Text = NTb_일사에너지투과율.Text
' End If
' Else
' Me.열관류율NTb.Text = CSng(Math.Round(1 / R_value, 3)).ToString
' Me.tb_투과율.Text = ""
' End If
' End If
'Catch ex As Exception
' Me.열관류율NTb.Text = ""
' Me.tb_투과율.Text = ""
'End Try
Try
If cmb_형태.Text = "외부창" OrElse cmb_형태.Text = "내부창" Then
If Me.chk_발코니여부.Checked Then
Me.열관류율NTb.Text = Math.Round((1 / ((1 / TOSG(Me.NTb_창호열관류율.Text)) + (1 / TOSG(Me.tb_발코니열관류율.Text)) * 0.5)), 3)
Me.tb_투과율.Text = Math.Round(TOSG(tb_발코니투과율.Text) * TOSG(NTb_일사에너지투과율.Text), 3)
Else
Me.열관류율NTb.Text = Me.NTb_창호열관류율.Text
Me.tb_투과율.Text = 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.arindv1.RowCount - 1) As YkCtl.SM
For i As Integer = 0 To Me.arindv1.RowCount - 1
'//아까 열표시해서 검정색 선택해보니 검정은 값이 0 이 나오더라구요
'//실재로 0값이 근데 표시가안됫어요 그러므로
Try
FT(i).BColor = Color.FromArgb(Me.arindv1.Rows(i).Cells("후경색").Value)
Catch ex As Exception
FT(i).BColor = Color.FromName("white")
'MsgBox("5. " & ex.Message.ToString)
End Try
'Try
' If Me.arindv1.Rows(i).Cells("전경색").Value = "0" Then
' FT(i).FColor = Color.Black
' Else
' FT(i).FColor = Color.FromArgb(Me.arindv1.Rows(i).Cells("전경색").Value)
' End If
'Catch ex As Exception
' FT(i).FColor = Color.FromName("black")
' 'MsgBox("6. " & ex.Message.ToString)
'End Try
' FT(i).Style=
Try
FT(i).Style = Val(Me.arindv1.Rows(i).Cells("구분").Value)
Catch ex As Exception
FT(i).Style = Drawing2D.HatchStyle.Cross
'MsgBox("7. " & ex.Message.ToString)
End Try
Try
If Me.arindv1.Rows(i).Cells("두께").Value <> "" Then
FT(i).Width = Me.arindv1.Rows(i).Cells("두께").Value
End If
Catch ex As Exception
'MsgBox("8. " & ex.Message.ToString)
End Try
Next
Me.UserControl11.M1FillType = FT
End Sub
Private Sub arindv1_CellFormatting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles arindv1.CellFormatting
Try
Me.arindv1.Rows(e.RowIndex).DefaultCellStyle.BackColor = Color.FromArgb(Me.arindv1.Rows(e.RowIndex).Cells("후경색").Value)
' Me.arindv1.Rows(e.RowIndex).DefaultCellStyle.ForeColor = Color.FromName(Me.arindv1.Rows(e.RowIndex).Cells("전경색").Value)
Catch ex As Exception
Me.arindv1.Rows(e.RowIndex).DefaultCellStyle.BackColor = Color.White
'MsgBox("9. " & ex.Message.ToString)
End Try
Try
If Me.arindv1.Rows(e.RowIndex).Cells("커스텀").Value = "Y" Then
Me.arindv1.Rows(e.RowIndex).DefaultCellStyle.ForeColor = Color.Magenta
Else
Me.arindv1.Rows(e.RowIndex).DefaultCellStyle.ForeColor = Color.Black
End If
Catch ex As Exception
Me.arindv1.Rows(e.RowIndex).Cells("커스텀").Value = "N"
End Try
Me.bs_detail.EndEdit()
End Sub
Private Sub Arindv1_CellValidated(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles arindv1.CellValidated
refresh_Image()
End Sub
Private Sub Arindv1_DataError(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewDataErrorEventArgs)
End Sub
Private Sub Arindv1_RowValidated(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs)
refresh_Image()
End Sub
Private Sub ToolStripButton1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btj_add.Click
'//재료쪽 추가
Dim newdr As DS.tbl_ykdetailRow = DSET1.tbl_ykdetail.Newtbl_ykdetailRow
DSET1.tbl_ykdetail.Addtbl_ykdetailRow(newdr)
EndEdit(bs_detail)
bs_detail.Position = bs_detail.Count - 1
arindv1.Rows(bs_detail.Count - 1).Cells(2).Selected = True
'Try
'Me.bs_detail.AddNew()
'Me.bs_detail.EndEdit()
'refresh_Image()
'Catch ex As Exception
' MsgBox(ex.Message.ToString)
' MsgBox("상위코드 선택하세요", MsgBoxStyle.Critical, "확인")
'End Try
End Sub
Private Sub ToolStripButton2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btj_del.Click
If Me.bs_detail.Count > 0 Then
Me.bs_detail.RemoveCurrent()
Me.bs_detail.EndEdit()
End If
End Sub
Private Sub arindv1_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles arindv1.CellContentClick
Select Case e.ColumnIndex
Case 8 '//전경
Dim Cd As New ColorDialog
Cd.Color = Color.FromName(Me.arindv1.Rows(e.RowIndex).Cells("전경색").Value)
If Cd.ShowDialog <> Windows.Forms.DialogResult.OK Then Return
Me.arindv1.Rows(e.RowIndex).Cells("전경색").Value = Cd.Color.ToArgb
Me.btn_전경색.BackColor = Cd.Color
Me.bs_detail.EndEdit()
refresh_Image()
Case 9 '//배경
Dim Cd As New ColorDialog
Cd.Color = Color.FromName(Me.arindv1.Rows(e.RowIndex).Cells("후경색").Value)
If Cd.ShowDialog <> Windows.Forms.DialogResult.OK Then Return
Me.arindv1.Rows(e.RowIndex).Cells("후경색").Value = Cd.Color.ToArgb
Me.btn_후경색.BackColor = Cd.Color
Me.bs_detail.EndEdit()
refresh_Image()
End Select
End Sub
Private Sub arindv1_DataError1(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewDataErrorEventArgs) Handles arindv1.DataError
End Sub
Private Sub cmb_형태_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmb_형태.SelectedIndexChanged, MyCmb1.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
Me.refresh_Image()
If cmb_형태.Text = "외부창" OrElse cmb_형태.Text = "내부창" Then
Me.NTb_창호열관류율.Visible = True
Me.NTb_일사에너지투과율.Visible = True
Me.NTb_창호세부설명.Visible = True
Me.lbl_창호열관류율.Enabled = True
Me.lbl_일사에너지투과율.Enabled = True
Me.lbl_창호세부설명.Enabled = True
Me.chk_발코니여부.Enabled = True
Me.tb_투과율.Enabled = True
Me.Label4.Enabled = True
Me.tb_발코니투과율.Visible = True
Me.tb_발코니열관류율.Visible = True
Else
Me.NTb_창호열관류율.Visible = False
Me.NTb_일사에너지투과율.Visible = False
Me.NTb_창호세부설명.Visible = False
Me.lbl_창호열관류율.Enabled = False
Me.lbl_일사에너지투과율.Enabled = False
Me.lbl_창호세부설명.Enabled = False
Me.chk_발코니여부.Enabled = False
Me.tb_투과율.Enabled = False
Me.Label4.Enabled = False
Me.tb_발코니투과율.Visible = False
Me.tb_발코니열관류율.Visible = False
End If
End Sub
Private Sub ToolStripButton3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btj_showimg.Click
Dim Drv As DataRowView = Me.bs_detail.Current
Dim 전경 As String = ""
Dim 후경 As String = ""
Try
전경 = Drv("전경색").ToString
Catch ex As Exception
End Try
Try
후경 = Drv("후경색").ToString
Catch ex As Exception
End Try
Dim A As New Frm_DisplayGubun(전경, 후경)
A.Show()
End Sub
Private Sub btn_전경색_Click_1(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_전경색.Click
Try
Dim Cd As New ColorDialog
If Cd.ShowDialog <> Windows.Forms.DialogResult.OK Then Return
Me.btn_전경색.BackColor = Cd.Color
Dim Drv As DataRowView = Me.bs_detail.Current
Drv("전경색") = Cd.Color.ToArgb
Catch ex As Exception
Me.btn_전경색.BackColor = Color.White
'MsgBox("14. " & ex.Message.ToString)
End Try
Me.bs_detail.EndEdit()
Me.refresh_Image()
End Sub
Private Sub cmb_재료_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmb_재료.SelectedIndexChanged
cmb_재료_Changed()
End Sub
Private Sub btn_후경색_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_후경색.Click
Try
Dim Cd As New ColorDialog
If Cd.ShowDialog <> Windows.Forms.DialogResult.OK Then Return
Me.btn_후경색.BackColor = Cd.Color
Dim Drv As DataRowView = Me.bs_detail.Current
Drv("후경색") = Cd.Color.ToArgb
Catch ex As Exception
Me.btn_후경색.BackColor = Color.White
'MsgBox("18. " & ex.Message.ToString)
End Try
Me.bs_detail.EndEdit()
Me.refresh_Image()
End Sub
Private Sub cmb_열전도율_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmb_열전도율.SelectedIndexChanged
If Not init Then Return
Dim Drv As DataRowView = Me.bs_detail.Current
If Drv Is Nothing Then Return
Drv("커스텀") = "N"
Drv("열전도율") = Me.cmb_열전도율.Items(Me.cmb_열전도율.SelectedIndex)
Me.bs_detail.EndEdit()
Me.refresh_Image()
End Sub
'Private Sub cmb_열전도율_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmb_열전도율.TextChanged
' Me.bs_detail.EndEdit()
' Me.refresh_Image()
' 'Try
' ' If Me.cmb_열전도율.SelectedIndex = -1 Then
' ' Me.arindv1.CurrentRow.DefaultCellStyle.ForeColor = Color.FromArgb(Color.Red.ToArgb)
' ' Else
' ' Me.arindv1.CurrentRow.DefaultCellStyle.ForeColor = Color.FromArgb(Color.Black.ToArgb)
' ' End If
' 'Catch ex As Exception
' ' MsgBox(ex.Message.ToString)
' 'End Try
'End Sub
Private Sub cmb_재료_SelectionChangeCommitted(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmb_재료.SelectionChangeCommitted
If Not init Then Return
Me.UserCommin = True
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 = "외부창" OrElse cmb_형태.Text = "내부창" Then
Me.열관류율NTb.Text = Me.NTb_창호열관류율.Text
End If
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
'//버그수정 140417 제거 부모코드가 삭제되어야하는데.. 자식코드매칭 오류 ( code -> pcode 로변경)
Dim DR() As DataRow = DSET1.tbl_ykdetail.Select("code <> '0' and pcode='" & 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 cmb_열전도율_KeyUp(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles cmb_열전도율.KeyUp
Me.keyUp1 = True
If Not init Then Return
'If e.KeyCode = Keys.Enter Then
Me.bs_detail.EndEdit()
Dim CUrvalue As String = Me.cmb_열전도율.Text
Dim Find As Boolean = False
For i As Integer = 0 To Me.cmb_열전도율.Items.Count - 1
If Me.cmb_열전도율.Items(i).ToString = CUrvalue Then Find = True
Next
Dim Drv As DataRowView = Me.bs_detail.Current
If Drv Is Nothing Then Return
If Find = False Then '//찾지못하였다면
Drv("커스텀") = "Y"
Else
Drv("커스텀") = "N"
End If
Me.refresh_Image()
Me.keyUp1 = False
'End If
End Sub
Private Sub bs_detail_CurrentChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bs_detail.CurrentChanged
If Not init Then Return
Dim Drv As DataRowView = CType(Me.bs_detail.Current, DataRowView)
If Drv Is Nothing Then Return '//선택된아이템이없으면 빠져나감
Try
Me.btn_전경색.BackColor = Color.FromArgb(Drv("전경색").ToString)
Me.btn_후경색.BackColor = Color.FromArgb(Drv("후경색").ToString)
Catch ex As Exception
Me.btn_전경색.BackColor = Color.White
Me.btn_후경색.BackColor = Color.White
'MsgBox("12. " & ex.Message.ToString)
End Try
'//열전도율목록을 갱신
Me.cmb_열전도율.Items.Clear()
If Me.cmb_재료.Text <> "" Then
Dim Fil As String = "gubun='1089' and name='" & Me.cmb_재료.Text & "'"
Dim Drow() As DS.tbl_commonRow = DSET1.tbl_common.Select(Fil)
Try
If Drow.GetUpperBound(0) = 0 Then Me.cmb_열전도율.Items.Add(Drow(0).valn1)
Catch ex As Exception
End Try
End If
'//현재선택된 열전도율이 비정상(*?) 체크
Dim CUrvalue As String = Drv("열전도율").ToString
If CUrvalue <> "" Then
Dim Dr() As DS.tbl_commonRow = DSET1.tbl_common.Select("gubun='1089' and name='" & Me.cmb_재료.Text & "' and valn1='" & CUrvalue.Trim & "'")
If Dr.GetUpperBound(0) = -1 Then '//일치하는것이 없다면
Drv("커스텀") = "Y"
Else
Drv("커스텀") = "N"
End If
End If
Me.bs_detail.EndEdit()
Me.arindv1.Refresh()
Me.refresh_Image()
End Sub
Private Sub cmb_재료_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmb_재료.TextChanged
cmb_재료_Changed()
End Sub
Private Sub cmb_재료_Changed()
If Not init Then Return
If Me.bs_detail.Count < 1 Then Return '// ep데이터가없을경우 무시
If Me.cmb_재료.SelectedIndex < 0 Then Return
Dim 재료코드 As String = ""
'//선택된재료명
Dim 재료명 As String = CType(Me.cmb_재료.Items(Me.cmb_재료.SelectedIndex), DataRowView)("name")
If UserCommin = False Then
'UserCommin = True
Return
End If
'//해당열전도율가져오기
Try
Dim Dr As DS.tbl_commonRow = DSET1.tbl_common.Select(bS_재료.Filter & " and name='" & 재료명 & "'")(0)
재료코드 = Dr.code
Me.cmb_열전도율.Items.Clear()
Try '// 20110210 Try문 추가 (열전달저항 관련 Null 값에 의한 재료코드에러수정)
Me.cmb_열전도율.Items.Add(Dr.valn1)
Me.cmb_열전도율.Text = Dr.valn1
Catch ex As Exception
Dim Drv As DataRowView = CType(Me.bs_detail.Current, DataRowView)
Drv("커스텀") = "N"
End Try
'Me.tb_열전도.Text = Dr.valn1
' MsgBox(Dr.valn1)
Catch ex As Exception
'MsgBox(ex.Message.ToString)
'MsgBox("15. " & ex.Message.ToString)
End Try
'//색및 패턴명 가져오기
Dim DetailDrv As DataRowView = Me.bs_detail.Current
DetailDrv("설명") = 재료명
Dim Er As Boolean = False
Dim Dr2() As DS.tbl_commonRow = DSET1.tbl_common.Select("gubun='1090' and code='" & 재료코드 & "'")
If Dr2.GetUpperBound(0) = -1 Then
DetailDrv("전경색") = Color.Blue.ToArgb
DetailDrv("후경색") = Color.White.ToArgb '//디비에 해당설ㅈㅇ이 없을경우 행하는 코드들
DetailDrv("구분") = "5"
Me.btn_전경색.BackColor = Color.FromArgb(DetailDrv("전경색"))
Me.btn_후경색.BackColor = Color.FromArgb(DetailDrv("후경색"))
Else '//디비에 있을경우
Try
DetailDrv("전경색") = Dr2(0)("name").ToString.Split(",")(0)
Catch ex As Exception
DetailDrv("전경색") = Color.Black.ToArgb
'MsgBox("16. " & ex.Message.ToString)
End Try
Try
DetailDrv("후경색") = Dr2(0)("name").ToString.Split(",")(1)
Catch ex As Exception
DetailDrv("후경색") = Color.White.ToArgb
' MsgBox("17. " & ex.Message.ToString)
End Try
DetailDrv("구분") = CInt(Dr2(0)("valn1"))
Me.btn_후경색.BackColor = Color.FromArgb(DetailDrv("후경색"))
Me.btn_전경색.BackColor = Color.FromArgb(DetailDrv("전경색"))
End If
Me.bs_detail.EndEdit()
Me.refresh_Image()
UserCommin = False
End Sub
Private Sub bs_detail_CurrentItemChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles bs_detail.CurrentItemChanged
'//2011 06 18 : 아이템이동시 열전도율의 콤보박스가 생성되지않는현상 제거
If Not Me.init OrElse Me.keyUp1 Then Return
If Me.cmb_재료.Text.Trim = "" Then Return
If Me.cmb_열전도율.Items.Count = 0 Then Return
'//해당열전도율가져오기
Dim Drow() As DS.tbl_commonRow = DSET1.tbl_common.Select(bS_재료.Filter & " and name='" & Me.cmb_재료.Text & "'")
Dim temp_item As String
Try
temp_item = Me.cmb_열전도율.Items(0)
Catch ex As Exception
temp_item = ""
End Try
If Drow.GetUpperBound(0) = 0 AndAlso Drow(0).valn1.ToString <> temp_item Then
Me.cmb_열전도율.Items.Clear()
Me.cmb_열전도율.Items.Add(Drow(0).valn1)
End If
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 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
Private Sub NTb_일사에너지투과율_TextChanged(sender As System.Object, e As System.EventArgs) Handles NTb_일사에너지투과율.TextChanged
refresh_Image()
End Sub
Private Sub Frm_YK_KeyDown(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) Handles MyBase.KeyDown
Select Case e.KeyCode
Case Keys.F12
ShowHistory()
End Select
End Sub
Private Sub ShowHistory()
Dim drv As DataRowView = Me.bs.Current
Dim f As New Frm_History("tbl_yk", 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
End Class