Files
ECO2/ArinWarev1/Forms_Report/Report_설계개선.vb
2019-10-24 21:24:21 +09:00

147 lines
5.4 KiB
VB.net

Public Class Report_설계개선
#Region "data Base 변경여부및 적용방법"
'''변경된내용을적용한다.
Public Overrides Function AcceptChanged() As Boolean
Return True
End Function
'''변경된내용이있다면 취소한다.
Public Overrides Function RejectChanged() As Boolean
Return True
End Function
'''데이터에변형이있었는가?
Public Overrides Function HasChanged() As Boolean
Return False
End Function
#End Region
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.월별1차에너지사용량.Merge(DSETR.월별1차에너지사용량)
'Me.DSR.Graph_ReqUse.Merge(DSETR.Graph_ReqUse)
Me.ReportViewer1.ZoomMode = Microsoft.Reporting.WinForms.ZoomMode.Percent
Me.ReportViewer1.ZoomPercent = 100
If MakeGraphTable() Then
Dim 합율 As Decimal = Math.Round((1 - (변경후합 / 변경전합)) * 100, 2)
Dim param As New Microsoft.Reporting.WinForms.ReportParameter("PSUM", 합율.ToString())
Dim params As New Microsoft.Reporting.WinForms.ReportParameterCollection()
params.Add(param)
Me.ReportViewer1.LocalReport.SetParameters(params)
Me.ReportViewer1.RefreshReport()
Else
Me.Close()
End If
End Sub
Private Function MakeGraphTable() As Boolean
'//월별 계산별,추측별 데이터를 기록한다.
Me.DSR.Graph_ReqUse.Clear()
Me.DSR.Graph_ReqUse.AcceptChanges()
If DSETR1.월별1차에너지사용량.Rows.Count = 0 Then
MsgBox("월별1차에너지사용량이 계산되어있지 않습니다." + vbCrLf + "계산을 먼저하세요", MsgBoxStyle.Information, "확인")
Return False
End If
'//년면적값확인
Dim 년면적 As Decimal = TOSG(DSET1.tbl_Desc.Rows(0)("buildm23"))
If 년면적 = 0 Then
MsgBox("년면적값이 없습니다" + vbCrLf + "건물개요를 확인하세요", MsgBoxStyle.Information, "확인")
Return False
End If
If DSETR1.설계계산결과.Rows.Count < 1 Then
MsgBox("설계개선결과가 없습니다" + vbCrLf + "계산을 먼저하세요", MsgBoxStyle.Information, "확인")
Return False
End If
'//설계게산파라미터확인
Dim 기저비율 As Decimal = 0
If DSETR1.설계계산파라미터.Rows.Count > 0 Then
Dim dr3 As DSR.설계계산파라미터Row = DSETR1.설계계산파라미터.Rows(0)
기저비율 = CDec(dr3.기저비율)
End If
'//
Dim 사용자입력값에너지사용량(12) As Decimal
'//현재 1차에너지사용량
Dim 년면적당1(12) As Decimal
Dim 년면적당2(12) As Decimal
For i As Integer = 1 To 12
사용자입력값에너지사용량(i) = 0
For Each dr1 As DSR.월별1차에너지사용량Row In DSETR1.월별1차에너지사용량.Select("월='" + i.ToString("00") + "'")
사용자입력값에너지사용량(i) += TOSG(dr1.도시가스) + TOSG(dr1.전력) + TOSG(dr1.지역난방)
Next
'//변경전의데이터
Dim 보정결과 As DSR.설계계산결과Row = DSETR1.설계계산결과.Rows(i - 1)
년면적당1(i) = TOSG(보정결과.난방전) + TOSG(보정결과.냉방전) + TOSG(보정결과.급탕전) + TOSG(보정결과.조명전) + TOSG(보정결과.환기전)
'//변경후(보정)데이터 (설계계산결과 테이블에 데이터가 있다)
년면적당2(i) = TOSG(보정결과.난방) + TOSG(보정결과.냉방) + TOSG(보정결과.급탕) + TOSG(보정결과.조명) + TOSG(보정결과.환기)
년면적당1(i) += 기저비율
년면적당2(i) += 기저비율
변경전합 += 년면적당1(i)
변경후합 += 년면적당2(i)
Dim dr2 As DSR.Graph_ReqUseRow
dr2 = Me.DSR.Graph_ReqUse.NewGraph_ReqUseRow
dr2.Gubun = i.ToString("00")
dr2.type = "에너지사용량"
dr2.Req = Math.Round(사용자입력값에너지사용량(i), 2)
Me.DSR.Graph_ReqUse.Rows.Add(dr2)
dr2 = Me.DSR.Graph_ReqUse.NewGraph_ReqUseRow
dr2.Gubun = i.ToString("00")
dr2.type = "1차소요량(전)"
dr2.Req = Math.Round(년면적당1(i), 2)
Me.DSR.Graph_ReqUse.Rows.Add(dr2)
dr2 = Me.DSR.Graph_ReqUse.NewGraph_ReqUseRow
dr2.Gubun = i.ToString("00")
dr2.type = "1차소요량(후)"
dr2.Req = Math.Round(년면적당2(i), 2)
Me.DSR.Graph_ReqUse.Rows.Add(dr2)
'//결과% : (1-(결과후/결과전))*100
dr2 = Me.DSR.Graph_ReqUse.NewGraph_ReqUseRow
dr2.Gubun = i.ToString("00")
dr2.type = "개선결과(%)"
dr2.Req = Math.Round((1 - (년면적당2(i) / 년면적당1(i))) * 100, 2)
Me.DSR.Graph_ReqUse.Rows.Add(dr2)
Next
'//전체합
DSR.Graph_ReqUse.AcceptChanges()
Return True
End Function
Private Sub Report_그래프_SizeChanged(sender As Object, e As System.EventArgs) Handles Me.SizeChanged
Me.Text = Me.Size.ToString
End Sub
End Class