macro 기능 추가 중. 엑세 업로드 양식 추가 예정
This commit is contained in:
@@ -84,15 +84,772 @@
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Public Sub 항목별평가결과(ByRef DSR As Eco2Ar.DSR)
|
||||
Dim NDr As DSR.Pyonga_YKRow = DSR.Pyonga_YK.NewPyonga_YKRow
|
||||
|
||||
'//기준(*)데이터가없는경우에는 1번째데이터를 쓰도록한다.
|
||||
Dim 외벽벽체찾음 As Boolean = False
|
||||
Dim 외벽지붕찾음 As Boolean = False
|
||||
Dim 외벽바닥찾음 As Boolean = False
|
||||
|
||||
For Each dr As DS.tbl_ykRow In DSET1.tbl_yk.Select("code <> '0'")
|
||||
Dim gcode As String = dr.면형태.ToString()
|
||||
Dim gname As String = Get_CName("1088", gcode)
|
||||
|
||||
If gname = "외벽(벽체)" OrElse gname = "내벽(벽체)" Then
|
||||
If dr.설명.Substring(0, 1) = "*" Then '//기준데이터가져오기
|
||||
NDr.벽체값 = dr.열관류율
|
||||
|
||||
Dim 최대저항값 As Decimal = 0
|
||||
'//세부데이터글가져온다 이중열저항이 가장큰것을 가져아야한다
|
||||
For Each ddr As DS.tbl_ykdetailRow In DSET1.tbl_ykdetail.Select("code <> '0' and pcode = '" + dr.code + "'")
|
||||
If CDec(ddr.열저항) > 최대저항값 Then '//최대저항값의설명을 가져와야한다.
|
||||
외벽벽체찾음 = True
|
||||
NDr.벽체종류 = ddr.설명 + Space(1) + ddr.두께 + "mm"
|
||||
최대저항값 = CDec(ddr.열저항)
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
ElseIf gname = "외벽(지붕)" OrElse gname = "내벽(지붕)" Then
|
||||
If dr.설명.Substring(0, 1) = "*" Then '//기준데이터가져오기
|
||||
NDr.지붕값 = dr.열관류율
|
||||
|
||||
Dim 최대저항값 As Decimal = 0
|
||||
'//세부데이터글가져온다 이중열저항이 가장큰것을 가져아야한다
|
||||
For Each ddr As DS.tbl_ykdetailRow In DSET1.tbl_ykdetail.Select("code <> '0' and pcode = '" + dr.code + "'")
|
||||
If CDec(ddr.열저항) > 최대저항값 Then '//최대저항값의설명을 가져와야한다.
|
||||
외벽지붕찾음 = True
|
||||
NDr.지붕종류 = ddr.설명 + Space(1) + ddr.두께 + "mm"
|
||||
최대저항값 = CDec(ddr.열저항)
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
ElseIf gname = "외벽(바닥)" OrElse gname = "내벽(바닥)" Then
|
||||
If dr.설명.Substring(0, 1) = "*" Then '//기준데이터가져오기
|
||||
NDr.바닥값 = dr.열관류율
|
||||
|
||||
Dim 최대저항값 As Decimal = 0
|
||||
'//세부데이터글가져온다 이중열저항이 가장큰것을 가져아야한다
|
||||
For Each ddr As DS.tbl_ykdetailRow In DSET1.tbl_ykdetail.Select("code <> '0' and pcode = '" + dr.code + "'")
|
||||
If CDec(ddr.열저항) > 최대저항값 Then '//최대저항값의설명을 가져와야한다.
|
||||
외벽바닥찾음 = True
|
||||
NDr.바닥종류 = ddr.설명 + Space(1) + ddr.두께 + "mm"
|
||||
최대저항값 = CDec(ddr.열저항)
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
|
||||
If Not 외벽벽체찾음 Then
|
||||
For Each dr As DS.tbl_ykRow In DSET1.tbl_yk.Select("code <> '0'")
|
||||
Dim gcode As String = dr.면형태.ToString()
|
||||
Dim gname As String = Get_CName("1088", gcode)
|
||||
If gname = "외벽(벽체)" OrElse gname = "내벽(벽체)" Then
|
||||
NDr.벽체값 = dr.열관류율
|
||||
Dim 최대저항값 As Decimal = 0
|
||||
'//세부데이터글가져온다 이중열저항이 가장큰것을 가져아야한다
|
||||
For Each ddr As DS.tbl_ykdetailRow In DSET1.tbl_ykdetail.Select("code <> '0' and pcode = '" + dr.code + "'")
|
||||
If CDec(ddr.열저항) > 최대저항값 Then '//최대저항값의설명을 가져와야한다.
|
||||
외벽벽체찾음 = True
|
||||
NDr.벽체종류 = ddr.설명 + Space(1) + ddr.두께 + "mm"
|
||||
최대저항값 = CDec(ddr.열저항)
|
||||
End If
|
||||
Next
|
||||
If 외벽벽체찾음 Then Exit For
|
||||
End If
|
||||
Next
|
||||
If Not 외벽벽체찾음 Then
|
||||
NDr.벽체종류 = ""
|
||||
NDr.벽체값 = 0
|
||||
End If
|
||||
End If
|
||||
|
||||
If Not 외벽지붕찾음 Then
|
||||
For Each dr As DS.tbl_ykRow In DSET1.tbl_yk.Select("code <> '0'")
|
||||
Dim gcode As String = dr.면형태.ToString()
|
||||
Dim gname As String = Get_CName("1088", gcode)
|
||||
If gname = "외벽(지붕)" OrElse gname = "내벽(지붕)" Then
|
||||
NDr.지붕값 = dr.열관류율
|
||||
Dim 최대저항값 As Decimal = 0
|
||||
'//세부데이터글가져온다 이중열저항이 가장큰것을 가져아야한다
|
||||
For Each ddr As DS.tbl_ykdetailRow In DSET1.tbl_ykdetail.Select("code <> '0' and pcode = '" + dr.code + "'")
|
||||
If CDec(ddr.열저항) > 최대저항값 Then '//최대저항값의설명을 가져와야한다.
|
||||
외벽지붕찾음 = True
|
||||
NDr.지붕종류 = ddr.설명 + Space(1) + ddr.두께 + "mm"
|
||||
최대저항값 = CDec(ddr.열저항)
|
||||
End If
|
||||
Next
|
||||
If 외벽지붕찾음 Then Exit For
|
||||
End If
|
||||
Next
|
||||
If Not 외벽지붕찾음 Then
|
||||
NDr.지붕종류 = ""
|
||||
NDr.지붕값 = 0
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
If Not 외벽바닥찾음 Then
|
||||
For Each dr As DS.tbl_ykRow In DSET1.tbl_yk.Select("code <> '0'")
|
||||
Dim gcode As String = dr.면형태.ToString()
|
||||
Dim gname As String = Get_CName("1088", gcode)
|
||||
If gname = "외벽(바닥)" OrElse gname = "내벽(바닥)" Then
|
||||
NDr.바닥값 = dr.열관류율
|
||||
Dim 최대저항값 As Decimal = 0
|
||||
'//세부데이터글가져온다 이중열저항이 가장큰것을 가져아야한다
|
||||
For Each ddr As DS.tbl_ykdetailRow In DSET1.tbl_ykdetail.Select("code <> '0' and pcode = '" + dr.code + "'")
|
||||
If CDec(ddr.열저항) > 최대저항값 Then '//최대저항값의설명을 가져와야한다.
|
||||
외벽바닥찾음 = True
|
||||
NDr.바닥종류 = ddr.설명 + Space(1) + ddr.두께 + "mm"
|
||||
최대저항값 = CDec(ddr.열저항)
|
||||
End If
|
||||
Next
|
||||
If 외벽바닥찾음 Then Exit For
|
||||
End If
|
||||
Next
|
||||
If Not 외벽바닥찾음 Then
|
||||
NDr.바닥종류 = ""
|
||||
NDr.바닥값 = 0
|
||||
End If
|
||||
End If
|
||||
|
||||
'//지열설비정보확인
|
||||
Dim Sum_지열히트펌프용량_난방 As Single = 0
|
||||
Dim Sum_지열히트펌프용량_냉방 As Single = 0
|
||||
Dim Max_난방 As Single = 0
|
||||
Dim Max_냉방 As Single = 0
|
||||
Dim JDROW() As DS.tbl_newRow = DSET1.tbl_new.Select("code <> '0' and 기기종류='지열'", "설명")
|
||||
If JDROW.GetUpperBound(0) = -1 Then '//지열데이터가없는경우엔 빈값처리
|
||||
NDr.지열히트펌프용량냉방 = ""
|
||||
NDr.지열히트펌프용량 = ""
|
||||
NDr.지열비고 = ""
|
||||
NDr.지열난방COP = ""
|
||||
NDr.지열냉방COP = ""
|
||||
Else '//데이터가있다면 1번째 데이터를 이용한다.
|
||||
|
||||
|
||||
Dim Max_Row_난방 As DS.tbl_newRow = Nothing
|
||||
Dim MAx_Row_냉방 As DS.tbl_newRow = Nothing
|
||||
|
||||
NDr.지열비고 = JDROW(0).지열비고
|
||||
|
||||
For Each jdrowrow As DS.tbl_newRow In JDROW
|
||||
|
||||
Dim 난방연결수 As Integer = (DSET1.tbl_nanbangkiki.Select("신재생연결여부='시스템연결' and 연결된시스템='" & jdrowrow.code.ToString & "'").GetUpperBound(0) + 1)
|
||||
Dim 냉방연결수 As Integer = (DSET1.tbl_nangbangkiki.Select("신재생연결여부='시스템연결' and 연결된시스템='" & jdrowrow.code.ToString & "'").GetUpperBound(0) + 1)
|
||||
|
||||
Dim 난방값 As String = jdrowrow.열성능비난방
|
||||
Dim 냉방값 As String = jdrowrow.열성능비냉방
|
||||
|
||||
If 난방연결수 > 0 AndAlso 난방값 <> "" AndAlso IsNumeric(난방값) AndAlso 난방값 <> "0" Then
|
||||
Sum_지열히트펌프용량_난방 += jdrowrow.지열히트펌프용량
|
||||
If TOSG(jdrowrow.지열히트펌프용량) > Max_난방 Then
|
||||
Max_난방 = TOSG(jdrowrow.지열히트펌프용량)
|
||||
Max_Row_난방 = jdrowrow
|
||||
End If
|
||||
End If
|
||||
|
||||
If 냉방연결수 > 0 AndAlso 냉방값 <> "" AndAlso IsNumeric(냉방값) AndAlso 냉방값 <> "0" Then
|
||||
Sum_지열히트펌프용량_냉방 += jdrowrow.지열히트펌프용량
|
||||
If TOSG(jdrowrow.지열히트펌프용량) > Max_냉방 Then
|
||||
Max_냉방 = TOSG(jdrowrow.지열히트펌프용량)
|
||||
MAx_Row_냉방 = jdrowrow
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
|
||||
|
||||
NDr.지열히트펌프용량냉방 = Sum_지열히트펌프용량_냉방.ToString()
|
||||
NDr.지열히트펌프용량 = Sum_지열히트펌프용량_난방.ToString()
|
||||
|
||||
'NDr.지열히트펌프용량냉방 = Sum_지열히트펌프용량_냉방.ToString() + "(" + Max_냉방.ToString() + ")"
|
||||
|
||||
'If Sum_지열히트펌프용량_난방 > 0 Then
|
||||
' NDr.지열히트펌프용량 = Sum_지열히트펌프용량_난방.ToString()
|
||||
' 'NDr.지열히트펌프용량 = "난방: " + Sum_지열히트펌프용량_난방.ToString() + "(" + Max_난방.ToString() + ")"
|
||||
'Else
|
||||
' NDr.지열히트펌프용량 = ""
|
||||
'End If
|
||||
|
||||
'If Sum_지열히트펌프용량_냉방 > 0 Then
|
||||
' NDr.지열히트펌프용량 += " / 냉방: " + NDr.지열히트펌프용량냉방
|
||||
'End If
|
||||
|
||||
If Max_난방 <> 0 Then
|
||||
NDr.지열난방COP = Max_Row_난방.열성능비난방
|
||||
Else
|
||||
NDr.지열난방COP = ""
|
||||
End If
|
||||
If Max_냉방 <> 0 Then
|
||||
NDr.지열냉방COP = MAx_Row_냉방.열성능비냉방
|
||||
Else
|
||||
NDr.지열냉방COP = ""
|
||||
End If
|
||||
End If
|
||||
|
||||
'//######################
|
||||
'//13-12-08
|
||||
'//######################
|
||||
'//태양열시스템
|
||||
Dim JDROW2() As DS.tbl_newRow = DSET1.tbl_new.Select("code <> '0' and 기기종류='태양열'", "설명")
|
||||
Dim Max_태양열면적 As Single = -999
|
||||
Dim Max_집열기유형 As String = ""
|
||||
Dim Max_집열판방위 As String = ""
|
||||
Dim Sum_태양열면적 As Single = 0
|
||||
For Each rowsun As DS.tbl_newRow In JDROW2
|
||||
|
||||
Dim 난방연결수 As Integer = (DSET1.tbl_nanbangkiki.Select("신재생연결여부='시스템연결' and 연결된시스템='" & rowsun.code.ToString & "'").GetUpperBound(0) + 1)
|
||||
Dim 냉방연결수 As Integer = (DSET1.tbl_nangbangkiki.Select("신재생연결여부='시스템연결' and 연결된시스템='" & rowsun.code.ToString & "'").GetUpperBound(0) + 1)
|
||||
|
||||
If 난방연결수 > 0 OrElse 냉방연결수 > 0 Then
|
||||
|
||||
Dim 태양면적 As String = rowsun.집열판면적
|
||||
If 태양면적 <> "" AndAlso IsNumeric(태양면적) AndAlso 태양면적 <> "0" Then
|
||||
Sum_태양열면적 += TOSG(태양면적)
|
||||
If TOSG(태양면적) > Max_태양열면적 Then
|
||||
Max_태양열면적 = TOSG(태양면적)
|
||||
Max_집열기유형 = rowsun.집열기유형
|
||||
Max_집열판방위 = rowsun.집열판방위
|
||||
End If
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
Next
|
||||
If Sum_태양열면적 > 0 Then
|
||||
NDr.태양열집열판면적 = Sum_태양열면적.ToString() + "(" + Max_태양열면적.ToString + ")"
|
||||
NDr.태양열집열기유형 = Max_집열기유형
|
||||
NDr.태양열집열판방위 = Max_집열판방위
|
||||
Else
|
||||
NDr.태양열집열판면적 = ""
|
||||
NDr.태양열집열기유형 = ""
|
||||
NDr.태양열집열판방위 = ""
|
||||
End If
|
||||
|
||||
|
||||
|
||||
'//태양광시스템
|
||||
Dim JDROW3() As DS.tbl_newRow = DSET1.tbl_new.Select("code <> '0' and 기기종류='태양광'", "설명")
|
||||
Dim Max_태양광면적 As Single = -999
|
||||
Dim Max_태양광종류 As String = ""
|
||||
Dim Max_태양광방위 As String = ""
|
||||
Dim Max_태양광기울기 As String = ""
|
||||
Dim Max_태양광적용타입 As String = ""
|
||||
Dim Sum_태양광면적 As Single = 0
|
||||
|
||||
For Each rowsun As DS.tbl_newRow In JDROW3
|
||||
Dim 태양면적 As String = rowsun.태양광모듈면적
|
||||
If 태양면적 <> "" AndAlso IsNumeric(태양면적) AndAlso 태양면적 <> "0" Then
|
||||
Sum_태양광면적 += TOSG(태양면적)
|
||||
If TOSG(태양면적) > Max_태양광면적 Then
|
||||
Max_태양광면적 = TOSG(태양면적)
|
||||
Max_태양광종류 = rowsun.태양광모듈종류
|
||||
Max_태양광방위 = rowsun.태양광모듈방위
|
||||
Max_태양광기울기 = rowsun.태양광모듈기울기
|
||||
Max_태양광적용타입 = rowsun.태양광모듈적용타입
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
If Sum_태양광면적 > 0 Then
|
||||
NDr.태양광모듈면적 = Sum_태양광면적.ToString() '+ "(" + Max_태양광면적.ToString + ")"
|
||||
NDr.태양광모듈종류 = Max_태양광종류
|
||||
NDr.태양광모듈방위 = Max_태양광방위
|
||||
NDr.태양광모듈기울기 = Max_태양광기울기
|
||||
NDr.태양광모듈적용타입 = Max_태양광적용타입
|
||||
If NDr.태양광모듈방위 = "(없음)" Then
|
||||
NDr.태양광모듈방위 = ""
|
||||
End If
|
||||
Else
|
||||
NDr.태양광모듈면적 = ""
|
||||
NDr.태양광모듈종류 = ""
|
||||
NDr.태양광모듈방위 = ""
|
||||
NDr.태양광모듈기울기 = ""
|
||||
NDr.태양광모듈적용타입 = ""
|
||||
End If
|
||||
|
||||
|
||||
'//열병합시스템
|
||||
Dim JDROW4() As DS.tbl_newRow = DSET1.tbl_new.Select("code <> '0' and 기기종류='열병합'", "설명")
|
||||
Dim Max_열병합능력 As Single = -999
|
||||
Dim Max_열병합생산효율 As String = ""
|
||||
Dim Max_열병합발전효율 As String = ""
|
||||
Dim Max_열병합가동연료 As String = ""
|
||||
Dim Sum_열병합능력 As Single = 0
|
||||
|
||||
For Each rowsun As DS.tbl_newRow In JDROW4
|
||||
|
||||
|
||||
Dim 난방연결수 As Integer = (DSET1.tbl_nanbangkiki.Select("신재생연결여부='시스템연결' and 연결된시스템='" & rowsun.code.ToString & "'").GetUpperBound(0) + 1)
|
||||
Dim 냉방연결수 As Integer = (DSET1.tbl_nangbangkiki.Select("신재생연결여부='시스템연결' and 연결된시스템='" & rowsun.code.ToString & "'").GetUpperBound(0) + 1)
|
||||
|
||||
If 난방연결수 > 0 OrElse 냉방연결수 > 0 Then
|
||||
Dim 값 As String = rowsun.열생산능력
|
||||
If 값 <> "" AndAlso IsNumeric(값) AndAlso 값 <> "0" Then
|
||||
Sum_열병합능력 += TOSG(값)
|
||||
If TOSG(값) > Max_열병합능력 Then
|
||||
Max_열병합능력 = TOSG(값)
|
||||
Max_열병합생산효율 = rowsun.열생산효율.ToString
|
||||
Max_열병합발전효율 = rowsun.발전효율.ToString
|
||||
Max_열병합가동연료 = rowsun.가동연료
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
Next
|
||||
|
||||
If Sum_열병합능력 > 0 Then
|
||||
NDr.열병합열생산능력 = Sum_열병합능력.ToString() + "(" + Max_열병합능력.ToString + ")"
|
||||
NDr.열병합열생산효율 = Max_열병합생산효율
|
||||
NDr.열병합발전효율 = Max_열병합발전효율
|
||||
NDr.열병합가동연료 = Max_열병합가동연료
|
||||
Else
|
||||
NDr.열병합열생산능력 = ""
|
||||
NDr.열병합열생산효율 = ""
|
||||
NDr.열병합발전효율 = ""
|
||||
NDr.열병합가동연료 = ""
|
||||
End If
|
||||
|
||||
'//창호종류 및 창호값확인
|
||||
Dim 창호종류찾음 As Boolean = False
|
||||
|
||||
|
||||
Dim 창호그룹 As New Dictionary(Of String, Double)
|
||||
|
||||
For Each drmyoun As DS.tbl_myounRow In DSET1.tbl_myoun.Select("code <> '0'")
|
||||
If drmyoun.열관류율2 = "" OrElse drmyoun.열관류율2 = "0" Then Continue For
|
||||
|
||||
For Each cdr As DS.tbl_ykRow In DSET1.tbl_yk.Select("code= '" + drmyoun.열관류율2 + "'")
|
||||
|
||||
|
||||
Dim 면코드 As String = cdr.면형태
|
||||
If 면코드 = "" Then Continue For
|
||||
Dim 면이름 As String = Get_CName("1088", 면코드)
|
||||
If 면이름 = "" Then Continue For
|
||||
If 면이름.IndexOf("외부창") <> -1 Then '//이름에 외부창이잇는것을 찾음
|
||||
|
||||
If Not 창호그룹.ContainsKey(cdr.code) Then
|
||||
창호그룹.Add(cdr.code, TOSG(drmyoun.건축부위면적))
|
||||
Else
|
||||
창호그룹.Item(cdr.code) = 창호그룹.Item(cdr.code) + TOSG(drmyoun.건축부위면적)
|
||||
End If
|
||||
|
||||
End If
|
||||
Next
|
||||
|
||||
Next
|
||||
|
||||
Dim 최대면적 As Double = 0
|
||||
Dim 최대면적면코드 As String = ""
|
||||
For Each item As System.Collections.Generic.KeyValuePair(Of String, Double) In 창호그룹
|
||||
If item.Value > 최대면적 Then
|
||||
최대면적 = item.Value
|
||||
최대면적면코드 = item.Key
|
||||
End If
|
||||
Next
|
||||
|
||||
For Each cdr As DS.tbl_ykRow In DSET1.tbl_yk.Select("code <> '0'")
|
||||
Dim 면코드 As String = cdr.code
|
||||
If 면코드 = 최대면적면코드 Then
|
||||
NDr.창호종류 = cdr.창호세부설명
|
||||
NDr.창호값 = TOSG(cdr.열관류율)
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
'//조명설비값(모든존 ; sum(면적*조명에너지부하율) / sum(면적)
|
||||
Dim 존면적합 As Decimal = 0
|
||||
Dim 존면적부하율 As Decimal = 0
|
||||
For Each drz As DS.tbl_zoneRow In DSET1.tbl_zone.Select("code <> '0'")
|
||||
|
||||
If drz.조명부하산출방법 = "계산치" Then
|
||||
존면적합 += TOSG(drz.면적)
|
||||
존면적부하율 += TOSG(drz.면적) * TOSG(drz.조명에너지부하율계산치)
|
||||
ElseIf drz.조명부하산출방법 = "입력치" Then
|
||||
존면적합 += TOSG(drz.면적)
|
||||
존면적부하율 += TOSG(drz.면적) * TOSG(drz.조명에너지부하율입력치)
|
||||
End If
|
||||
Next
|
||||
If 존면적합 <> 0 Then
|
||||
NDr.주거실조명전력 = Math.Round(존면적부하율 / 존면적합, 2)
|
||||
End If
|
||||
|
||||
'//주조명광원값()
|
||||
NDr.주조명광원 = DSET1.tbl_Desc.Rows(0)("주조명").ToString
|
||||
|
||||
|
||||
'///#################################################################################
|
||||
'///#################################################################################
|
||||
'//설비방식및사용연료
|
||||
'//난방(입력존에서 가장많이 사용한놈)
|
||||
Dim fndr As DS.tbl_nanbangkikiRow = Nothing
|
||||
Dim fndrcnt As Integer = 0
|
||||
|
||||
Dim sum_보일러 As Single = 0
|
||||
Dim sum_히트펌프 As Single = 0
|
||||
Dim sum_지역난방 As Single = 0
|
||||
Dim sum_전기보일러 As Single = 0
|
||||
|
||||
For Each dr As DS.tbl_nanbangkikiRow In DSET1.tbl_nanbangkiki.Select("code <> '0'")
|
||||
Dim cnt As Integer = 0
|
||||
Dim zDR() As DS.tbl_zoneRow = DSET1.tbl_zone.Select("code <> '0' and 열생산난방생산기기='" & dr.code & "' or 공조난방생산기기='" & dr.code & "'")
|
||||
|
||||
'//131207
|
||||
If zDR.Length > 0 Then
|
||||
Select Case dr.열생산기기방식
|
||||
Case "보일러"
|
||||
sum_보일러 += TOSG(dr.보일러정격출력)
|
||||
Case "히트펌프"
|
||||
sum_히트펌프 += TOSG(dr.히트난방용량)
|
||||
Case "지역난방"
|
||||
sum_지역난방 += TOSG(dr.열교환기정격출력)
|
||||
Case "전기보일러"
|
||||
sum_전기보일러 += TOSG(dr.보일러정격출력)
|
||||
End Select
|
||||
End If
|
||||
Next
|
||||
|
||||
|
||||
'//합이 가장 큰 그룹을 검색
|
||||
Dim maxvalue As Single = 0
|
||||
' Dim maxindex As Integer = 0
|
||||
maxvalue = Math.Max(sum_보일러, sum_히트펌프)
|
||||
maxvalue = Math.Max(maxvalue, sum_지역난방)
|
||||
maxvalue = Math.Max(maxvalue, sum_전기보일러)
|
||||
|
||||
Dim searchfilter As String = ""
|
||||
|
||||
If maxvalue = 0 Then
|
||||
searchfilter = ""
|
||||
' maxindex = 0 '//없음
|
||||
ElseIf maxvalue = sum_보일러 Then
|
||||
' maxindex = 1
|
||||
searchfilter = "열생산기기방식='보일러'"
|
||||
ElseIf maxvalue = sum_히트펌프 Then
|
||||
'maxindex = 2
|
||||
searchfilter = "열생산기기방식='히트펌프'"
|
||||
ElseIf maxvalue = sum_지역난방 Then
|
||||
' maxindex = 3
|
||||
searchfilter = "열생산기기방식='지역난방'"
|
||||
ElseIf maxvalue = sum_전기보일러 Then
|
||||
' maxindex = 4
|
||||
searchfilter = "열생산기기방식='전기보일러'"
|
||||
End If
|
||||
|
||||
'//가장큰 그룹내의 개별 대표값 찾기
|
||||
If searchfilter <> "" Then
|
||||
For Each dr As DS.tbl_nanbangkikiRow In DSET1.tbl_nanbangkiki.Select("code <> '0' and " + searchfilter)
|
||||
Dim cnt As Integer = 0
|
||||
Dim zDR() As DS.tbl_zoneRow = DSET1.tbl_zone.Select("code <> '0' and 열생산난방생산기기='" & dr.code & "' or 공조난방생산기기='" & dr.code & "'")
|
||||
|
||||
'///
|
||||
For Each drow As DS.tbl_zoneRow In zDR
|
||||
Dim 입력존수문자 As Integer = drow.입력존의수
|
||||
If IsNumeric(입력존수문자) = False Then 입력존수문자 = "1"
|
||||
cnt += CInt(입력존수문자)
|
||||
Next
|
||||
|
||||
If cnt > fndrcnt Then '//최대값찾기
|
||||
fndr = dr
|
||||
fndrcnt = cnt
|
||||
End If
|
||||
|
||||
|
||||
|
||||
If Not fndr Is Nothing Then
|
||||
|
||||
'//20160327
|
||||
If Not IsNumeric(fndr.보일러대수) Then fndr.보일러대수 = "0"
|
||||
If CInt(fndr.보일러대수) = 0 AndAlso (fndr.운전방식 = "동시가동" OrElse fndr.운전방식 = "순차가동") Then
|
||||
MsgBox("다음 난방기기의 보일러 대수 가 입력되지 않았습니다" + vbCrLf + vbCrLf + _
|
||||
"난방기기 : " + fndr.설명 + vbCrLf + _
|
||||
"운전방식 : " + fndr.운전방식 + vbCrLf + _
|
||||
"보일러대수 : " + fndr.보일러대수 + vbCrLf + vbCrLf + _
|
||||
"단독가동이 아닌 경우에는 보일러 대수가 입력되어야 합니다", MsgBoxStyle.Critical, "확인")
|
||||
End If
|
||||
|
||||
NDr.온열원설비방식 = fndr.열생산기기방식
|
||||
Select Case fndr.열생산기기방식
|
||||
Case "보일러"
|
||||
NDr.온열원설비연료 = fndr.사용연료
|
||||
If fndr.운전방식 = "동시가동" OrElse fndr.운전방식 = "순차가동" Then
|
||||
NDr.온열원용량 = maxvalue * CInt(fndr.보일러대수) '+ "(" + fndr.보일러정격출력 + ")"
|
||||
Else
|
||||
NDr.온열원용량 = maxvalue.ToString() '+ "(" + fndr.보일러정격출력 + ")"
|
||||
End If
|
||||
|
||||
NDr.온열원효율 = fndr.정격보일러효율 + "%"
|
||||
Case "히트펌프"
|
||||
NDr.온열원설비연료 = fndr.히트연료
|
||||
If fndr.운전방식 = "동시가동" OrElse fndr.운전방식 = "순차가동" Then
|
||||
NDr.온열원용량 = maxvalue * CInt(fndr.보일러대수) '+ "(" + fndr.보일러정격출력 + ")"
|
||||
Else
|
||||
NDr.온열원용량 = maxvalue.ToString() '+ "(" + fndr.보일러정격출력 + ")"
|
||||
End If
|
||||
NDr.온열원효율 = fndr.히트난방정격7
|
||||
Case "지역난방"
|
||||
NDr.온열원설비연료 = "지역난방" 'fndr.사용연료
|
||||
If fndr.운전방식 = "동시가동" OrElse fndr.운전방식 = "순차가동" Then
|
||||
NDr.온열원용량 = maxvalue * CInt(fndr.보일러대수) '+ "(" + fndr.보일러정격출력 + ")"
|
||||
Else
|
||||
NDr.온열원용량 = maxvalue.ToString() '+ "(" + fndr.보일러정격출력 + ")"
|
||||
End If
|
||||
NDr.온열원효율 = fndr.정격보일러효율 + "%"
|
||||
Case "전기보일러"
|
||||
NDr.온열원설비연료 = "전기" ' fndr.사용연료
|
||||
If fndr.운전방식 = "동시가동" OrElse fndr.운전방식 = "순차가동" Then
|
||||
NDr.온열원용량 = maxvalue * CInt(fndr.보일러대수) '+ "(" + fndr.보일러정격출력 + ")"
|
||||
Else
|
||||
NDr.온열원용량 = maxvalue.ToString() '+ "(" + fndr.보일러정격출력 + ")"
|
||||
End If
|
||||
NDr.온열원효율 = fndr.정격보일러효율 + "%"
|
||||
End Select
|
||||
End If
|
||||
Next
|
||||
Else
|
||||
NDr.온열원설비연료 = ""
|
||||
NDr.온열원용량 = ""
|
||||
NDr.온열원효율 = ""
|
||||
End If
|
||||
|
||||
|
||||
'///#################################################################################
|
||||
'///#################################################################################
|
||||
'//급탕(입력존에서 가장많이 사용한놈)
|
||||
fndr = Nothing
|
||||
fndrcnt = 0
|
||||
|
||||
sum_보일러 = 0
|
||||
sum_히트펌프 = 0
|
||||
sum_지역난방 = 0
|
||||
sum_전기보일러 = 0
|
||||
|
||||
For Each dr As DS.tbl_nanbangkikiRow In DSET1.tbl_nanbangkiki.Select("code <> '0'")
|
||||
Dim cnt As Integer = 0
|
||||
Dim zDR() As DS.tbl_zoneRow = DSET1.tbl_zone.Select("code <> '0' and 열생산급탕생산기기='" & dr.code & "'")
|
||||
|
||||
'//131207
|
||||
If zDR.Length > 0 Then
|
||||
Select Case dr.열생산기기방식
|
||||
Case "보일러"
|
||||
sum_보일러 += TOSG(dr.보일러정격출력)
|
||||
Case "히트펌프"
|
||||
sum_히트펌프 += TOSG(dr.히트난방용량)
|
||||
Case "지역난방"
|
||||
sum_지역난방 += TOSG(dr.열교환기정격출력)
|
||||
Case "전기보일러"
|
||||
sum_전기보일러 += TOSG(dr.보일러정격출력)
|
||||
End Select
|
||||
End If
|
||||
|
||||
|
||||
|
||||
Next
|
||||
|
||||
'//합이 가장 큰 그룹을 검색
|
||||
maxvalue = 0
|
||||
maxvalue = Math.Max(sum_보일러, sum_히트펌프)
|
||||
maxvalue = Math.Max(maxvalue, sum_지역난방)
|
||||
maxvalue = Math.Max(maxvalue, sum_전기보일러)
|
||||
|
||||
searchfilter = ""
|
||||
|
||||
If maxvalue = 0 Then
|
||||
searchfilter = ""
|
||||
ElseIf maxvalue = sum_보일러 Then
|
||||
searchfilter = "열생산기기방식='보일러'"
|
||||
ElseIf maxvalue = sum_히트펌프 Then
|
||||
searchfilter = "열생산기기방식='히트펌프'"
|
||||
ElseIf maxvalue = sum_지역난방 Then
|
||||
searchfilter = "열생산기기방식='지역난방'"
|
||||
ElseIf maxvalue = sum_전기보일러 Then
|
||||
searchfilter = "열생산기기방식='전기보일러'"
|
||||
End If
|
||||
|
||||
'//가장큰 그룹내의 개별 대표값 찾기
|
||||
NDr.급탕설비방식 = ""
|
||||
NDr.급탕설비연료 = ""
|
||||
NDr.급탕용량 = ""
|
||||
NDr.급탕효율 = ""
|
||||
|
||||
If searchfilter <> "" Then
|
||||
|
||||
For Each dr As DS.tbl_nanbangkikiRow In DSET1.tbl_nanbangkiki.Select("code <> '0' and " + searchfilter)
|
||||
Dim cnt As Integer = 0
|
||||
Dim zDR() As DS.tbl_zoneRow = DSET1.tbl_zone.Select("code <> '0' and 열생산급탕생산기기='" & dr.code + "'")
|
||||
|
||||
For Each drow As DS.tbl_zoneRow In zDR
|
||||
Dim 입력존수문자 As Integer = drow.입력존의수
|
||||
If IsNumeric(입력존수문자) = False Then 입력존수문자 = "1"
|
||||
cnt += CInt(입력존수문자)
|
||||
Next
|
||||
If cnt > fndrcnt Then '//최대값찾기
|
||||
fndr = dr
|
||||
fndrcnt = cnt
|
||||
End If
|
||||
|
||||
If Not fndr Is Nothing Then
|
||||
NDr.급탕설비방식 = fndr.열생산기기방식
|
||||
|
||||
|
||||
Select Case fndr.열생산기기방식
|
||||
Case "보일러"
|
||||
NDr.급탕설비연료 = fndr.사용연료
|
||||
NDr.급탕용량 = maxvalue.ToString() '+ "(" + fndr.보일러정격출력 + ")"
|
||||
NDr.급탕효율 = fndr.정격보일러효율 + "%"
|
||||
Case "히트펌프"
|
||||
NDr.급탕설비연료 = fndr.히트연료
|
||||
NDr.급탕용량 = maxvalue.ToString() ' + "(" + fndr.히트난방용량 + ")"
|
||||
NDr.급탕효율 = fndr.히트난방정격7
|
||||
Case "지역난방"
|
||||
NDr.급탕설비연료 = "지역난방" ' fndr.사용연료
|
||||
NDr.급탕용량 = maxvalue.ToString() '+ "(" + fndr.열교환기정격출력 + ")"
|
||||
NDr.급탕효율 = fndr.정격보일러효율 + "%"
|
||||
Case "전기보일러"
|
||||
NDr.급탕설비연료 = "전기" ' fndr.사용연료
|
||||
NDr.급탕용량 = maxvalue.ToString() ' + "(" + fndr.보일러정격출력 + ")"
|
||||
NDr.급탕효율 = fndr.정격보일러효율 + "%"
|
||||
End Select
|
||||
|
||||
End If
|
||||
|
||||
Next
|
||||
End If
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
'///#################################################################################
|
||||
'///#################################################################################
|
||||
'//냉방(입력존에서 가장많이 사용한놈)
|
||||
Dim fndr2 As DS.tbl_nangbangkikiRow = Nothing
|
||||
Dim fndr2cnt As Integer = 0
|
||||
|
||||
Dim sum_압축식 As Single = 0
|
||||
Dim sum_압축식_LNG As Single = 0
|
||||
Dim sum_지역냉방 As Single = 0
|
||||
Dim sum_흡수식 As Single = 0
|
||||
|
||||
For Each dr As DS.tbl_nangbangkikiRow In DSET1.tbl_nangbangkiki.Select("code <> '0'")
|
||||
Dim cnt2 As Integer = 0
|
||||
Dim zDR() As DS.tbl_zoneRow = DSET1.tbl_zone.Select("열생산냉방생산기기='" & dr.code & "' or 공조냉방생산기기='" & dr.code & "'")
|
||||
|
||||
'//131207
|
||||
If zDR.Length > 0 Then
|
||||
Select Case dr.냉동기방식
|
||||
Case "압축식"
|
||||
sum_압축식 += TOSG(dr.냉동기용량)
|
||||
Case "압축식(LNG)"
|
||||
sum_압축식_LNG += TOSG(dr.냉동기용량)
|
||||
Case "지역냉방"
|
||||
sum_지역냉방 += TOSG(dr.냉동기용량)
|
||||
Case "흡수식"
|
||||
sum_흡수식 += TOSG(dr.냉동기용량)
|
||||
End Select
|
||||
End If
|
||||
|
||||
|
||||
Next
|
||||
|
||||
'//합이 가장 큰 그룹을 검색
|
||||
maxvalue = 0
|
||||
maxvalue = Math.Max(sum_압축식, sum_압축식_LNG)
|
||||
maxvalue = Math.Max(maxvalue, sum_지역냉방)
|
||||
maxvalue = Math.Max(maxvalue, sum_흡수식)
|
||||
|
||||
searchfilter = ""
|
||||
|
||||
If maxvalue = 0 Then
|
||||
searchfilter = ""
|
||||
ElseIf maxvalue = sum_압축식 Then
|
||||
searchfilter = "냉동기방식='압축식'"
|
||||
ElseIf maxvalue = sum_압축식_LNG Then
|
||||
searchfilter = "냉동기방식='압축식(LNG)'"
|
||||
ElseIf maxvalue = sum_지역냉방 Then
|
||||
searchfilter = "냉동기방식='지역냉방'"
|
||||
ElseIf maxvalue = sum_흡수식 Then
|
||||
searchfilter = "냉동기방식='흡수식'"
|
||||
End If
|
||||
|
||||
|
||||
|
||||
|
||||
'//가장큰 그룹내의 개별 대표값 찾기
|
||||
If searchfilter <> "" Then
|
||||
For Each dr As DS.tbl_nangbangkikiRow In DSET1.tbl_nangbangkiki.Select("code <> '0' and " + searchfilter)
|
||||
Dim cnt2 As Integer = 0
|
||||
Dim zDR() As DS.tbl_zoneRow = DSET1.tbl_zone.Select("열생산냉방생산기기='" & dr.code & "' or 공조냉방생산기기='" & dr.code & "'")
|
||||
|
||||
For Each drow As DS.tbl_zoneRow In zDR
|
||||
Dim 입력존수문자 As Integer = drow.입력존의수
|
||||
If IsNumeric(입력존수문자) = False Then 입력존수문자 = "1"
|
||||
cnt2 += CInt(입력존수문자)
|
||||
Next
|
||||
If cnt2 > fndr2cnt Then '//최대값찾기
|
||||
fndr2 = dr
|
||||
fndr2cnt = cnt2
|
||||
End If
|
||||
|
||||
If Not fndr2 Is Nothing Then
|
||||
NDr.냉열원설비방식 = fndr2.냉동기방식
|
||||
NDr.냉열원용량 = maxvalue.ToString() + "(" + fndr2.냉동기용량 + ")"
|
||||
NDr.냉열원효율 = fndr2.열성능비
|
||||
Select Case fndr2.냉동기방식
|
||||
Case "압축식"
|
||||
NDr.냉열원설비연료 = "전기"
|
||||
Case "압축식(LNG)"
|
||||
NDr.냉열원설비연료 = "천연가스"
|
||||
Case "지역냉방"
|
||||
NDr.냉열원설비연료 = "지역냉방"
|
||||
Case "흡수식"
|
||||
If fndr2.열생산연결방식 = "직화식" Then
|
||||
NDr.냉열원설비연료 = fndr2.사용연료
|
||||
ElseIf fndr2.열생산연결방식 = "외부연결" Then
|
||||
Dim 온수열생산기기코드 As String = fndr2.온수열생산기기
|
||||
If 온수열생산기기코드 <> "" Then
|
||||
Dim 난방기기() As DS.tbl_nanbangkikiRow = DSET1.tbl_nanbangkiki.Select("code='" + 온수열생산기기코드 + "'")
|
||||
If 난방기기.GetUpperBound(0) = 0 Then
|
||||
NDr.냉열원설비연료 = fndr2.사용연료
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
End Select
|
||||
|
||||
End If
|
||||
|
||||
Next
|
||||
Else
|
||||
NDr.냉열원설비방식 = ""
|
||||
NDr.냉열원용량 = ""
|
||||
NDr.냉열원효율 = ""
|
||||
End If
|
||||
|
||||
|
||||
DSR.Pyonga_YK.Rows.Add(NDr)
|
||||
DSR.Pyonga_YK.AcceptChanges()
|
||||
|
||||
End Sub
|
||||
|
||||
''' <summary>
|
||||
''' 모든입력면의 창,문의 면적비를 계산하여 반환한다(frm_myoun의 Display_info 함수에서 가져옴)
|
||||
''' </summary>
|
||||
''' <returns></returns>
|
||||
''' <remarks></remarks>
|
||||
Public Function calc_창및문면적비(ByRef 면적비 As Decimal, ByRef 열관류율 As Decimal, Optional 방위 As String = "") As Boolean
|
||||
Public Function calc_창및문면적비(ByRef 면적비 As Decimal, ByRef 열관류율 As Decimal, ByRef 창열관류율 As Decimal, ByRef 일사에너지투과율 As Decimal, Optional 방위 As String = "") As Boolean
|
||||
면적비 = 0
|
||||
열관류율 = 0
|
||||
|
||||
창열관류율 = 0
|
||||
일사에너지투과율 = 0
|
||||
Dim filter As String = "code <> '0' and (건축부위방식='외벽' or 건축부위방식 ='외부창' or 건축부위방식='내벽' or 건축부위방식 ='내부창')"
|
||||
If 방위 <> "" Then filter += " and 방위='" + 방위 + "'"
|
||||
|
||||
@@ -101,6 +858,9 @@
|
||||
Dim WindowArea As Decimal = 0
|
||||
Dim WallArea As Decimal = 0
|
||||
Dim 열관류율합 As Double = 0
|
||||
Dim 창열관류율합 As Double = 0
|
||||
Dim 투과율합 As Decimal = 0
|
||||
|
||||
|
||||
For Each Dr입력면 As DS.tbl_myounRow In 면데이터
|
||||
Dim 존수 As Integer = 1
|
||||
@@ -108,6 +868,8 @@
|
||||
|
||||
'If Dr입력면.열관류율2 = "0" Then Continue For '//열관류율이 연결되어 있어야한다
|
||||
|
||||
|
||||
|
||||
Dim Dryk() As DS.tbl_ykRow = Nothing
|
||||
If Dr입력면.열관류율2 <> "0" Then
|
||||
Dryk = DSET1.tbl_yk.Select("code='" & Dr입력면.열관류율2 & "'")
|
||||
@@ -134,8 +896,12 @@
|
||||
열관류율합 += 열관 * 0.7 * TOSG(Dr입력면.건축부위면적) * 존수
|
||||
Case "외부창"
|
||||
열관류율합 += 열관 * 1 * TOSG(Dr입력면.건축부위면적) * 존수
|
||||
창열관류율합 += 열관 * 1 * TOSG(Dr입력면.건축부위면적) * 존수
|
||||
투과율합 += Dr입력면.투과율 * TOSG(Dr입력면.건축부위면적) * 존수
|
||||
Case "내부창"
|
||||
열관류율합 += 열관 * 0.8 * TOSG(Dr입력면.건축부위면적) * 존수
|
||||
창열관류율합 += 열관 * 0.8 * TOSG(Dr입력면.건축부위면적) * 존수
|
||||
투과율합 += Dr입력면.투과율 * TOSG(Dr입력면.건축부위면적) * 존수
|
||||
End Select
|
||||
|
||||
If Dryk Is Nothing Then
|
||||
@@ -188,6 +954,14 @@
|
||||
열관류율 = 열관류율합 / (WallArea + WindowArea)
|
||||
End If
|
||||
|
||||
If WindowArea = 0 Then
|
||||
창열관류율 = (0.0F)
|
||||
일사에너지투과율 = (0.0F)
|
||||
Else
|
||||
창열관류율 = 창열관류율합 / (WindowArea)
|
||||
일사에너지투과율 = 투과율합 / (WindowArea)
|
||||
End If
|
||||
|
||||
Return True
|
||||
End Function
|
||||
|
||||
|
||||
Reference in New Issue
Block a user