파일을 열고 무조건 열관류율탭 자동 업데이트 적용

This commit is contained in:
ykh
2025-07-11 00:01:25 +09:00
parent 72e908396b
commit cf277012bc
10 changed files with 3530 additions and 3705 deletions

View File

@@ -57,6 +57,158 @@
Public DSHistory As New DS2
Public Importsameaddress As Boolean = False
Public Sub Update_열관류율_140409()
For Each DrowYK As DS.tbl_ykRow In DSET1.tbl_yk
Dim R_value As Decimal = 0
Dim width As Decimal = 0
Dim filter As String = "pcode='" + DrowYK.code + "'"
For Each Dr As DS.tbl_ykdetailRow In DSET1.tbl_ykdetail.Select(filter, "")
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 DrowYK.면형태 = "0" Then
DrowYK.열관류율 = CSng(Math.Round(1 / R_value, 3)).ToString
DrowYK.투과율 = ""
Else
Dim 면형태 As DS.tbl_commonRow = DSET1.tbl_common.Select("gubun='1088' and code='" + DrowYK.면형태 + "'")(0)
If 면형태.name = "외부창" OrElse 면형태.name = "내부창" Then
If DrowYK.발코니창호여부 Then
DrowYK.열관류율 = Math.Round((1 / ((1 / TOSG(DrowYK.창호열관류율)) + (1 / TOSG(DrowYK.발코니창호열관류율)) * 0.5)), 3)
DrowYK.투과율 = Math.Round(TOSG(DrowYK.발코니투과율) * TOSG(DrowYK.일사에너지투과율), 3)
Else
DrowYK.열관류율 = DrowYK.창호열관류율
DrowYK.투과율 = DrowYK.일사에너지투과율
End If
Else
DrowYK.열관류율 = CSng(Math.Round(1 / R_value, 3)).ToString
DrowYK.투과율 = ""
End If
End If
Catch ex As Exception
DrowYK.열관류율 = ""
DrowYK.투과율 = ""
End Try
Next
'//열관류율이 링크된 모든면의 건축부위 데이터를 열관류율 화면의 건축부위 데이터로 갱신
For Each Drow As DS.tbl_myounRow In DSET1.tbl_myoun
If Drow.RowState = DataRowState.Deleted OrElse Drow.RowState = DataRowState.Detached Then Continue For
#If DEBUG Then
If Drow.code = "0009" Then
MsgBox("test")
End If
#End If
If Drow.열관류율2 <> "0" Then
Try '==========================================2014.04.17 열관류율 삭제시 코드번호가 남아 오류 발생하는 현상을 try 안으로 넣음
Dim Dr As DS.tbl_ykRow = DSET1.tbl_yk.Select("code='" & Drow.열관류율2.ToString & "'")(0)
Drow.건축부위방식 = Dr.면형태 '// 링크된 열관류율에서 면형태를 가져옴..
Select Case Dr.면형태
Case "외벽(벽체)", "0"
Drow.건축부위방식 = "외벽"
Case "외벽(지붕)", "0001"
Drow.건축부위방식 = "외벽"
'Drow.방위 = "수평"
Case "외벽(바닥)", "0002"
Drow.건축부위방식 = "외벽"
'Drow.방위 = "일사없음"
Case "내벽(벽체)", "0003", "지중벽", "0009"
Drow.건축부위방식 = "내벽"
Drow.방위 = "일사없음"
Case "내벽(지붕)", "0004"
Drow.건축부위방식 = "내벽"
Drow.방위 = "일사없음"
Case "내벽(바닥)", "0005"
Drow.건축부위방식 = "내벽"
Drow.방위 = "일사없음"
Case "간벽", "0006"
Drow.건축부위방식 = "간벽"
Drow.방위 = "일사없음"
Case "외부창", "0007"
Drow.건축부위방식 = "외부창"
'Drow.투과율 = Dr.일사에너지투과율
Case "내부창", "0008"
Drow.건축부위방식 = "내부창"
'Drow.투과율 = Dr.일사에너지투과율
Case Else
MsgBox("모르는값 " & Dr("면형태").ToString & "/" & Dr.면형태)
End Select
Catch ex As Exception
End Try
End If
Next
End Sub
Public Function 프로필급탕요구량(면적별범위 As Char) As Decimal
'Drow프로필.일일급탕요구량()