481 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			VB.net
		
	
	
	
	
	
			
		
		
	
	
			481 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			VB.net
		
	
	
	
	
	
| ''' <summary>
 | |
| ''' 전체존의 사용면적을 계산및 확인(냉,난,조,급,환)
 | |
| ''' </summary>
 | |
| ''' <remarks>전체존의 사용면적을 계산및 확인(냉,난,조,급,환)</remarks>
 | |
| Public Class C사용면적
 | |
| 
 | |
|     ''' <summary>
 | |
|     ''' 난방
 | |
|     ''' </summary>
 | |
|     ''' <remarks>난방</remarks>
 | |
|     Property H() As Decimal
 | |
|         Get
 | |
|             If DSETR.사용면적.Rows.Count = 0 Then
 | |
|                 LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
 | |
|                 Return 0
 | |
|             Else
 | |
|                 Return TOSG(DSETR.사용면적(0)("H"))
 | |
|             End If
 | |
|         End Get
 | |
|         Set(ByVal value As Decimal)
 | |
|             If DSETR.사용면적.Rows.Count = 0 Then
 | |
|                 LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
 | |
|             Else
 | |
|                 DSETR.사용면적(0)("H") = value
 | |
|             End If
 | |
|         End Set
 | |
|     End Property
 | |
|     ''' <summary>
 | |
|     ''' 냉방
 | |
|     ''' </summary>
 | |
|     ''' <remarks>냉방</remarks>
 | |
|     Property C() As Decimal
 | |
|         Get
 | |
|             If DSETR.사용면적.Rows.Count = 0 Then
 | |
|                 LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
 | |
|                 Return 0
 | |
|             Else
 | |
|                 Return TOSG(DSETR.사용면적(0)("C"))
 | |
|             End If
 | |
|         End Get
 | |
|         Set(ByVal value As Decimal)
 | |
|             If DSETR.사용면적.Rows.Count = 0 Then
 | |
|                 LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
 | |
|             Else
 | |
|                 DSETR.사용면적(0)("C") = value
 | |
|             End If
 | |
|         End Set
 | |
|     End Property
 | |
|     ''' <summary>
 | |
|     ''' 조명
 | |
|     ''' </summary>
 | |
|     ''' <remarks>조명</remarks>
 | |
|     Property L() As Decimal
 | |
|         Get
 | |
|             If DSETR.사용면적.Rows.Count = 0 Then
 | |
|                 LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
 | |
|                 Return 0
 | |
|             Else
 | |
|                 Return TOSG(DSETR.사용면적(0)("L"))
 | |
|             End If
 | |
|         End Get
 | |
|         Set(ByVal value As Decimal)
 | |
|             If DSETR.사용면적.Rows.Count = 0 Then
 | |
|                 LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
 | |
|             Else
 | |
|                 DSETR.사용면적(0)("L") = value
 | |
|             End If
 | |
|         End Set
 | |
|     End Property
 | |
|     ''' <summary>
 | |
|     ''' 급탕
 | |
|     ''' </summary>
 | |
|     ''' <remarks>급탕</remarks>
 | |
|     Property W() As Decimal
 | |
|         Get
 | |
|             If DSETR.사용면적.Rows.Count = 0 Then
 | |
|                 LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
 | |
|                 Return 0
 | |
|             Else
 | |
|                 Return TOSG(DSETR.사용면적(0)("W"))
 | |
|             End If
 | |
|         End Get
 | |
|         Set(ByVal value As Decimal)
 | |
|             If DSETR.사용면적.Rows.Count = 0 Then
 | |
|                 LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
 | |
|             Else
 | |
|                 DSETR.사용면적(0)("W") = value
 | |
|             End If
 | |
|         End Set
 | |
|     End Property
 | |
|     ''' <summary>
 | |
|     ''' 환기
 | |
|     ''' </summary>
 | |
|     ''' <remarks>환기</remarks>
 | |
|     Property V() As Decimal
 | |
|         Get
 | |
|             If DSETR.사용면적.Rows.Count = 0 Then
 | |
|                 LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
 | |
|                 Return 0
 | |
|             Else
 | |
|                 Return TOSG(DSETR.사용면적(0)("V"))
 | |
|             End If
 | |
|         End Get
 | |
|         Set(ByVal value As Decimal)
 | |
|             If DSETR.사용면적.Rows.Count = 0 Then
 | |
|                 LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
 | |
|             Else
 | |
|                 DSETR.사용면적(0)("V") = value
 | |
|             End If
 | |
|         End Set
 | |
|     End Property
 | |
| 
 | |
| 
 | |
|     ''' <summary>
 | |
|     ''' 난방_WF
 | |
|     ''' </summary>
 | |
|     ''' <remarks>난방</remarks>
 | |
|     Property H_WF() As Decimal
 | |
|         Get
 | |
|             If DSETR.사용면적.Rows.Count = 0 Then
 | |
|                 LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
 | |
|                 Return 0
 | |
|             Else
 | |
|                 Return TOSG(DSETR.사용면적(0)("H_WF"))
 | |
|             End If
 | |
|         End Get
 | |
|         Set(ByVal value As Decimal)
 | |
|             If DSETR.사용면적.Rows.Count = 0 Then
 | |
|                 LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
 | |
|             Else
 | |
|                 DSETR.사용면적(0)("H_WF") = value
 | |
|             End If
 | |
|         End Set
 | |
|     End Property
 | |
|     ''' <summary>
 | |
|     ''' 냉방_WF
 | |
|     ''' </summary>
 | |
|     ''' <remarks>냉방</remarks>
 | |
|     Property C_WF() As Decimal
 | |
|         Get
 | |
|             If DSETR.사용면적.Rows.Count = 0 Then
 | |
|                 LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
 | |
|                 Return 0
 | |
|             Else
 | |
|                 Return TOSG(DSETR.사용면적(0)("C_WF"))
 | |
|             End If
 | |
|         End Get
 | |
|         Set(ByVal value As Decimal)
 | |
|             If DSETR.사용면적.Rows.Count = 0 Then
 | |
|                 LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
 | |
|             Else
 | |
|                 DSETR.사용면적(0)("C_WF") = value
 | |
|             End If
 | |
|         End Set
 | |
|     End Property
 | |
|     ''' <summary>
 | |
|     ''' 조명_WF
 | |
|     ''' </summary>
 | |
|     ''' <remarks>조명</remarks>
 | |
|     Property L_WF() As Decimal
 | |
|         Get
 | |
|             If DSETR.사용면적.Rows.Count = 0 Then
 | |
|                 LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
 | |
|                 Return 0
 | |
|             Else
 | |
|                 Return TOSG(DSETR.사용면적(0)("L_WF"))
 | |
|             End If
 | |
|         End Get
 | |
|         Set(ByVal value As Decimal)
 | |
|             If DSETR.사용면적.Rows.Count = 0 Then
 | |
|                 LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
 | |
|             Else
 | |
|                 DSETR.사용면적(0)("L_WF") = value
 | |
|             End If
 | |
|         End Set
 | |
|     End Property
 | |
|     ''' <summary>
 | |
|     ''' 급탕_WF
 | |
|     ''' </summary>
 | |
|     ''' <remarks>급탕</remarks>
 | |
|     Property W_WF() As Decimal
 | |
|         Get
 | |
|             If DSETR.사용면적.Rows.Count = 0 Then
 | |
|                 LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
 | |
|                 Return 0
 | |
|             Else
 | |
|                 Return TOSG(DSETR.사용면적(0)("W_WF"))
 | |
|             End If
 | |
|         End Get
 | |
|         Set(ByVal value As Decimal)
 | |
|             If DSETR.사용면적.Rows.Count = 0 Then
 | |
|                 LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
 | |
|             Else
 | |
|                 DSETR.사용면적(0)("W_WF") = value
 | |
|             End If
 | |
|         End Set
 | |
|     End Property
 | |
|     ''' <summary>
 | |
|     ''' 환기_WF
 | |
|     ''' </summary>
 | |
|     ''' <remarks>환기</remarks>
 | |
|     Property V_WF() As Decimal
 | |
|         Get
 | |
|             If DSETR.사용면적.Rows.Count = 0 Then
 | |
|                 LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
 | |
|                 Return 0
 | |
|             Else
 | |
|                 Return TOSG(DSETR.사용면적(0)("V_WF"))
 | |
|             End If
 | |
|         End Get
 | |
|         Set(ByVal value As Decimal)
 | |
|             If DSETR.사용면적.Rows.Count = 0 Then
 | |
|                 LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
 | |
|             Else
 | |
|                 DSETR.사용면적(0)("V_WF") = value
 | |
|             End If
 | |
|         End Set
 | |
|     End Property
 | |
| 
 | |
|     Public Overridable Sub Calc()
 | |
| 
 | |
|         pLog.Add(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
 | |
|         pLog.Add(">> C사용면적.Calc")
 | |
|         pLog.Add(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
 | |
| 
 | |
|         Dim A_H As Decimal = 0
 | |
|         Dim A_C As Decimal = 0
 | |
|         Dim A_L As Decimal = 0
 | |
|         Dim A_W As Decimal = 0
 | |
|         Dim A_V As Decimal = 0
 | |
|         '//용도별 면적가중치(wf) 추가 '2012.07.01
 | |
|         Dim A_H_wf As Decimal = 0
 | |
|         Dim A_C_wf As Decimal = 0
 | |
|         Dim A_L_wf As Decimal = 0
 | |
|         Dim A_W_wf As Decimal = 0
 | |
|         Dim A_V_wf As Decimal = 0
 | |
|         Dim day_year As Decimal
 | |
|         '//'2012.07.01
 | |
| 
 | |
|         If DSETR.사용면적.Rows.Count = 0 Then   '//데결과가 없으면 신규줄을 기록한다.
 | |
|             Dim Dr As DSR.사용면적Row = DSETR.사용면적.New사용면적Row
 | |
|             Dr.H = 0 : Dr.C = 0 : Dr.L = 0 : Dr.W = 0 : Dr.V = 0
 | |
|             DSETR.사용면적.Add사용면적Row(Dr)
 | |
|             DSETR.AcceptChanges()
 | |
|         End If
 | |
| 
 | |
|         '//건물용도
 | |
|         Dim 건물용도 As Integer = CInt(DSET.tbl_Desc.Rows(0)("isjugo"))
 | |
| 
 | |
|         '//A_H,C,W,L,V 의 누적값을 계산(사용면적)  '//모든존을 대상으로
 | |
| 
 | |
|         For Each Dr존 As DS.tbl_zoneRow In DSET.tbl_zone.Select("code<>'0'", "code")
 | |
| 
 | |
|             Dim Dr프로필 As DS.tbl_profileRow = CType(DSET.tbl_profile.Select("code='" & Dr존.프로필 & "'")(0), DS.tbl_profileRow)
 | |
| 
 | |
|             Dim offset As Integer = 1
 | |
|             If Dr프로필.code = "0016" Then
 | |
|                 If Dr존.조명부하산출방법 = "입력치" Then
 | |
|                     If Dr존.조명에너지부하율입력치 > 10 Then
 | |
|                         offset = ((Dr존.조명에너지부하율입력치 - 10) * 0.4 + 10) / Dr존.조명에너지부하율입력치
 | |
|                     End If
 | |
|                 ElseIf Dr존.조명부하산출방법 = "계산치" Then
 | |
|                     If Dr존.조명에너지부하율계산치 > 10 Then
 | |
|                         offset = ((Dr존.조명에너지부하율계산치 - 10) * 0.4 + 10) / Dr존.조명에너지부하율계산치
 | |
|                     End If
 | |
|                 End If
 | |
|             End If
 | |
| 
 | |
|             pLog.Add(String.Format(">> Zone({0})Row Offset={1}", Dr존.code, offset))
 | |
| 
 | |
| 
 | |
|             Dim 면적별범위값 As Char = Pub.면적별범위값(Dr존.면적)
 | |
| 
 | |
|             '//냉난방(HC) 이거나 난방(H)일경우 난방면적 누적
 | |
|             If Dr존.냉난방방식.IndexOf("난") <> -1 OrElse Dr존.냉난방공조.IndexOf("난") <> -1 Then
 | |
|                 A_H += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수)
 | |
|                 If 건물용도 < 10 Then '//주거일경우에
 | |
| 
 | |
|                     '//연
 | |
| 
 | |
|                     A_H_wf = A_H
 | |
| 
 | |
|                 Else
 | |
|                     day_year = TOSG(Dr프로필.day01) + TOSG(Dr프로필.day02) + TOSG(Dr프로필.day03) + TOSG(Dr프로필.day04) + TOSG(Dr프로필.day05) + TOSG(Dr프로필.day06) + TOSG(Dr프로필.day07) + TOSG(Dr프로필.day08) + TOSG(Dr프로필.day09) + TOSG(Dr프로필.day10) + TOSG(Dr프로필.day11) + TOSG(Dr프로필.day12)
 | |
|                     'A_H_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * (TOSG(Dr프로필.일일운전시간) * Math.Round(day_year / (11 * 250), 3))
 | |
| 
 | |
|                     'A_H_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)), 3)
 | |
|                     If Dr프로필.code <> "0010" OrElse Dr프로필.code <> "0025" OrElse Dr프로필.code <> "0026" Then
 | |
|                         If Dr프로필.code <> "0027" Then
 | |
|                             A_H_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)), 3)
 | |
|                         Else
 | |
|                             A_H_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 1.66 '주거용 오피스텔 적용
 | |
|                         End If
 | |
| 
 | |
|                     Else
 | |
|                         A_H_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)) / (0.503 / 0.314), 3)  '//전산실 용도에 따른 난방 가중치 적용
 | |
|                     End If
 | |
|                 End If
 | |
| 
 | |
|                 pLog.Add(String.Format(">> Zone({0})Row A_H_wf={1}", Dr존.code, A_H_wf))
 | |
|             End If
 | |
| 
 | |
| 
 | |
| 
 | |
|             '//냉난방(hC) 이거나 냉방(C)일경우 냉방면적 누적
 | |
|             If Dr존.냉난방방식.IndexOf("냉") <> -1 OrElse Dr존.냉난방공조.IndexOf("냉") <> -1 Then
 | |
|                 A_C += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수)
 | |
| 
 | |
|                 If 건물용도 < 10 Then
 | |
|                     A_C_wf = A_C
 | |
|                 Else
 | |
|                     day_year = TOSG(Dr프로필.day01) + TOSG(Dr프로필.day02) + TOSG(Dr프로필.day03) + TOSG(Dr프로필.day04) + TOSG(Dr프로필.day05) + TOSG(Dr프로필.day06) + TOSG(Dr프로필.day07) + TOSG(Dr프로필.day08) + TOSG(Dr프로필.day09) + TOSG(Dr프로필.day10) + TOSG(Dr프로필.day11) + TOSG(Dr프로필.day12)
 | |
|                     'A_C_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * (TOSG(Dr프로필.일일운전시간) * Math.Round(day_year / (11 * 250), 3))
 | |
| 
 | |
|                     'A_C_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)), 3)
 | |
|                     If Dr프로필.code <> "0010" OrElse Dr프로필.code <> "0025" OrElse Dr프로필.code <> "0026" Then
 | |
| 
 | |
|                         If Dr프로필.code <> "0027" Then
 | |
|                             A_C_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)), 3)
 | |
|                         Else
 | |
|                             A_C_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 1.66 '주거용 오피스텔 적용
 | |
|                         End If
 | |
|                     Else
 | |
|                         A_C_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)) / (0.196 / 0.314), 3)  '//전산실 용도에 따른 냉방 가중치 적용
 | |
|                     End If
 | |
| 
 | |
|                 End If
 | |
| 
 | |
|                 pLog.Add(String.Format(">> Zone({0})Row A_C={1},A_C_wf={2}", Dr존.code, A_C, A_C_wf))
 | |
|             End If
 | |
| 
 | |
| 
 | |
| 
 | |
|             '//급탕요구량이 있다면 급탕면적 누적
 | |
| 
 | |
|             Dim 프로필급탕요구량 As Decimal = TOSG(Dr프로필.일일급탕요구량)
 | |
|             If Dr프로필.설명.StartsWith("00") OrElse Dr프로필.설명.StartsWith("27") Then
 | |
|                 Dim 면적별범위 As Char = Pub.면적별범위값(TOSG(Dr존.면적))
 | |
|                 프로필급탕요구량 = Pub.프로필급탕요구량(면적별범위) / TOSG(Dr존.면적)
 | |
|             End If
 | |
| 
 | |
| 
 | |
| 
 | |
|             If 프로필급탕요구량 > 0 Then
 | |
| 
 | |
|                 A_W += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수)
 | |
| 
 | |
| 
 | |
|                 If 건물용도 < 10 Then '//주거용
 | |
|                     A_W_wf = A_W
 | |
|                     'Select Case 면적별범위값
 | |
|                     '    Case "A"c
 | |
|                     '        A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 0.458
 | |
|                     '    Case "B"c
 | |
|                     '        A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 0.618
 | |
|                     '    Case "C"c
 | |
|                     '        A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 0.729
 | |
|                     '    Case "D"c
 | |
|                     '        A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 1
 | |
|                     '    Case "E"c
 | |
|                     '        A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 1.258
 | |
|                     '    Case "F"c
 | |
|                     '        A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 1.475
 | |
|                     '    Case Else
 | |
|                     '        A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 1.643
 | |
|                     'End Select
 | |
|                 Else
 | |
|                     day_year = TOSG(Dr프로필.day01) + TOSG(Dr프로필.day02) + TOSG(Dr프로필.day03) + TOSG(Dr프로필.day04) + TOSG(Dr프로필.day05) + TOSG(Dr프로필.day06) + TOSG(Dr프로필.day07) + TOSG(Dr프로필.day08) + TOSG(Dr프로필.day09) + TOSG(Dr프로필.day10) + TOSG(Dr프로필.day11) + TOSG(Dr프로필.day12)
 | |
|                     'A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * (TOSG(Dr프로필.일일급탕요구량) * Math.Round(day_year / (30 * 250), 3))  160211 소수점오류인한 수정
 | |
|                     If Dr프로필.code <> "0027" Then
 | |
|                         A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(프로필급탕요구량 * (day_year / (30 * 250)), 3)
 | |
|                     Else
 | |
| 
 | |
|                         '//주거용 오피스텔
 | |
|                         Select Case 면적별범위값
 | |
|                             Case "A"c
 | |
|                                 A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 0.804
 | |
|                             Case "B"c
 | |
|                                 A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 1.025
 | |
|                             Case "C"c
 | |
|                                 A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 1.21
 | |
|                             Case "D"c
 | |
|                                 A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 1.66
 | |
|                             Case "E"c
 | |
|                                 A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 2.088
 | |
|                             Case "F"c
 | |
|                                 A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 2.448
 | |
|                             Case Else
 | |
|                                 A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 2.727
 | |
|                         End Select
 | |
| 
 | |
|                     End If
 | |
|                 End If
 | |
| 
 | |
|                 pLog.Add(String.Format(">> Zone({0})Row A_W={1},A_W_wf={2}", Dr존.code, A_W, A_W_wf))
 | |
| 
 | |
|             End If
 | |
| 
 | |
|             '//조명의 에너지부하율값이 있으면 조명면적 누적
 | |
|             If Dr존.조명에너지부하율계산치 <> "0" OrElse Dr존.조명에너지부하율입력치 <> "0" Then
 | |
|                 A_L += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수)
 | |
| 
 | |
|                 If 건물용도 < 10 Then
 | |
|                     '//가스를쓰는 난방 급탕은 계가 발생
 | |
|                     A_L_wf = A_L
 | |
|                 Else
 | |
|                     day_year = TOSG(Dr프로필.day01) + TOSG(Dr프로필.day02) + TOSG(Dr프로필.day03) + TOSG(Dr프로필.day04) + TOSG(Dr프로필.day05) + TOSG(Dr프로필.day06) + TOSG(Dr프로필.day07) + TOSG(Dr프로필.day08) + TOSG(Dr프로필.day09) + TOSG(Dr프로필.day10) + TOSG(Dr프로필.day11) + TOSG(Dr프로필.day12)
 | |
|                     'A_L_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * (TOSG(Dr프로필.일일사용시간) * Math.Round(day_year / (9 * 250), 3) * offset)
 | |
|                     If Dr프로필.code <> "0027" Then
 | |
|                         A_L_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일사용시간) * (day_year / (9 * 250)), 3) * offset
 | |
|                     Else
 | |
|                         A_L_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 1.66 '주거용 오피스텔 적용
 | |
|                     End If
 | |
| 
 | |
| 
 | |
|                 End If
 | |
| 
 | |
|                 pLog.Add(String.Format(">> Zone({0})Row A_L={1},A_L_wf={2}", Dr존.code, A_L, A_L_wf))
 | |
|             End If
 | |
| 
 | |
|             '//냉난방공조를 사용하고있다면 환기면적 누적(ZZ:기능없음)
 | |
|             If (Dr존.냉난방공조 <> "기능없음") Then
 | |
|                 A_V += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수)
 | |
| 
 | |
|                 If 건물용도 < 10 Then
 | |
|                     A_V_wf = A_V
 | |
|                 Else
 | |
|                     day_year = TOSG(Dr프로필.day01) + TOSG(Dr프로필.day02) + TOSG(Dr프로필.day03) + TOSG(Dr프로필.day04) + TOSG(Dr프로필.day05) + TOSG(Dr프로필.day06) + TOSG(Dr프로필.day07) + TOSG(Dr프로필.day08) + TOSG(Dr프로필.day09) + TOSG(Dr프로필.day10) + TOSG(Dr프로필.day11) + TOSG(Dr프로필.day12)
 | |
|                     'A_V_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * (TOSG(Dr프로필.일일운전시간) * Math.Round(day_year / (11 * 250), 3))
 | |
|                     If Dr프로필.code <> "0027" Then
 | |
|                         A_V_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)), 3)
 | |
|                     Else
 | |
|                         A_V_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) / 1.66 '주거용 오피스텔 적용
 | |
|                     End If
 | |
| 
 | |
| 
 | |
|                 End If
 | |
| 
 | |
|                 pLog.Add(String.Format(">> Zone({0})Row A_V={1},A_V_wf={2}", Dr존.code, A_V, A_V_wf))
 | |
| 
 | |
|             End If
 | |
| 
 | |
|         Next
 | |
| 
 | |
|         '//저장소에 보관한다.
 | |
|         '//가중치 없는 사용면적
 | |
|         Result.사용면적.H = A_H
 | |
|         Result.사용면적.C = A_C
 | |
|         Result.사용면적.L = A_L
 | |
|         Result.사용면적.W = A_W
 | |
|         Result.사용면적.V = A_V
 | |
| 
 | |
|         pLog.Add("C사용면적.CALC 결과 : 가중치없음")
 | |
|         pLog.Add(String.Format("H={0},C={1},L={2},W={3},V={4}", A_H, A_C, A_L, A_W, A_V))
 | |
| 
 | |
| 
 | |
|         '// 가중치 있는 사용면적 '2013.07.01
 | |
|         Result.사용면적.H_WF = A_H_wf
 | |
|         Result.사용면적.C_WF = A_C_wf
 | |
|         Result.사용면적.L_WF = A_L_wf
 | |
|         Result.사용면적.W_WF = A_W_wf
 | |
|         Result.사용면적.V_WF = A_V_wf
 | |
| 
 | |
|         pLog.Add("C사용면적.CALC 결과 : 가중치적용")
 | |
|         pLog.Add(String.Format("H_wf={0},C_wf={1},L_wf={2},W_wf={3},V_wf={4}", A_H_wf, A_C_wf, A_L_wf, A_W_wf, A_V_wf))
 | |
|     End Sub
 | |
| 
 | |
|     Private DSETR As DSR
 | |
|     Private Result As CResult
 | |
|     Private DSET As DS
 | |
|     Public Sub New(ByRef pds As DS, ByRef pdsetr As DSR, ByRef presult As CResult)
 | |
| 
 | |
|         If Not pLog Is Nothing Then
 | |
|             pLog.Add("New C사용면적", True)
 | |
|         End If
 | |
| 
 | |
|         DSET = pds
 | |
|         DSETR = pdsetr
 | |
|         Result = presult
 | |
|     End Sub
 | |
| End Class | 
