Files
ECO2-OD/ArinWarev1/REPORT-OD/Report_친환경.vb
2018-12-09 20:18:51 +09:00

225 lines
10 KiB
VB.net

Public Class Report_친환경
Dim 신재생에너지 As Decimal = 0
Dim 난방에너지 As Decimal = 0
Dim 냉방에너지 As Decimal = 0
Dim 급탕에너지 As Decimal = 0
Dim 조명에너지 As Decimal = 0
Dim 환기에너지 As Decimal = 0
Dim 합계 As Decimal = 0
Dim 창면적비 As String = ""
Dim 외벽평균열관류율 As String = ""
Dim 신재생_1차소요량 As String = ""
Dim 신재생_소요량 As String = ""
Dim 신재생_요구량 As String = ""
Private Sub Frm_v20091231_Result_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Me.DS.tbl_Desc.Merge(DSET1.tbl_Desc) '//건물정보
Me.DS.tbl_ReqInfo.Merge(DSET1.tbl_ReqInfo) '//의무사항
Me.DSR.ExtReport.Merge(DSETR1.ExtReport) '//결과
Display_info()
Dim 세대면적(4) As String
Dim 세대수(4) As String
For i As Integer = 0 To 4
세대면적(i) = "0"
세대수(i) = "0"
Next
'//세대면적, 세대수처리
Dim idx As Integer = 0
Dim 총세대수 As Integer = 0
Dim 세대별면적합 As Single = 0
For Each dr As DS.tbl_typeRow In DSET1.tbl_type.Select("code <> '0'", "세대수 desc")
총세대수 += dr.세대수
세대별면적합 += dr.세대수 * dr.세대면적
If idx <= 4 Then
세대면적(idx) = dr.세대면적
세대수(idx) = dr.세대수
idx += 1
End If
Next
세대수(4) = 총세대수 - 세대수(0) - 세대수(1) - 세대수(2) - 세대수(3) '//180122
For i As Integer = 0 To 4
If 세대면적(i) = "0" Then
세대면적(i) = ""
End If
If 세대수(i) = "0" Then
세대수(i) = ""
End If
Next
Dim 단지평균전용면적 As Single = 0
If 총세대수 <> 0 Then 단지평균전용면적 = 세대별면적합 / 총세대수
Dim ReportData As DSR.ExtReportRow = DSETR1.ExtReport.Rows(0)
Dim 소요량1차 As Single = 0 'Single.Parse(ReportData.c078)
Dim 소요량1차Sum As Single = 0 'Single.Parse(ReportData.c082)
If IsNumeric(ReportData.c078) Then
소요량1차 = Single.Parse(ReportData.c078)
End If
If IsNumeric(ReportData.c082) Then
소요량1차Sum = Single.Parse(ReportData.c082)
End If
Dim drDesc As DS.tbl_DescRow = DSET1.tbl_Desc.Rows(0)
Dim areaCode As String = drDesc.buildarea
Dim drWGs() As DS.weather_groupRow = DSET1.weather_group.Select("code = '" + areaCode + "'")
Dim offset As Single = 0
If drWGs.Length = 1 Then
Dim drWG As DS.weather_groupRow = drWGs(0)
Dim Area3 As String = drWG.area3
If Area3 = "중부1" Then
If 소요량1차 = 0 Then
offset = 1.1
Else
offset = 1.2
End If
ElseIf Area3 = "중부2" Then
If 소요량1차 = 0 Then
offset = 1.0
Else
offset = 1.1
End If
ElseIf Area3 = "남부" Then
If 소요량1차 = 0 Then
offset = 0.9
Else
offset = 1.0
End If
ElseIf Area3 = "제주" Then
If 소요량1차 = 0 Then
offset = 0.8
Else
offset = 0.9
End If
End If
Else
'//지역코드가 연결되지 않은경우
MsgBox("지역코드 에러", MsgBoxStyle.Critical, "확인")
End If
Dim 평가기준주택1차에너지소요량 As Single = 320 * offset
Dim 평가대상주택1차에너지소요량 As Single = 소요량1차Sum
Dim 총에너지절감률 As Single = 0
If 평가기준주택1차에너지소요량 <> 0 Then
총에너지절감률 = ((평가기준주택1차에너지소요량 - 평가대상주택1차에너지소요량) / 평가기준주택1차에너지소요량) * 100
End If
Dim params As New List(Of Microsoft.Reporting.WinForms.ReportParameter)
params.Add(New Microsoft.Reporting.WinForms.ReportParameter("param1", drDesc.민간구분))
params.Add(New Microsoft.Reporting.WinForms.ReportParameter("창면적비", 창면적비))
params.Add(New Microsoft.Reporting.WinForms.ReportParameter("외벽평균열관류율", 외벽평균열관류율))
params.Add(New Microsoft.Reporting.WinForms.ReportParameter("평가기준주택1차에너지소요량", 평가기준주택1차에너지소요량))
params.Add(New Microsoft.Reporting.WinForms.ReportParameter("평가대상주택1차에너지소요량", 평가대상주택1차에너지소요량))
params.Add(New Microsoft.Reporting.WinForms.ReportParameter("총에너지절감률", 총에너지절감률.ToString("N2")))
For i As Integer = 0 To 4
params.Add(New Microsoft.Reporting.WinForms.ReportParameter("전용면적" + (i + 1).ToString(), 세대면적(i)))
params.Add(New Microsoft.Reporting.WinForms.ReportParameter("세대수" + (i + 1).ToString(), 세대수(i)))
Next
params.Add(New Microsoft.Reporting.WinForms.ReportParameter("총세대수", 총세대수))
params.Add(New Microsoft.Reporting.WinForms.ReportParameter("단지평균전용면적", 단지평균전용면적))
params.Add(New Microsoft.Reporting.WinForms.ReportParameter("신재생_1차소요량", 신재생_1차소요량))
params.Add(New Microsoft.Reporting.WinForms.ReportParameter("신재생_소요량", 신재생_소요량))
params.Add(New Microsoft.Reporting.WinForms.ReportParameter("신재생_요구량", 신재생_요구량))
Me.ReportViewer1.LocalReport.SetParameters(params.ToArray)
Me.ReportViewer1.LocalReport.SetParameters(params)
Me.ReportViewer1.SetDisplayMode(Microsoft.Reporting.WinForms.DisplayMode.PrintLayout)
Me.ReportViewer1.ZoomMode = Microsoft.Reporting.WinForms.ZoomMode.PageWidth
Me.ReportViewer1.ZoomPercent = 100
Me.ReportViewer1.PageCountMode = Microsoft.Reporting.WinForms.PageCountMode.Actual
Me.ReportViewer1.RefreshReport()
End Sub
Private Sub Display_info()
Dim T As String = "RPT:친환경"
Dim WallArea As Decimal, WindowArea As Decimal, WallUvalue As Decimal, WindowUvalue As Decimal
WallArea = 0
WindowArea = 0
WallUvalue = 0
WindowUvalue = 0
Try
For Each Dr입력면 As DS.tbl_myounRow In DSET1.tbl_myoun.Select("건축부위방식='외벽' or 건축부위방식 ='외부창' or 건축부위방식 ='내벽' or 건축부위방식 ='내부창'")
If Dr입력면.RowState = DataRowState.Deleted OrElse Dr입력면.RowState = DataRowState.Detached Then Continue For
Dim Dr열관류율 As DS.tbl_ykRow = DSET1.tbl_yk.Select("code='" & Dr입력면.열관류율2.ToString & "'")(0)
Select Case Dr입력면.건축부위방식
Case "외벽"
If Dr열관류율.면형태 = "외벽(직접)" OrElse Dr열관류율.면형태 = "0" Then
WallArea = WallArea + TOSG(T, Dr입력면.건축부위면적)
Dim dr() As DS.tbl_ykRow = DSET1.tbl_yk.Select("code='" & Dr입력면.열관류율2 & "'")
WallUvalue = WallUvalue + TOSG(T, dr(0).열관류율) * TOSG(T, Dr입력면.건축부위면적)
End If
Case "외부창"
If Dr열관류율.면형태 = "창(직접)" OrElse Dr열관류율.면형태 = "0007" OrElse _
Dr열관류율.면형태 = "문(직접)" OrElse Dr열관류율.면형태 = "0010" OrElse _
Dr열관류율.면형태 = "세대현관문(직접)" OrElse Dr열관류율.면형태 = "0012" Then
WindowArea = WindowArea + TOSG(T, Dr입력면.건축부위면적)
Dim dr() As DS.tbl_ykRow = DSET1.tbl_yk.Select("code='" & Dr입력면.열관류율2 & "'")
WindowUvalue = WindowUvalue + TOSG(T, dr(0).열관류율) * TOSG(T, Dr입력면.건축부위면적)
End If
Case "내부창"
If Dr열관류율.면형태 = "창(간접)" OrElse Dr열관류율.면형태 = "0008" OrElse _
Dr열관류율.면형태 = "문(간접)" OrElse Dr열관류율.면형태 = "0011" OrElse _
Dr열관류율.면형태 = "세대현관문(간접)" OrElse Dr열관류율.면형태 = "0013" Then
WindowArea = WindowArea + TOSG(T, Dr입력면.건축부위면적)
Dim dr() As DS.tbl_ykRow = DSET1.tbl_yk.Select("code='" & Dr입력면.열관류율2 & "'")
WindowUvalue = WindowUvalue + TOSG(T, dr(0).열관류율) * TOSG(T, Dr입력면.건축부위면적) * 0.8
End If
Case "내벽"
If Dr열관류율.면형태 = "외벽(간접)" OrElse Dr열관류율.면형태 = "0003" Then
WallArea = WallArea + TOSG(T, Dr입력면.건축부위면적)
Dim dr() As DS.tbl_ykRow = DSET1.tbl_yk.Select("code='" & Dr입력면.열관류율2 & "'")
WallUvalue = WallUvalue + TOSG(T, dr(0).열관류율) * TOSG(T, Dr입력면.건축부위면적) * 0.7
End If
End Select
Next
Catch ex As Exception
End Try
Try
창면적비 = Math.Round(WindowArea / (WallArea + WindowArea) * 100, 2).ToString
Catch ex As Exception
창면적비 = ""
End Try
Try
외벽평균열관류율 = Math.Round((WallUvalue + WindowUvalue) / (WallArea + WindowArea), 3).ToString
Catch ex As Exception
외벽평균열관류율 = ""
End Try
End Sub
End Class