Files
ECO2-OD/ArinWarev1/REPORT-OD/Report_검토서.vb
2018-12-09 20:18:51 +09:00

409 lines
19 KiB
VB.net

Public Class Report_검토서
Dim T As String = "검토서"
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
Private Sub Frm_v20091231_Result_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
' Me.DSR.TReqUse.Merge(DSETR1.TReqUse)
Me.DS.tbl_Desc.Merge(DSET1.tbl_Desc)
MakeGraphTable()
Dim param1 As New Microsoft.Reporting.WinForms.ReportParameter("p_heat", 난방에너지.ToString("N1"))
Dim param2 As New Microsoft.Reporting.WinForms.ReportParameter("p_cool", 냉방에너지.ToString("N1"))
Dim param3 As New Microsoft.Reporting.WinForms.ReportParameter("p_fan", 환기에너지.ToString("N1"))
Dim param5 As New Microsoft.Reporting.WinForms.ReportParameter("p_light", 조명에너지.ToString("N1"))
Dim param6 As New Microsoft.Reporting.WinForms.ReportParameter("p_kup", 급탕에너지.ToString("N1"))
Dim param7 As New Microsoft.Reporting.WinForms.ReportParameter("p_sum", 합계.ToString("N1"))
Dim 큰프로파일 As String = ""
Dim 바닥면적 As Single = 0
For Each dr As DS.tbl_myounRow In DSET1.tbl_myoun.Select("존분류 <> '0' and 존분류 <> ''")
If dr.바닥면적 > 바닥면적 Then
바닥면적 = dr.바닥면적
큰프로파일 = dr.존분류
End If
Next
Dim msg As String = ""
If 큰프로파일 = "" Then
msg = ""
Else
Dim 프로파일데이터 As DS.tbl_profile_odRow = DSET1.tbl_profile_od.Select("code ='" + 큰프로파일 + "'")(0)
If CInt(큰프로파일) < 1 Then
msg = "[ v ] 주거용 (" + 프로파일데이터.설명 + ")"
Else
msg = "[ v ] 주거용 외 ( " + 프로파일데이터.설명 + " )"
End If
End If
Dim param8 As New Microsoft.Reporting.WinForms.ReportParameter("p_주용도", msg)
Dim 건물용도 As Integer = CInt(DSET1.tbl_myoun.Select("존분류 <> '0'")(0)("존분류").ToString())
If 건물용도 < 10 Then '//주거
If 합계 <= 190 Then
msg = "[ v ] 적합 [ ] 부적합"
Else
msg = "[ ] 적합 [ v ] 부적합"
End If
Else '//비주고
If 합계 <= 260 Then
msg = "[ v ] 적합 [ ] 부적합"
Else
msg = "[ ] 적합 [ v ] 부적합"
End If
End If
Dim param9 As New Microsoft.Reporting.WinForms.ReportParameter("p_1차적합여부", msg)
'//r간접:내벽(3,4,5) , 직접:외벽(0,1,2,)
'//벽체(0,3),지붕(1,4),바닥(2,5),창(7,8) 계산 (열관류율)
'//벽체(0,3)
Dim 직접_벽체 As Single = 0
Dim 간접_벽체 As Single = 0
Dim 직접_지붕 As Single = 0
Dim 간접_지붕 As Single = 0
Dim 직접_바닥 As Single = 0
Dim 간접_바닥 As Single = 0
Dim 직접_창 As Single = 0
Dim 간접_창 As Single = 0
Dim 평균열관류율 As Single = 0
Dim 전체면적 As Single = 0
msg = ""
For Each dr면 As DS.tbl_myounRow In DSET1.tbl_myoun.Select("code <> '0'")
Dim 열관류코드 As String = dr면.열관류율2
If 열관류코드.Trim = "" Then Continue For
Dim find As Boolean = False
Dim multi As Single = 1
For Each dr열 As DS.tbl_ykRow In DSET1.tbl_yk.Select("code='" + 열관류코드 + "'")
Select Case CInt(dr열.면형태)
Case 0 '//외벽,벽체
If TOSG(T, dr열.열관류율) > 직접_벽체 Then 직접_벽체 = TOSG(T, dr열.열관류율)
find = True
Case 3 '//내벽,벽체
If TOSG(T, dr열.열관류율) > 간접_벽체 Then 간접_벽체 = TOSG(T, dr열.열관류율)
find = True
multi = 0.8
Case 1 '//외벽,지붕
If TOSG(T, dr열.열관류율) > 직접_지붕 Then 직접_지붕 = TOSG(T, dr열.열관류율)
Case 4 '//내벽,지붕
If TOSG(T, dr열.열관류율) > 간접_지붕 Then 간접_지붕 = TOSG(T, dr열.열관류율)
Case 2 '//외벽,바닥
If TOSG(T, dr열.열관류율) > 직접_바닥 Then 직접_바닥 = TOSG(T, dr열.열관류율)
Case 5 '//내벽,바닥
If TOSG(T, dr열.열관류율) > 간접_바닥 Then 간접_바닥 = TOSG(T, dr열.열관류율)
Case 7 '//외부창
If TOSG(T, dr열.열관류율) > 직접_창 Then 직접_창 = TOSG(T, dr열.열관류율)
find = True
Case 8 '//내부창
If TOSG(T, dr열.열관류율) > 간접_창 Then 간접_창 = TOSG(T, dr열.열관류율)
find = True
multi = 0.7
End Select
Next
If find Then
평균열관류율 += TOSG(T, dr면.열관류율 * multi) * TOSG(T, dr면.건축부위면적)
전체면적 += TOSG(T, dr면.건축부위면적)
End If
Next
평균열관류율 = 평균열관류율 / 전체면적
msg = ""
If 직접_벽체 <> 0 Then msg = "직접(" + 직접_벽체.ToString() + ")"
If 간접_벽체 <> 0 Then msg += IIf(msg = "", "", " , ") + "간접(" + 간접_벽체.ToString() + ")"
Dim param10 As New Microsoft.Reporting.WinForms.ReportParameter("p_yk1", msg)
msg = ""
If 직접_지붕 <> 0 Then msg = "직접(" + 직접_지붕.ToString() + ")"
If 간접_지붕 <> 0 Then msg += IIf(msg = "", "", " , ") + "간접(" + 간접_지붕.ToString() + ")"
Dim param11 As New Microsoft.Reporting.WinForms.ReportParameter("p_yk2", msg)
msg = ""
If 직접_바닥 <> 0 Then msg = "직접(" + 직접_바닥.ToString() + ")"
If 간접_바닥 <> 0 Then msg += IIf(msg = "", "", " , ") + "간접(" + 간접_바닥.ToString() + ")"
Dim param12 As New Microsoft.Reporting.WinForms.ReportParameter("p_yk3", msg)
msg = ""
If 직접_창 <> 0 Then msg = "직접(" + 직접_창.ToString() + ")"
If 간접_창 <> 0 Then msg += IIf(msg = "", "", " , ") + "간접(" + 간접_창.ToString() + ")"
Dim param13 As New Microsoft.Reporting.WinForms.ReportParameter("p_yk4", msg)
Dim param14 As New Microsoft.Reporting.WinForms.ReportParameter("p_yksum", 평균열관류율.ToString("N3"))
'//
Dim 온열원설비종류 As String = ""
Dim 보일러정격출력 As Single = 0
Dim 보일러효율 As Single = 0
Dim 보일러정격출력합 As Single = 0
Dim 순환수용펌프동력 As Single = 0
For Each dr As DS.tbl_nanbangkikiRow In DSET1.tbl_nanbangkiki.Select("code <> '0'")
If dr.난방급탕구분.IndexOf("난방") <> -1 Then
If dr.보일러정격출력 > 보일러정격출력 Then
보일러정격출력 = dr.보일러정격출력
온열원설비종류 = dr.열생산기기방식
보일러효율 = dr.정격보일러효율
순환수용펌프동력 += TOSG(T, dr.펌프동력)
End If
보일러정격출력합 += TOSG(T, dr.보일러정격출력)
End If
Next
Dim param15 As New Microsoft.Reporting.WinForms.ReportParameter("p_온열원설비종류", 온열원설비종류)
Dim param16 As New Microsoft.Reporting.WinForms.ReportParameter("p_온열원설비합계", 보일러정격출력합)
Dim param17 As New Microsoft.Reporting.WinForms.ReportParameter("p_온열원설비효율", 보일러효율)
Dim 냉동기방식 As String = ""
Dim 냉동기용량 As Single = 0
Dim 냉동기효율 As Single = 0
Dim 냉동기합 As Single = 0
For Each dr As DS.tbl_nangbangkikiRow In DSET1.tbl_nangbangkiki.Select("code <> '0'")
If dr.냉동기용량 > 냉동기용량 Then
냉동기용량 = dr.냉동기용량
냉동기방식 = dr.냉동기방식
냉동기효율 = dr.열성능비
End If
냉동기합 += TOSG(T, dr.냉동기용량)
Next
Dim param18 As New Microsoft.Reporting.WinForms.ReportParameter("p_냉열원설비종류", 냉동기방식)
Dim param19 As New Microsoft.Reporting.WinForms.ReportParameter("p_냉열원설비합계", 냉동기합)
Dim param20 As New Microsoft.Reporting.WinForms.ReportParameter("p_냉열원설비효율", 냉동기효율)
'//급탕
Dim 급탕용펌프동력 As Single = 0
Dim 급탕방식 As String = ""
Dim 급탕용량 As Single = 0
Dim 급탕효율 As Single = 0
Dim 급탕용량합 As Single = 0
For Each dr As DS.tbl_nanbangkikiRow In DSET1.tbl_nanbangkiki.Select("code <> '0'")
If dr.난방급탕구분.IndexOf("난방") = -1 AndAlso dr.난방급탕구분.IndexOf("급탕") <> -1 Then
If dr.보일러정격출력 > 급탕용량 Then
급탕용량 = dr.보일러정격출력
급탕방식 = dr.열생산기기방식
급탕효율 = dr.정격보일러효율
급탕용펌프동력 = TOSG(T, dr.펌프동력)
End If
급탕용량합 += TOSG(T, dr.보일러정격출력)
End If
Next
Dim param21 As New Microsoft.Reporting.WinForms.ReportParameter("p_급탕설비종류", 급탕방식)
Dim param22 As New Microsoft.Reporting.WinForms.ReportParameter("p_급탕설비합계", 급탕용량합)
Dim param23 As New Microsoft.Reporting.WinForms.ReportParameter("p_급탕설비효율", 급탕효율)
'//공조(반송설비)
Dim 송풍기동력 As Single = 0
For Each dr As DS.tbl_kongjoRow In DSET1.tbl_kongjo.Select("code <> '0'")
송풍기동력 += dr.배기팬동력 + dr.급기팬동력
Next
Dim param24 As New Microsoft.Reporting.WinForms.ReportParameter("p_순환수용펌프동력", 순환수용펌프동력)
Dim param25 As New Microsoft.Reporting.WinForms.ReportParameter("p_급탕용펌프동력", 급탕용펌프동력)
Dim param26 As New Microsoft.Reporting.WinForms.ReportParameter("p_송풍기동력", 급탕효율)
'//조명설비
Dim 주거실조명전력 As Single = 0
Dim 주조명광원옥내 As String = ""
Dim dre As DS.tbl_electRow = DSET1.tbl_elect.Rows(0)
Dim param27 As New Microsoft.Reporting.WinForms.ReportParameter("p_주거실조명전력", dre.조명밀도)
Dim param28 As New Microsoft.Reporting.WinForms.ReportParameter("p_주조명광원옥내", dre.주조명광원옥내)
'//지열시스템(2)
Dim 지열_용량_난방 As Single = 0
Dim 지열_용량_냉방 As Single = 0
Dim 지열_효율_난방 As String = ""
Dim 지열_효율_냉방 As String = ""
For Each dr As DS.tbl_newRow In DSET1.tbl_new.Select("code like '2%'")
If dr.지열냉난방구분.IndexOf("난방") <> -1 Then
지열_용량_난방 += TOSG(T, dr.지열히트펌프용량)
지열_효율_난방 = (dr.열성능비난방)
ElseIf dr.지열냉난방구분.IndexOf("냉방") <> -1 Then
지열_용량_냉방 += TOSG(T, dr.지열히트펌프용량)
지열_효율_냉방 = (dr.열성능비냉방)
End If
Next
Dim param29 As New Microsoft.Reporting.WinForms.ReportParameter("p_지열용량난방", 지열_용량_난방)
Dim param30 As New Microsoft.Reporting.WinForms.ReportParameter("p_지열용량냉방", 지열_용량_냉방)
Dim param31 As New Microsoft.Reporting.WinForms.ReportParameter("p_지열효율난방", 지열_효율_난방)
Dim param32 As New Microsoft.Reporting.WinForms.ReportParameter("p_지열효율냉방", 지열_효율_냉방)
'//태양열시스템(1)
Dim 집열판면적 As Single = 0
Dim 집열판면적합 As Single = 0
Dim 집열판유형 As String = ""
Dim 집열판방위 As String = ""
Dim 태양열코드 As String = ""
For Each dr As DS.tbl_newRow In DSET1.tbl_new.Select("code like '1%'")
집열판면적합 += TOSG(T, dr.집열판면적)
If TOSG(T, dr.집열판면적) > 집열판면적 Then
태양열코드 = dr.code
집열판면적 = dr.집열판면적
End If
Next
If 태양열코드 <> "" Then
Dim drn() As DS.tbl_newRow = DSET1.tbl_new.Select("code ='" + 태양열코드 + "'")
If drn.GetUpperBound(0) <> -1 Then
집열판유형 = drn(0).집열기유형
집열판방위 = drn(0).집열판방위
End If
End If
Dim param33 As New Microsoft.Reporting.WinForms.ReportParameter("p_태양열집열판면적합", 집열판면적합)
Dim param34 As New Microsoft.Reporting.WinForms.ReportParameter("p_태양열집열판유형", 집열판유형)
Dim param35 As New Microsoft.Reporting.WinForms.ReportParameter("p_태양열집열판방위", 집열판방위)
'//태양광시스템(3)
Dim 모듈면적 As Single = 0
Dim 모듈면적합 As Single = 0
Dim 모듈방위 As String = ""
Dim 모듈기울기 As String = ""
Dim 모듈적용타입 As String = ""
Dim 태양광코드 As String = ""
For Each dr As DS.tbl_newRow In DSET1.tbl_new.Select("code like '3%'")
모듈면적합 = TOSG(T, dr.태양광모듈면적)
If TOSG(T, dr.태양광모듈면적) > 모듈면적 Then
태양광코드 = dr.code
모듈면적 = dr.태양광모듈면적
End If
Next
If 태양광코드 <> "" Then
Dim drn() As DS.tbl_newRow = DSET1.tbl_new.Select("code ='" + 태양광코드 + "'")
If drn.GetUpperBound(0) <> -1 Then
모듈방위 = drn(0).태양광모듈방위
모듈기울기 = drn(0).태양광모듈기울기
모듈적용타입 = drn(0).태양광모듈적용타입
End If
End If
Dim param36 As New Microsoft.Reporting.WinForms.ReportParameter("p_태양광모듈면적합", 모듈면적합)
Dim param37 As New Microsoft.Reporting.WinForms.ReportParameter("p_태양광모듈방위", 모듈방위)
Dim param38 As New Microsoft.Reporting.WinForms.ReportParameter("p_태양광모듈기울기", 모듈기울기)
Dim param39 As New Microsoft.Reporting.WinForms.ReportParameter("p_태양광모듈적용타입", 모듈적용타입)
Dim params As New Microsoft.Reporting.WinForms.ReportParameterCollection()
params.Add(param1)
params.Add(param2)
params.Add(param3)
params.Add(param5)
params.Add(param6)
params.Add(param7)
params.Add(param8)
params.Add(param9)
params.Add(param10)
params.Add(param11)
params.Add(param12)
params.Add(param13)
params.Add(param14)
params.Add(param15)
params.Add(param16)
params.Add(param17)
params.Add(param18)
params.Add(param19)
params.Add(param20)
params.Add(param21)
params.Add(param22)
params.Add(param23)
params.Add(param24)
params.Add(param25)
params.Add(param26)
params.Add(param27)
params.Add(param28)
params.Add(param29)
params.Add(param30)
params.Add(param31)
params.Add(param32)
params.Add(param33)
params.Add(param34)
params.Add(param35)
params.Add(param36)
params.Add(param37)
params.Add(param38)
params.Add(param39)
Me.ReportViewer1.LocalReport.SetParameters(params)
Me.ReportViewer1.ZoomMode = Microsoft.Reporting.WinForms.ZoomMode.PageWidth
Me.ReportViewer1.ZoomPercent = 100
Me.ReportViewer1.RefreshReport()
End Sub
Private Sub MakeGraphTable()
'If DSR.TReqUse.Rows.Count < 1 Then Return
'Dim Dr As DSR.Graph_ReqRow
'For Gubun As Short = 0 To 1
' For mon As Short = 1 To 12
' If Gubun = 0 Then '//6번
' Dr = Me.DSR.Graph_Req.NewGraph_ReqRow
' Dr.Gubun = "난방에너지요구량"
' Dr.Mon = Format(mon, "0") & "월"
' Dr.Req = Result1o.E요구량(mon).난방면적
' Me.DSR.Graph_Req.Rows.Add(Dr)
' Else '//11번
' Dr = Me.DSR.Graph_Req.NewGraph_ReqRow
' Dr.Gubun = "냉방에너지요구량"
' Dr.Mon = Format(mon, "0") & "월"
' Dr.Req = Result1o.E요구량(mon).냉방면적
' Me.DSR.Graph_Req.Rows.Add(Dr)
' End If
' Next
'Next
'//연간에너지요구량및소요량
'//Graph_requse gubun,type,
' 1차에너지소요량 에너지소요량 에너지요구량
'신재생에너지(-57)
'난방에너지 106 91.87445415 56.14013248
'냉방에너지 155.3678094 119.8832527 40.83005443
'급탕에너지 42.6421498 14.21404993 14.6
'조명에너지 144.2220948 48.07403159 73.08380082
'환기에너지 61.68818331 20.56272777
신재생에너지 = 0
If (Result1o.사용면적.H_WF = 0) Then
난방에너지 = 0
Else
난방에너지 = Result1o.일차E소요량(0).난방면적2 * Result1o.사용면적.H / Result1o.사용면적.H_WF
End If
If (Result1o.사용면적.C_WF = 0) Then
냉방에너지 = 0
Else
냉방에너지 = TOSG(T, Result1o.일차E소요량(0).냉방면적 * Result1o.사용면적.C / Result1o.사용면적.C_WF)
End If
If (Result1o.사용면적.W_WF = 0) Then
급탕에너지 = 0
Else
급탕에너지 = Result1o.일차E소요량(0).급탕면적2 * Result1o.사용면적.W / Result1o.사용면적.W_WF
End If
If (Result1o.사용면적.L_WF = 0) Then
조명에너지 = 0
Else
조명에너지 = Result1o.일차E소요량(0).조명면적 * Result1o.사용면적.L / Result1o.사용면적.L_WF
End If
'계산결과!H92*3/계산결과!H27
If (Result1o.사용면적.V_WF = 0) Then
환기에너지 = 0
Else
환기에너지 = Result1o.일차E소요량(0).환기면적 * Result1o.사용면적.V / Result1o.사용면적.V_WF
End If
합계 = 난방에너지 + 냉방에너지 + 급탕에너지 + 조명에너지 + 환기에너지
End Sub
End Class