183 lines
		
	
	
		
			8.2 KiB
		
	
	
	
		
			VB.net
		
	
	
	
	
	
			
		
		
	
	
			183 lines
		
	
	
		
			8.2 KiB
		
	
	
	
		
			VB.net
		
	
	
	
	
	
| ''' <remarks>공용으로 사용되는 값을을 이곳에서 설정한다</remarks>
 | |
| Public Class CSharedOD
 | |
| 
 | |
|     Dim T As String = "공용코드"
 | |
| 
 | |
|     Public ReadOnly Property 기상데이터() As DS.tbl_weather_odRow
 | |
|         Get
 | |
| 
 | |
|             If DSET1.tbl_Desc.Rows.Count = 0 Then
 | |
|                 MsgBox("건물개요데이터가 없습니다.", MsgBoxStyle.Critical, "오류")
 | |
|                 Return Nothing
 | |
|             Else
 | |
|                 Dim 지역코드 As String = DSET1.tbl_Desc.Rows(0)("buildarea").ToString
 | |
|                 If 지역코드 = "" Then
 | |
|                     MsgBox("지역코드가 설정되어있지 않습니다", MsgBoxStyle.Critical, "확인")
 | |
|                     Return Nothing
 | |
|                 End If
 | |
| 
 | |
|                 If 지역코드 = "0" Then
 | |
|                     Return Nothing
 | |
|                 End If
 | |
| 
 | |
|                 '//설정된 지역값은 weather_group 의 정보이다. 이 값에서 area 를 취한것이 실제 계산에 적용할 값이다.
 | |
|                 If DSET1.weather_group.Select("code='" + 지역코드 + "'").Length < 1 Then
 | |
|                     MsgBox("지역코드({0}) 값이 존재하지 않는 코드입니다", MsgBoxStyle.Critical, "확인")
 | |
|                     Return Nothing
 | |
|                 End If
 | |
| 
 | |
|                 Dim 적용지역명 As String = DSET1.weather_group.Select("code='" + 지역코드 + "'")(0)("area").ToString()
 | |
|                 If String.IsNullOrEmpty(적용지역명) Then
 | |
|                     MsgBox("현재 선택된 지역에는 기상정보가 설정되지 않았습니다" + vbCrLf +
 | |
|                             "상위/하위 지역 을 다시 확인하시기 바랍니다", MsgBoxStyle.Critical, "확인")
 | |
|                     Return Nothing
 | |
|                 End If
 | |
| 
 | |
| 
 | |
|                 Dim 지역데이터() As DataRow = DSET1.tbl_weather_od.Select("건물위치 ='" & 적용지역명 & "'")
 | |
|                 If 지역데이터.GetUpperBound(0) = -1 Then
 | |
|                     MsgBox("건물개요의 지역정보(" + 적용지역명 + ")를 찾을 수 없습니다." + vbCrLf + "지역을 다시 선택하세요", MsgBoxStyle.Critical, "오류")
 | |
|                     Return Nothing
 | |
|                 Else
 | |
|                     Return 지역데이터(0)
 | |
|                 End If
 | |
| 
 | |
|             End If
 | |
|         End Get
 | |
|     End Property
 | |
|     ''' <summary>
 | |
|     ''' 오류가있는가?
 | |
|     ''' </summary>
 | |
|     Public IsError As Boolean = False
 | |
|     ''' <summary>
 | |
|     ''' 주6일근무제로 변경
 | |
|     ''' </summary>
 | |
|     ''' <remarks></remarks>
 | |
|     Public d_full() As Decimal
 | |
|     ''' <summary>
 | |
|     ''' 외기온도값
 | |
|     ''' </summary>
 | |
|     Public theta_e(12) As Decimal
 | |
|     ''' <summary>
 | |
|     ''' 평균일사값이 들어있다.
 | |
|     ''' </summary>
 | |
|     Public I_s(8, 12) As Decimal
 | |
|     ''' <summary>
 | |
|     ''' 외기온도 난방기(최대)
 | |
|     ''' </summary>
 | |
|     Public theta_e_min As Decimal
 | |
|     ''' <summary>
 | |
|     ''' 외기온도 냉방기(최대)
 | |
|     ''' </summary>
 | |
|     Public theta_e_max As Decimal
 | |
| 
 | |
|     Public F_sh_gl(7, 11) As Decimal '//2010.02.26 차양감소계수
 | |
| 
 | |
|     ''' <summary>
 | |
|     ''' 클래스 생성자
 | |
|     ''' </summary>
 | |
|     Public Sub New()
 | |
|         '//지정된 존에 해당하는 지역정보를 가지고옴(현재기상정보가 존에 할당되어있어서 그렇다)
 | |
|         '//1번째 존에 지역이 설정된걸로 간주한다
 | |
| 
 | |
|         If 기상데이터 Is Nothing Then Return
 | |
| 
 | |
|         'Dr신재생 = CType(DSET1.tbl_new.Rows(0), DS.tbl_newRow)
 | |
| 
 | |
|         d_full = New Decimal() {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} '우선 휴일없는 것으로 설정
 | |
|         'd_op = new decimal() {0, 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31} '우선 휴일없는 것으로 설정  각달의 일수 ##### 02/21 삭제됨
 | |
|         'd_we = new decimal() {0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0} ' 우선 휴일없는 것으로 설정
 | |
| 
 | |
|         '//최소외기온도 설정
 | |
|         If Not 기상데이터.Is난방기Null() Then
 | |
|             theta_e_min = TOSG(T, 기상데이터.난방기)
 | |
|         Else
 | |
|             MsgBox("최소외기온도 확인불가")
 | |
|             theta_e_min = TOSG(T, 기상데이터.난방기)
 | |
|         End If
 | |
| 
 | |
|         If Not 기상데이터.Is냉방기Null() Then
 | |
|             theta_e_max = TOSG(T, 기상데이터.냉방기)
 | |
|         Else
 | |
|             MsgBox("최대외기온도 확인불가")
 | |
|             theta_e_max = 0
 | |
|         End If
 | |
| 
 | |
|         '//지역의 외기온도값
 | |
|         theta_e(0) = 0
 | |
|         theta_e(1) = TOSG(T, 기상데이터.m01)
 | |
|         theta_e(2) = TOSG(T, 기상데이터.m02)
 | |
|         theta_e(3) = TOSG(T, 기상데이터.m03)
 | |
|         theta_e(4) = TOSG(T, 기상데이터.m04)
 | |
|         theta_e(5) = TOSG(T, 기상데이터.m05)
 | |
|         theta_e(6) = TOSG(T, 기상데이터.m06)
 | |
|         theta_e(7) = TOSG(T, 기상데이터.m07)
 | |
|         theta_e(8) = TOSG(T, 기상데이터.m08)
 | |
|         theta_e(9) = TOSG(T, 기상데이터.m09)
 | |
|         theta_e(10) = TOSG(T, 기상데이터.m10)
 | |
|         theta_e(11) = TOSG(T, 기상데이터.m11)
 | |
|         theta_e(12) = TOSG(T, 기상데이터.m12)
 | |
| 
 | |
|         '//월별평균일사(기상데이터) 9개를 가져온다. 그중 최대부하값만 취한다.
 | |
|         '//현재 기상ROW의 CODE 와같은 Weather ilsa 데이터를 가져온다.
 | |
|         '//엑셀의 0 to 8 은 9개의 평균일사 데이터를 의미한다
 | |
|         Dim DRow일사() As DS.weather_ilsa_odRow = CType(DSET1.weather_ilsa_od.Select("pcode='" & 기상데이터.code & "'", "code"), DS.weather_ilsa_odRow())
 | |
|         If DRow일사.GetUpperBound(0) = -1 Then
 | |
|             MsgBox("월별평균일사데이터중 " & 기상데이터.code & "에 해당되는 지역이 없습니다", MsgBoxStyle.Critical, "CShared")
 | |
|             Me.IsError = True
 | |
|         Else
 | |
|             'ReDim I_s(DR일사.GetUpperBound(0), 12)
 | |
|             For i As Short = 0 To 8 'DRow일사.GetUpperBound(0) <- 이식을 사용하려했으나 45도용데이터떄문에 사용못함
 | |
|                 Dim DR일사 As DS.weather_ilsa_odRow = DRow일사(i)
 | |
|                 I_s(i, 0) = TOSG(T, DR일사.최대부하)
 | |
|                 I_s(i, 1) = TOSG(T, DR일사.m01)
 | |
|                 I_s(i, 2) = TOSG(T, DR일사.m02)
 | |
|                 I_s(i, 3) = TOSG(T, DR일사.m03)
 | |
|                 I_s(i, 4) = TOSG(T, DR일사.m04)
 | |
|                 I_s(i, 5) = TOSG(T, DR일사.m05)
 | |
|                 I_s(i, 6) = TOSG(T, DR일사.m06)
 | |
|                 I_s(i, 7) = TOSG(T, DR일사.m07)
 | |
|                 I_s(i, 8) = TOSG(T, DR일사.m08)
 | |
|                 I_s(i, 9) = TOSG(T, DR일사.m09)
 | |
|                 I_s(i, 10) = TOSG(T, DR일사.m10)
 | |
|                 I_s(i, 11) = TOSG(T, DR일사.m11)
 | |
|                 I_s(i, 12) = TOSG(T, DR일사.m12)
 | |
|             Next
 | |
|         End If
 | |
| 
 | |
|         '=============================================================================2010.02.26 추가
 | |
|         Dim DRow차양() As DS.weather_cha_odRow = CType(DSET1.weather_cha_od.Select("pcode='" & 기상데이터.code & "'", "code"), DS.weather_cha_odRow())
 | |
|         If DRow차양.GetUpperBound(0) = -1 Then
 | |
|             MsgBox("월별차양감소데이터중 " & 기상데이터.code & "에 해당되는 지역이 없습니다", MsgBoxStyle.Critical, "CShared")
 | |
|             Me.IsError = True
 | |
|         Else
 | |
|             '//차양감소계수 추가
 | |
|             For i As Short = 0 To 7 '총 8개의 종류가있따.
 | |
|                 Dim DR차양 As DS.weather_cha_odRow = DRow차양(i)
 | |
|                 F_sh_gl(i, 0) = TOSG(T, DR차양.m01)
 | |
|                 F_sh_gl(i, 1) = TOSG(T, DR차양.m02)
 | |
|                 F_sh_gl(i, 2) = TOSG(T, DR차양.m03)
 | |
|                 F_sh_gl(i, 3) = TOSG(T, DR차양.m04)
 | |
|                 F_sh_gl(i, 4) = TOSG(T, DR차양.m05)
 | |
|                 F_sh_gl(i, 5) = TOSG(T, DR차양.m06)
 | |
|                 F_sh_gl(i, 6) = TOSG(T, DR차양.m07)
 | |
|                 F_sh_gl(i, 7) = TOSG(T, DR차양.m08)
 | |
|                 F_sh_gl(i, 8) = TOSG(T, DR차양.m09)
 | |
|                 F_sh_gl(i, 9) = TOSG(T, DR차양.m10)
 | |
|                 F_sh_gl(i, 10) = TOSG(T, DR차양.m11)
 | |
|                 F_sh_gl(i, 11) = TOSG(T, DR차양.m12)
 | |
|             Next
 | |
|         End If
 | |
| 
 | |
|         '=============================================================================2010.02.26 추가
 | |
|         'For i = 0 To 7
 | |
|         '    For j = 0 To 11
 | |
|         '        F_sh_gl(i, j) = Worksheets("기상데이타").Range("차양감소계수1").Offset(i * 13 + j, i_count_location - 1)
 | |
|         '    Next
 | |
|         'Next
 | |
| 
 | |
|     End Sub
 | |
| 
 | |
| 
 | |
| End Class
 | 
