This commit is contained in:
ykh
2023-10-27 23:05:50 +09:00
parent 0b976ad2ab
commit ec0e3013c6
50 changed files with 4751 additions and 1383 deletions

View File

@@ -0,0 +1,220 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class Frm_Macro
Inherits System.Windows.Forms.Form
'Form은 Dispose를 재정의하여 구성 요소 목록을 정리합니다.
<System.Diagnostics.DebuggerNonUserCode()> _
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
Try
If disposing AndAlso components IsNot Nothing Then
components.Dispose()
End If
Finally
MyBase.Dispose(disposing)
End Try
End Sub
'Windows Form 디자이너에 필요합니다.
Private components As System.ComponentModel.IContainer
'참고: 다음 프로시저는 Windows Form 디자이너에 필요합니다.
'수정하려면 Windows Form 디자이너를 사용하십시오.
'코드 편집기를 사용하여 수정하지 마십시오.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Dim DefaultFocusIndicatorRenderer1 As FarPoint.Win.Spread.DefaultFocusIndicatorRenderer = New FarPoint.Win.Spread.DefaultFocusIndicatorRenderer()
Dim DefaultScrollBarRenderer1 As FarPoint.Win.Spread.DefaultScrollBarRenderer = New FarPoint.Win.Spread.DefaultScrollBarRenderer()
Dim DefaultScrollBarRenderer2 As FarPoint.Win.Spread.DefaultScrollBarRenderer = New FarPoint.Win.Spread.DefaultScrollBarRenderer()
Me.FpSpread1 = New FarPoint.Win.Spread.FpSpread()
Me.FpSpread1_Sheet1 = New FarPoint.Win.Spread.SheetView()
Me.Button2 = New System.Windows.Forms.Button()
Me.Button1 = New System.Windows.Forms.Button()
Me.tbStart = New System.Windows.Forms.TextBox()
Me.Button3 = New System.Windows.Forms.Button()
Me.ProgressBar1 = New System.Windows.Forms.ProgressBar()
Me.Label1 = New System.Windows.Forms.Label()
Me.tbEnd = New System.Windows.Forms.TextBox()
Me.TableLayoutPanel1 = New System.Windows.Forms.TableLayoutPanel()
Me.Label2 = New System.Windows.Forms.Label()
CType(Me.FpSpread1, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.FpSpread1_Sheet1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.TableLayoutPanel1.SuspendLayout()
Me.SuspendLayout()
'
'FpSpread1
'
Me.FpSpread1.AccessibleDescription = ""
Me.FpSpread1.Dock = System.Windows.Forms.DockStyle.Fill
Me.FpSpread1.FocusRenderer = DefaultFocusIndicatorRenderer1
Me.FpSpread1.HorizontalScrollBar.Buttons = New FarPoint.Win.Spread.FpScrollBarButtonCollection("BackwardLineButton,ThumbTrack,ForwardLineButton")
Me.FpSpread1.HorizontalScrollBar.Name = ""
Me.FpSpread1.HorizontalScrollBar.Renderer = DefaultScrollBarRenderer1
Me.FpSpread1.HorizontalScrollBar.TabIndex = 2
Me.FpSpread1.Location = New System.Drawing.Point(0, 38)
Me.FpSpread1.Name = "FpSpread1"
Me.FpSpread1.Sheets.AddRange(New FarPoint.Win.Spread.SheetView() {Me.FpSpread1_Sheet1})
Me.FpSpread1.Size = New System.Drawing.Size(1019, 453)
Me.FpSpread1.Skin = FarPoint.Win.Spread.DefaultSpreadSkins.Classic
Me.FpSpread1.TabIndex = 0
Me.FpSpread1.VerticalScrollBar.Buttons = New FarPoint.Win.Spread.FpScrollBarButtonCollection("BackwardLineButton,ThumbTrack,ForwardLineButton")
Me.FpSpread1.VerticalScrollBar.Name = ""
Me.FpSpread1.VerticalScrollBar.Renderer = DefaultScrollBarRenderer2
Me.FpSpread1.VerticalScrollBar.TabIndex = 3
Me.FpSpread1.VisualStyles = FarPoint.Win.VisualStyles.Off
'
'FpSpread1_Sheet1
'
Me.FpSpread1_Sheet1.Reset()
Me.FpSpread1_Sheet1.SheetName = "Sheet1"
'Formulas and custom names must be loaded with R1C1 reference style
Me.FpSpread1_Sheet1.ReferenceStyle = FarPoint.Win.Spread.Model.ReferenceStyle.R1C1
FpSpread1_Sheet1.ColumnCount = 5
FpSpread1_Sheet1.RowCount = 1
Me.FpSpread1_Sheet1.ColumnFooter.DefaultStyle.NoteIndicatorColor = System.Drawing.Color.Red
Me.FpSpread1_Sheet1.ColumnFooter.DefaultStyle.Parent = "HeaderDefault"
Me.FpSpread1_Sheet1.ColumnFooterSheetCornerStyle.NoteIndicatorColor = System.Drawing.Color.Red
Me.FpSpread1_Sheet1.ColumnFooterSheetCornerStyle.Parent = "CornerDefault"
Me.FpSpread1_Sheet1.ColumnHeader.DefaultStyle.NoteIndicatorColor = System.Drawing.Color.Red
Me.FpSpread1_Sheet1.ColumnHeader.DefaultStyle.Parent = "HeaderDefault"
Me.FpSpread1_Sheet1.RowHeader.DefaultStyle.NoteIndicatorColor = System.Drawing.Color.Red
Me.FpSpread1_Sheet1.RowHeader.DefaultStyle.Parent = "RowHeaderDefault"
Me.FpSpread1_Sheet1.SheetCornerStyle.NoteIndicatorColor = System.Drawing.Color.Red
Me.FpSpread1_Sheet1.SheetCornerStyle.Parent = "CornerDefault"
Me.FpSpread1_Sheet1.ReferenceStyle = FarPoint.Win.Spread.Model.ReferenceStyle.A1
'
'Button2
'
Me.Button2.Dock = System.Windows.Forms.DockStyle.Fill
Me.Button2.Location = New System.Drawing.Point(673, 3)
Me.Button2.Name = "Button2"
Me.Button2.Size = New System.Drawing.Size(194, 32)
Me.Button2.TabIndex = 1
Me.Button2.Text = "결과저장하기"
Me.Button2.UseVisualStyleBackColor = True
'
'Button1
'
Me.Button1.Dock = System.Windows.Forms.DockStyle.Fill
Me.Button1.Location = New System.Drawing.Point(3, 3)
Me.Button1.Name = "Button1"
Me.Button1.Size = New System.Drawing.Size(194, 32)
Me.Button1.TabIndex = 0
Me.Button1.Text = "목록불러오기"
Me.Button1.UseVisualStyleBackColor = True
'
'tbStart
'
Me.tbStart.Dock = System.Windows.Forms.DockStyle.Fill
Me.tbStart.Font = New System.Drawing.Font("맑은 고딕", 14.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
Me.tbStart.Location = New System.Drawing.Point(283, 3)
Me.tbStart.Name = "tbStart"
Me.tbStart.Size = New System.Drawing.Size(74, 33)
Me.tbStart.TabIndex = 2
Me.tbStart.Text = "6"
Me.tbStart.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'Button3
'
Me.Button3.Dock = System.Windows.Forms.DockStyle.Fill
Me.Button3.Location = New System.Drawing.Point(523, 3)
Me.Button3.Name = "Button3"
Me.Button3.Size = New System.Drawing.Size(144, 32)
Me.Button3.TabIndex = 3
Me.Button3.Text = "실행"
Me.Button3.UseVisualStyleBackColor = True
'
'ProgressBar1
'
Me.ProgressBar1.Dock = System.Windows.Forms.DockStyle.Bottom
Me.ProgressBar1.Location = New System.Drawing.Point(0, 491)
Me.ProgressBar1.Name = "ProgressBar1"
Me.ProgressBar1.Size = New System.Drawing.Size(1019, 23)
Me.ProgressBar1.TabIndex = 2
'
'Label1
'
Me.Label1.Dock = System.Windows.Forms.DockStyle.Fill
Me.Label1.Location = New System.Drawing.Point(363, 0)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(74, 38)
Me.Label1.TabIndex = 3
Me.Label1.Text = "~"
Me.Label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'tbEnd
'
Me.tbEnd.Dock = System.Windows.Forms.DockStyle.Fill
Me.tbEnd.Font = New System.Drawing.Font("맑은 고딕", 14.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
Me.tbEnd.Location = New System.Drawing.Point(443, 3)
Me.tbEnd.Name = "tbEnd"
Me.tbEnd.Size = New System.Drawing.Size(74, 33)
Me.tbEnd.TabIndex = 4
Me.tbEnd.Text = "0"
Me.tbEnd.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'TableLayoutPanel1
'
Me.TableLayoutPanel1.ColumnCount = 8
Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 200.0!))
Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 80.0!))
Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 80.0!))
Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 80.0!))
Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 80.0!))
Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 150.0!))
Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Absolute, 200.0!))
Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
Me.TableLayoutPanel1.Controls.Add(Me.Button1, 0, 0)
Me.TableLayoutPanel1.Controls.Add(Me.Button3, 5, 0)
Me.TableLayoutPanel1.Controls.Add(Me.Button2, 6, 0)
Me.TableLayoutPanel1.Controls.Add(Me.tbEnd, 4, 0)
Me.TableLayoutPanel1.Controls.Add(Me.Label2, 1, 0)
Me.TableLayoutPanel1.Controls.Add(Me.tbStart, 2, 0)
Me.TableLayoutPanel1.Controls.Add(Me.Label1, 3, 0)
Me.TableLayoutPanel1.Dock = System.Windows.Forms.DockStyle.Top
Me.TableLayoutPanel1.Location = New System.Drawing.Point(0, 0)
Me.TableLayoutPanel1.Name = "TableLayoutPanel1"
Me.TableLayoutPanel1.RowCount = 1
Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 100.0!))
Me.TableLayoutPanel1.Size = New System.Drawing.Size(1019, 38)
Me.TableLayoutPanel1.TabIndex = 5
'
'Label2
'
Me.Label2.Dock = System.Windows.Forms.DockStyle.Fill
Me.Label2.Location = New System.Drawing.Point(203, 0)
Me.Label2.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size(74, 38)
Me.Label2.TabIndex = 3
Me.Label2.Text = "실행범위"
Me.Label2.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'Frm_Macro
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(7.0!, 12.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(1019, 514)
Me.Controls.Add(Me.FpSpread1)
Me.Controls.Add(Me.TableLayoutPanel1)
Me.Controls.Add(Me.ProgressBar1)
Me.Name = "Frm_Macro"
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "일괄처리"
CType(Me.FpSpread1, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.FpSpread1_Sheet1, System.ComponentModel.ISupportInitialize).EndInit()
Me.TableLayoutPanel1.ResumeLayout(False)
Me.TableLayoutPanel1.PerformLayout()
Me.ResumeLayout(False)
End Sub
Friend WithEvents FpSpread1 As FarPoint.Win.Spread.FpSpread
Friend WithEvents FpSpread1_Sheet1 As FarPoint.Win.Spread.SheetView
Friend WithEvents Button1 As System.Windows.Forms.Button
Friend WithEvents Button2 As System.Windows.Forms.Button
Friend WithEvents tbStart As System.Windows.Forms.TextBox
Friend WithEvents Button3 As System.Windows.Forms.Button
Friend WithEvents ProgressBar1 As System.Windows.Forms.ProgressBar
Friend WithEvents tbEnd As System.Windows.Forms.TextBox
Friend WithEvents Label1 As System.Windows.Forms.Label
Friend WithEvents TableLayoutPanel1 As System.Windows.Forms.TableLayoutPanel
Friend WithEvents Label2 As System.Windows.Forms.Label
End Class

View File

@@ -0,0 +1,123 @@
<?xml version="1.0" encoding="utf-8"?>
<root>
<!--
Microsoft ResX Schema
Version 2.0
The primary goals of this format is to allow a simple XML format
that is mostly human readable. The generation and parsing of the
various data types are done through the TypeConverter classes
associated with the data types.
Example:
... ado.net/XML headers & schema ...
<resheader name="resmimetype">text/microsoft-resx</resheader>
<resheader name="version">2.0</resheader>
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
<value>[base64 mime encoded serialized .NET Framework object]</value>
</data>
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
<comment>This is a comment</comment>
</data>
There are any number of "resheader" rows that contain simple
name/value pairs.
Each data row contains a name, and value. The row also contains a
type or mimetype. Type corresponds to a .NET class that support
text/value conversion through the TypeConverter architecture.
Classes that don't support this are serialized and stored with the
mimetype set.
The mimetype is used for serialized objects, and tells the
ResXResourceReader how to depersist the object. This is currently not
extensible. For a given mimetype the value must be set accordingly:
Note - application/x-microsoft.net.object.binary.base64 is the format
that the ResXResourceWriter will generate, however the reader can
read any of the formats listed below.
mimetype: application/x-microsoft.net.object.binary.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.soap.base64
value : The object must be serialized with
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
: and then encoded with base64 encoding.
mimetype: application/x-microsoft.net.object.bytearray.base64
value : The object must be serialized into a byte array
: using a System.ComponentModel.TypeConverter
: and then encoded with base64 encoding.
-->
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
<xsd:element name="root" msdata:IsDataSet="true">
<xsd:complexType>
<xsd:choice maxOccurs="unbounded">
<xsd:element name="metadata">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" />
</xsd:sequence>
<xsd:attribute name="name" use="required" type="xsd:string" />
<xsd:attribute name="type" type="xsd:string" />
<xsd:attribute name="mimetype" type="xsd:string" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="assembly">
<xsd:complexType>
<xsd:attribute name="alias" type="xsd:string" />
<xsd:attribute name="name" type="xsd:string" />
</xsd:complexType>
</xsd:element>
<xsd:element name="data">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
<xsd:attribute ref="xml:space" />
</xsd:complexType>
</xsd:element>
<xsd:element name="resheader">
<xsd:complexType>
<xsd:sequence>
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
</xsd:sequence>
<xsd:attribute name="name" type="xsd:string" use="required" />
</xsd:complexType>
</xsd:element>
</xsd:choice>
</xsd:complexType>
</xsd:element>
</xsd:schema>
<resheader name="resmimetype">
<value>text/microsoft-resx</value>
</resheader>
<resheader name="version">
<value>2.0</value>
</resheader>
<resheader name="reader">
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="FpSpread1_Sheet1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

View File

@@ -0,0 +1,909 @@
Public Class Frm_Macro
Dim fn As String = ""
'Dim 단위면적당신재생1차에너지합 As Decimal = 0
'Dim 단위면적당1차에너소비량합 As Decimal = 0
'Dim 에너지자립률 As Double = 0
Public Sub New()
' 이 호출은 디자이너에 필요합니다.
InitializeComponent()
fn = ""
' InitializeComponent() 호출 뒤에 초기화 코드를 추가하십시오.
End Sub
Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
LoadFile()
End Sub
Private Sub LoadFile()
Dim od As New OpenFileDialog
od.Filter = "excel|*.xls|*.*|*.*"
od.FilterIndex = 1
If (od.ShowDialog() <> Windows.Forms.DialogResult.OK) Then Return
fn = od.FileName
If Not System.IO.File.Exists(fn) Then
MsgBox("업로드샘플파일(" + fn + ")가 존재하지 않습니다", MsgBoxStyle.Critical, "확인")
Return
End If
Try
If Me.FpSpread1.OpenExcel(fn) Then
'// MakeData()
'//첫줄에 열 번호를 넣는다.
For col As Integer = 1 To 100
Dim oldvalue As Object = FpSpread1_Sheet1.Cells(0, col - 1).Value
If oldvalue Is Nothing Then
FpSpread1_Sheet1.Cells(0, col - 1).Value = "(" + col.ToString() + ")"
Else
FpSpread1_Sheet1.Cells(0, col - 1).Value = oldvalue.ToString() + "(" + col.ToString() + ")"
End If
Next
'//0번째열에서 1의 값을 찾고 그 이후의 값을 찾아서 번호를 설정한다.
Dim StartIndex As Integer = 0
Dim EndIndex As Integer = 0
ProgressBar1.Minimum = 0
ProgressBar1.Maximum = 10000
ProgressBar1.Value = 0
For i As Integer = 0 To 65535
If i >= ProgressBar1.Maximum - 1 Then
ProgressBar1.Value = ProgressBar1.Maximum
Else
ProgressBar1.Value += 1
End If
Dim curval As Object = FpSpread1_Sheet1.Cells(i, 0).Value
If curval Is Nothing Then
If StartIndex <> 0 Then
EndIndex = i - 1
Exit For
Else
Continue For
End If
End If
If curval.ToString() = "1" Then
StartIndex = i
ElseIf StartIndex <> 0 Then
If curval.ToString() = "" Then
EndIndex = i - 1
Exit For
End If
End If
Next
tbStart.Text = (StartIndex + 1).ToString()
tbEnd.Text = (EndIndex + 1).ToString()
End If
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "파일 불러오기 오류")
End Try
End Sub
Private Function RData(grp As String, code As Integer) As Decimal
Dim filter As String = String.Format("GRP='{0}' and code={1}", grp, code.ToString("000"))
Dim DR() As DSR.TReqUseRow = DSETR1.TReqUse.Select(filter)
If DR.GetUpperBound(0) = -1 Then Return 0
Return DR(0).M00
End Function
Private Sub Frm_Upload_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
End Sub
Private Sub Button2_Click(sender As System.Object, e As System.EventArgs) Handles Button2.Click
Dim sd As New SaveFileDialog()
sd.Filter = "Excel(*.xls)|*.xls"
sd.FilterIndex = 0
If sd.ShowDialog = Windows.Forms.DialogResult.OK Then
Try
If FpSpread1.SaveExcel(sd.FileName, FarPoint.Excel.ExcelSaveFlags.NoFlagsSet) Then
MsgBox("저장완료", MsgBoxStyle.Information, "확인")
End If
Catch ex As Exception
MsgBox(ex.Message, MsgBoxStyle.Critical, "error")
End Try
End If
End Sub
Function 방위변환(기존값 As String, 옵셋 As String) As String
Dim 최종값 As String = 기존값
Select Case 옵셋
Case "0도"
Select Case 기존값
Case ""
Case ""
Case ""
Case ""
End Select
Case "90도"
Select Case 기존값
Case ""
최종값 = ""
Case ""
최종값 = ""
Case ""
최종값 = ""
Case ""
최종값 = ""
Case "남동"
최종값 = "남서"
Case "남서"
최종값 = "북서"
Case "북동"
최종값 = "남동"
Case "북서"
최종값 = "북동"
End Select
Case "180도"
Select Case 기존값
Case ""
최종값 = ""
Case ""
최종값 = ""
Case ""
최종값 = ""
Case ""
최종값 = ""
Case "남동"
최종값 = "북서"
Case "남서"
최종값 = "북동"
Case "북동"
최종값 = "남서"
Case "북서"
최종값 = "남동"
End Select
Case "270도"
Select Case 기존값
Case ""
최종값 = ""
Case ""
최종값 = ""
Case ""
최종값 = ""
Case ""
최종값 = ""
Case "남동"
최종값 = "북동"
Case "남서"
최종값 = "남동"
Case "북동"
최종값 = "북서"
Case "북서"
최종값 = "남서"
End Select
End Select
Return 최종값
End Function
Function 공용코드값(구분 As String, 코드 As String) As String
Dim 결과 As String = 코드
Dim datas As DS.tbl_commonRow() = DSET1.tbl_common.Select("gubun='" + 구분 + "' and code='" + 코드 + "'")
If datas.Length = 1 Then
결과 = datas(0).name
End If
Return 결과
End Function
Private Sub Button3_Click(sender As Object, e As EventArgs) Handles Button3.Click
'//기본홤녀은 건물개요로
MdiMain.Menu_건물개요()
Dim StartNo As Integer = CInt(tbStart.Text)
Dim EndNo As Integer = CInt(tbEnd.Text)
Me.ProgressBar1.Value = 0
Me.ProgressBar1.Minimum = 0
Me.ProgressBar1.Maximum = EndNo - StartNo + 1
If MsgBox("전체 실행전에 1건에대해서 테스트실행을 하시겠습니까?", MsgBoxStyle.Question Or MsgBoxStyle.YesNo, "확인") = MsgBoxResult.Yes Then
EndNo = StartNo
ElseIf MsgBox("전체 " + Me.ProgressBar1.Maximum.ToString() + "건의 자료를 실행하시겠습니까?" + vbCrLf + "이 작업은 중단할 수 없습니다", MsgBoxStyle.Question Or MsgBoxStyle.YesNo, "확인") <> MsgBoxResult.Yes Then
Return
End If
For RowNum As Integer = StartNo To EndNo
Me.ProgressBar1.Value += 1
Dim Row = RowNum - 1
Dim ColIDX As Integer = 1
'//건물개요
'//DSET1.tbl_Desc.Clear()
Dim NewDesc As DS.tbl_DescRow = DSET1.tbl_Desc.Rows(0)
Dim 회전방향 As String = FpSpread1_Sheet1.Cells(Row, 2).Value.ToString()
For i As Integer = 0 To DSET1.tbl_myoun.Rows.Count - 1
Dim dr As DS.tbl_myounRow = DSET1.tbl_myoun.Rows(i)
dr.방위 = 방위변환(dr.방위, 회전방향)
dr.EndEdit()
Next
Dim 열관외벽직접 As String = FpSpread1_Sheet1.Cells(Row, 3).Value.ToString()
For i As Integer = 0 To DSET1.tbl_yk.Rows.Count - 1
Dim dr As DS.tbl_ykRow = DSET1.tbl_yk.Rows(i)
If 공용코드값("1088", dr.면형태) <> "외벽(벽체)" Then Continue For
dr.열관류율 = 열관외벽직접
dr.EndEdit()
Next
Dim 열관외벽간접 As String = FpSpread1_Sheet1.Cells(Row, 4).Value.ToString()
For i As Integer = 0 To DSET1.tbl_yk.Rows.Count - 1
Dim dr As DS.tbl_ykRow = DSET1.tbl_yk.Rows(i)
If 공용코드값("1088", dr.면형태) <> "내벽(벽체)" Then Continue For
dr.열관류율 = 열관외벽간접
dr.EndEdit()
Next
Dim 열관지붕직접 As String = FpSpread1_Sheet1.Cells(Row, 5).Value.ToString()
For i As Integer = 0 To DSET1.tbl_yk.Rows.Count - 1
Dim dr As DS.tbl_ykRow = DSET1.tbl_yk.Rows(i)
If 공용코드값("1088", dr.면형태) <> "외벽(지붕)" Then Continue For
dr.열관류율 = 열관지붕직접
dr.EndEdit()
Next
Dim 열관지붕간접 As String = FpSpread1_Sheet1.Cells(Row, 6).Value.ToString()
For i As Integer = 0 To DSET1.tbl_yk.Rows.Count - 1
Dim dr As DS.tbl_ykRow = DSET1.tbl_yk.Rows(i)
If 공용코드값("1088", dr.면형태) <> "내벽(지붕)" Then Continue For
dr.열관류율 = 열관지붕간접
dr.EndEdit()
Next
Dim 열관바닥직접 As String = FpSpread1_Sheet1.Cells(Row, 7).Value.ToString()
For i As Integer = 0 To DSET1.tbl_yk.Rows.Count - 1
Dim dr As DS.tbl_ykRow = DSET1.tbl_yk.Rows(i)
If 공용코드값("1088", dr.면형태) <> "외벽(바닥)" Then Continue For
dr.열관류율 = 열관바닥직접
dr.EndEdit()
Next
Dim 열관바닥간접 As String = FpSpread1_Sheet1.Cells(Row, 8).Value.ToString()
For i As Integer = 0 To DSET1.tbl_yk.Rows.Count - 1
Dim dr As DS.tbl_ykRow = DSET1.tbl_yk.Rows(i)
If 공용코드값("1088", dr.면형태) <> "내벽(바닥)" Then Continue For
dr.열관류율 = 열관바닥간접
dr.EndEdit()
Next
Dim 열관외부창 As String = FpSpread1_Sheet1.Cells(Row, 9).Value.ToString()
Dim 일사에너지투과율외부창 As String = FpSpread1_Sheet1.Cells(Row, 11).Value.ToString()
For i As Integer = 0 To DSET1.tbl_yk.Rows.Count - 1
Dim dr As DS.tbl_ykRow = DSET1.tbl_yk.Rows(i)
If 공용코드값("1088", dr.면형태) <> "외부창" Then Continue For
dr.열관류율 = 열관외부창
dr.일사에너지투과율 = 일사에너지투과율외부창
dr.EndEdit()
Next
Dim 열관내부창 As String = FpSpread1_Sheet1.Cells(Row, 10).Value.ToString()
For i As Integer = 0 To DSET1.tbl_yk.Rows.Count - 1
Dim dr As DS.tbl_ykRow = DSET1.tbl_yk.Rows(i)
If 공용코드값("1088", dr.면형태) <> "내부창" Then Continue For
dr.열관류율 = 열관내부창
dr.EndEdit()
Next
Dim 난방히트펌프난방cop7 As String = FpSpread1_Sheet1.Cells(Row, 12).Value.ToString()
For i As Integer = 0 To DSET1.tbl_nanbangkiki.Rows.Count - 1
Dim dr As DS.tbl_nanbangkikiRow = DSET1.tbl_nanbangkiki.Rows(i)
dr.히트난방정격7 = 난방히트펌프난방cop7
dr.EndEdit()
Next
Dim 난방히트펌프난방cop15 As String = FpSpread1_Sheet1.Cells(Row, 13).Value.ToString()
For i As Integer = 0 To DSET1.tbl_nanbangkiki.Rows.Count - 1
Dim dr As DS.tbl_nanbangkikiRow = DSET1.tbl_nanbangkiki.Rows(i)
dr.히트난방정격10 = 난방히트펌프난방cop15
dr.EndEdit()
Next
Dim 냉방열성능비cop As String = FpSpread1_Sheet1.Cells(Row, 14).Value.ToString()
For i As Integer = 0 To DSET1.tbl_nangbangkiki.Rows.Count - 1
Dim dr As DS.tbl_nangbangkikiRow = DSET1.tbl_nangbangkiki.Rows(i)
dr.열성능비 = 냉방열성능비cop
dr.EndEdit()
Next
Dim 조명에너지부하율 As String = FpSpread1_Sheet1.Cells(Row, 15).Value.ToString()
For i As Integer = 0 To DSET1.tbl_zone.Rows.Count - 1
Dim dr As DS.tbl_zoneRow = DSET1.tbl_zone.Rows(i)
Dim 프로필코드 As String = dr.프로필
Dim 프로필목록 As DS.tbl_profileRow() = DSET1.tbl_profile.Select("code='" + dr.프로필 + "'")
If 프로필목록.Length = 1 AndAlso 프로필목록(0).설명.StartsWith("07") Then
dr.조명에너지부하율입력치 = 조명에너지부하율
dr.EndEdit()
End If
Next
Dim 신재생모듈면적 As String = FpSpread1_Sheet1.Cells(Row, 16).Value.ToString()
Dim 신재생모듈효율 As String = FpSpread1_Sheet1.Cells(Row, 17).Value.ToString()
For i As Integer = 0 To DSET1.tbl_new.Rows.Count - 1
Dim dr As DS.tbl_newRow = DSET1.tbl_new.Rows(i)
dr.태양광모듈면적 = 신재생모듈면적
dr.태양광모듈효율 = 신재생모듈효율
dr.EndEdit()
Next
DSET1.AcceptChanges()
'//계산실행
Run_Calc(Row)
Next
If Not msgf Is Nothing Then
msgf.Close()
msgf.Dispose()
msgf = Nothing
End If
If StartNo = EndNo Then
Report_그래프.Visible = False
Report_그래프.Show()
End If
End Sub
Sub Run_Calc(Row As Integer)
'//현재데이터상태를 저장
DSET1.AcceptChanges()
DSETR1.AcceptChanges()
Dim Type As Calculator.ECalc = Calculator.ECalc.All '//요구량+소요량
Dim showmsg As String = "" '//추가표시메세지
Dim St As Date = Now '//계산시작
pLog.Add(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
pLog.Add(String.Format("계산실행({0})", Type.ToString()))
pLog.Add(String.Format("시작시간 : {0}", St.ToString()))
pLog.Add("----------------------------------")
Dim Result As Boolean = Calc.Start(showmsg, Type, LogSB, 0)
Dim Ts As TimeSpan = Now - St '//계산경과시간을 표시해준다.
Dim calc_ok As Integer = 1
If Result Then '//파라미터 True 라면 소요량이 추가로 게산된다.
Calc.Summary.All()
If LogSB.ToString <> "" Then
FpSpread1_Sheet1.Cells(Row, 18).Value = LogSB.ToString
Else
FpSpread1_Sheet1.Cells(Row, 18).Value = "시간:" + Ts.ToString()
calc_ok = 1 '================================2014.04.17 계산이 완료되면 그래프를 보여줌
End If
Else
FpSpread1_Sheet1.Cells(Row, 18).Value = LogSB.ToString
End If
'//상태메세지창이 열려있다면 제거해준다.
If calc_ok = 1 Then
'//해당값을 기록한다.
Extract_Data(Row - 1)
Else
'//빈값으로 기록을 한다.
Dim StartIDX As Integer = 100
For idx As Integer = StartIDX To StartIDX + 13
FpSpread1_Sheet1.Cells(Row, idx).Value = "--"
Next
End If
End Sub
Sub Extract_Data(Row As Integer)
'//2번째 시트에 데이터 기록
Dim sheet As FarPoint.Win.Spread.SheetView = Me.FpSpread1.Sheets(1)
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 '//아마게산이안도잇으니 여기값들이 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 Decimal = 0
Dim 급탕면적 As Decimal = 0
Dim 환기면적 As Decimal = 0
Dim Sum As Decimal = 0
Dim 전기 As Decimal = 0
Dim BaseIndex As Integer = 0
Dim Dr2 As DSR.Graph_ReqUseRow
For Gubun As Short = 0 To 4
Select Case Gubun
Case 0 '//1차에너지소요량
Sum = (Result1.생산E(0).태양광전력생산량 + Result1.생산E(0).신재생열병합전력생산량) / (Result1.일차E소요량(0).난방전력 + Result1.일차E소요량(0).냉방전력 + Result1.일차E소요량(0).급탕전력 + Result1.일차E소요량(0).조명전력 + Result1.일차E소요량(0).환기전력)
난방 = Sum * Result1.일차E소요량(0).난방전력 '//아마게산이안도잇으니 여기값들이 0이잇을거에요.
냉방 = Sum * Result1.일차E소요량(0).냉방전력
조명 = Sum * Result1.일차E소요량(0).조명전력
급탕 = Sum * Result1.일차E소요량(0).급탕전력
환기 = Sum * Result1.일차E소요량(0).환기전력
난방면적 = 0
냉방면적 = 0
조명면적 = 0
급탕면적 = 0
환기면적 = 0
If Result1.사용면적.H <> 0 Then
난방면적 = TOSG(IIf(난방 = 0, 0, 난방 / Result1.사용면적.H))
End If
If Result1.사용면적.C <> 0 Then
냉방면적 = TOSG(IIf(냉방 = 0, 0, 냉방 / Result1.사용면적.C))
End If
If Result1.사용면적.L <> 0 Then
조명면적 = TOSG(IIf(조명 = 0, 0, 조명 / Result1.사용면적.L))
End If
If Result1.사용면적.W <> 0 Then
급탕면적 = TOSG(IIf(급탕 = 0, 0, 급탕 / Result1.사용면적.W))
End If
If Result1.사용면적.V <> 0 Then
환기면적 = TOSG(IIf(환기 = 0, 0, 환기 / Result1.사용면적.V))
End If
전기 = 난방면적 + 냉방면적 + 조명면적 + 급탕면적 + 환기면적
'//열병합신재생에너지추가 130831 arin
신재생에너지 = -1 * (Result1.생산E(0).면적당생산량태양열 + Result1.생산E(0).신재생면적당열생산량 + Result1.생산E(0).면적당생산량지열 + 전기 * 2.75)
'//1차에너지소요량
난방에너지 = Result1.일차E소요량(0).난방면적
냉방에너지 = Result1.일차E소요량(0).냉방면적
급탕에너지 = Result1.일차E소요량(0).급탕면적
조명에너지 = Result1.일차E소요량(0).조명면적
환기에너지 = Result1.일차E소요량(0).환기면적
sheet.Cells(Row, BaseIndex + 14).Value = 난방에너지
sheet.Cells(Row, BaseIndex + 15).Value = 냉방에너지
sheet.Cells(Row, BaseIndex + 16).Value = 급탕에너지
sheet.Cells(Row, BaseIndex + 17).Value = 조명에너지
sheet.Cells(Row, BaseIndex + 18).Value = 환기에너지
sheet.Cells(Row, BaseIndex + 19).Value = 난방에너지 + 냉방에너지 + 급탕에너지 + 조명에너지 + 환기에너지
Case 1 '//에너지소요량
Sum = (Result1.생산E(0).태양광전력생산량 + Result1.생산E(0).신재생열병합전력생산량) / (Result1.일차E소요량(0).난방전력 + Result1.일차E소요량(0).냉방전력 + Result1.일차E소요량(0).급탕전력 + Result1.일차E소요량(0).조명전력 + Result1.일차E소요량(0).환기전력)
난방 = Sum * Result1.일차E소요량(0).난방전력 '//아마게산이안도잇으니 여기값들이 0이잇을거에요.
냉방 = Sum * Result1.일차E소요량(0).냉방전력
조명 = Sum * Result1.일차E소요량(0).조명전력
급탕 = Sum * Result1.일차E소요량(0).급탕전력
환기 = Sum * Result1.일차E소요량(0).환기전력
난방면적 = 0
냉방면적 = 0
조명면적 = 0
급탕면적 = 0
환기면적 = 0
If Result1.사용면적.H <> 0 Then
난방면적 = TOSG(IIf(난방 = 0, 0, 난방 / Result1.사용면적.H))
End If
If Result1.사용면적.C <> 0 Then
냉방면적 = TOSG(IIf(냉방 = 0, 0, 냉방 / Result1.사용면적.C))
End If
If Result1.사용면적.L <> 0 Then
조명면적 = TOSG(IIf(조명 = 0, 0, 조명 / Result1.사용면적.L))
End If
If Result1.사용면적.W <> 0 Then
급탕면적 = TOSG(IIf(급탕 = 0, 0, 급탕 / Result1.사용면적.W))
End If
If Result1.사용면적.V <> 0 Then
환기면적 = TOSG(IIf(환기 = 0, 0, 환기 / Result1.사용면적.V))
End If
Dim 면적 As Decimal = 난방면적 + 냉방면적 + 조명면적 + 급탕면적 + 환기면적
'//열병합신재생에너지추가 130831 arin
신재생에너지 = -1 * (Result1.생산E(0).면적당생산량태양열 + Result1.생산E(0).신재생면적당열생산량 + Result1.생산E(0).면적당생산량지열) - 면적
난방에너지 = Result1.E소요량(0).난방면적
냉방에너지 = Result1.E소요량(0).냉방면적
급탕에너지 = Result1.E소요량(0).급탕면적
조명에너지 = Result1.E소요량(0).조명면적
환기에너지 = Result1.E소요량(0).환기면적
'FpSpread1_Sheet1.Cells(Row, BaseIndex - 1).Value = 난방에너지 + 냉방에너지 + 급탕에너지 + 조명에너지 + 환기에너지
sheet.Cells(Row, BaseIndex + 8).Value = 난방에너지
sheet.Cells(Row, BaseIndex + 9).Value = 냉방에너지
sheet.Cells(Row, BaseIndex + 10).Value = 급탕에너지
sheet.Cells(Row, BaseIndex + 11).Value = 조명에너지
sheet.Cells(Row, BaseIndex + 12).Value = 환기에너지
sheet.Cells(Row, BaseIndex + 13).Value = 난방에너지 + 냉방에너지 + 급탕에너지 + 조명에너지 + 환기에너지
Case 2 '//에너지요구량
신재생에너지 = 0
난방에너지 = Result1.E요구량(0).난방면적
냉방에너지 = Result1.E요구량(0).냉방면적
급탕에너지 = Result1.E요구량(0).급탕면적
조명에너지 = Result1.E요구량(0).조명면적
환기에너지 = 0
sheet.Cells(Row, BaseIndex + 2).Value = 난방에너지
sheet.Cells(Row, BaseIndex + 3).Value = 냉방에너지
sheet.Cells(Row, BaseIndex + 4).Value = 급탕에너지
sheet.Cells(Row, BaseIndex + 5).Value = 조명에너지
sheet.Cells(Row, BaseIndex + 6).Value = 환기에너지
sheet.Cells(Row, BaseIndex + 7).Value = 난방에너지 + 냉방에너지 + 급탕에너지 + 조명에너지 + 환기에너지
Case 3 '//co2발생량
신재생에너지 = 0
난방에너지 = Result1.Co2발생량(0).난방면적
냉방에너지 = Result1.Co2발생량(0).냉방면적
급탕에너지 = Result1.Co2발생량(0).급탕면적
조명에너지 = Result1.Co2발생량(0).조명면적
환기에너지 = Result1.Co2발생량(0).환기면적
'sheet.Cells(Row, BaseIndex + 1).Value = 난방에너지 + 냉방에너지 + 급탕에너지 + 조명에너지 + 환기에너지
Case 4 '//1차에너지소요량(+계수) + 131020
신재생에너지 = 0
If (Result1.사용면적.H_WF = 0) Then
난방에너지 = 0
Else
난방에너지 = Result1.일차E소요량(0).난방면적2 * Result1.사용면적.H / Result1.사용면적.H_WF
End If
If (Result1.사용면적.C_WF = 0) Then
냉방에너지 = 0
Else
냉방에너지 = TOSG(Result1.일차E소요량(0).냉방면적 * Result1.사용면적.C / Result1.사용면적.C_WF)
End If
If (Result1.사용면적.W_WF = 0) Then
급탕에너지 = 0
Else
급탕에너지 = Result1.일차E소요량(0).급탕면적2 * Result1.사용면적.W / Result1.사용면적.W_WF
End If
If (Result1.사용면적.L_WF = 0) Then
조명에너지 = 0
Else
조명에너지 = Result1.일차E소요량(0).조명면적 * Result1.사용면적.L / Result1.사용면적.L_WF
End If
If (Result1.사용면적.V_WF = 0) Then
환기에너지 = 0
Else
환기에너지 = Result1.일차E소요량(0).환기면적 * Result1.사용면적.V / Result1.사용면적.V_WF
End If
sheet.Cells(Row, BaseIndex + 20).Value = 난방에너지
sheet.Cells(Row, BaseIndex + 21).Value = 냉방에너지
sheet.Cells(Row, BaseIndex + 22).Value = 급탕에너지
sheet.Cells(Row, BaseIndex + 23).Value = 조명에너지
sheet.Cells(Row, BaseIndex + 24).Value = 환기에너지
sheet.Cells(Row, BaseIndex + 25).Value = 난방에너지 + 냉방에너지 + 급탕에너지 + 조명에너지 + 환기에너지
End Select
Next
'//에너지생산량
Sum = (Result1.생산E(0).태양광전력생산량 + Result1.생산E(0).풍력전력생산량 + Result1.생산E(0).신재생열병합전력생산량) / (Result1.일차E소요량(0).난방전력 + Result1.일차E소요량(0).냉방전력 + Result1.일차E소요량(0).급탕전력 + Result1.일차E소요량(0).조명전력 + Result1.일차E소요량(0).환기전력)
Dim Sum_offsite As Decimal = (Result1.생산E(0).태양광전력생산량_offsite + Result1.생산E(0).풍력전력생산량_offsite) / (Result1.일차E소요량(0).난방전력 + Result1.일차E소요량(0).냉방전력 + Result1.일차E소요량(0).급탕전력 + Result1.일차E소요량(0).조명전력 + Result1.일차E소요량(0).환기전력)
난방 = Sum * Result1.일차E소요량(0).난방전력 '//아마게산이안도잇으니 여기값들이 0이잇을거에요.
냉방 = Sum * Result1.일차E소요량(0).냉방전력
조명 = Sum * Result1.일차E소요량(0).조명전력
급탕 = Sum * Result1.일차E소요량(0).급탕전력
환기 = Sum * Result1.일차E소요량(0).환기전력
Dim 난방_offsite As Decimal = Sum_offsite * Result1.일차E소요량(0).난방전력 '//아마게산이안도잇으니 여기값들이 0이잇을거에요.
Dim 냉방_offsite As Decimal = Sum_offsite * Result1.일차E소요량(0).냉방전력
Dim 조명_offsite As Decimal = Sum_offsite * Result1.일차E소요량(0).조명전력
Dim 급탕_offsite As Decimal = Sum_offsite * Result1.일차E소요량(0).급탕전력
Dim 환기_offsite As Decimal = Sum_offsite * Result1.일차E소요량(0).환기전력
난방면적 = 0
냉방면적 = 0
조명면적 = 0
급탕면적 = 0
환기면적 = 0
Dim 난방면적_offsite As Decimal = 0
Dim 냉방면적_offsite As Decimal = 0
Dim 조명면적_offsite As Decimal = 0
Dim 급탕면적_offsite As Decimal = 0
Dim 환기면적_offsite As Decimal = 0
If Result1.사용면적.H <> 0 Then
난방면적 = TOSG(IIf(난방 = 0, 0, 난방 / Result1.사용면적.H))
End If
If Result1.사용면적.C <> 0 Then
냉방면적 = TOSG(IIf(냉방 = 0, 0, 냉방 / Result1.사용면적.C))
End If
If Result1.사용면적.L <> 0 Then
조명면적 = TOSG(IIf(조명 = 0, 0, 조명 / Result1.사용면적.L))
End If
If Result1.사용면적.W <> 0 Then
급탕면적 = TOSG(IIf(급탕 = 0, 0, 급탕 / Result1.사용면적.W))
End If
If Result1.사용면적.V <> 0 Then
환기면적 = TOSG(IIf(환기 = 0, 0, 환기 / Result1.사용면적.V))
End If
If Result1.사용면적.H <> 0 Then
난방면적_offsite = TOSG(IIf(난방_offsite = 0, 0, 난방_offsite / Result1.사용면적.H))
End If
If Result1.사용면적.C <> 0 Then
냉방면적_offsite = TOSG(IIf(냉방_offsite = 0, 0, 냉방_offsite / Result1.사용면적.C))
End If
If Result1.사용면적.L <> 0 Then
조명면적_offsite = TOSG(IIf(조명_offsite = 0, 0, 조명_offsite / Result1.사용면적.L))
End If
If Result1.사용면적.W <> 0 Then
급탕면적_offsite = TOSG(IIf(급탕_offsite = 0, 0, 급탕_offsite / Result1.사용면적.W))
End If
If Result1.사용면적.V <> 0 Then
환기면적_offsite = TOSG(IIf(환기_offsite = 0, 0, 환기_offsite / Result1.사용면적.V))
End If
Dim 에너지생산량_난방 As Decimal = 난방면적 + 난방면적_offsite + _
Result1.생산E(0).면적당생산량태양열_난방 + _
Result1.생산E(0).면적당생산량수열_난방 + _
Result1.생산E(0).면적당생산량지열_난방 + _
Result1.생산E(0).신재생면적당열생산량_난방
Dim 에너지생산량_냉방 As Decimal = 냉방면적 + 냉방면적_offsite + _
Result1.생산E(0).면적당생산량태양열_냉방 + _
Result1.생산E(0).면적당생산량수열_냉방 + _
Result1.생산E(0).면적당생산량지열_냉방 + _
Result1.생산E(0).신재생면적당열생산량_냉방
Dim 에너지생산량_급탕 As Decimal = 급탕면적 + 급탕면적_offsite + _
Result1.생산E(0).면적당생산량태양열_급탕 + _
Result1.생산E(0).면적당생산량수열_급탕 + _
Result1.생산E(0).면적당생산량지열_급탕 + _
Result1.생산E(0).신재생면적당열생산량_급탕
sheet.Cells(Row, BaseIndex + 26).Value = 에너지생산량_난방
sheet.Cells(Row, BaseIndex + 27).Value = 에너지생산량_냉방
sheet.Cells(Row, BaseIndex + 28).Value = 에너지생산량_급탕
sheet.Cells(Row, BaseIndex + 29).Value = 조명면적 + 조명면적_offsite
sheet.Cells(Row, BaseIndex + 30).Value = 환기면적 + 환기면적_offsite
sheet.Cells(Row, BaseIndex + 31).Value = 에너지생산량_난방 + 에너지생산량_냉방 + 에너지생산량_급탕 + (조명면적 + 조명면적_offsite) + (환기면적 + 환기면적_offsite)
Dim multi As Decimal = 2.75
Dim 에너지생산량_난방_1차 As Decimal = (난방면적 + 난방면적_offsite) * multi + _
Result1.생산E(0).면적당생산량태양열_난방 + _
Result1.생산E(0).면적당생산량수열_난방 + _
Result1.생산E(0).면적당생산량지열_난방 + _
Result1.생산E(0).신재생면적당열생산량_난방
Dim 에너지생산량_냉방_1차 As Decimal = (냉방면적 + 냉방면적_offsite) * multi + _
Result1.생산E(0).면적당생산량태양열_냉방 + _
Result1.생산E(0).면적당생산량수열_냉방 + _
Result1.생산E(0).면적당생산량지열_냉방 + _
Result1.생산E(0).신재생면적당열생산량_냉방
Dim 에너지생산량_급탕_1차 As Decimal = (급탕면적 + 급탕면적_offsite) * multi + _
Result1.생산E(0).면적당생산량태양열_급탕 + _
Result1.생산E(0).면적당생산량수열_급탕 + _
Result1.생산E(0).면적당생산량지열_급탕 + _
Result1.생산E(0).신재생면적당열생산량_급탕
sheet.Cells(Row, BaseIndex + 32).Value = 에너지생산량_난방_1차
sheet.Cells(Row, BaseIndex + 33).Value = 에너지생산량_냉방_1차
sheet.Cells(Row, BaseIndex + 34).Value = 에너지생산량_급탕_1차
sheet.Cells(Row, BaseIndex + 35).Value = (조명면적 + 조명면적_offsite) * multi
sheet.Cells(Row, BaseIndex + 36).Value = (환기면적 + 환기면적_offsite) * multi
sheet.Cells(Row, BaseIndex + 37).Value = 에너지생산량_난방_1차 + 에너지생산량_냉방_1차 + 에너지생산량_급탕_1차 + ((조명면적 + 조명면적_offsite) * multi) + ((환기면적 + 환기면적_offsite) * multi)
'//평균조명에너지부하율
'//조명에너지-평균조명에너지부하율
Dim 조명에너지_부하율합 As Decimal = 0
Dim 조명에너지_면적합 As Decimal = 0
For Each drZone As DS.tbl_zoneRow In DSET1.tbl_zone.Select("code <> '0' and code <>'0000' and 면적 <> '0' and 면적 <> ''")
'//입력오류 체크
If Not IsNumeric(drZone.면적) Then drZone.면적 = "0"
If Not IsNumeric(drZone.입력존의수) Then drZone.입력존의수 = "1"
If Not IsNumeric(drZone.조명에너지부하율입력치) Then drZone.조명에너지부하율입력치 = "0"
If Not IsNumeric(drZone.조명에너지부하율계산치) Then drZone.조명에너지부하율계산치 = "0"
If drZone.면적 <> "0" Then
조명에너지_면적합 += CInt(drZone.입력존의수) * TOSG(drZone.면적) '//모든면적의총합
If drZone.조명부하산출방법 = "입력치" Then
조명에너지_부하율합 += TOSG(drZone.조명에너지부하율입력치) * (CInt(drZone.입력존의수) * TOSG(drZone.면적))
ElseIf drZone.조명부하산출방법 = "계산치" Then
조명에너지_부하율합 += TOSG(drZone.조명에너지부하율계산치) * (CInt(drZone.입력존의수) * TOSG(drZone.면적))
End If
End If
Next
Dim 평균조명에너지부하율 As Decimal = 0
If 조명에너지_면적합 <> 0 Then 평균조명에너지부하율 = (조명에너지_부하율합 / 조명에너지_면적합)
sheet.Cells(Row, BaseIndex + 38).Value = 평균조명에너지부하율
'//자립률
'//자립률관련추가 170725
'//170725
Dim 단위면적당신재생1차에너지합 As Decimal = 0
Dim 단위면적당신재생1차에너지합_offsite As Decimal = 0
Dim 단위면적당1차에너소비량합 As Decimal = 0
Dim 에너지자립률 As Double = 0
Dim 에너지자립률_offsite As Double = 0
Sum = (Result1.생산E(0).태양광전력생산량 + Result1.생산E(0).풍력전력생산량 + Result1.생산E(0).신재생열병합전력생산량) / (Result1.일차E소요량(0).난방전력 + Result1.일차E소요량(0).냉방전력 + Result1.일차E소요량(0).급탕전력 + Result1.일차E소요량(0).조명전력 + Result1.일차E소요량(0).환기전력)
Sum_offsite = (Result1.생산E(0).태양광전력생산량_offsite + Result1.생산E(0).풍력전력생산량_offsite) / (Result1.일차E소요량(0).난방전력 + Result1.일차E소요량(0).냉방전력 + Result1.일차E소요량(0).급탕전력 + Result1.일차E소요량(0).조명전력 + Result1.일차E소요량(0).환기전력)
난방 = Sum * Result1.일차E소요량(0).난방전력 '//아마게산이안도잇으니 여기값들이 0이잇을거에요.
냉방 = Sum * Result1.일차E소요량(0).냉방전력
조명 = Sum * Result1.일차E소요량(0).조명전력
급탕 = Sum * Result1.일차E소요량(0).급탕전력
환기 = Sum * Result1.일차E소요량(0).환기전력
난방_offsite = Sum_offsite * Result1.일차E소요량(0).난방전력 '//아마게산이안도잇으니 여기값들이 0이잇을거에요.
냉방_offsite = Sum_offsite * Result1.일차E소요량(0).냉방전력
조명_offsite = Sum_offsite * Result1.일차E소요량(0).조명전력
급탕_offsite = Sum_offsite * Result1.일차E소요량(0).급탕전력
환기_offsite = Sum_offsite * Result1.일차E소요량(0).환기전력
난방면적 = 0
냉방면적 = 0
조명면적 = 0
급탕면적 = 0
환기면적 = 0
난방면적_offsite = 0
냉방면적_offsite = 0
조명면적_offsite = 0
급탕면적_offsite = 0
환기면적_offsite = 0
If Result1.사용면적.H <> 0 Then
난방면적 = TOSG(IIf(난방 = 0, 0, 난방 / Result1.사용면적.H))
End If
If Result1.사용면적.C <> 0 Then
냉방면적 = TOSG(IIf(냉방 = 0, 0, 냉방 / Result1.사용면적.C))
End If
If Result1.사용면적.L <> 0 Then
조명면적 = TOSG(IIf(조명 = 0, 0, 조명 / Result1.사용면적.L))
End If
If Result1.사용면적.W <> 0 Then
급탕면적 = TOSG(IIf(급탕 = 0, 0, 급탕 / Result1.사용면적.W))
End If
If Result1.사용면적.V <> 0 Then
환기면적 = TOSG(IIf(환기 = 0, 0, 환기 / Result1.사용면적.V))
End If
If Result1.사용면적.H <> 0 Then
난방면적_offsite = TOSG(IIf(난방_offsite = 0, 0, 난방_offsite / Result1.사용면적.H))
End If
If Result1.사용면적.C <> 0 Then
냉방면적_offsite = TOSG(IIf(냉방_offsite = 0, 0, 냉방_offsite / Result1.사용면적.C))
End If
If Result1.사용면적.L <> 0 Then
조명면적_offsite = TOSG(IIf(조명_offsite = 0, 0, 조명_offsite / Result1.사용면적.L))
End If
If Result1.사용면적.W <> 0 Then
급탕면적_offsite = TOSG(IIf(급탕_offsite = 0, 0, 급탕_offsite / Result1.사용면적.W))
End If
If Result1.사용면적.V <> 0 Then
환기면적_offsite = TOSG(IIf(환기_offsite = 0, 0, 환기_offsite / Result1.사용면적.V))
End If
전기 = 난방면적 + 냉방면적 + 조명면적 + 급탕면적 + 환기면적
Dim 전기_offsite As Decimal = 난방면적_offsite + 냉방면적_offsite + 조명면적_offsite + 급탕면적_offsite + 환기면적_offsite
'//열병합신재생에너지추가 130831 arin
Dim _자립_신재생에너지 As Single = -1 * (Result1.생산E(0).면적당생산량태양열 + Result1.생산E(0).신재생면적당열생산량 + Result1.생산E(0).면적당생산량지열 + 전기 * 2.75)
Dim _자립_신재생에너지_offsite As Single = -1 * (전기_offsite * 2.75)
난방에너지 = Math.Round(Result1.일차E소요량(0).난방면적, 1)
냉방에너지 = Math.Round(Result1.일차E소요량(0).냉방면적, 1)
급탕에너지 = Math.Round(Result1.일차E소요량(0).급탕면적, 1)
조명에너지 = Math.Round(Result1.일차E소요량(0).조명면적, 1)
환기에너지 = Math.Round(Result1.일차E소요량(0).환기면적, 1)
단위면적당신재생1차에너지합 = Math.Round(-1 * _자립_신재생에너지, 1)
단위면적당신재생1차에너지합_offsite = Math.Round(-1 * _자립_신재생에너지_offsite, 1)
단위면적당1차에너소비량합 = 난방에너지 + 냉방에너지 + 급탕에너지 + 조명에너지 + 환기에너지 + 단위면적당신재생1차에너지합
If 단위면적당1차에너소비량합 <> 0 Then
'에너지자립률 = (단위면적당신재생1차에너지합 / 단위면적당1차에너소비량합) * 100
에너지자립률 = (Math.Round(단위면적당신재생1차에너지합, 1) / 단위면적당1차에너소비량합) * 100
Dim scale As Decimal = 0
If 에너지자립률 >= 20 Then
scale = 1.0
ElseIf 에너지자립률 >= 15 Then
scale = 0.9
ElseIf 에너지자립률 >= 10 Then
scale = 0.8
Else
scale = 0.7
End If
에너지자립률_offsite = (Math.Round(단위면적당신재생1차에너지합_offsite * scale, 1) / 단위면적당1차에너소비량합) * 100
에너지자립률 += 에너지자립률_offsite
Else
에너지자립률 = 0
에너지자립률_offsite = 0
End If
sheet.Cells(Row, BaseIndex + 39).Value = 에너지자립률
sheet.Cells(Row, BaseIndex + 40).Value = 단위면적당신재생1차에너지합
sheet.Cells(Row, BaseIndex + 41).Value = 단위면적당1차에너소비량합
'//방위별, 부위별 평균열관류율 계산 20230901
Dim 창및문면적비, 외벽열관류율_평균 As Decimal
Dim 외벽열관류율_남 As Decimal
Dim 외벽열관류율_동 As Decimal
Dim 외벽열관류율_북 As Decimal
Dim 외벽열관류율_서 As Decimal
Dim 창열관류율_평균 As Decimal
Dim 창열관류율_남 As Decimal
Dim 창열관류율_동 As Decimal
Dim 창열관류율_북 As Decimal
Dim 창열관류율_서 As Decimal
Dim 일사에너지투과율_평균 As Decimal
Dim 일사에너지투과율_남 As Decimal
Dim 일사에너지투과율_동 As Decimal
Dim 일사에너지투과율_북 As Decimal
Dim 일사에너지투과율_서 As Decimal
calc_창및문면적비(창및문면적비, 외벽열관류율_평균, 창열관류율_평균, 일사에너지투과율_평균)
calc_창및문면적비(창및문면적비, 외벽열관류율_남, 창열관류율_남, 일사에너지투과율_남, "")
calc_창및문면적비(창및문면적비, 외벽열관류율_동, 창열관류율_동, 일사에너지투과율_동, "")
calc_창및문면적비(창및문면적비, 외벽열관류율_북, 창열관류율_북, 일사에너지투과율_북, "")
calc_창및문면적비(창및문면적비, 외벽열관류율_서, 창열관류율_서, 일사에너지투과율_서, "")
'//평균열관류율 11개(?)
sheet.Cells(Row, BaseIndex + 42).Value = 외벽열관류율_평균
sheet.Cells(Row, BaseIndex + 43).Value = 외벽열관류율_남
sheet.Cells(Row, BaseIndex + 44).Value = 외벽열관류율_동
sheet.Cells(Row, BaseIndex + 45).Value = 외벽열관류율_북
sheet.Cells(Row, BaseIndex + 46).Value = 외벽열관류율_서
'//외벽지붕(평균열관류율)
sheet.Cells(Row, BaseIndex + 47).Value = calc_평균열관류율(New String() {"외벽(지붕)", "내벽(지붕)"})
'//외벽바닥(평균열관류율)
sheet.Cells(Row, BaseIndex + 48).Value = calc_평균열관류율(New String() {"외벽(바닥)", "내벽(바닥)"})
sheet.Cells(Row, BaseIndex + 49).Value = 창열관류율_평균
sheet.Cells(Row, BaseIndex + 50).Value = 창열관류율_남
sheet.Cells(Row, BaseIndex + 51).Value = 창열관류율_동
sheet.Cells(Row, BaseIndex + 52).Value = 창열관류율_북
sheet.Cells(Row, BaseIndex + 53).Value = 창열관류율_서
sheet.Cells(Row, BaseIndex + 54).Value = 일사에너지투과율_평균
sheet.Cells(Row, BaseIndex + 55).Value = 일사에너지투과율_남
sheet.Cells(Row, BaseIndex + 56).Value = 일사에너지투과율_동
sheet.Cells(Row, BaseIndex + 57).Value = 일사에너지투과율_북
sheet.Cells(Row, BaseIndex + 58).Value = 일사에너지투과율_서
End Sub
End Class

View File

@@ -2,6 +2,8 @@
Dim fn As String = ""
Dim silentmode As Boolean = False
Dim column As Integer = 10
Dim processfile As String
Public Sub New()
' 이 호출은 디자이너에 필요합니다.
@@ -10,12 +12,14 @@
' InitializeComponent() 호출 뒤에 초기화 코드를 추가하십시오.
End Sub
Public Sub New(_file As String, Optional silent As Boolean = False)
Public Sub New(_file As String, writecolumn As Integer, processfilename As String, Optional silent As Boolean = False)
' 이 호출은 디자이너에 필요합니다.
InitializeComponent()
fn = _file
silentmode = silent
column = writecolumn
processfile = processfilename
' InitializeComponent() 호출 뒤에 초기화 코드를 추가하십시오.
End Sub
@@ -23,14 +27,15 @@
Private Sub Frm_Upload_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
' Me.Hide()
Application.DoEvents()
'Application.DoEvents()
LoadFile()
'MakeGraphTable()
MakeData()
If fn <> "" Then
Try
If FpSpread1.SaveExcel(fn) Then
If FpSpread1.SaveExcel(fn, FarPoint.Excel.ExcelSaveFlags.NoFlagsSet) Then
If silentmode = False Then
MsgBox("다음파일이 생성되었습니다" + vbCrLf + fn, MsgBoxStyle.Information, "확인")
End If
@@ -56,6 +61,7 @@
Private Sub LoadFile()
Dim fn As String = AppDomain.CurrentDomain.BaseDirectory + "\upload.xlsx"
If column > 10 Then fn = Me.fn
If Not System.IO.File.Exists(fn) Then
MsgBox("업로드샘플파일(" + fn + ")가 존재하지 않습니다", MsgBoxStyle.Critical, "확인")
Return
@@ -72,7 +78,7 @@
Private Sub MakeData()
'//결과데이터에서 자료를 추출하고 그 값을 넣는다
Dim DataColumnIndex As Integer = 10
Dim DataColumnIndex As Integer = Me.column
Dim Row As Integer = 1
Dim DsReport As New DSR
@@ -178,7 +184,7 @@
'//연간 CO2발생량
Dim StartCode As Integer = 79 '//76
Dim StartCode As Integer = 81 '//76
Dim CO2_1, CO2_2, CO2_3, CO2_4, CO2_5 As Decimal
CO2_1 = Math.Round(RData("410", StartCode + 0), 1)
CO2_2 = Math.Round(RData("410", StartCode + 7), 1)
@@ -195,11 +201,12 @@
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 합계.ToString() : Row += 1 '//환기
'//단위면적당 CO2발생량
CO2_1 = Math.Round(RData("410", StartCode + 6), 1)
CO2_2 = Math.Round(RData("410", StartCode + 14), 1)
CO2_3 = Math.Round(RData("410", StartCode + 21), 1)
CO2_4 = Math.Round(RData("410", StartCode + 24), 1)
CO2_5 = Math.Round(RData("410", StartCode + 27), 1)
StartCode = 79 '//76
CO2_1 = Math.Round(RData("410", StartCode + 8), 1)
CO2_2 = Math.Round(RData("410", StartCode + 16), 1)
CO2_3 = Math.Round(RData("410", StartCode + 23), 1)
CO2_4 = Math.Round(RData("410", StartCode + 26), 1)
CO2_5 = Math.Round(RData("410", StartCode + 29), 1)
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = CO2_1.ToString : Row += 1 '//난방
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = CO2_2.ToString : Row += 1 '//냉방
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = CO2_3.ToString : Row += 1 '//급탕
@@ -301,16 +308,16 @@
'//입력존수값이 없는것은 기본값 1로 처리를 한다
If String.IsNullOrWhiteSpace(drZOne.입력존의수) Then drZOne.입력존의수 = "1"
If Not IsNumeric(drZOne.입력존의수) Then drZOne.입력존의수 = "1"
Dim 존수 As Integer = TOSG(drZOne.입력존의수)
If 존수 < 1 Then Continue For
Dim 존수2 As Integer = TOSG(drZOne.입력존의수)
If 존수2 < 1 Then Continue For
If Not IsNumeric(drZOne.면적) Then drZOne.면적 = "0"
If CInt(drZOne.면적) = 0 Then
MsgBox("입력존(" + drZOne.설명 + ") 의 면적이 입력되지 않았습니다", MsgBoxStyle.Critical, "확인")
Continue For
End If
기밀성능_면적합 += (존수 * drZOne.면적)
기밀성능_침기율면적합 += (drZOne.침기율 * (존수 * drZOne.면적))
기밀성능_면적합 += (존수2 * drZOne.면적)
기밀성능_침기율면적합 += (drZOne.침기율 * (존수2 * drZOne.면적))
Next
Dim 기밀성능 As Decimal = 0
If 기밀성능_면적합 <> 0 Then 기밀성능 = 기밀성능_침기율면적합 / 기밀성능_면적합
@@ -363,14 +370,14 @@
If Not IsNumeric(drzone.면적) Then drzone.면적 = "0"
Dim 존수 As Integer = 0
Dim 존수2 As Integer = 0
If IsNumeric(drzone.입력존의수) Then
존수 = CInt(drzone.입력존의수)
존수2 = CInt(drzone.입력존의수)
Else
존수 = 1
존수2 = 1
End If
If IsNumeric(drzone.면적) Then
면적 = drzone.면적 * 존수
면적 = drzone.면적 * 존수2
Else
면적 = 0
End If
@@ -470,10 +477,10 @@
Dim 냉난방방식_난방 As String = ""
For Each dr난방 As DS.tbl_nanbangkikiRow In DSET1.tbl_nanbangkiki.Select("code <> '0'")
Dim filter As String = String.Format("code <> '0' and 열생산난방생산기기='{0}' or 공조난방생산기기='{0}'", dr난방.code)
Dim 존수 As Integer = 0
Dim 존수3 As Integer = 0
For Each dr존 As DS.tbl_zoneRow In DSET1.tbl_zone.Select(filter)
If Not IsNumeric(dr존.입력존의수) Then dr존.입력존의수 = "1"
존수 += CInt(dr존.입력존의수)
존수3 += CInt(dr존.입력존의수)
Next
If Not IsNumeric(dr난방.보일러정격출력) Then dr난방.보일러정격출력 = "0"
@@ -482,7 +489,7 @@
Dim 개별식형태 As Boolean = dr난방.개별기기적용
If Not 개별식형태 AndAlso 존수 = 1 Then 개별식형태 = True '//입력존이 1이면 개별식형태로 한다
If Not 개별식형태 AndAlso 존수3 = 1 Then 개별식형태 = True '//입력존이 1이면 개별식형태로 한다
If 냉난방방식_난방 = "" Then
@@ -501,18 +508,18 @@
최대값 = Math.Max(TOSG(dr난방.보일러정격출력), TOSG(dr난방.열교환기정격출력))
최대값 = Math.Max(최대값, TOSG(dr난방.히트난방용량))
최대값 *= 존수
최대값 *= 존수3
펌프동력합 += TOSG(dr난방.펌프동력) * 존수
펌프동력합 += TOSG(dr난방.펌프동력) * 존수3
If dr난방.열생산기기방식 = "히트펌프" Then
난방용량합 += TOSG(dr난방.히트난방용량) * 존수
If dr난방.히트연료 = "전기" Then 난방용량합_전기 += TOSG(dr난방.히트난방용량) * 존수
난방용량합 += TOSG(dr난방.히트난방용량) * 존수3
If dr난방.히트연료 = "전기" Then 난방용량합_전기 += TOSG(dr난방.히트난방용량) * 존수3
ElseIf dr난방.열생산기기방식 = "전기보일러" Then
난방용량합 += TOSG(dr난방.보일러정격출력) * 존수
난방용량합_전기 += TOSG(dr난방.보일러정격출력) * 존수
난방용량합 += TOSG(dr난방.보일러정격출력) * 존수3
난방용량합_전기 += TOSG(dr난방.보일러정격출력) * 존수3
ElseIf dr난방.열생산기기방식 = "지역난방" Then
난방용량합 += TOSG(dr난방.열교환기정격출력) * 존수
난방용량합 += TOSG(dr난방.열교환기정격출력) * 존수3
Else
난방용량합 += 최대값 '//모를경우에는 해당값중 최대값을 사용함(임의처리함 arin)
End If
@@ -561,16 +568,16 @@
Dim 냉난방방식_냉방 As String = ""
For Each dr냉방 As DS.tbl_nangbangkikiRow In DSET1.tbl_nangbangkiki.Select("code <> '0'")
Dim filter As String = String.Format("열생산냉방생산기기='{0}' or 공조냉방생산기기='{0}'", dr냉방.code)
Dim 존수 As Integer = 0
Dim 존수4 As Integer = 0
For Each dr존 As DS.tbl_zoneRow In DSET1.tbl_zone.Select(filter)
If Not IsNumeric(dr존.입력존의수) Then dr존.입력존의수 = "1"
존수 += CInt(dr존.입력존의수)
존수4 += CInt(dr존.입력존의수)
Next
If Not IsNumeric(dr냉방.냉동기용량) Then dr냉방.냉동기용량 = "0"
Dim 개별식형태 As Boolean = dr냉방.개별기기적용
If Not 개별식형태 AndAlso 존수 = 1 Then 개별식형태 = True '//입력존이 1이면 개별식형태로 한다
If Not 개별식형태 AndAlso 존수4 = 1 Then 개별식형태 = True '//입력존이 1이면 개별식형태로 한다
If 냉난방방식_냉방 = "" Then
냉난방방식_냉방 = IIf(개별식형태, "개별식", "중앙식")
@@ -583,9 +590,9 @@
Dim 최대값 As Decimal = 0
If dr냉방.개별기기적용 Then
최대값 = TOSG(dr냉방.냉동기용량) * 존수
냉방용량합 += TOSG(dr냉방.냉동기용량) * 존수
If dr냉방.냉동기방식 = "압축식" Then 냉방용량합_전기 += TOSG(dr냉방.냉동기용량) * 존수
최대값 = TOSG(dr냉방.냉동기용량) * 존수4
냉방용량합 += TOSG(dr냉방.냉동기용량) * 존수4
If dr냉방.냉동기방식 = "압축식" Then 냉방용량합_전기 += TOSG(dr냉방.냉동기용량) * 존수4
Else
최대값 = TOSG(dr냉방.냉동기용량)
냉방용량합 += TOSG(dr냉방.냉동기용량)
@@ -1106,6 +1113,315 @@
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 단위면적당신재생1차에너지합_offsite.ToString("N1") : Row += 1
'//추가작업 230724
If column < 11 Then Return
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = processfile : Row += 1
'//벽체면적
Dim WallArea As Decimal = 0
Dim WindowArea As Decimal = 0
Dim 열관류율합 As Double
Dim 존수 As Integer = 0
Dim 비연결 As Integer = 0
Dim 비연결존 As String = ""
Dim 방위목록() As String = New String() {"수평", "", "남동", "", "북동", "", "북서", "", "남서"}
For Each 방위 As String In 방위목록
Dim filter As String = "code <> '0' and (건축부위방식='외벽' or 건축부위방식 ='외부창' or 건축부위방식='내벽' or 건축부위방식 ='내부창')"
If 방위 <> "" Then filter += " and 방위='" + 방위 + "'"
Dim 면데이터() As DS.tbl_myounRow = DSET1.tbl_myoun.Select(filter)
Dim 열관없는갯수 As Integer = 0
Try
For Each Dr입력면 As DS.tbl_myounRow In 면데이터
Dim 열관 As Single = 0
If Dr입력면.열관류율2 = "0" OrElse Dr입력면.열관류율2 = "" Then
열관없는갯수 += 1
End If
Dim Dryk1 As DS.tbl_ykRow = Nothing
If Dr입력면.열관류율2 <> "0" Then '
Dryk1 = DSET1.tbl_yk.Select("code='" & Dr입력면.열관류율2 & "'")(0)
열관 = TOSG(Dryk1("열관류율").ToString)
Else '//선택안된경우
열관 = TOSG(Dr입력면.열관류율)
End If
Dim 존코드 As String = Dr입력면.존분류
Dim dr존() As DS.tbl_zoneRow = DSET1.tbl_zone.Select("code='" + 존코드 + "'")
If dr존.GetUpperBound(0) = -1 Then
존수 = 1
Else
If IsNumeric(dr존(0).입력존의수) Then
존수 = CInt(dr존(0).입력존의수)
Else
존수 = 1
End If
End If
Select Case Dr입력면.건축부위방식
Case "외벽"
열관류율합 += 열관 * 1 * TOSG(Dr입력면.건축부위면적) * 존수
Case "내벽"
열관류율합 += 열관 * 0.7 * TOSG(Dr입력면.건축부위면적) * 존수
Case "외부창"
열관류율합 += 열관 * 1 * TOSG(Dr입력면.건축부위면적) * 존수
Case "내부창"
열관류율합 += 열관 * 0.8 * TOSG(Dr입력면.건축부위면적) * 존수
End Select
'// Debug.WriteLine(Dr입력면.열관류율2 + "/" + Dr입력면.code + "/" + 열관.ToString() + "/" + Dr입력면.설명 + "/" + Dr입력면.건축부위면적.ToCharArray() + "/" + 존수.ToString() + "/" + 열관류율합.ToString(), True)
If Dryk1 Is Nothing Then
비연결 += 1
'//사용한 존
If dr존 Is Nothing Then
Else
비연결존 = dr존(0).설명 + "" + Dr입력면.설명
End If
'//열관류 선택안된경우
Select Case Dr입력면.건축부위방식
Case "외벽"
If Dr입력면.방위 <> "수평" AndAlso Dr입력면.방위 <> "일사없음" AndAlso Dr입력면.방위 <> "(없음)" Then
WallArea = WallArea + TOSG(Dr입력면.건축부위면적) * 존수
End If
Case "내벽" '
WallArea = WallArea + TOSG(Dr입력면.건축부위면적) * 존수
Case "외부창"
If Dr입력면.방위 <> "수평" AndAlso Dr입력면.방위 <> "일사없음" AndAlso Dr입력면.방위 <> "(없음)" Then
WindowArea = WindowArea + TOSG(Dr입력면.건축부위면적) * 존수
End If
Case "내부창"
WindowArea = WindowArea + TOSG(Dr입력면.건축부위면적) * 존수
End Select
Else
Dim 면형태이름 As String = Get_CName("1088", Dryk1.면형태)
Select Case 면형태이름
Case "외벽(벽체)"
WallArea = WallArea + TOSG(Dr입력면.건축부위면적) * 존수
Case "내벽(벽체)"
WallArea = WallArea + TOSG(Dr입력면.건축부위면적) * 존수
Case "외부창"
If Dr입력면.방위 <> "수평" AndAlso Dr입력면.방위 <> "일사없음" AndAlso Dr입력면.방위 <> "(없음)" Then
WindowArea = WindowArea + TOSG(Dr입력면.건축부위면적) * 존수
End If
Case "내부창"
WindowArea = WindowArea + TOSG(Dr입력면.건축부위면적) * 존수
End Select
End If
'Debug.WriteLine(Dr입력면.code + ":wall=" + WallArea.ToString() + ",win=" + WindowArea.ToString())
Next
'For Each Dr입력면 As DS.tbl_myounRow In DSET1.tbl_myoun.Select("건축부위방식='외부창'")
' WindowArea = WindowArea + TOSG(Dr입력면.건축부위면적) * 존수
'Next
Catch ex As Exception
End Try
Next
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = WallArea.ToString("N1") : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = WindowArea.ToString("N1") : Row += 1
Try
창및문면적비 = WindowArea / (WallArea + WindowArea) * 100
Catch ex As Exception
창및문면적비 = 0 '//게삭과정에 오류가낫다면 0처리합니다.
End Try
If WallArea + WindowArea = 0 Then
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = "0 %" : Row += 1
Else
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 창및문면적비.ToString("N1") : Row += 1
End If
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 창열관류율_평균.ToString("N3") : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 창열관류율_남.ToString("N3") : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 창열관류율_남동.ToString("N3") : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 창열관류율_동.ToString("N3") : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 창열관류율_북동.ToString("N3") : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 창열관류율_북.ToString("N3") : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 창열관류율_북서.ToString("N3") : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 창열관류율_서.ToString("N3") : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 창열관류율_남서.ToString("N3") : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 일사에너지투과율_평균.ToString("N3") : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 일사에너지투과율_남.ToString("N3") : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 일사에너지투과율_남동.ToString("N3") : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 일사에너지투과율_동.ToString("N3") : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 일사에너지투과율_북동.ToString("N3") : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 일사에너지투과율_북.ToString("N3") : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 일사에너지투과율_북서.ToString("N3") : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 일사에너지투과율_서.ToString("N3") : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 일사에너지투과율_남서.ToString("N3") : Row += 1
'//난방기기 - 보일러중에 용량이 가장 큰
Dim 보일러목록() As DS.tbl_nanbangkikiRow = DSET1.tbl_nanbangkiki.Select("열생산기기방식='보일러'", "보일러정격출력 desc")
If 보일러목록 Is Nothing OrElse 보일러목록.Length < 1 Then
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = "" : Row += 1
Else
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 보일러목록(0).보일러방식 : Row += 1
End If
보일러목록 = DSET1.tbl_nanbangkiki.Select("열생산기기방식='지역난방'", "열교환기정격출력 desc")
If 보일러목록 Is Nothing OrElse 보일러목록.Length < 1 Then
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = "" : Row += 1
Else
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 보일러목록(0).지역난방방식 : Row += 1
End If
보일러목록 = DSET1.tbl_nanbangkiki.Select("열생산기기방식='히트펌프'", "히트난방용량 desc")
If 보일러목록 Is Nothing OrElse 보일러목록.Length < 1 Then
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = "" : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = "" : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = "" : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = "" : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = "" : Row += 1
Else
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 보일러목록(0).히트난방용량 : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 보일러목록(0).히트난방정격7 : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 보일러목록(0).히트난방정격10 : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 보일러목록(0).히트배관길이 : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 보일러목록(0).히트펌프시스템종류 : Row += 1
End If
Dim 냉방기목록 = DSET1.tbl_nangbangkiki.Select("냉동기방식='압축식'", "냉동기용량 desc")
If 냉방기목록 Is Nothing OrElse 냉방기목록.Length < 1 Then
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = "" : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = "" : Row += 1
Else
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 냉방기목록(0).냉동기종류 : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 냉방기목록(0).냉동기압축방식 : Row += 1
End If
냉방기목록 = DSET1.tbl_nangbangkiki.Select("냉동기방식='흡수식'", "냉동기용량 desc")
If 냉방기목록 Is Nothing OrElse 냉방기목록.Length < 1 Then
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = "" : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = "" : Row += 1
Else
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 냉방기목록(0).압축기제어방식 : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 냉방기목록(0).열생산연결방식 : Row += 1
End If
냉방기목록 = DSET1.tbl_nangbangkiki.Select("냉동기방식='압축식' and 냉동기종류='실내공조시스템'", "냉동기용량 desc")
If 냉방기목록 Is Nothing OrElse 냉방기목록.Length < 1 Then
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = "" : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = "" : Row += 1
Else
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 냉방기목록(0).냉동기설비시스템 : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 냉방기목록(0).제어방식 : Row += 1
End If
'//급탕기기로 연결된 자료
Dim 급탕기기대상 As DS.tbl_nanbangkikiRow = Nothing
Dim 급탕기기대상용량 As Decimal = 0
For Each dr As DS.tbl_nanbangkikiRow In DSET1.tbl_nanbangkiki.Rows
Dim cnt = 0
Dim 존목록() As DS.tbl_zoneRow = DSET1.tbl_zone.Select("code <> '0' and 열생산급탕생산기기='" & dr.code & "'")
For Each drow As DS.tbl_zoneRow In 존목록
Dim 입력존수문자 As Integer = drow.입력존의수
If IsNumeric(입력존수문자) = False Then 입력존수문자 = "1"
cnt += CInt(입력존수문자)
Next
If cnt > 0 Then
If dr.보일러정격출력 > 급탕기기대상용량 Then
급탕기기대상 = dr
급탕기기대상용량 = dr.보일러정격출력
End If
End If
Next
If 급탕기기대상 Is Nothing Then
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = "" : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = "" : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = "" : Row += 1
Else
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 급탕기기대상.축열탱크방식 : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 급탕기기대상.축열제척 : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 급탕기기대상.펌프정격전력 : Row += 1
End If
Dim 태양광목록() As DS.tbl_newRow = DSET1.tbl_new.Select("기기종류='태양광'", "태양광모듈면적 desc")
If 태양광목록 Is Nothing OrElse 태양광목록.Length < 1 Then
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = "" : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = "" : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = "" : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = "" : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = "" : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = "" : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = "" : Row += 1
Else
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 태양광목록(0).태양광용량 : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 태양광목록(0).태양광모듈효율 : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 태양광목록(0).태양광모듈면적 : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 태양광목록(0).태양광모듈기울기 : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 태양광목록(0).태양광모듈방위 : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 태양광목록(0).태양광모듈종류 : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 태양광목록(0).태양광모듈적용타입 : Row += 1
End If
'//230804 에너지생산량 ` 1차 추가
Dim 에너지생산량_난방 As Decimal = 난방면적 + 난방면적_offsite + _
Result1.생산E(0).면적당생산량태양열_난방 + _
Result1.생산E(0).면적당생산량수열_난방 + _
Result1.생산E(0).면적당생산량지열_난방 + _
Result1.생산E(0).신재생면적당열생산량_난방
Dim 에너지생산량_냉방 As Decimal = 냉방면적 + 냉방면적_offsite + _
Result1.생산E(0).면적당생산량태양열_냉방 + _
Result1.생산E(0).면적당생산량수열_냉방 + _
Result1.생산E(0).면적당생산량지열_냉방 + _
Result1.생산E(0).신재생면적당열생산량_냉방
Dim 에너지생산량_급탕 As Decimal = 급탕면적 + 급탕면적_offsite + _
Result1.생산E(0).면적당생산량태양열_급탕 + _
Result1.생산E(0).면적당생산량수열_급탕 + _
Result1.생산E(0).면적당생산량지열_급탕 + _
Result1.생산E(0).신재생면적당열생산량_급탕
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 에너지생산량_난방 : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 에너지생산량_냉방 : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 에너지생산량_급탕 : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 조명면적 + 조명면적_offsite : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 환기면적 + 환기면적_offsite : Row += 1
Dim multi As Decimal = 2.75
Dim 에너지생산량_난방_1차 As Decimal = (난방면적 + 난방면적_offsite) * multi + _
Result1.생산E(0).면적당생산량태양열_난방 + _
Result1.생산E(0).면적당생산량수열_난방 + _
Result1.생산E(0).면적당생산량지열_난방 + _
Result1.생산E(0).신재생면적당열생산량_난방
Dim 에너지생산량_냉방_1차 As Decimal = (냉방면적 + 냉방면적_offsite) * multi + _
Result1.생산E(0).면적당생산량태양열_냉방 + _
Result1.생산E(0).면적당생산량수열_냉방 + _
Result1.생산E(0).면적당생산량지열_냉방 + _
Result1.생산E(0).신재생면적당열생산량_냉방
Dim 에너지생산량_급탕_1차 As Decimal = (급탕면적 + 급탕면적_offsite) * multi + _
Result1.생산E(0).면적당생산량태양열_급탕 + _
Result1.생산E(0).면적당생산량수열_급탕 + _
Result1.생산E(0).면적당생산량지열_급탕 + _
Result1.생산E(0).신재생면적당열생산량_급탕
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 에너지생산량_난방_1차 : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 에너지생산량_냉방_1차 : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = 에너지생산량_급탕_1차 : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = (조명면적 + 조명면적_offsite) * multi : Row += 1
FpSpread1_Sheet1.Cells(Row, DataColumnIndex).Value = (환기면적 + 환기면적_offsite) * multi : Row += 1
End Sub
@@ -1116,6 +1432,382 @@
Return DR(0).M00
End Function
Dim DSR As New DSR
Private Sub MakeGraphTable()
DSR.TReqUse.Clear()
DSR.TReqUse.Merge(DSETR1.TReqUse)
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 = Math.Round(Result1.E요구량(mon).난방면적, 1)
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 = Math.Round(Result1.E요구량(mon).냉방면적, 1)
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
Dim 신재생에너지 As Decimal
Dim 난방에너지 As Decimal
Dim 냉방에너지 As Decimal
Dim 급탕에너지 As Decimal
Dim 조명에너지 As Decimal
Dim 환기에너지 As Decimal
'Dim 합계 As Decimal
Dim 소요량1차_신재생 As Decimal = 0
Dim 소요량_신재생 As Decimal = 0
Dim 단위면적당신재생1차에너지합 As Decimal = 0
Dim 단위면적당신재생1차에너지합offsite As Decimal = 0
Dim 단위면적당1차에너소비량합 As Decimal = 0
Dim 에너지자립률offsite As Decimal = 0
Dim 에너지자립률 As Decimal = 0
Dim Dr2 As DSR.Graph_ReqUseRow
For Gubun As Short = 0 To 4
Select Case Gubun
Case 0 '//1차에너지소요량
Dim Sum As Decimal = (Result1.생산E(0).태양광전력생산량 + Result1.생산E(0).풍력전력생산량 + Result1.생산E(0).신재생열병합전력생산량) / (Result1.일차E소요량(0).난방전력 + Result1.일차E소요량(0).냉방전력 + Result1.일차E소요량(0).급탕전력 + Result1.일차E소요량(0).조명전력 + Result1.일차E소요량(0).환기전력)
Dim Sum_offsite As Decimal = (Result1.생산E(0).태양광전력생산량_offsite + Result1.생산E(0).풍력전력생산량_offsite) / (Result1.일차E소요량(0).난방전력 + Result1.일차E소요량(0).냉방전력 + Result1.일차E소요량(0).급탕전력 + Result1.일차E소요량(0).조명전력 + Result1.일차E소요량(0).환기전력)
Dim 난방 As Decimal = Sum * Result1.일차E소요량(0).난방전력 '//아마게산이안도잇으니 여기값들이 0이잇을거에요.
Dim 냉방 As Decimal = Sum * Result1.일차E소요량(0).냉방전력
Dim 조명 As Decimal = Sum * Result1.일차E소요량(0).조명전력
Dim 급탕 As Decimal = Sum * Result1.일차E소요량(0).급탕전력
Dim 환기 As Decimal = Sum * Result1.일차E소요량(0).환기전력
Dim 난방_offsite As Decimal = Sum_offsite * Result1.일차E소요량(0).난방전력 '//아마게산이안도잇으니 여기값들이 0이잇을거에요.
Dim 냉방_offsite As Decimal = Sum_offsite * Result1.일차E소요량(0).냉방전력
Dim 조명_offsite As Decimal = Sum_offsite * Result1.일차E소요량(0).조명전력
Dim 급탕_offsite As Decimal = Sum_offsite * Result1.일차E소요량(0).급탕전력
Dim 환기_offsite As Decimal = Sum_offsite * Result1.일차E소요량(0).환기전력
Dim 난방면적 As Decimal = 0
Dim 냉방면적 As Decimal = 0
Dim 조명면적 As Decimal = 0
Dim 급탕면적 As Decimal = 0
Dim 환기면적 As Decimal = 0
Dim 난방면적_offsite As Decimal = 0
Dim 냉방면적_offsite As Decimal = 0
Dim 조명면적_offsite As Decimal = 0
Dim 급탕면적_offsite As Decimal = 0
Dim 환기면적_offsite As Decimal = 0
If Result1.사용면적.H <> 0 Then
난방면적 = TOSG(IIf(난방 = 0, 0, 난방 / Result1.사용면적.H))
End If
If Result1.사용면적.C <> 0 Then
냉방면적 = TOSG(IIf(냉방 = 0, 0, 냉방 / Result1.사용면적.C))
End If
If Result1.사용면적.L <> 0 Then
조명면적 = TOSG(IIf(조명 = 0, 0, 조명 / Result1.사용면적.L))
End If
If Result1.사용면적.W <> 0 Then
급탕면적 = TOSG(IIf(급탕 = 0, 0, 급탕 / Result1.사용면적.W))
End If
If Result1.사용면적.V <> 0 Then
환기면적 = TOSG(IIf(환기 = 0, 0, 환기 / Result1.사용면적.V))
End If
If Result1.사용면적.H <> 0 Then
난방면적_offsite = TOSG(IIf(난방_offsite = 0, 0, 난방_offsite / Result1.사용면적.H))
End If
If Result1.사용면적.C <> 0 Then
냉방면적_offsite = TOSG(IIf(냉방_offsite = 0, 0, 냉방_offsite / Result1.사용면적.C))
End If
If Result1.사용면적.L <> 0 Then
조명면적_offsite = TOSG(IIf(조명_offsite = 0, 0, 조명_offsite / Result1.사용면적.L))
End If
If Result1.사용면적.W <> 0 Then
급탕면적_offsite = TOSG(IIf(급탕_offsite = 0, 0, 급탕_offsite / Result1.사용면적.W))
End If
If Result1.사용면적.V <> 0 Then
환기면적_offsite = TOSG(IIf(환기_offsite = 0, 0, 환기_offsite / Result1.사용면적.V))
End If
Dim 전기 As Decimal = 난방면적 + 냉방면적 + 조명면적 + 급탕면적 + 환기면적
Dim 전기_offsite As Decimal = 난방면적_offsite + 냉방면적_offsite + 조명면적_offsite + 급탕면적_offsite + 환기면적_offsite
'//열병합신재생에너지추가 130831 arin
신재생에너지 = Math.Round(-1 * (Result1.생산E(0).면적당생산량태양열 + Result1.생산E(0).신재생면적당열생산량 + Result1.생산E(0).면적당생산량지열 + Result1.생산E(0).면적당생산량수열 + 전기 * 2.75), 1)
Dim 신재생에너지_offsite As Decimal = Math.Round(-1 * (전기_offsite * 2.75), 1)
단위면적당신재생1차에너지합 = -1 * 신재생에너지
단위면적당신재생1차에너지합offsite = -1 * 신재생에너지_offsite
' 신재생에너지 = -1 * (합_열 + 합_전기 * 2.75) ' ' Result1.생산E(0).태양광전력생산량 * 2.75)
' Dim Sum As Decimal = (Result1.생산E(0).태양광전력생산량 * 2.75 + Result1.생산E(0).신재생열병합전력생산량 * 2.75) / (Result1.일차E소요량(0).난방전력 + Result1.일차E소요량(0).냉방전력 + Result1.일차E소요량(0).급탕전력 + Result1.일차E소요량(0).조명전력 + Result1.일차E소요량(0).환기전력)
Dr2 = Me.DSR.Graph_ReqUse.NewGraph_ReqUseRow
Dr2.Gubun = "1차소요량"
Dr2.type = "신재생에너지"
Dr2.Req = 신재생에너지
Me.DSR.Graph_ReqUse.Rows.Add(Dr2)
난방에너지 = Math.Round(Result1.일차E소요량(0).난방면적, 1)
Dr2 = Me.DSR.Graph_ReqUse.NewGraph_ReqUseRow
Dr2.Gubun = "1차소요량"
Dr2.type = "난방에너지"
Dr2.Req = 난방에너지
Me.DSR.Graph_ReqUse.Rows.Add(Dr2)
냉방에너지 = Math.Round(Result1.일차E소요량(0).냉방면적, 1)
Dr2 = Me.DSR.Graph_ReqUse.NewGraph_ReqUseRow
Dr2.Gubun = "1차소요량"
Dr2.type = "냉방에너지"
Dr2.Req = 냉방에너지
Me.DSR.Graph_ReqUse.Rows.Add(Dr2)
급탕에너지 = Math.Round(Result1.일차E소요량(0).급탕면적, 1)
Dr2 = Me.DSR.Graph_ReqUse.NewGraph_ReqUseRow
Dr2.Gubun = "1차소요량"
Dr2.type = "급탕에너지"
Dr2.Req = 급탕에너지
Me.DSR.Graph_ReqUse.Rows.Add(Dr2)
조명에너지 = Math.Round(Result1.일차E소요량(0).조명면적, 1)
Dr2 = Me.DSR.Graph_ReqUse.NewGraph_ReqUseRow
Dr2.Gubun = "1차소요량"
Dr2.type = "조명에너지"
Dr2.Req = 조명에너지
Me.DSR.Graph_ReqUse.Rows.Add(Dr2)
'계산결과!H92*3/계산결과!H27
환기에너지 = Math.Round(Result1.일차E소요량(0).환기면적, 1)
Dr2 = Me.DSR.Graph_ReqUse.NewGraph_ReqUseRow
Dr2.Gubun = "1차소요량"
Dr2.type = "환기에너지"
Dr2.Req = 환기에너지
Me.DSR.Graph_ReqUse.Rows.Add(Dr2)
Dr2 = Me.DSR.Graph_ReqUse.NewGraph_ReqUseRow
Dr2.Gubun = "1차소요량"
Dr2.type = "합계"
Dr2.Req = 난방에너지 + 냉방에너지 + 급탕에너지 + 조명에너지 + 환기에너지
Me.DSR.Graph_ReqUse.Rows.Add(Dr2)
단위면적당1차에너소비량합 = 난방에너지 + 냉방에너지 + 급탕에너지 + 조명에너지 + 환기에너지 + Math.Round(단위면적당신재생1차에너지합, 1)
If 단위면적당1차에너소비량합 <> 0 Then
에너지자립률 = (Math.Round(단위면적당신재생1차에너지합, 1) / 단위면적당1차에너소비량합) * 100
Dim scale As Decimal = 0
If 에너지자립률 >= 20 Then
scale = 1.0
ElseIf 에너지자립률 >= 15 Then
scale = 0.9
ElseIf 에너지자립률 >= 10 Then
scale = 0.8
Else
scale = 0.7
End If
에너지자립률offsite = (Math.Round(단위면적당신재생1차에너지합offsite * scale, 1) / 단위면적당1차에너소비량합) * 100
에너지자립률 += 에너지자립률offsite
Else
에너지자립률 = 0
에너지자립률offsite = 0
End If
Case 1 '//에너지소요량
Dim Sum As Decimal = (Result1.생산E(0).태양광전력생산량 + Result1.생산E(0).풍력전력생산량 + Result1.생산E(0).신재생열병합전력생산량) / (Result1.일차E소요량(0).난방전력 + Result1.일차E소요량(0).냉방전력 + Result1.일차E소요량(0).급탕전력 + Result1.일차E소요량(0).조명전력 + Result1.일차E소요량(0).환기전력)
Dim 난방 As Decimal = Sum * Result1.일차E소요량(0).난방전력 '//아마게산이안도잇으니 여기값들이 0이잇을거에요.
Dim 냉방 As Decimal = Sum * Result1.일차E소요량(0).냉방전력
Dim 조명 As Decimal = Sum * Result1.일차E소요량(0).조명전력
Dim 급탕 As Decimal = Sum * Result1.일차E소요량(0).급탕전력
Dim 환기 As Decimal = Sum * Result1.일차E소요량(0).환기전력
Dim 난방면적 As Decimal = 0
Dim 냉방면적 As Decimal = 0
Dim 조명면적 As Decimal = 0
Dim 급탕면적 As Decimal = 0
Dim 환기면적 As Decimal = 0
If Result1.사용면적.H <> 0 Then
난방면적 = TOSG(IIf(난방 = 0, 0, 난방 / Result1.사용면적.H))
End If
If Result1.사용면적.C <> 0 Then
냉방면적 = TOSG(IIf(냉방 = 0, 0, 냉방 / Result1.사용면적.C))
End If
If Result1.사용면적.L <> 0 Then
조명면적 = TOSG(IIf(조명 = 0, 0, 조명 / Result1.사용면적.L))
End If
If Result1.사용면적.W <> 0 Then
급탕면적 = TOSG(IIf(급탕 = 0, 0, 급탕 / Result1.사용면적.W))
End If
If Result1.사용면적.V <> 0 Then
환기면적 = TOSG(IIf(환기 = 0, 0, 환기 / Result1.사용면적.V))
End If
Dim 면적 As Decimal = 난방면적 + 냉방면적 + 조명면적 + 급탕면적 + 환기면적
'=-SUM(계산결과!G108:G109)-계산결과!F42-계산결과!F48-계산결과!F51-계산결과!F56-계산결과!F59
'F42=IF($G$15=0,0,F38/$G$15)
'f38=(G104)/(SUM(H76:S76)+SUM(H85:S85)+SUM(H93:S93)+SUM(H97:S97)+SUM(H101:S101))*SUM(H76:S76)
'g15=난방면적
'f48=IF($G$20=0,0,F44/$G$20)
'f44=(G104)/(SUM(H76:S76)+SUM(H85:S85)+SUM(H93:S93)+SUM(H97:S97)+SUM(H101:S101))*SUM(H85:S85)
'g20=냉방면적
'//열병합신재생에너지추가 130831 arin
신재생에너지 = Math.Round(-1 * (Result1.생산E(0).면적당생산량태양열 + Result1.생산E(0).신재생면적당열생산량 + Result1.생산E(0).면적당생산량지열 + Result1.생산E(0).면적당생산량수열) - 면적, 1)
Dr2 = Me.DSR.Graph_ReqUse.NewGraph_ReqUseRow
Dr2.Gubun = "소요량"
Dr2.type = "신재생에너지"
Dr2.Req = 신재생에너지
Me.DSR.Graph_ReqUse.Rows.Add(Dr2)
난방에너지 = Math.Round(Result1.E소요량(0).난방면적, 1)
Dr2 = Me.DSR.Graph_ReqUse.NewGraph_ReqUseRow
Dr2.Gubun = "소요량"
Dr2.type = "난방에너지"
Dr2.Req = 난방에너지
Me.DSR.Graph_ReqUse.Rows.Add(Dr2)
냉방에너지 = Math.Round(Result1.E소요량(0).냉방면적, 1)
Dr2 = Me.DSR.Graph_ReqUse.NewGraph_ReqUseRow
Dr2.Gubun = "소요량"
Dr2.type = "냉방에너지"
Dr2.Req = 냉방에너지
Me.DSR.Graph_ReqUse.Rows.Add(Dr2)
급탕에너지 = Math.Round(Result1.E소요량(0).급탕면적, 1)
Dr2 = Me.DSR.Graph_ReqUse.NewGraph_ReqUseRow
Dr2.Gubun = "소요량"
Dr2.type = "급탕에너지"
Dr2.Req = 급탕에너지
Me.DSR.Graph_ReqUse.Rows.Add(Dr2)
조명에너지 = Math.Round(Result1.E소요량(0).조명면적, 1)
Dr2 = Me.DSR.Graph_ReqUse.NewGraph_ReqUseRow
Dr2.Gubun = "소요량"
Dr2.type = "조명에너지"
Dr2.Req = 조명에너지
Me.DSR.Graph_ReqUse.Rows.Add(Dr2)
환기에너지 = Math.Round(Result1.E소요량(0).환기면적, 1)
Dr2 = Me.DSR.Graph_ReqUse.NewGraph_ReqUseRow
Dr2.Gubun = "소요량"
Dr2.type = "환기에너지"
Dr2.Req = 환기에너지
Me.DSR.Graph_ReqUse.Rows.Add(Dr2)
Dr2 = Me.DSR.Graph_ReqUse.NewGraph_ReqUseRow
Dr2.Gubun = "소요량"
Dr2.type = "합계"
Dr2.Req = 난방에너지 + 냉방에너지 + 급탕에너지 + 조명에너지 + 환기에너지
Me.DSR.Graph_ReqUse.Rows.Add(Dr2)
Case 2 '//에너지요구량
Case 3 '//co2발생량
신재생에너지 = 0
Dr2 = Me.DSR.Graph_ReqUse.NewGraph_ReqUseRow
Dr2.Gubun = "CO2발생량"
Dr2.type = "신재생에너지"
Dr2.Req = 신재생에너지
Me.DSR.Graph_ReqUse.Rows.Add(Dr2)
난방에너지 = Math.Round(Result1.Co2발생량(0).난방면적, 1)
Dr2 = Me.DSR.Graph_ReqUse.NewGraph_ReqUseRow
Dr2.Gubun = "CO2발생량"
Dr2.type = "난방에너지"
Dr2.Req = 난방에너지
Me.DSR.Graph_ReqUse.Rows.Add(Dr2)
냉방에너지 = Math.Round(Result1.Co2발생량(0).냉방면적, 1)
Dr2 = Me.DSR.Graph_ReqUse.NewGraph_ReqUseRow
Dr2.Gubun = "CO2발생량"
Dr2.type = "냉방에너지"
Dr2.Req = 냉방에너지
Me.DSR.Graph_ReqUse.Rows.Add(Dr2)
급탕에너지 = Math.Round(Result1.Co2발생량(0).급탕면적, 1)
Dr2 = Me.DSR.Graph_ReqUse.NewGraph_ReqUseRow
Dr2.Gubun = "CO2발생량"
Dr2.type = "급탕에너지"
Dr2.Req = 급탕에너지
Me.DSR.Graph_ReqUse.Rows.Add(Dr2)
조명에너지 = Math.Round(Result1.Co2발생량(0).조명면적, 1)
Dr2 = Me.DSR.Graph_ReqUse.NewGraph_ReqUseRow
Dr2.Gubun = "CO2발생량"
Dr2.type = "조명에너지"
Dr2.Req = 조명에너지
Me.DSR.Graph_ReqUse.Rows.Add(Dr2)
'계산결과!H92*3/계산결과!H27
환기에너지 = Math.Round(Result1.Co2발생량(0).환기면적, 1)
Dr2 = Me.DSR.Graph_ReqUse.NewGraph_ReqUseRow
Dr2.Gubun = "CO2발생량"
Dr2.type = "환기에너지"
Dr2.Req = 환기에너지
Me.DSR.Graph_ReqUse.Rows.Add(Dr2)
Dr2 = Me.DSR.Graph_ReqUse.NewGraph_ReqUseRow
Dr2.Gubun = "CO2발생량"
Dr2.type = "합계"
Dr2.Req = 난방에너지 + 냉방에너지 + 급탕에너지 + 조명에너지 + 환기에너지
Me.DSR.Graph_ReqUse.Rows.Add(Dr2)
Case 4 '//1차에너지소요량(+계수) + 131020
End Select
Next
End Sub

File diff suppressed because it is too large Load Diff