initial commit
This commit is contained in:
225
ArinWarev1/REPORT-OD/Report_친환경.vb
Normal file
225
ArinWarev1/REPORT-OD/Report_친환경.vb
Normal file
@@ -0,0 +1,225 @@
|
||||
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
|
||||
Reference in New Issue
Block a user