r7,r8 파일손상으로 복구 작업 / 전산실 계수 변경 / R9로 저장 완료.
This commit is contained in:
412
ArinWarev1/DataSet/Calculator/Result/C사용면적.vb
Normal file
412
ArinWarev1/DataSet/Calculator/Result/C사용면적.vb
Normal file
@@ -0,0 +1,412 @@
|
||||
''' <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))
|
||||
|
||||
'//냉난방(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" 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존.입력존의수) * 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" 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존.입력존의수) * 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
|
||||
|
||||
|
||||
|
||||
'//급탕요구량이 있다면 급탕면적 누적
|
||||
If TOSG(Dr프로필.일일급탕요구량) > 0 Then
|
||||
|
||||
A_W += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수)
|
||||
|
||||
|
||||
If 건물용도 < 10 Then
|
||||
A_W_wf = A_W
|
||||
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 소수점오류인한 수정
|
||||
A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일급탕요구량) * (day_year / (30 * 250)), 3)
|
||||
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)
|
||||
A_L_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일사용시간) * (day_year / (9 * 250)), 3) * offset
|
||||
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))
|
||||
A_V_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)), 3)
|
||||
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
|
||||
Reference in New Issue
Block a user