initial commit

This commit is contained in:
Chikyun
2019-10-24 21:24:21 +09:00
commit 376f7d9de0
544 changed files with 295019 additions and 0 deletions

BIN
ArinWarev1/001_B.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.2 KiB

BIN
ArinWarev1/002.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 345 KiB

BIN
ArinWarev1/002_S.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 1.1 KiB

BIN
ArinWarev1/9-8.ico Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 46 KiB

View File

@@ -0,0 +1,43 @@
Namespace My
Class MyApplication
'Startup: Raised when the application starts, before the startup form is created.
'Shutdown: Raised after all application forms are closed. This event is not raised if the application is terminating abnormally.
'UnhandledException: Raised if the application encounters an unhandled exception.
'StartupNextInstance: Raised when launching a single-instance application and the application is already active.
'NetworkAvailabilityChanged: Raised when the network connection is connected or disconnected.
''' <summary>
''' Update the network connectivity status on the main form each time the connection status changes.
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
''' <summary>
''' Include logic here that should be performed before any forms are loaded
''' </summary>
''' <param name="sender"></param>
''' <param name="e"></param>
''' <remarks></remarks>
''' <summary>
''' Update the status strip to denote the current network connection status
''' </summary>
''' <param name="connected"></param>
''' <remarks></remarks>
Private Sub MyApplication_UnhandledException(sender As Object, e As Microsoft.VisualBasic.ApplicationServices.UnhandledExceptionEventArgs) Handles Me.UnhandledException
Dim M As New System.Text.StringBuilder
M.AppendLine("처리되지 않은 오류가 발생했습니다")
M.AppendLine("에러메세지 : " + e.Exception.Message)
MsgBox(M.ToString, MsgBoxStyle.Critical, "확인")
e.ExitApplication = True
End Sub
End Class
End Namespace

BIN
ArinWarev1/Calculator.zip Normal file

Binary file not shown.

View File

@@ -0,0 +1,830 @@
Public Class CAirHandling
''' <summary>
''' 최대냉/난반후하 계산식인거 같다.
''' </summary>
''' <param name="i_HeatCool"></param>
''' <remarks></remarks>
Public Overridable Sub Calc_Max_Power(ByVal i_HeatCool As Integer)
'Dim i_count_zone As Integer, i_count_AHU As Integer, i_count_profile As Integer
Dim c_p_L As Decimal, rho_L As Decimal
Dim theta_i_c As Decimal, theta_ABL_wi As Decimal, theta_ABL_so As Decimal, theta_AUL_wi As Decimal, theta_AUL_so As Decimal, theta_ZUL_wi As Decimal, theta_ZUL_so As Decimal
Dim x_ABL_wi As Decimal, x_ABL_so As Decimal, x_AUL_wi As Decimal, x_AUL_so As Decimal, x_ZUL_so As Decimal
Dim h_ABL_wi As Decimal, h_ABL_so As Decimal, h_AUL_wi As Decimal, h_AUL_so As Decimal, h_ZUL_wi As Decimal, h_ZUL_so As Decimal
Dim Delta_h_WRG As Decimal, V_dot_mech_m As Decimal, V_dot_star As Decimal, theta_c_mech_min As Decimal, ps_theta_ZUL_so As Decimal
Dim Q_dot_h_star As Decimal, Q_dot_c_star As Decimal, Q_dot_st_star As Decimal
Dim Q_dot_h_max As Decimal, Q_dot_c_max As Decimal
Dim theta_e_min As Decimal, theta_e_max As Decimal, V_A As Decimal, theta_i_h As Decimal, theta_i_c_soll As Decimal
Dim A_B As Decimal, c_p_Lrho_L As Decimal
theta_i_c = 24
theta_i_c_soll = 26
theta_i_h = 20
c_p_L = 1.006 'kJ/kg K
rho_L = 1.204 'kg/m3 (20도 1기압상태)
c_p_Lrho_L = 0.34 'Wh/m3 K
theta_ABL_wi = 22
x_ABL_wi = 0.008 '편차가 없는 습도요구 적용
h_ABL_wi = 42.6 '편차가 없는 습도요구 적용
theta_ABL_so = 26
x_ABL_so = 0.008 '편차가 없는 습도요구 적용
h_ABL_so = 46.7 '편차가 없는 습도요구 적용
theta_AUL_wi = -12
x_AUL_wi = 0.001
h_AUL_wi = -9.6
theta_AUL_so = 32
x_AUL_so = 0.012
h_AUL_so = 63
theta_e_min = -11.3
theta_e_max = 31.5
'Dim dr공조처리 As DS.tbl_kongjoRow
For Each Dr존 As DS.tbl_zoneRow In DSET.tbl_zone.Select("code<>'0'", "code")
Dim dr최대냉난방부하 As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Dr존.code & "'")(0), DSR.최대냉난방부하Row)
If Dr존.냉난방공조 = "냉방" Or Dr존.냉난방공조 = "냉난방" Then
A_B = TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) ' Worksheets("입력존").Range("전용면적1").Offset(0, i_count_zone - 1)
Dim dr프로필 As DS.tbl_profileRow = CType(DSET.tbl_profile.Select("code='" & Dr존.프로필 & "' and code <> '0'")(0), DS.tbl_profileRow)
V_A = TOSG(dr프로필.최소도입외기량) * A_B ' Worksheets("설정조건").Range("최소도입외기량1").Offset(0, i_count_profile) * A_B
For Each dr공조처리 As DS.tbl_kongjoRow In DSET.tbl_kongjo.Select("code='" & Dr존.냉난방공조처리시스템 & "' and code <>'0'", "code")
'//아래두코드는 상단코드로 변경
'If Dr존.냉난방공조처리시스템 <> "" Then ' Worksheets("입력존").Range("입력난방공급기기1").Offset(2, i_count_zone - 1) <> "" Then
'If Dr존.냉난방공조처리시스템 = dr공조처리.code Then ' Worksheets("입력존").Range("입력난방공급기기1").Offset(2, i_count_zone - 1) = Worksheets("공조처리시스템").Range("공조기기1").Offset(0, i_count_AHU - 1) Then
' 공조기 최대 가열성능
If i_HeatCool = 1 Then
If Dr존.냉난방공조 = "냉난방" Then ' Worksheets("입력존").Range("공조존2").Offset(0, i_count_zone - 1) = "냉난방" Then
Select Case dr공조처리.열교환기유형.Trim ' Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1)
Case "열회수불가" '"열회수불가"
Delta_h_WRG = 0 '(3.2.5-54) 열 회수기 없음
Case "현열교환" '현열교환"
Delta_h_WRG = TOSG(dr공조처리.열회수율) * c_p_L * (theta_ABL_wi - theta_AUL_wi) '(3.2.5-55) 순수 현열 회수기 '================2010.03.22 수정
Case "전열교환" '전열교환"
Delta_h_WRG = TOSG(dr공조처리.열회수율) * c_p_L * (h_ABL_wi - h_AUL_wi) '(3.2.5-56) 현열 및 습기 회수기 '================2010.03.22 수정
End Select
theta_ZUL_wi = TOSG(dr공조처리.설정치난방) ' Worksheets("공조처리시스템").Range("공조방식1").Offset(1, i_count_AHU - 1) 'theta_h_mech_min '(도표 3-3)
'h_ZUL_wi = 1.01 * theta_ZUL_wi + 0.001 * (2501 + 1.86 * theta_ZUL_wi) '(3.2.5-38) 습도요구 없음
'h_ZUL_wi = 1.01 * theta_ZUL_wi + 0.006 * (2501 + 1.86 * theta_ZUL_wi) '(3.2.5-42) 편차가 있는 습도요구
h_ZUL_wi = TOSG(1.01 * theta_ZUL_wi + 0.008 * (2501 + 1.86 * theta_ZUL_wi)) '(3.2.5-48) 편차가 없는 습도요구만 우선 적용
Q_dot_h_max = TOSG(dr최대냉난방부하.최대난방기기부하) ' Worksheets("0").Range("최대난방부하1").Offset(0, i_count_zone - 1)
'--------------------------------------------------------------------------------------------------2010.02.22 수정
If (TOSG(dr공조처리.설정치난방) - theta_i_h) > 0 Then
V_dot_mech_m = 1000 * Q_dot_h_max / (c_p_Lrho_L * (TOSG(dr공조처리.설정치난방) - theta_i_h))
Else
V_dot_mech_m = 0
End If
'--------------------------------------------------------------------------------------------------2010.02.22 수정
V_dot_star = V_dot_mech_m
If dr공조처리.열교환기유형 = "전열교환" Then ' Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1) = "전열교환" Then
Q_dot_h_star = V_dot_star * rho_L * (h_ZUL_wi - h_AUL_wi - Delta_h_WRG) / 3600 '(3.2.5-57) 증기가습 있음 - 열교환방식으로 수정 추후 검토
Else
Q_dot_h_star = V_dot_star * rho_L * (c_p_L * (theta_ZUL_wi - theta_AUL_wi) - Delta_h_WRG) / 3600 '(3.2.5-58) 증기가습 없음 - 열교환방식으로 수정 추후 검토
End If
dr최대냉난방부하.최대가열성능 = Q_dot_h_star
'Worksheets("0").Range("최대난방부하1").Offset(3, i_count_zone - 1) = Q_dot_h_star
If Q_dot_h_max > (c_p_Lrho_L * (theta_i_h - theta_e_min) * V_A) / 1000 Then
dr최대냉난방부하.최대난방실내부하 = (Q_dot_h_max - (c_p_Lrho_L * (theta_i_h - theta_e_min) * V_A) / 1000)
'Worksheets("0").Range("최대난방부하1").Offset(1, i_count_zone - 1) = Q_dot_h_max - (c_p_Lrho_L * (theta_i_h - theta_e_min) * V_A) / 1000
Else
dr최대냉난방부하.최대난방실내부하 = 0
'Worksheets("0").Range("최대난방부하1").Offset(1, i_count_zone - 1) = 0
End If
End If
'공조기 최대 가습성능
'h_ZUL_wi = 1.01 * theta_ZUL_wi + 0.001 * (2501 + 1.86 * theta_ZUL_wi) '(3.2.5-38) 습도요구 없음
'h_ZUL_wi = 1.01 * theta_ZUL_wi + 0.006 * (2501 + 1.86 * theta_ZUL_wi) '(3.2.5-42) 편차가 있는 습도요구
h_ZUL_wi = TOSG(1.01 * theta_ZUL_wi + 0.008 * (2501 + 1.86 * theta_ZUL_wi)) '(3.2.5-48) 편차가 없는 습도 요구
Select Case dr공조처리.열교환기유형.Trim ' Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1)
Case "열회수불가" '열회수불가"
Delta_h_WRG = 0 '(3.2.5-63) 열 회수기 없음
Case "현열교환'" '현열교환"
Delta_h_WRG = 2501 * TOSG(dr공조처리.열회수율) * (x_ABL_wi - x_AUL_wi) '(3.2.5-64) 현열 및 습기 회수기 '================2010.03.22 수정
Case "전열교환" '전열교환"
Delta_h_WRG = 2501 * TOSG(dr공조처리.열회수율) * (x_ABL_wi - x_AUL_wi) '(3.2.5-64) 현열 및 습기 회수기 '================2010.03.22 수정
End Select
Q_dot_st_star = V_dot_star * rho_L * (h_ZUL_wi - h_AUL_wi - Delta_h_WRG) / 3600 '(3.2.5-65)
dr최대냉난방부하.최대가습성능 = Q_dot_st_star
dr최대냉난방부하.공조풍량 = V_dot_star
'Worksheets("0").Range("최대가습성능1").Offset(0, i_count_zone - 1) = Q_dot_st_star
'Worksheets("0").Range("최대가습성능1").Offset(1, i_count_zone - 1) = V_dot_star '공조풍량
Else
' 공조기 최대 냉각성능
theta_c_mech_min = TOSG(dr공조처리.설정치냉방) ' Worksheets("공조처리시스템").Range("공조방식1").Offset(2, i_count_AHU - 1)
theta_ZUL_so = theta_c_mech_min '(도표 3.3)
ps_theta_ZUL_so = TOSG(Math.Exp(23.621 - 4065 / (theta_ZUL_so + 236.2506))) '(3.2.5-37) 0.01C<=theta<=80C
x_ZUL_so = TOSG(0.5911 / (100000 / ps_theta_ZUL_so - 0.95)) '(3.2.5-41)
'h_ZUL_so = 1.01 * theta_ZUL_so + 0.012 * (2501 + 1.86 * theta_ZUL_so) '(3.2.5-39) 습도요구 없음 ps_theta_ZUL_so>1892Pa
'h_ZUL_so = 1.01 * theta_ZUL_so + x_ZUL_so * (2501 + 1.86 * theta_ZUL_so) '(3.2.5-40) 습도요구 없음 ps_theta_ZUL_so<=1892Pa
'h_ZUL_so = 1.01 * theta_ZUL_so + 0.011 * (2501 + 1.86 * theta_ZUL_so) '(3.2.5-43) 편차가 있는 습도요구 ps_theta_ZUL_so>1737Pa
'h_ZUL_so = 1.01 * theta_ZUL_so + x_ZUL_so * (2501 + 1.86 * theta_ZUL_so) '(3.2.5-44) 편차가 있는 습도요구 ps_theta_ZUL_so<=1737Pa
If ps_theta_ZUL_so > 1269 Then
h_ZUL_so = TOSG(1.01 * theta_ZUL_so + 0.008 * (2501 + 1.86 * theta_ZUL_so)) '(3.2.5-43) 편차가 없는 습도요구 ps_theta_ZUL_so>1269Pa
Else
h_ZUL_so = TOSG(1.01 * theta_ZUL_so + x_ZUL_so * (2501 + 1.86 * theta_ZUL_so)) '(3.2.5-44) 편차가 없는 습도요구 ps_theta_ZUL_so<=1269Pa
End If
Select Case dr공조처리.열교환기유형.Trim ' Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1)
Case "열회수불가" '열회수불가"
Delta_h_WRG = 0 '(3.2.5-59) 열 회수기 없음
Case "현열교환" '현열교환"
Delta_h_WRG = TOSG(dr공조처리.열회수율냉) * c_p_L * (theta_AUL_so - theta_ABL_so) '(3.2.5-55) 순수 현열 회수기 '================2010.03.22 수정, =============2010.04.14 수정
Case "전열교환" '전열교환"
Delta_h_WRG = TOSG(dr공조처리.열회수율냉) * c_p_L * (h_AUL_so - h_ABL_so) '(3.2.5-56) 현열 및 습기 회수기 '================2010.03.22 수정, =============2010.04.14 수정
End Select
Q_dot_c_max = TOSG(dr최대냉난방부하.최대냉방기기부하) ' Worksheets("0").Range("최대냉방부하1").Offset(0, i_count_zone - 1)
'--------------------------------------------------------------------------------------------------2010.02.22 수정
If (theta_i_c - TOSG(dr공조처리.설정치냉방)) > 0 Then
V_dot_star = 1000 * Q_dot_c_max / (c_p_Lrho_L * (theta_i_c - TOSG(dr공조처리.설정치냉방)))
Else
V_dot_star = 0
End If
'--------------------------------------------------------------------------------------------------2010.02.22 수정
Q_dot_c_star = V_dot_star * rho_L * (h_AUL_so - h_ZUL_so - Delta_h_WRG) / 3600 '(3.2.5-62)
dr최대냉난방부하.최대냉각성능 = Q_dot_c_star
dr최대냉난방부하.최대냉방실내부하 = Q_dot_c_max - (c_p_Lrho_L * (theta_e_max - theta_i_c_soll) * V_A) / 1000
'Worksheets("0").Range("최대냉방부하1").Offset(3, i_count_zone - 1) = Q_dot_c_star
'Worksheets("0").Range("최대냉방부하1").Offset(1, i_count_zone - 1) = Q_dot_c_max - (c_p_Lrho_L * (theta_e_max - theta_i_c_soll) * V_A) / 1000
End If
'End If
'End If
Next
Else
dr최대냉난방부하.최대난방실내부하 = 0
dr최대냉난방부하.최대냉방실내부하 = 0
dr최대냉난방부하.최대가열성능 = 0
dr최대냉난방부하.최대냉각성능 = 0
dr최대냉난방부하.최대가습성능 = 0
dr최대냉난방부하.공조풍량 = 0
End If
Next
End Sub
Public Overridable Sub Calc_AirHandling(ByVal i_count_month As Integer, ByVal theta_e As Decimal) ' ByVal d_mth As Integer,
Dim A_B As Decimal
Dim x_ABL_wi As Decimal, h_ABL_wi As Decimal, x_ABL_so As Decimal, h_ABL_so As Decimal, x_AUL_wi As Decimal, h_AUL_wi As Decimal, x_AUL_so As Decimal, h_AUL_so As Decimal
Dim c_p_L As Decimal, rho_L As Decimal, f_p As Decimal, rho_cl As Decimal
Dim q_st_18_12h_m As Decimal, q_st_12h_m As Decimal, q_h_12h_m As Decimal, q_c_12h_m As Decimal, q_h_m As Decimal, q_c_m As Decimal, q_st_m As Decimal
Dim eta_ZUL As Decimal, eta_ABL As Decimal, f_h_H As Decimal, f_h_C As Decimal, f_h_st As Decimal
Dim Delta_p_star_ZUL As Decimal, Delta_p_star_ABL As Decimal, Delta_h_WRG As Decimal
Dim Q_V_E_ZUL_m As Decimal, Q_V_E_ABL_m As Decimal, Q_c_b As Decimal, Q_h_b As Decimal, Q_vh_b As Decimal, Q_vc_b As Decimal, Q_vm_b As Decimal
Dim t_V_mech_m As Decimal, theta_V_mech_m As Decimal, theta_hc_m As Decimal
Dim V_dot_mech_m As Decimal, V_dot_mech_max As Decimal, V_dot_A As Decimal, V_dot_z As Decimal, P_V_ZUL_m As Decimal, P_V_ABL_m As Decimal
Dim Sigma_V_dot As Decimal, Sigma_V_dot_3 As Decimal
Dim theta_h_mech_m As Decimal, theta_c_mech_m As Decimal
' Dim i_count_zone As Integer, i_count_profile As Integer, i_count_AHU As Integer
Dim theta_i_c_soll As Integer, theta_i_c As Integer, theta_i_h_soll As Integer, d_V_mech_m As Integer, theta_ABL_wi As Integer, theta_ABL_so As Integer
Dim V_dot_mech_h_max As Decimal, V_dot_mech_c_max As Decimal, V_dot_mech_c_m As Decimal, V_dot_mech_h_m As Decimal
Dim theta_e_min As Decimal, theta_e_max As Decimal
Dim x_ZUL_wi As Decimal, theta_ZUL_wi As Decimal, theta_AUL As Decimal, h_AUL As Decimal, x_AUL As Decimal, theta_AUL_j As Decimal, x_AUL_j As Decimal, psi_AUL_j As Decimal
Dim h_B As Decimal, r_0 As Decimal, m_dot_1_L As Decimal, u As Decimal, Phi_h As Decimal, Phi_c As Decimal '===============================2010.04.14 수정
Dim Q_VE_B As Decimal, Q_VE_ZU As Decimal, Q_VE_D As Decimal
Dim c_p_Lrho_L As Decimal, theta_ZUL_so As Decimal, p_S_theta_ZUL_so As Decimal, p_95_theta_ZUL_so As Decimal, x_95_ZUL_so As Decimal
Dim h_95_ZUL_so As Decimal, i_count_air As Integer, i_count_start_time As Integer, i_count_end_time As Integer ', i_profile As Integer
Dim P_D_j_theta_AUL_j As Decimal
' 공조처리
theta_i_c_soll = 26
theta_i_c = 24 'theta_i_c_soll - 2 '(2-36)
theta_i_h_soll = 20
c_p_L = 1.006 'kJ/kg K
rho_L = 1.204 'kg/m3 (20도 1기압상태)
c_p_Lrho_L = 0.34 'Wh/m3 K
f_p = 0.4 '= Delta_p_konst / Delta_p_star = 0.4 '(3.2.5-13, 7-1)
'================================================2010.2.21 수정
'd_V_mech_m = d_mth
'================================================2010.2.21 수정
theta_ABL_wi = 20
x_ABL_wi = 0.008 '편차가 없는 습도요구 적용
h_ABL_wi = 42.6 '편차가 없는 습도요구 적용
theta_ABL_so = 26
x_ABL_so = 0.008 'kg/kg 편차가 없는 습도요구 적용
h_ABL_so = 46.7 'kJ/kg 편차가 없는 습도요구 적용
x_AUL_wi = 0.001
h_AUL_wi = -9.6
x_AUL_so = 0.012
h_AUL_so = 63
q_st_18_12h_m = 0 '우선 0으로 적용 추후 검토
theta_e_min = -11.3
theta_e_max = 31.5
r_0 = 2500 'kJ/kg
x_ZUL_wi = 0.00699
'Dim Dr프로필 As DS.tbl_profileRow '//아래에서 할당되도록되어있다.
'//location 은 거의 서울(0번줄)이된다.
Dim Drow평균온도 As DS.weather_tempRow = CType(DSET.weather_temp.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(i_count_month, "0000") & "'")(0), DS.weather_tempRow)
Dim Drow평균습도 As DS.weather_supdoRow = CType(DSET.weather_supdo.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(i_count_month, "0000") & "'")(0), DS.weather_supdoRow)
Dim Mon As String = "M" & Format(i_count_month, "00")
For Each Dr존 As DS.tbl_zoneRow In DSET.tbl_zone.Select("code<>'0'", "code")
Dim Drow분석() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & Dr존.code & "'"), DSR.월별에너지분석Row())
'If Worksheets("입력존").Range("공조존2").Offset(0, i_count_zone - 1) = "냉방" Or Worksheets("입력존").Range("공조존2").Offset(0, i_count_zone - 1) = "냉난방" Then
If Dr존.냉난방공조 = "냉방" OrElse Dr존.냉난방공조 = "냉난방" Then
'//존의 프로필과 일치하는 프로필검색후 적용
Dim Dr프로필 As DS.tbl_profileRow = CType(DSET.tbl_profile.Select("code='" & Dr존.프로필 & "'")(0), DS.tbl_profileRow)
t_V_mech_m = TOSG(Dr프로필.운전시간난방) ' Worksheets("설정조건").Range("사용시작시간1").Offset(5, i_count_profile)
V_dot_A = TOSG(Dr프로필.최소도입외기량) ' Worksheets("설정조건").Range("최소도입외기량1").Offset(0, i_count_profile)
'i_profile = i_count_profile '//아래 루프종료문은 없어서 추가했다.
'===================================================================================2010.2.21 추가
If i_count_month = 0 Then
d_V_mech_m = 0
Else
d_V_mech_m = CInt(Dr프로필("day" & Format(i_count_month, "00")))
End If
'===================================================================================2010.2.21 추가
For Each Dr공조 As DS.tbl_kongjoRow In DSET.tbl_kongjo.Select("code='" & Dr존.냉난방공조처리시스템 & "' and code <> '0'", "code")
'If Dr존.냉난방공조처리시스템 <> "" Then ' Worksheets("입력존").Range("입력난방공급기기1").Offset(2, i_count_zone - 1) <> "" Then
'If Worksheets("입력존").Range("입력난방공급기기1").Offset(2, i_count_zone - 1) = Worksheets("공조처리시스템").Range("공조기기1").Offset(0, i_count_AHU - 1) Then
'If Dr존.냉난방공조처리시스템 = Dr공조.code Then ' Worksheets("공조처리시스템").Range("공조기기1").Offset(0, i_count_AHU - 1) Then
Q_vh_b = 0
Q_vc_b = 0
Q_vm_b = 0
eta_ZUL = TOSG(Dr공조.총효율급기팬) ' Worksheets("공조처리시스템").Range("총압력상승1").Offset(2, i_count_AHU - 1)
eta_ABL = TOSG(Dr공조.총효율배기팬) ' Worksheets("공조처리시스템").Range("총압력상승1").Offset(3, i_count_AHU - 1)
Delta_p_star_ZUL = TOSG(Dr공조.총압력손실급기팬) ' Worksheets("공조처리시스템").Range("총압력상승1").Offset(0, i_count_AHU - 1)
Delta_p_star_ABL = TOSG(Dr공조.총압력손실배기팬) ' Worksheets("공조처리시스템").Range("총압력상승1").Offset(1, i_count_AHU - 1)
theta_V_mech_m = TOSG(Dr공조.설정치냉방) ' Worksheets("공조처리시스템").Range("공조방식1").Offset(2, i_count_AHU - 1)
theta_h_mech_m = TOSG(Dr공조.설정치난방) 'Worksheets("공조처리시스템").Range("공조방식1").Offset(1, i_count_AHU - 1)
theta_c_mech_m = TOSG(Dr공조.설정치냉방) ' Worksheets("공조처리시스템").Range("공조방식1").Offset(2, i_count_AHU - 1)
A_B = TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) ' Worksheets("입력존").Range("전용면적1").Offset(0, i_count_zone - 1)
theta_AUL = 0
x_AUL = 0
i_count_start_time = CInt(Dr프로필.운전시작시간.Substring(0, Dr프로필.운전시작시간.IndexOf(":"))) ' Worksheets("설정조건").Range("사용시작시간1").Offset(3, i_profile)
i_count_end_time = CInt(Dr프로필.운전종료시간.Substring(0, Dr프로필.운전종료시간.IndexOf(":"))) ' Worksheets("설정조건").Range("사용시작시간1").Offset(4, i_profile)
If i_count_start_time - i_count_end_time < 0 Then
For i_count_air = 0 To CInt(t_V_mech_m - 1) '자정 전까지 운전 조건
'//Dr기상데이터의 2번째 인덱스부터 시간이다.
theta_AUL_j = TOSG(Drow평균온도("t" & Format(i_count_start_time + i_count_air + 1, "00"))) ' Worksheets("기상데이타").Range("시간별평균온도1").Offset((i_count_month - 1) * 25 + i_count_start_time + i_count_air, location - 1)
psi_AUL_j = TOSG(Drow평균습도("t" & Format(i_count_start_time + i_count_air + 1, "00"))) / 100 ' Worksheets("기상데이타").Range("시간별평균습도1").Offset((i_count_month - 1) * 25 + i_count_start_time + i_count_air, location - 1) / 100
P_D_j_theta_AUL_j = TOSG(psi_AUL_j * Math.Exp(23.621 - 4065 / (theta_AUL_j + 236.2506)))
x_AUL_j = TOSG(0.5911 / (100000 / P_D_j_theta_AUL_j - 0.95))
theta_AUL = theta_AUL + theta_AUL_j
x_AUL = x_AUL + x_AUL_j
Next
Else
For i_count_air = 0 To 23 - i_count_start_time '자정 넘어까지 운전 조건
theta_AUL_j = TOSG(Drow평균온도("t" & Format(i_count_start_time + i_count_air + 1, "00"))) 'Worksheets("기상데이타").Range("시간별평균온도1").Offset((i_count_month - 1) * 25 + i_count_start_time + i_count_air, location - 1)
psi_AUL_j = TOSG(Drow평균습도("t" & Format(i_count_start_time + i_count_air + 1, "00"))) / 100 'Worksheets("기상데이타").Range("시간별평균습도1").Offset((i_count_month - 1) * 25 + i_count_start_time + i_count_air, location - 1) / 100
P_D_j_theta_AUL_j = TOSG(psi_AUL_j * Math.Exp(23.621 - 4065 / (theta_AUL_j + 236.2506)))
x_AUL_j = TOSG(0.5911 / (100000 / P_D_j_theta_AUL_j - 0.95))
theta_AUL = theta_AUL + theta_AUL_j
x_AUL = x_AUL + x_AUL_j
Next
For i_count_air = 0 To i_count_end_time - 1 '자정 넘어까지 운전 조건
theta_AUL_j = TOSG(Drow평균온도("t" & Format(i_count_air + 1, "00"))) 'Worksheets("기상데이타").Range("시간별평균온도1").Offset((i_count_month - 1) * 25 + i_count_air, location - 1)
psi_AUL_j = TOSG(Drow평균습도("t" & Format(i_count_air + 1, "00"))) / 100 'Worksheets("기상데이타").Range("시간별평균습도1").Offset((i_count_month - 1) * 25 + i_count_air, location - 1) / 100
P_D_j_theta_AUL_j = TOSG(psi_AUL_j * Math.Exp(23.621 - 4065 / (theta_AUL_j + 236.2506)))
x_AUL_j = TOSG(0.5911 / (100000 / P_D_j_theta_AUL_j - 0.95))
theta_AUL = theta_AUL + theta_AUL_j
x_AUL = x_AUL + x_AUL_j
Next
End If
theta_AUL = theta_AUL / t_V_mech_m
x_AUL = x_AUL / t_V_mech_m
h_AUL = c_p_L * theta_AUL + x_AUL * (r_0 + c_p_L * theta_AUL)
''V_dot_mech_h_max = Worksheets("0").Range("최대난방부하1").Offset(1, i_count_zone - 1) * 1000 / (c_p_Lrho_L * (theta_h_mech_m - theta_i_h_soll)) '(3.2.4-86)
'//현재존과일치하는 데이터수집
If (theta_i_c_soll - theta_c_mech_m) <> 0 Then
V_dot_mech_max = TOSG(Result.최대부하.Item(Dr존.code).최대냉방실내부하) * 1000 / (c_p_Lrho_L * (theta_i_c_soll - theta_c_mech_m)) '(3.2.4-86)
Else
V_dot_mech_max = 0
End If
' Worksheets("0").Range("최대냉방부하1").Offset(1, i_count_zone - 1)
''If V_dot_mech_h_max < V_dot_mech_c_max Then
'' V_dot_mech_max = V_dot_mech_c_max
''Else
'' V_dot_mech_max = V_dot_mech_h_max
''End If
If V_dot_mech_max < V_dot_A * A_B Then V_dot_mech_max = V_dot_A * A_B
Select Case Dr공조.공조방식.Trim ' Worksheets("공조처리시스템").Range("공조방식1").Offset(0, i_count_AHU - 1)
Case "정풍량" '정풍량"
V_dot_mech_m = V_dot_mech_max
Case "변풍량" '변풍량"
'//계산결과가들엉잇는 12개월용시트(1~12)에ㅓ 해당값을 찾는 엑셀루틴이다. 이건좀 교환하기가 그러네;;ㅠ
'//해당12개시트의 데이터는 DSR월별에너지분석에 존재한다 이곳에는 월/존두개의 기본키가존재하며 해당rOW를 가져와야한다.
If Drow분석.GetUpperBound(0) = -1 Then
MsgBox("월별에너지분석에 " & i_count_month & "데이터가 없습니다", MsgBoxStyle.Critical, "계산실패")
Return
End If
'Q_c_b = Sheets("" & i_count_month & "").Cells(11, 7 + i_count_zone) - (t_V_mech_m * d_V_mech_m * c_p_Lrho_L * (theta_AUL - theta_c_mech_m) * V_dot_A * A_B) / 1000
Q_c_b = TOSG(Drow분석(0).냉방요구량공조) - (t_V_mech_m * d_V_mech_m * c_p_Lrho_L * (theta_AUL - theta_c_mech_m) * V_dot_A * A_B) / 1000
If Q_c_b < 0 Then Q_c_b = 0
V_dot_mech_m = (t_V_mech_m * d_V_mech_m * c_p_Lrho_L * (theta_AUL - theta_c_mech_m) * V_dot_A * A_B) / 1000 + Q_c_b / (t_V_mech_m * d_V_mech_m * c_p_Lrho_L * (theta_i_c - theta_c_mech_m) / 1000) '(3.2.5-4) 공조풍량(변풍량)
'If V_dot_mech_m < 0 Then
'V_dot_mech_m = 0
'End If
If V_dot_mech_m < V_dot_A * A_B Then V_dot_mech_m = V_dot_A * A_B
End Select
'If V_dot_mech_m = 0 Then
' theta_hc_m = theta_V_mech_m
'Else
' theta_hc_m = theta_V_mech_m - Q_V_E_ZUL_m * 1000 / (t_V_mech_m * d_V_mech_m * c_p_Lrho_L * V_dot_mech_m) + 1.4 '(3.2.5-22) Q_V_E_ZUL_m에 1000 을 곱해야하는지 확인요망
'End If
'==========================================================================================================================================
'월별 풍량당 공조에너지 요구량은 추후 적용
'If theta_hc_m <= 22 And theta_hc_m > 18 Then
'q_h_12h_m = q_h_18_12h_m + g_h_o_m * (theta_hc_m - 18) '(3.2.5-23) 18C<theta_hc_m<=22C
'q_c_12h_m = q_c_18_12h_m - g_c_o_m * (theta_hc_m - 18) '(3.2.5-25) 18C<theta_hc_m<=22C
'End If
'If theta_hc_m <= 18 And theta_hc_m > 14 Then
'q_h_12h_m = q_h_18_12h_m + g_h_u_m * (theta_hc_m - 18) '(3.2.5-24) 14C<theta_hc_m<=18C
'q_c_12h_m = q_c_18_12h_m - g_c_u_m * (theta_hc_m - 18) '(3.2.5-26) 14C<theta_hc_m<=18C
'End If
'q_st_12h_m = q_st_18_12h_m '(3.2.5-27)
'==========================================================================================================================================
'==========================================================================================================================================
If Dr공조.리턴공기혼합여부 = "" Then ' Worksheets("공조처리시스템").Range("공조방식1").Offset(4, i_count_AHU - 1) = "예" Then
If V_dot_mech_m = 0 Then
u = 1 '//??
Else
u = (V_dot_mech_m - V_dot_A * A_B) / V_dot_mech_m '예(리턴공기혼합여부)
End If
Else
u = 0 '아니오(리턴공기혼합여부)
End If
If Dr공조.열교환기유형 = "현열교환" OrElse Dr공조.열교환기유형 = "전열교환" Then ' Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1) = "현열교환" Or Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1) = "전열교환" Then
Phi_h = TOSG(Dr공조.열회수율) 'Worksheets("공조처리시스템").Range("열교환기1").Offset(1, i_count_AHU - 1) '=====================2010.04.14 수정
Phi_c = TOSG(Dr공조.열회수율냉) 'Worksheets("공조처리시스템").Range("열교환기1").Offset(2, i_count_AHU - 1) '=====================2010.04.14 수정
Else
Phi_h = 0 '==============================2010.04.14 수정
Phi_c = 0 '==============================2010.04.14 수정
End If
If TOSG(Drow분석(0).난방요구량공조) > 0 Then 'Sheets("" & i_count_month & "").Cells(8, 7 + i_count_zone) > 0 Then
'난방공조처리(가열,가열+가습(분무 또는 증기),리턴공기혼합유무(리턴공기혼합율 입력),열회수유무(현열 또는 전열, 열회수율 입력)
'Q_h_b = Sheets("" & i_count_month & "").Cells(8, 7 + i_count_zone) - (theta_i_h_soll - theta_AUL) * c_p_L * rho_L * d_V_mech_m * t_V_mech_m * V_dot_A * A_B / 3600
Q_h_b = TOSG(Drow분석(0).난방요구량공조) - (theta_i_h_soll - theta_AUL) * c_p_L * rho_L * d_V_mech_m * t_V_mech_m * V_dot_A * A_B / 3600
Select Case Dr공조.공조방식.Trim ' Worksheets("공조처리시스템").Range("공조방식1").Offset(0, i_count_AHU - 1)
Case "정풍량"
theta_ZUL_wi = 1000 * Q_h_b / (V_dot_mech_m * c_p_Lrho_L * t_V_mech_m * d_V_mech_m) + theta_i_h_soll 'd_Nutz=d_V_mech_m 으로 적용
Case "변풍량"
If V_dot_mech_m > V_dot_A * A_B Then
theta_ZUL_wi = theta_h_mech_m
Else
If V_dot_mech_m = 0 Then
theta_ZUL_wi = theta_i_h_soll
Else
theta_ZUL_wi = 1000 * Q_h_b / (V_dot_mech_m * c_p_Lrho_L * t_V_mech_m * d_V_mech_m) + theta_i_h_soll
End If
End If
End Select
m_dot_1_L = V_dot_mech_m * rho_L
'외기모드 경우와 에너지
'theta_ZUL_wi<theta_ABL_wi+(1-u)*(1-Phi)*(theta_AUL-theta_ABL_wi)
'Q_VE_B = 0
'Q_VE_D = 0
If Dr공조.가습기유형 <> "가습불가" Then ' Worksheets("공조처리시스템").Range("공조방식1").Offset(5, i_count_AHU - 1) <> "가습불가" Then
h_B = c_p_L * theta_ZUL_wi + x_ZUL_wi * (r_0 + c_p_L * theta_ZUL_wi)
Select Case Dr공조.열교환기유형.Trim ' Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1)
Case "열회수불가" '열회수불가"
Q_VE_B = d_V_mech_m * (m_dot_1_L * t_V_mech_m * (h_B - u * h_ABL_wi - (1 - u) * h_AUL) / 3600)
Case "현열교환" '현열교환"
Q_VE_B = d_V_mech_m * (m_dot_1_L * t_V_mech_m * (h_B - u * h_ABL_wi - (1 - u) * (h_AUL + c_p_L * Phi_h * (theta_ABL_wi - theta_AUL))) / 3600) '==============2010.04.14 수정
Case "전열교환" '전열교환"
Q_VE_B = d_V_mech_m * (m_dot_1_L * t_V_mech_m * (h_B - u * h_ABL_wi - (1 - u) * (h_AUL + Phi_h * (h_ABL_wi - h_AUL))) / 3600) '==============2010.04.14 수정
End Select
Q_vh_b = Q_VE_B
End If
If Dr공조.가습기유형 <> "분무가습" Then ' Worksheets("공조처리시스템").Range("공조방식1").Offset(5, i_count_AHU - 1) <> "분무가습" Then
Select Case Dr공조.열교환기유형.Trim ' Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1)
Case "열회수불가" '열회수불가"
Q_VE_ZU = d_V_mech_m * (m_dot_1_L * t_V_mech_m * c_p_L * (theta_ZUL_wi - u * theta_ABL_wi - (1 - u) * theta_AUL) / 3600)
Case "현열교환" '현열교환"
Q_VE_ZU = d_V_mech_m * (m_dot_1_L * t_V_mech_m * c_p_L * (theta_ZUL_wi - u * theta_ABL_wi - (1 - u) * (theta_AUL + Phi_h * (theta_ABL_wi - theta_AUL))) / 3600) '==============2010.04.14 수정
Case "전열교환" '전열교환"
Q_VE_ZU = d_V_mech_m * (m_dot_1_L * t_V_mech_m * c_p_L * (theta_ZUL_wi - u * theta_ABL_wi - (1 - u) * (theta_AUL + Phi_h * (h_ABL_wi - h_AUL) / c_p_L)) / 3600) '==============2010.04.14 수정
End Select
If Dr공조.가습기유형 = "가습불가" Then 'Worksheets("공조처리시스템").Range("공조방식1").Offset(5, i_count_AHU - 1) = "가습불가" Then
Q_vh_b = Q_VE_ZU
Else
Q_vh_b = Q_VE_ZU
Q_vm_b = Q_VE_B - Q_VE_ZU
End If
End If
Else
Q_vh_b = 0
Q_vm_b = 0
End If
'------------------------------------------------------------------------------------------------------------------------------------------
If TOSG(Drow분석(0).냉방요구량공조) > 0 Then ' Sheets("" & i_count_month & "").Cells(11, 7 + i_count_zone) > 0 Then
'냉방공조처리에너지(냉각,리턴공기혼합유무(리턴공기혼합율 계산, 열회수유무(현열 또는 전열, 열회수율 입력)
Q_c_b = TOSG(Drow분석(0).냉방요구량공조) 'Sheets("" & i_count_month & "").Cells(11, 7 + i_count_zone)
Select Case Dr공조.공조방식.Trim 'Worksheets("공조처리시스템").Range("공조방식1").Offset(0, i_count_AHU - 1)
Case "정풍량" '정풍량"
If Dr공조.외기냉방제어유무 = "" Then ' Worksheets("공조처리시스템").Range("공조방식1").Offset(6, i_count_AHU - 1) = "유" Then
If theta_AUL - theta_i_c_soll > 0 Then
Q_c_b = Q_c_b - (theta_AUL - theta_i_c_soll) * c_p_L * rho_L * d_V_mech_m * t_V_mech_m * V_dot_A * A_B / 3600
Else
Q_c_b = Q_c_b - (theta_i_c_soll - theta_AUL) * c_p_L * rho_L * d_V_mech_m * t_V_mech_m * V_dot_A * A_B / 3600
End If
End If
If Q_c_b < 0 Then Q_c_b = 0
theta_ZUL_so = theta_i_c - 1000 * Q_c_b / (V_dot_mech_m * c_p_Lrho_L * t_V_mech_m * d_V_mech_m) 'd_Nutz=d_V_mech_m 으로 적용
Case "변풍량" '변풍량"
If V_dot_mech_m > V_dot_A * A_B OrElse V_dot_mech_m = 0 Then
theta_ZUL_so = theta_c_mech_m
Else
theta_ZUL_so = theta_i_c - 1000 * Q_c_b / (V_dot_mech_m * c_p_Lrho_L * t_V_mech_m * d_V_mech_m)
End If
End Select
p_S_theta_ZUL_so = TOSG(Math.Exp(23.621 - 4065 / (theta_ZUL_so + 236.2506)))
p_95_theta_ZUL_so = TOSG(0.95 * p_S_theta_ZUL_so)
x_95_ZUL_so = TOSG(0.5911 / (100000 / p_95_theta_ZUL_so - 0.95))
m_dot_1_L = V_dot_mech_m * rho_L
h_95_ZUL_so = c_p_L * theta_ZUL_so + x_95_ZUL_so * (r_0 + c_p_L * theta_ZUL_so)
'If theta_ZUL_so > theta_AUL Then
'냉방의 경우 가열에너지
'Select Case Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1)
'Case "열회수불가"
'If theta_ZUL_so > theta_ABL_so + (1 - u) * (theta_AUL - theta_ABL_so) Then
'Q_VE_ZU = d_V_mech_m * (m_dot_1_L * t_V_mech_m * c_p_L * (theta_ZUL_so - u * theta_ABL_so - (1 - u) * theta_AUL) / 3600)
'Q_vh_b = Q_vh_b + Q_VE_ZU
'Else
'If Worksheets("공조처리시스템").Range("공조방식1").Offset(6, i_count_AHU - 1) = "무" Then
'i_count_air = 1
'End If
'End If
'Case "현열교환"
'If theta_ZUL_so > theta_ABL_so + (1 - u) * (1 - Phi) * (theta_AUL - theta_ABL_so) Then
'Q_VE_ZU = d_V_mech_m * (m_dot_1_L * t_V_mech_m * c_p_L * (theta_ZUL_so - u * theta_ABL_so - (1 - u) * (theta_AUL + Phi * (theta_ABL_so - theta_AUL))) / 3600)
'Q_vh_b = Q_vh_b + Q_VE_ZU
'Else
'If Worksheets("공조처리시스템").Range("공조방식1").Offset(6, i_count_AHU - 1) = "무" Then
'i_count_air = 1
'End If
'End If
'Case "전열교환"
'If theta_ZUL_so > theta_ABL_so + (1 - u) * (1 - Phi) * (h_AUL - h_ABL_so) / c_p_L Then
'Q_VE_ZU = d_V_mech_m * (m_dot_1_L * t_V_mech_m * c_p_L * (theta_ZUL_so - u * theta_ABL_so - (1 - u) * (theta_AUL + Phi * (h_ABL_so - h_AUL) / c_p_L)) / 3600)
'Q_vh_b = Q_vh_b + Q_VE_ZU
'Else
'If Worksheets("공조처리시스템").Range("공조방식1").Offset(6, i_count_AHU - 1) = "무" Then
'i_count_air = 1
'End If
'End If
'End Select
'End If
If theta_ZUL_so > theta_AUL And Dr공조.외기냉방제어유무 = "" Then ' Worksheets("공조처리시스템").Range("공조방식1").Offset(6, i_count_AHU - 1) = "유" Then
Q_vc_b = 0
V_dot_mech_m = (t_V_mech_m * d_V_mech_m * c_p_Lrho_L * (theta_c_mech_m - theta_AUL) * V_dot_A * A_B) / 1000 + Q_c_b / (t_V_mech_m * d_V_mech_m * c_p_Lrho_L * (theta_i_c - theta_AUL) / 1000)
If V_dot_mech_m < V_dot_A * A_B Then V_dot_mech_m = V_dot_A * A_B
Else
If 0.5911 / (100000 / p_95_theta_ZUL_so - 0.95) > (1 - u) * x_AUL + u * x_ABL_so Then
Select Case Dr공조.열교환기유형.Trim ' Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1)
Case "열회수불가" '열회수불가"
Q_vc_b = -m_dot_1_L * d_V_mech_m * t_V_mech_m * c_p_L * (theta_ZUL_so - u * theta_ABL_so - (1 - u) * theta_AUL) / 3600
Case "현열교환" '현열교환"
Q_vc_b = -m_dot_1_L * d_V_mech_m * t_V_mech_m * c_p_L * (theta_ZUL_so - u * theta_ABL_so - (1 - u) * (theta_AUL + Phi_c * (theta_ABL_so - theta_AUL))) / 3600 '==================2010.04.14 수정
Case "전열교환" '전열교환"
Q_vc_b = -m_dot_1_L * d_V_mech_m * t_V_mech_m * c_p_L * (theta_ZUL_so - u * theta_ABL_so - (1 - u) * (theta_AUL + Phi_c * (h_ABL_so - h_AUL) / c_p_L)) / 3600 '==================2010.04.14 수정
End Select
Else
Select Case Dr공조.열교환기유형.Trim ' Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1)
Case "열회수불가" '열회수불가"
Q_vc_b = -m_dot_1_L * d_V_mech_m * t_V_mech_m * (h_95_ZUL_so - u * h_ABL_so - (1 - u) * h_AUL) / 3600
Case "현열교환" '현열교환"
Q_vc_b = -m_dot_1_L * d_V_mech_m * t_V_mech_m * (h_95_ZUL_so - u * h_ABL_so - (1 - u) * (h_AUL + c_p_L * Phi_c * (theta_ABL_so - theta_AUL))) / 3600 '==================2010.04.14 수정
Case "전열교환" '전열교환"
Q_vc_b = -m_dot_1_L * d_V_mech_m * t_V_mech_m * (h_95_ZUL_so - u * h_ABL_so - (1 - u) * (h_AUL + Phi_c * (h_ABL_so - h_AUL))) / 3600 '==================2010.04.14 수정
End Select
End If
End If
Else
Q_vc_b = 0
End If
'==========================================================================================================================================
'==========================================================================================================================================
Select Case Dr공조.공조방식.Trim ' Worksheets("공조처리시스템").Range("공조방식1").Offset(0, i_count_AHU - 1)
Case "정풍량" '정풍량"
If eta_ZUL <> 0 Then
P_V_ZUL_m = V_dot_mech_m * Delta_p_star_ZUL / eta_ZUL / 3600000 ' V_dot_ZUL = V_dot_mech_m (3.2.5-7) 정풍량 (3600은 Pa을 W환산하면서 h를 s로 환산)
Else
P_V_ZUL_m = 0
End If
If eta_ABL <> 0 Then
P_V_ABL_m = V_dot_mech_m * Delta_p_star_ABL / eta_ABL / 3600000
Else
P_V_ABL_m = 0
End If
Q_V_E_ZUL_m = P_V_ZUL_m * t_V_mech_m * d_V_mech_m '(3.2.5-10) 정풍량
Q_V_E_ABL_m = P_V_ABL_m * t_V_mech_m * d_V_mech_m '(3.2.5-10) 정풍량
Case "변풍량" '변풍량"
Sigma_V_dot = t_V_mech_m * d_V_mech_m * V_dot_mech_m + 1000 * Q_c_b / (c_p_Lrho_L * (theta_i_c - theta_V_mech_m)) '(3.2.5-5) 월간 공조풍량 합(변풍량)
' 수식 변경 Sigma_V_dot_3 = t_V_mech_m * d_V_mech_m * (V_dot_mech_m ^ 3) + Q_c_b / (c_p_L * rho_L * (theta_i_c - theta_V_mech_m))
Sigma_V_dot_3 = TOSG(Sigma_V_dot * (0.8 * V_dot_mech_m + 0.2 * V_dot_mech_max) ^ 2)
If V_dot_mech_m = 0 Then
P_V_ZUL_m = 0 'CSng(V_dot_mech_m * Delta_p_star_ZUL * f_p / eta_ZUL / 3600 + (V_dot_mech_m ^ 3 * Delta_p_star_ZUL * (1 - f_p)) / (eta_ZUL * V_dot_mech_m ^ 2) / 3600) '(3.2.5-11) 변풍량 시간, 용도로 추후검토
P_V_ABL_m = 0 'CSng(V_dot_mech_m * Delta_p_star_ABL * f_p / eta_ABL / 3600 + (V_dot_mech_m ^ 3 * Delta_p_star_ABL * (1 - f_p)) / (eta_ABL * V_dot_mech_m ^ 2) / 3600) '(3.2.5-11) 변풍량 시간, 용도로 추후검
Q_V_E_ZUL_m = 0 'P_V_ZUL_m * t_V_mech_m * d_V_mech_m / 1000 'kWh (3.2.5-10) 변풍량 냉방부하
Q_V_E_ABL_m = 0 'P_V_ABL_m * t_V_mech_m * d_V_mech_m / 1000 'kWh (3.2.5-10) 변풍량 냉방부하
Else
'==========================변풍량에서도 효율이 없을 경우 동력이 0인 것으로 평가 2010.10.10
If eta_ZUL <> 0 Then
P_V_ZUL_m = TOSG(V_dot_mech_m * Delta_p_star_ZUL * f_p / eta_ZUL / 3600 + (V_dot_mech_m ^ 3 * Delta_p_star_ZUL * (1 - f_p)) / (eta_ZUL * V_dot_mech_max ^ 2) / 3600) '(3.2.5-11) 변풍량 시간, 용도로 추후검토
'=============================================================================================== 최소외기도입량 동력보다 작으면 최소외기도입 동력으로 적용 2012.01.31
If P_V_ZUL_m < V_dot_A * A_B * Delta_p_star_ZUL / eta_ZUL / 3600 Then
P_V_ZUL_m = V_dot_A * A_B * Delta_p_star_ZUL / eta_ZUL / 3600
End If
'===============================================================================================
Else
P_V_ZUL_m = 0
End If
If eta_ABL <> 0 Then
P_V_ABL_m = TOSG(V_dot_mech_m * Delta_p_star_ABL * f_p / eta_ABL / 3600 + (V_dot_mech_m ^ 3 * Delta_p_star_ABL * (1 - f_p)) / (eta_ABL * V_dot_mech_max ^ 2) / 3600) '(3.2.5-11) 변풍량 시간, 용도로 추후검
'=============================================================================================== 최소외기도입량 동력보다 작으면 최소외기도입 동력으로 적용 2012.01.31
If P_V_ABL_m < V_dot_A * A_B * Delta_p_star_ABL / eta_ABL / 3600 Then
P_V_ABL_m = V_dot_A * A_B * Delta_p_star_ABL / eta_ABL / 3600
End If
'===============================================================================================
Else
P_V_ABL_m = 0
End If
'============================================================2010.10.10
Q_V_E_ZUL_m = P_V_ZUL_m * t_V_mech_m * d_V_mech_m / 1000 'kWh (3.2.5-10) 변풍량 냉방부하
Q_V_E_ABL_m = P_V_ABL_m * t_V_mech_m * d_V_mech_m / 1000 'kWh (3.2.5-10) 변풍량 냉방부하
End If
End Select
'------------------------------------------------------------------------------------------------------------------------------------------
' 우선 외기온도에 대한 공조에너지 요구량 산정 필요 ????
'q_st_12h_m = q_st_18_12h_m '(3.2.5-27)
'If theta_e < theta_hc_m Then
'Select Case Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1)
'Case "열회수불가"
'Delta_h_WRG = 0 '(3.2.5-54) 열 회수기 없음
'Case "현열교환"
'Delta_h_WRG = Worksheets("공조처리시스템").Range("열교환기1").Offset(1, i_count_AHU - 1) / 100 * c_p_L * (theta_ABL_wi - theta_e) '(3.2.5-55) 순수 현열 회수기
'Case "전열교환"
'Delta_h_WRG = Worksheets("공조처리시스템").Range("열교환기1").Offset(1, i_count_AHU - 1) / 100 * c_p_L * (theta_ABL_wi - theta_e) '(3.2.5-56) 현열 및 습기 회수기 우선 현열만 고려
'End Select
'q_h_12h_m = rho_L * (c_p_L * (theta_hc_m - theta_e) - Delta_h_WRG) * 12 * d_mth * V_dot_A * A_B + rho_L * c_p_L * (theta_h_mech_m - theta_i_h_soll) * 12 * d_mth * (V_dot_mech_m - V_dot_A * A_B) 'theta_h_mech_m 과 theta_hc_m 중 선택 검토
'End If
'If theta_e > theta_hc_m Then
'Select Case Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1)
'Case "열회수불가"
'Delta_h_WRG = 0 '(3.2.5-54) 열 회수기 없음
'Case "현열교환"
'If theta_e > theta_ABL_so Then
'Delta_h_WRG = Worksheets("공조처리시스템").Range("열교환기1").Offset(1, i_count_AHU - 1) / 100 * c_p_L * (theta_e - theta_ABL_so) '(3.2.5-55) 순수 현열 회수기
'Else
'Delta_h_WRG = Worksheets("공조처리시스템").Range("열교환기1").Offset(1, i_count_AHU - 1) / 100 * c_p_L * (theta_ABL_so - theta_e) '(3.2.5-55) 순수 현열 회수기
'End If
'Case "전열교환"
'If theta_e > theta_ABL_so Then
'Delta_h_WRG = Worksheets("공조처리시스템").Range("열교환기1").Offset(1, i_count_AHU - 1) / 100 * c_p_L * (theta_e - theta_ABL_so) '(3.2.5-55) 순수 현열 회수기 우선 현열만 고려
'Else
'Delta_h_WRG = Worksheets("공조처리시스템").Range("열교환기1").Offset(1, i_count_AHU - 1) / 100 * c_p_L * (theta_ABL_so - theta_e) '(3.2.5-55) 순수 현열 회수기 우선 현열만 고려
'End If
'End Select
'q_c_12h_m = rho_L * (c_p_L * (theta_e - theta_hc_m) - Delta_h_WRG) * 12 * d_mth * V_dot_A * A_B + rho_L * c_p_L * (theta_i_c_soll - theta_c_mech_m) * 12 * d_mth * (V_dot_mech_m - V_dot_A * A_B) 'theta_c_mech_m 과 theta_hc_m 중 선택 검토
'End If
'f_h_H = 1 + 6.333 * 10 ^ (-3) * (t_V_mech_m - 12) - 2.689 * 10 ^ (-4) * (t_V_mech_m - 12) ^ 2 + 6.94 * 10 ^ (-6) * (t_V_mech_m - 12) ^ 3 '(3.2.5-31)
'f_h_C = 1 - 5.583 * 10 ^ (-3) * (t_V_mech_m - 12) + 2.153 * 10 ^ (-4) * (t_V_mech_m - 12) ^ 2 - 6.597 * 10 ^ (-6) * (t_V_mech_m - 12) ^ 3 '(3.2.5-32) 편차가 없는 습도요구
'f_h_C = 1 - 1.552 * 10 ^ (-3) * (t_V_mech - 12) - 8.073 * 10 ^ (-4) * (t_V_mech_m - 12) ^ 2 - 1.302 * 10 ^ (-6) * (t_V_mech_m - 12) ^ 3 '(3.2.5-32) 편차가 있는 습도요구 추후 검토
'f_h_st = 1
'q_h_m = q_h_12h_m * t_V_mech_m / 12 * f_h_H * d_V_mech_m / d_mth '(3-28)
'q_c_m = q_c_12h_m * t_V_mech_m / 12 * f_h_C * d_V_mech_m / d_mth '(3-29)
'q_st_m = q_st_12h_m * t_V_mech_m / 12 * f_h_st * d_V_mech_m / d_mth '(3-30)
'Q_vh_b = q_h_m * V_dot_mech_m '(3-36) =Q_vi_b (7-2,7-8,7-14)
'Q_vc_b = q_c_m * V_dot_mech_m '(3-36) =Q_vi_b (7-2,7-8,7-14)
'Q_vm_b = q_st_m * V_dot_mech_m '(3-36) =Q_vi_b (7-2,7-8,7-14)
'Q_vh_b = q_h_m / 1000 ' 우선 공조풍량을 미리 포함시킴 추후 검토
'Q_vc_b = q_c_m / 1000 ' 우선 공조풍량을 미리 포함시킴 추후 검토
'Q_vm_b = q_st_m * V_dot_mech_m / 1000 '(3-36) =Q_vi_b (7-2,7-8,7-14)
'==========================================================================================================================================
Drow분석(0).공조풍량 = V_dot_mech_m
'Sheets("" & i_count_month & "").Cells(17, 7 + i_count_zone) = V_dot_mech_m
If Q_vh_b < 0 Then
Q_vh_b = 0 '음수 여부 추후 검토
End If
Drow분석(0).공조요구량난방 = Q_vh_b
'Sheets("" & i_count_month & "").Cells(19, 7 + i_count_zone) = Q_vh_b
If Q_vc_b < 0 Then
Q_vc_b = 0 '냉방공조에너지요구량이 -인 것은 난방에서 처리되는 것으로 설정
End If
Drow분석(0).공조요구량냉방 = Q_vc_b
'Sheets("" & i_count_month & "").Cells(21, 7 + i_count_zone) = Q_vc_b
If Q_vm_b < 0 Then
Q_vm_b = 0 '음수 여부 추후 검토
End If
Drow분석(0).공조요구량가습 = Q_vm_b ' Sheets("" & i_count_month & "").Cells(23, 7 + i_count_zone) = Q_vm_b
Drow분석(0).환기요구량 = Q_V_E_ZUL_m + Q_V_E_ABL_m ' Sheets("" & i_count_month & "").Cells(25, 7 + i_count_zone) = Q_V_E_ZUL_m + Q_V_E_ABL_m
'==========================================================================================================================================
'End If
'End If
Next
Else
Drow분석(0).공조풍량 = 0 ' Sheets("" & i_count_month & "").Cells(17, 7 + i_count_zone) = 0
Drow분석(0).공조요구량난방 = 0 ' Sheets("" & i_count_month & "").Cells(19, 7 + i_count_zone) = 0
Drow분석(0).공조요구량냉방 = 0 'Sheets("" & i_count_month & "").Cells(21, 7 + i_count_zone) = 0
Drow분석(0).공조요구량가습 = 0 ' Sheets("" & i_count_month & "").Cells(23, 7 + i_count_zone) = 0
Drow분석(0).환기요구량 = 0 'Sheets("" & i_count_month & "").Cells(25, 7 + i_count_zone) = 0
'==========================================================================2010.02.04 추가부분 시작
If Dr존.냉난방공조 = "환기" OrElse (Dr존.냉난방공조 = "난방" AndAlso Dr존.외기부하처리여부 = "") Then '//환기
Dim DR프로필() As DS.tbl_profileRow = CType(DSET.tbl_profile.Select("code='" & Dr존.프로필.ToString & "' and code <> '0'"), DS.tbl_profileRow())
If DR프로필.GetUpperBound(0) = 0 Then
t_V_mech_m = TOSG(DR프로필(0).운전시간난방) ' Worksheets("설정조건").Range("사용시작시간1").Offset(5, i_count_profile)
V_dot_A = TOSG(DR프로필(0).최소도입외기량) 'Worksheets("설정조건").Range("최소도입외기량1").Offset(0, i_count_profile)
A_B = TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) ' Worksheets("입력존").Range("전용면적1").Offset(0, i_count_zone - 1)
'===================================================================================2010.2.25 추가
'd_V_mech_m = Worksheets("설정조건").Range("월간사용일수1").Offset(i_count_month, i_count_profile)
Select Case i_count_month
Case 0 : d_V_mech_m = 0
Case 1 : d_V_mech_m = DR프로필(0).day01
Case 2 : d_V_mech_m = DR프로필(0).day02
Case 3 : d_V_mech_m = DR프로필(0).day03
Case 4 : d_V_mech_m = DR프로필(0).day04
Case 5 : d_V_mech_m = DR프로필(0).day05
Case 6 : d_V_mech_m = DR프로필(0).day06
Case 7 : d_V_mech_m = DR프로필(0).day07
Case 8 : d_V_mech_m = DR프로필(0).day08
Case 9 : d_V_mech_m = DR프로필(0).day09
Case 10 : d_V_mech_m = DR프로필(0).day10
Case 11 : d_V_mech_m = DR프로필(0).day11
Case 12 : d_V_mech_m = DR프로필(0).day12
End Select
'===================================================================================2010.2.25 추가
End If
Dim DR공조() As DS.tbl_kongjoRow = CType(DSET.tbl_kongjo.Select("code='" & Dr존.냉난방공조처리시스템 & "' and code <> '0'"), DS.tbl_kongjoRow())
If DR공조.GetUpperBound(0) = 0 Then
'------------------------------------------------------------------------------------------------------------------------------------------------------------------------------2010.05.26 추가
If DR공조(0).열교환기유형.Trim = "현열교환" OrElse DR공조(0).열교환기유형.Trim = "전열교환" Then
Phi_h = TOSG(DR공조(0).열회수율) 'Worksheets("공조처리시스템").Range("열교환기1").Offset(1, i_count_AHU - 1)
Phi_c = TOSG(DR공조(0).열회수율냉) 'Worksheets("공조처리시스템").Range("열교환기1").Offset(2, i_count_AHU - 1)
Else
Phi_h = 0
Phi_c = 0
End If
'// 여기 i_count_month 에 0 이 오지는 않나요? 예.. 1 부터 시작해요
'// If CSng(Drow분석(0).난방요구량공조) > 0 Then 'Sheets("" & i_count_month & "").Cells(8, 7 + i_count_zone) > 0 Then
If TOSG(Drow분석(0).난방요구량공조) > 0 Then
Drow분석(0).난방요구량공조 = (1 - Phi_h) * TOSG(Drow분석(0).난방요구량공조)
End If
If TOSG(Drow분석(0).냉방요구량공조) > 0 Then
Drow분석(0).냉방요구량공조 = (1 - Phi_c) * TOSG(Drow분석(0).냉방요구량공조)
End If
'If Sheets("" & i_count_month & "").Cells(8, 7 + i_count_zone) > 0 Then
' Sheets("" & i_count_month & "").Cells(8, 7 + i_count_zone) = (1 - Phi_h) * Sheets("" & i_count_month & "").Cells(8, 7 + i_count_zone)
'End If
'If Sheets("" & i_count_month & "").Cells(11, 7 + i_count_zone) > 0 Then
' Sheets("" & i_count_month & "").Cells(11, 7 + i_count_zone) = (1 - Phi_c) * Sheets("" & i_count_month & "").Cells(11, 7 + i_count_zone)
'End If
'------------------------------------------------------------------------------------------------------------------------------------------------------------------------------2010.05.26 추가
eta_ZUL = TOSG(DR공조(0).총효율급기팬) ' Worksheets("공조처리시스템").Range("총압력상승1").Offset(2, i_count_AHU - 1)
eta_ABL = TOSG(DR공조(0).총효율배기팬) ' Worksheets("공조처리시스템").Range("총압력상승1").Offset(3, i_count_AHU - 1)
Delta_p_star_ZUL = TOSG(DR공조(0).총압력손실급기팬) ' Worksheets("공조처리시스템").Range("총압력상승1").Offset(0, i_count_AHU - 1)
Delta_p_star_ABL = TOSG(DR공조(0).총압력손실배기팬) ' Worksheets("공조처리시스템").Range("총압력상승1").Offset(1, i_count_AHU - 1)
If eta_ZUL <> 0 Then
P_V_ZUL_m = V_dot_A * A_B * Delta_p_star_ZUL / eta_ZUL / 3600000
Else
P_V_ZUL_m = 0
End If
If eta_ABL <> 0 Then
P_V_ABL_m = V_dot_A * A_B * Delta_p_star_ABL / eta_ABL / 3600000
Else
P_V_ABL_m = 0
End If
Q_V_E_ZUL_m = P_V_ZUL_m * t_V_mech_m * d_V_mech_m
Q_V_E_ABL_m = P_V_ABL_m * t_V_mech_m * d_V_mech_m
Result.E분석(i_count_month).환기에너지요구량(Dr존.code) = Q_V_E_ZUL_m + Q_V_E_ABL_m
'Sheets("" & i_count_month & "").Cells(25, 7 + i_count_zone) = Q_V_E_ZUL_m + Q_V_E_ABL_m
End If
Else
Result.E분석(i_count_month).환기에너지요구량(Dr존.code) = 0
End If
'==========================================================================2010.02.04 추가부분 끝
End If
Next
End Sub
End Class

View File

@@ -0,0 +1,850 @@
Public Class CAirHandling
''' <summary>
''' 최대냉/난반후하 계산식인거 같다.
''' </summary>
''' <param name="i_HeatCool"></param>
''' <remarks></remarks>
Public Overridable Sub Calc_Max_Power(ByVal i_HeatCool As Integer)
pLog.Add(String.Format(">>Calc_Max_Power 진입"))
'Dim i_count_zone As Integer, i_count_AHU As Integer, i_count_profile As Integer
Dim c_p_L As Decimal, rho_L As Decimal
Dim theta_i_c As Decimal, theta_ABL_wi As Decimal, theta_ABL_so As Decimal, theta_AUL_wi As Decimal, theta_AUL_so As Decimal, theta_ZUL_wi As Decimal, theta_ZUL_so As Decimal
Dim x_ABL_wi As Decimal, x_ABL_so As Decimal, x_AUL_wi As Decimal, x_AUL_so As Decimal, x_ZUL_so As Decimal
Dim h_ABL_wi As Decimal, h_ABL_so As Decimal, h_AUL_wi As Decimal, h_AUL_so As Decimal, h_ZUL_wi As Decimal, h_ZUL_so As Decimal
Dim Delta_h_WRG As Decimal, V_dot_mech_m As Decimal, V_dot_star As Decimal, theta_c_mech_min As Decimal, ps_theta_ZUL_so As Decimal
Dim Q_dot_h_star As Decimal, Q_dot_c_star As Decimal, Q_dot_st_star As Decimal
Dim Q_dot_h_max As Decimal, Q_dot_c_max As Decimal
Dim theta_e_min As Decimal, theta_e_max As Decimal, V_A As Decimal, theta_i_h As Decimal, theta_i_c_soll As Decimal
Dim A_B As Decimal, c_p_Lrho_L As Decimal
pLog.Add("Calc", String.Format("Calc_max_power i_HeatCool={0}", i_HeatCool))
theta_i_c = 24
theta_i_c_soll = 26
theta_i_h = 20
c_p_L = 1.006 'kJ/kg K
rho_L = 1.204 'kg/m3 (20도 1기압상태)
c_p_Lrho_L = 0.34 'Wh/m3 K
theta_ABL_wi = 22
x_ABL_wi = 0.008 '편차가 없는 습도요구 적용
h_ABL_wi = 42.6 '편차가 없는 습도요구 적용
theta_ABL_so = 26
x_ABL_so = 0.008 '편차가 없는 습도요구 적용
h_ABL_so = 46.7 '편차가 없는 습도요구 적용
theta_AUL_wi = -12
x_AUL_wi = 0.001
h_AUL_wi = -9.6
theta_AUL_so = 32
x_AUL_so = 0.012
h_AUL_so = 63
theta_e_min = -11.3
theta_e_max = 31.5
'Dim dr공조처리 As DS.tbl_kongjoRow
For Each Dr존 As DS.tbl_zoneRow In DSET.tbl_zone.Select("code<>'0'", "code")
Dim dr최대냉난방부하 As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Dr존.code & "'")(0), DSR.최대냉난방부하Row)
If Dr존.냉난방공조 = "냉방" Or Dr존.냉난방공조 = "냉난방" Then
A_B = TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) ' Worksheets("입력존").Range("전용면적1").Offset(0, i_count_zone - 1)
Dim dr프로필 As DS.tbl_profileRow = CType(DSET.tbl_profile.Select("code='" & Dr존.프로필 & "' and code <> '0'")(0), DS.tbl_profileRow)
V_A = TOSG(dr프로필.최소도입외기량) * A_B ' Worksheets("설정조건").Range("최소도입외기량1").Offset(0, i_count_profile) * A_B
For Each dr공조처리 As DS.tbl_kongjoRow In DSET.tbl_kongjo.Select("code='" & Dr존.냉난방공조처리시스템 & "' and code <>'0'", "code")
'//아래두코드는 상단코드로 변경
'If Dr존.냉난방공조처리시스템 <> "" Then ' Worksheets("입력존").Range("입력난방공급기기1").Offset(2, i_count_zone - 1) <> "" Then
'If Dr존.냉난방공조처리시스템 = dr공조처리.code Then ' Worksheets("입력존").Range("입력난방공급기기1").Offset(2, i_count_zone - 1) = Worksheets("공조처리시스템").Range("공조기기1").Offset(0, i_count_AHU - 1) Then
' 공조기 최대 가열성능
If i_HeatCool = 1 Then
If Dr존.냉난방공조 = "냉난방" Then ' Worksheets("입력존").Range("공조존2").Offset(0, i_count_zone - 1) = "냉난방" Then
Select Case dr공조처리.열교환기유형.Trim ' Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1)
Case "열회수불가" '"열회수불가"
Delta_h_WRG = 0 '(3.2.5-54) 열 회수기 없음
Case "현열교환" '현열교환"
Delta_h_WRG = TOSG(dr공조처리.열회수율) * c_p_L * (theta_ABL_wi - theta_AUL_wi) '(3.2.5-55) 순수 현열 회수기 '================2010.03.22 수정
Case "전열교환" '전열교환"
Delta_h_WRG = TOSG(dr공조처리.열회수율) * c_p_L * (h_ABL_wi - h_AUL_wi) '(3.2.5-56) 현열 및 습기 회수기 '================2010.03.22 수정
End Select
theta_ZUL_wi = TOSG(dr공조처리.설정치난방) ' Worksheets("공조처리시스템").Range("공조방식1").Offset(1, i_count_AHU - 1) 'theta_h_mech_min '(도표 3-3)
'h_ZUL_wi = 1.01 * theta_ZUL_wi + 0.001 * (2501 + 1.86 * theta_ZUL_wi) '(3.2.5-38) 습도요구 없음
'h_ZUL_wi = 1.01 * theta_ZUL_wi + 0.006 * (2501 + 1.86 * theta_ZUL_wi) '(3.2.5-42) 편차가 있는 습도요구
h_ZUL_wi = TOSG(1.01 * theta_ZUL_wi + 0.008 * (2501 + 1.86 * theta_ZUL_wi)) '(3.2.5-48) 편차가 없는 습도요구만 우선 적용
Q_dot_h_max = TOSG(dr최대냉난방부하.최대난방기기부하) ' Worksheets("0").Range("최대난방부하1").Offset(0, i_count_zone - 1)
'--------------------------------------------------------------------------------------------------2010.02.22 수정
If (TOSG(dr공조처리.설정치난방) - theta_i_h) > 0 Then
V_dot_mech_m = 1000 * Q_dot_h_max / (c_p_Lrho_L * (TOSG(dr공조처리.설정치난방) - theta_i_h))
Else
V_dot_mech_m = 0
End If
'--------------------------------------------------------------------------------------------------2010.02.22 수정
V_dot_star = V_dot_mech_m
If dr공조처리.열교환기유형 = "전열교환" Then ' Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1) = "전열교환" Then
Q_dot_h_star = V_dot_star * rho_L * (h_ZUL_wi - h_AUL_wi - Delta_h_WRG) / 3600 '(3.2.5-57) 증기가습 있음 - 열교환방식으로 수정 추후 검토
Else
Q_dot_h_star = V_dot_star * rho_L * (c_p_L * (theta_ZUL_wi - theta_AUL_wi) - Delta_h_WRG) / 3600 '(3.2.5-58) 증기가습 없음 - 열교환방식으로 수정 추후 검토
End If
dr최대냉난방부하.최대가열성능 = Q_dot_h_star
'Worksheets("0").Range("최대난방부하1").Offset(3, i_count_zone - 1) = Q_dot_h_star
If Q_dot_h_max > (c_p_Lrho_L * (theta_i_h - theta_e_min) * V_A) / 1000 Then
dr최대냉난방부하.최대난방실내부하 = (Q_dot_h_max - (c_p_Lrho_L * (theta_i_h - theta_e_min) * V_A) / 1000)
'Worksheets("0").Range("최대난방부하1").Offset(1, i_count_zone - 1) = Q_dot_h_max - (c_p_Lrho_L * (theta_i_h - theta_e_min) * V_A) / 1000
Else
dr최대냉난방부하.최대난방실내부하 = 0
'Worksheets("0").Range("최대난방부하1").Offset(1, i_count_zone - 1) = 0
End If
End If
'공조기 최대 가습성능
'h_ZUL_wi = 1.01 * theta_ZUL_wi + 0.001 * (2501 + 1.86 * theta_ZUL_wi) '(3.2.5-38) 습도요구 없음
'h_ZUL_wi = 1.01 * theta_ZUL_wi + 0.006 * (2501 + 1.86 * theta_ZUL_wi) '(3.2.5-42) 편차가 있는 습도요구
h_ZUL_wi = TOSG(1.01 * theta_ZUL_wi + 0.008 * (2501 + 1.86 * theta_ZUL_wi)) '(3.2.5-48) 편차가 없는 습도 요구
Select Case dr공조처리.열교환기유형.Trim ' Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1)
Case "열회수불가" '열회수불가"
Delta_h_WRG = 0 '(3.2.5-63) 열 회수기 없음
Case "현열교환'" '현열교환"
Delta_h_WRG = 2501 * TOSG(dr공조처리.열회수율) * (x_ABL_wi - x_AUL_wi) '(3.2.5-64) 현열 및 습기 회수기 '================2010.03.22 수정
Case "전열교환" '전열교환"
Delta_h_WRG = 2501 * TOSG(dr공조처리.열회수율) * (x_ABL_wi - x_AUL_wi) '(3.2.5-64) 현열 및 습기 회수기 '================2010.03.22 수정
End Select
Q_dot_st_star = V_dot_star * rho_L * (h_ZUL_wi - h_AUL_wi - Delta_h_WRG) / 3600 '(3.2.5-65)
dr최대냉난방부하.최대가습성능 = Q_dot_st_star
dr최대냉난방부하.공조풍량 = V_dot_star
'Worksheets("0").Range("최대가습성능1").Offset(0, i_count_zone - 1) = Q_dot_st_star
'Worksheets("0").Range("최대가습성능1").Offset(1, i_count_zone - 1) = V_dot_star '공조풍량
Else
' 공조기 최대 냉각성능
theta_c_mech_min = TOSG(dr공조처리.설정치냉방) ' Worksheets("공조처리시스템").Range("공조방식1").Offset(2, i_count_AHU - 1)
theta_ZUL_so = theta_c_mech_min '(도표 3.3)
ps_theta_ZUL_so = TOSG(Math.Exp(23.621 - 4065 / (theta_ZUL_so + 236.2506))) '(3.2.5-37) 0.01C<=theta<=80C
x_ZUL_so = TOSG(0.5911 / (100000 / ps_theta_ZUL_so - 0.95)) '(3.2.5-41)
'h_ZUL_so = 1.01 * theta_ZUL_so + 0.012 * (2501 + 1.86 * theta_ZUL_so) '(3.2.5-39) 습도요구 없음 ps_theta_ZUL_so>1892Pa
'h_ZUL_so = 1.01 * theta_ZUL_so + x_ZUL_so * (2501 + 1.86 * theta_ZUL_so) '(3.2.5-40) 습도요구 없음 ps_theta_ZUL_so<=1892Pa
'h_ZUL_so = 1.01 * theta_ZUL_so + 0.011 * (2501 + 1.86 * theta_ZUL_so) '(3.2.5-43) 편차가 있는 습도요구 ps_theta_ZUL_so>1737Pa
'h_ZUL_so = 1.01 * theta_ZUL_so + x_ZUL_so * (2501 + 1.86 * theta_ZUL_so) '(3.2.5-44) 편차가 있는 습도요구 ps_theta_ZUL_so<=1737Pa
If ps_theta_ZUL_so > 1269 Then
h_ZUL_so = TOSG(1.01 * theta_ZUL_so + 0.008 * (2501 + 1.86 * theta_ZUL_so)) '(3.2.5-43) 편차가 없는 습도요구 ps_theta_ZUL_so>1269Pa
Else
h_ZUL_so = TOSG(1.01 * theta_ZUL_so + x_ZUL_so * (2501 + 1.86 * theta_ZUL_so)) '(3.2.5-44) 편차가 없는 습도요구 ps_theta_ZUL_so<=1269Pa
End If
Select Case dr공조처리.열교환기유형.Trim ' Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1)
Case "열회수불가" '열회수불가"
Delta_h_WRG = 0 '(3.2.5-59) 열 회수기 없음
Case "현열교환" '현열교환"
Delta_h_WRG = TOSG(dr공조처리.열회수율냉) * c_p_L * (theta_AUL_so - theta_ABL_so) '(3.2.5-55) 순수 현열 회수기 '================2010.03.22 수정, =============2010.04.14 수정
Case "전열교환" '전열교환"
Delta_h_WRG = TOSG(dr공조처리.열회수율냉) * c_p_L * (h_AUL_so - h_ABL_so) '(3.2.5-56) 현열 및 습기 회수기 '================2010.03.22 수정, =============2010.04.14 수정
End Select
Q_dot_c_max = TOSG(dr최대냉난방부하.최대냉방기기부하) ' Worksheets("0").Range("최대냉방부하1").Offset(0, i_count_zone - 1)
'--------------------------------------------------------------------------------------------------2010.02.22 수정
If (theta_i_c - TOSG(dr공조처리.설정치냉방)) > 0 Then
V_dot_star = 1000 * Q_dot_c_max / (c_p_Lrho_L * (theta_i_c - TOSG(dr공조처리.설정치냉방)))
Else
V_dot_star = 0
End If
'--------------------------------------------------------------------------------------------------2010.02.22 수정
Q_dot_c_star = V_dot_star * rho_L * (h_AUL_so - h_ZUL_so - Delta_h_WRG) / 3600 '(3.2.5-62)
dr최대냉난방부하.최대냉각성능 = Q_dot_c_star
dr최대냉난방부하.최대냉방실내부하 = Q_dot_c_max - (c_p_Lrho_L * (theta_e_max - theta_i_c_soll) * V_A) / 1000
'Worksheets("0").Range("최대냉방부하1").Offset(3, i_count_zone - 1) = Q_dot_c_star
'Worksheets("0").Range("최대냉방부하1").Offset(1, i_count_zone - 1) = Q_dot_c_max - (c_p_Lrho_L * (theta_e_max - theta_i_c_soll) * V_A) / 1000
End If
'End If
'End If
Next
Else
dr최대냉난방부하.최대난방실내부하 = 0
dr최대냉난방부하.최대냉방실내부하 = 0
dr최대냉난방부하.최대가열성능 = 0
dr최대냉난방부하.최대냉각성능 = 0
dr최대냉난방부하.최대가습성능 = 0
dr최대냉난방부하.공조풍량 = 0
End If
Next
pLog.Add(String.Format(">>Calc_Max_Power 완료"))
End Sub
Public Overridable Sub Calc_AirHandling(ByVal i_count_month As Integer, ByVal theta_e As Decimal, Optional p_난방온도 As Decimal = 20, Optional p_냉방온도 As Decimal = 26) ' ByVal d_mth As Integer,
pLog.Add(String.Format(">>Calc_AirHandling 진입 : i_count_month={0},theta_e={1},p_난방온도={2},p_냉방온도={3}", i_count_month, theta_e, p_난방온도, p_냉방온도))
Dim A_B As Decimal
Dim x_ABL_wi As Decimal, h_ABL_wi As Decimal, x_ABL_so As Decimal, h_ABL_so As Decimal, x_AUL_wi As Decimal, h_AUL_wi As Decimal, x_AUL_so As Decimal, h_AUL_so As Decimal
Dim c_p_L As Decimal, rho_L As Decimal, f_p As Decimal
Dim q_st_18_12h_m As Decimal
Dim eta_ZUL As Decimal, eta_ABL As Decimal
Dim Delta_p_star_ZUL As Decimal, Delta_p_star_ABL As Decimal
Dim Q_V_E_ZUL_m As Decimal, Q_V_E_ABL_m As Decimal, Q_c_b As Decimal, Q_h_b As Decimal, Q_vh_b As Decimal, Q_vc_b As Decimal, Q_vm_b As Decimal
Dim t_V_mech_m As Decimal, theta_V_mech_m As Decimal
Dim V_dot_mech_m As Decimal, V_dot_mech_max As Decimal, V_dot_A As Decimal, P_V_ZUL_m As Decimal, P_V_ABL_m As Decimal
Dim Sigma_V_dot As Decimal, Sigma_V_dot_3 As Decimal
Dim theta_h_mech_m As Decimal, theta_c_mech_m As Decimal
' Dim i_count_zone As Integer, i_count_profile As Integer, i_count_AHU As Integer
Dim theta_i_c_soll As Integer, theta_i_c As Integer, theta_i_h_soll As Integer, d_V_mech_m As Integer, theta_ABL_wi As Integer, theta_ABL_so As Integer
Dim theta_e_min As Decimal, theta_e_max As Decimal
Dim x_ZUL_wi As Decimal, theta_ZUL_wi As Decimal, theta_AUL As Decimal, h_AUL As Decimal, x_AUL As Decimal, theta_AUL_j As Decimal, x_AUL_j As Decimal, psi_AUL_j As Decimal
Dim h_B As Decimal, r_0 As Decimal, m_dot_1_L As Decimal, u As Decimal, Phi_h As Decimal, Phi_c As Decimal '===============================2010.04.14 수정
Dim Q_VE_B As Decimal, Q_VE_ZU As Decimal
Dim c_p_Lrho_L As Decimal, theta_ZUL_so As Decimal, p_S_theta_ZUL_so As Decimal, p_95_theta_ZUL_so As Decimal, x_95_ZUL_so As Decimal
Dim h_95_ZUL_so As Decimal, i_count_air As Integer, i_count_start_time As Integer, i_count_end_time As Integer ', i_profile As Integer
Dim P_D_j_theta_AUL_j As Decimal
' 공조처리
theta_i_h_soll = p_난방온도
theta_i_c_soll = p_냉방온도
theta_i_c = 24 'theta_i_c_soll - 2 '(2-36)
c_p_L = 1.006 'kJ/kg K
rho_L = 1.204 'kg/m3 (20도 1기압상태)
c_p_Lrho_L = 0.34 'Wh/m3 K
f_p = 0.4 '= Delta_p_konst / Delta_p_star = 0.4 '(3.2.5-13, 7-1)
'================================================2010.2.21 수정
'd_V_mech_m = d_mth
'================================================2010.2.21 수정
theta_ABL_wi = 20
x_ABL_wi = 0.008 '편차가 없는 습도요구 적용
h_ABL_wi = 42.6 '편차가 없는 습도요구 적용
theta_ABL_so = 26
x_ABL_so = 0.008 'kg/kg 편차가 없는 습도요구 적용
h_ABL_so = 46.7 'kJ/kg 편차가 없는 습도요구 적용
x_AUL_wi = 0.001
h_AUL_wi = -9.6
x_AUL_so = 0.012
h_AUL_so = 63
q_st_18_12h_m = 0 '우선 0으로 적용 추후 검토
theta_e_min = -11.3
theta_e_max = 31.5
r_0 = 2500 'kJ/kg
x_ZUL_wi = 0.00699
'Dim Dr프로필 As DS.tbl_profileRow '//아래에서 할당되도록되어있다.
'//location 은 거의 서울(0번줄)이된다.
Dim Drow평균온도 As DS.weather_tempRow = CType(DSET.weather_temp.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(i_count_month, "0000") & "'")(0), DS.weather_tempRow)
Dim Drow평균습도 As DS.weather_supdoRow = CType(DSET.weather_supdo.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(i_count_month, "0000") & "'")(0), DS.weather_supdoRow)
Dim Mon As String = "M" & Format(i_count_month, "00")
For Each Dr존 As DS.tbl_zoneRow In DSET.tbl_zone.Select("code<>'0'", "code")
Dim Drow분석() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & Dr존.code & "'"), DSR.월별에너지분석Row())
'If Worksheets("입력존").Range("공조존2").Offset(0, i_count_zone - 1) = "냉방" Or Worksheets("입력존").Range("공조존2").Offset(0, i_count_zone - 1) = "냉난방" Then
If Dr존.냉난방공조 = "냉방" OrElse Dr존.냉난방공조 = "냉난방" Then
'//존의 프로필과 일치하는 프로필검색후 적용
Dim Dr프로필 As DS.tbl_profileRow = CType(DSET.tbl_profile.Select("code='" & Dr존.프로필 & "'")(0), DS.tbl_profileRow)
t_V_mech_m = TOSG(Dr프로필.운전시간난방) ' Worksheets("설정조건").Range("사용시작시간1").Offset(5, i_count_profile)
V_dot_A = TOSG(Dr프로필.최소도입외기량) ' Worksheets("설정조건").Range("최소도입외기량1").Offset(0, i_count_profile)
'i_profile = i_count_profile '//아래 루프종료문은 없어서 추가했다.
'===================================================================================2010.2.21 추가
If i_count_month = 0 Then
d_V_mech_m = 0
Else
d_V_mech_m = CInt(Dr프로필("day" & Format(i_count_month, "00")))
End If
'===================================================================================2010.2.21 추가
For Each Dr공조 As DS.tbl_kongjoRow In DSET.tbl_kongjo.Select("code='" & Dr존.냉난방공조처리시스템 & "' and code <> '0'", "code")
'If Dr존.냉난방공조처리시스템 <> "" Then ' Worksheets("입력존").Range("입력난방공급기기1").Offset(2, i_count_zone - 1) <> "" Then
'If Worksheets("입력존").Range("입력난방공급기기1").Offset(2, i_count_zone - 1) = Worksheets("공조처리시스템").Range("공조기기1").Offset(0, i_count_AHU - 1) Then
'If Dr존.냉난방공조처리시스템 = Dr공조.code Then ' Worksheets("공조처리시스템").Range("공조기기1").Offset(0, i_count_AHU - 1) Then
Q_vh_b = 0
Q_vc_b = 0
Q_vm_b = 0
eta_ZUL = TOSG(Dr공조.총효율급기팬) ' Worksheets("공조처리시스템").Range("총압력상승1").Offset(2, i_count_AHU - 1)
eta_ABL = TOSG(Dr공조.총효율배기팬) ' Worksheets("공조처리시스템").Range("총압력상승1").Offset(3, i_count_AHU - 1)
Delta_p_star_ZUL = TOSG(Dr공조.총압력손실급기팬) ' Worksheets("공조처리시스템").Range("총압력상승1").Offset(0, i_count_AHU - 1)
Delta_p_star_ABL = TOSG(Dr공조.총압력손실배기팬) ' Worksheets("공조처리시스템").Range("총압력상승1").Offset(1, i_count_AHU - 1)
theta_V_mech_m = TOSG(Dr공조.설정치냉방) ' Worksheets("공조처리시스템").Range("공조방식1").Offset(2, i_count_AHU - 1)
theta_h_mech_m = TOSG(Dr공조.설정치난방) 'Worksheets("공조처리시스템").Range("공조방식1").Offset(1, i_count_AHU - 1)
theta_c_mech_m = TOSG(Dr공조.설정치냉방) ' Worksheets("공조처리시스템").Range("공조방식1").Offset(2, i_count_AHU - 1)
A_B = TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) ' Worksheets("입력존").Range("전용면적1").Offset(0, i_count_zone - 1)
theta_AUL = 0
x_AUL = 0
i_count_start_time = CInt(Dr프로필.운전시작시간.Substring(0, Dr프로필.운전시작시간.IndexOf(":"))) ' Worksheets("설정조건").Range("사용시작시간1").Offset(3, i_profile)
i_count_end_time = CInt(Dr프로필.운전종료시간.Substring(0, Dr프로필.운전종료시간.IndexOf(":"))) ' Worksheets("설정조건").Range("사용시작시간1").Offset(4, i_profile)
If i_count_start_time - i_count_end_time < 0 Then
For i_count_air = 0 To CInt(t_V_mech_m - 1) '자정 전까지 운전 조건
'//Dr기상데이터의 2번째 인덱스부터 시간이다.
theta_AUL_j = TOSG(Drow평균온도("t" & Format(i_count_start_time + i_count_air + 1, "00"))) ' Worksheets("기상데이타").Range("시간별평균온도1").Offset((i_count_month - 1) * 25 + i_count_start_time + i_count_air, location - 1)
psi_AUL_j = TOSG(Drow평균습도("t" & Format(i_count_start_time + i_count_air + 1, "00"))) / 100 ' Worksheets("기상데이타").Range("시간별평균습도1").Offset((i_count_month - 1) * 25 + i_count_start_time + i_count_air, location - 1) / 100
P_D_j_theta_AUL_j = TOSG(psi_AUL_j * Math.Exp(23.621 - 4065 / (theta_AUL_j + 236.2506)))
x_AUL_j = TOSG(0.5911 / (100000 / P_D_j_theta_AUL_j - 0.95))
theta_AUL = theta_AUL + theta_AUL_j
x_AUL = x_AUL + x_AUL_j
Next
Else
For i_count_air = 0 To 23 - i_count_start_time '자정 넘어까지 운전 조건
theta_AUL_j = TOSG(Drow평균온도("t" & Format(i_count_start_time + i_count_air + 1, "00"))) 'Worksheets("기상데이타").Range("시간별평균온도1").Offset((i_count_month - 1) * 25 + i_count_start_time + i_count_air, location - 1)
psi_AUL_j = TOSG(Drow평균습도("t" & Format(i_count_start_time + i_count_air + 1, "00"))) / 100 'Worksheets("기상데이타").Range("시간별평균습도1").Offset((i_count_month - 1) * 25 + i_count_start_time + i_count_air, location - 1) / 100
P_D_j_theta_AUL_j = TOSG(psi_AUL_j * Math.Exp(23.621 - 4065 / (theta_AUL_j + 236.2506)))
x_AUL_j = TOSG(0.5911 / (100000 / P_D_j_theta_AUL_j - 0.95))
theta_AUL = theta_AUL + theta_AUL_j
x_AUL = x_AUL + x_AUL_j
Next
For i_count_air = 0 To i_count_end_time - 1 '자정 넘어까지 운전 조건
theta_AUL_j = TOSG(Drow평균온도("t" & Format(i_count_air + 1, "00"))) 'Worksheets("기상데이타").Range("시간별평균온도1").Offset((i_count_month - 1) * 25 + i_count_air, location - 1)
psi_AUL_j = TOSG(Drow평균습도("t" & Format(i_count_air + 1, "00"))) / 100 'Worksheets("기상데이타").Range("시간별평균습도1").Offset((i_count_month - 1) * 25 + i_count_air, location - 1) / 100
P_D_j_theta_AUL_j = TOSG(psi_AUL_j * Math.Exp(23.621 - 4065 / (theta_AUL_j + 236.2506)))
x_AUL_j = TOSG(0.5911 / (100000 / P_D_j_theta_AUL_j - 0.95))
theta_AUL = theta_AUL + theta_AUL_j
x_AUL = x_AUL + x_AUL_j
Next
End If
theta_AUL = theta_AUL / t_V_mech_m
x_AUL = x_AUL / t_V_mech_m
h_AUL = c_p_L * theta_AUL + x_AUL * (r_0 + c_p_L * theta_AUL)
''V_dot_mech_h_max = Worksheets("0").Range("최대난방부하1").Offset(1, i_count_zone - 1) * 1000 / (c_p_Lrho_L * (theta_h_mech_m - theta_i_h_soll)) '(3.2.4-86)
'//현재존과일치하는 데이터수집
If (theta_i_c_soll - theta_c_mech_m) <> 0 Then
V_dot_mech_max = TOSG(Result.최대부하.Item(Dr존.code).최대냉방실내부하) * 1000 / (c_p_Lrho_L * (theta_i_c_soll - theta_c_mech_m)) '(3.2.4-86)
Else
V_dot_mech_max = 0
End If
' Worksheets("0").Range("최대냉방부하1").Offset(1, i_count_zone - 1)
''If V_dot_mech_h_max < V_dot_mech_c_max Then
'' V_dot_mech_max = V_dot_mech_c_max
''Else
'' V_dot_mech_max = V_dot_mech_h_max
''End If
If V_dot_mech_max < V_dot_A * A_B Then V_dot_mech_max = V_dot_A * A_B
Select Case Dr공조.공조방식.Trim ' Worksheets("공조처리시스템").Range("공조방식1").Offset(0, i_count_AHU - 1)
Case "정풍량" '정풍량"
V_dot_mech_m = V_dot_mech_max
Case "변풍량" '변풍량"
'//계산결과가들엉잇는 12개월용시트(1~12)에ㅓ 해당값을 찾는 엑셀루틴이다. 이건좀 교환하기가 그러네;;ㅠ
'//해당12개시트의 데이터는 DSR월별에너지분석에 존재한다 이곳에는 월/존두개의 기본키가존재하며 해당rOW를 가져와야한다.
If Drow분석.GetUpperBound(0) = -1 Then
MsgBox("월별에너지분석에 " & i_count_month & "데이터가 없습니다", MsgBoxStyle.Critical, "계산실패")
Return
End If
'Q_c_b = Sheets("" & i_count_month & "").Cells(11, 7 + i_count_zone) - (t_V_mech_m * d_V_mech_m * c_p_Lrho_L * (theta_AUL - theta_c_mech_m) * V_dot_A * A_B) / 1000
Q_c_b = TOSG(Drow분석(0).냉방요구량공조) - (t_V_mech_m * d_V_mech_m * c_p_Lrho_L * (theta_AUL - theta_c_mech_m) * V_dot_A * A_B) / 1000
If Q_c_b < 0 Then Q_c_b = 0
If (t_V_mech_m * d_V_mech_m * c_p_Lrho_L * (theta_i_c - theta_c_mech_m)) = 0 Then
V_dot_mech_m = 0
Else
V_dot_mech_m = (t_V_mech_m * d_V_mech_m * c_p_Lrho_L * (theta_AUL - theta_c_mech_m) * V_dot_A * A_B) / 1000 + Q_c_b / (t_V_mech_m * d_V_mech_m * c_p_Lrho_L * (theta_i_c - theta_c_mech_m) / 1000)
End If
'(3.2.5-4) 공조풍량(변풍량)
'If V_dot_mech_m < 0 Then
'V_dot_mech_m = 0
'End If
If V_dot_mech_m < V_dot_A * A_B Then V_dot_mech_m = V_dot_A * A_B
End Select
'If V_dot_mech_m = 0 Then
' theta_hc_m = theta_V_mech_m
'Else
' theta_hc_m = theta_V_mech_m - Q_V_E_ZUL_m * 1000 / (t_V_mech_m * d_V_mech_m * c_p_Lrho_L * V_dot_mech_m) + 1.4 '(3.2.5-22) Q_V_E_ZUL_m에 1000 을 곱해야하는지 확인요망
'End If
'==========================================================================================================================================
'월별 풍량당 공조에너지 요구량은 추후 적용
'If theta_hc_m <= 22 And theta_hc_m > 18 Then
'q_h_12h_m = q_h_18_12h_m + g_h_o_m * (theta_hc_m - 18) '(3.2.5-23) 18C<theta_hc_m<=22C
'q_c_12h_m = q_c_18_12h_m - g_c_o_m * (theta_hc_m - 18) '(3.2.5-25) 18C<theta_hc_m<=22C
'End If
'If theta_hc_m <= 18 And theta_hc_m > 14 Then
'q_h_12h_m = q_h_18_12h_m + g_h_u_m * (theta_hc_m - 18) '(3.2.5-24) 14C<theta_hc_m<=18C
'q_c_12h_m = q_c_18_12h_m - g_c_u_m * (theta_hc_m - 18) '(3.2.5-26) 14C<theta_hc_m<=18C
'End If
'q_st_12h_m = q_st_18_12h_m '(3.2.5-27)
'==========================================================================================================================================
'==========================================================================================================================================
If Dr공조.리턴공기혼합여부 = "" Then ' Worksheets("공조처리시스템").Range("공조방식1").Offset(4, i_count_AHU - 1) = "예" Then
If V_dot_mech_m = 0 Then
u = 1 '//??
Else
u = (V_dot_mech_m - V_dot_A * A_B) / V_dot_mech_m '예(리턴공기혼합여부)
End If
Else
u = 0 '아니오(리턴공기혼합여부)
End If
If Dr공조.열교환기유형 = "현열교환" OrElse Dr공조.열교환기유형 = "전열교환" Then ' Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1) = "현열교환" Or Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1) = "전열교환" Then
Phi_h = TOSG(Dr공조.열회수율) 'Worksheets("공조처리시스템").Range("열교환기1").Offset(1, i_count_AHU - 1) '=====================2010.04.14 수정
Phi_c = TOSG(Dr공조.열회수율냉) 'Worksheets("공조처리시스템").Range("열교환기1").Offset(2, i_count_AHU - 1) '=====================2010.04.14 수정
Else
Phi_h = 0 '==============================2010.04.14 수정
Phi_c = 0 '==============================2010.04.14 수정
End If
If TOSG(Drow분석(0).난방요구량공조) > 0 Then 'Sheets("" & i_count_month & "").Cells(8, 7 + i_count_zone) > 0 Then
'난방공조처리(가열,가열+가습(분무 또는 증기),리턴공기혼합유무(리턴공기혼합율 입력),열회수유무(현열 또는 전열, 열회수율 입력)
'Q_h_b = Sheets("" & i_count_month & "").Cells(8, 7 + i_count_zone) - (theta_i_h_soll - theta_AUL) * c_p_L * rho_L * d_V_mech_m * t_V_mech_m * V_dot_A * A_B / 3600
Q_h_b = TOSG(Drow분석(0).난방요구량공조) - (theta_i_h_soll - theta_AUL) * c_p_L * rho_L * d_V_mech_m * t_V_mech_m * V_dot_A * A_B / 3600
Select Case Dr공조.공조방식.Trim ' Worksheets("공조처리시스템").Range("공조방식1").Offset(0, i_count_AHU - 1)
Case "정풍량"
theta_ZUL_wi = 1000 * Q_h_b / (V_dot_mech_m * c_p_Lrho_L * t_V_mech_m * d_V_mech_m) + theta_i_h_soll 'd_Nutz=d_V_mech_m 으로 적용
Case "변풍량"
If V_dot_mech_m > V_dot_A * A_B Then
theta_ZUL_wi = theta_h_mech_m
Else
If V_dot_mech_m = 0 Then
theta_ZUL_wi = theta_i_h_soll
Else
theta_ZUL_wi = 1000 * Q_h_b / (V_dot_mech_m * c_p_Lrho_L * t_V_mech_m * d_V_mech_m) + theta_i_h_soll
End If
End If
End Select
m_dot_1_L = V_dot_mech_m * rho_L
'외기모드 경우와 에너지
'theta_ZUL_wi<theta_ABL_wi+(1-u)*(1-Phi)*(theta_AUL-theta_ABL_wi)
'Q_VE_B = 0
'Q_VE_D = 0
If Dr공조.가습기유형 <> "가습불가" Then ' Worksheets("공조처리시스템").Range("공조방식1").Offset(5, i_count_AHU - 1) <> "가습불가" Then
h_B = c_p_L * theta_ZUL_wi + x_ZUL_wi * (r_0 + c_p_L * theta_ZUL_wi)
Select Case Dr공조.열교환기유형.Trim ' Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1)
Case "열회수불가" '열회수불가"
Q_VE_B = d_V_mech_m * (m_dot_1_L * t_V_mech_m * (h_B - u * h_ABL_wi - (1 - u) * h_AUL) / 3600)
Case "현열교환" '현열교환"
Q_VE_B = d_V_mech_m * (m_dot_1_L * t_V_mech_m * (h_B - u * h_ABL_wi - (1 - u) * (h_AUL + c_p_L * Phi_h * (theta_ABL_wi - theta_AUL))) / 3600) '==============2010.04.14 수정
Case "전열교환" '전열교환"
Q_VE_B = d_V_mech_m * (m_dot_1_L * t_V_mech_m * (h_B - u * h_ABL_wi - (1 - u) * (h_AUL + Phi_h * (h_ABL_wi - h_AUL))) / 3600) '==============2010.04.14 수정
End Select
Q_vh_b = Q_VE_B
End If
If Dr공조.가습기유형 <> "분무가습" Then ' Worksheets("공조처리시스템").Range("공조방식1").Offset(5, i_count_AHU - 1) <> "분무가습" Then
Select Case Dr공조.열교환기유형.Trim ' Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1)
Case "열회수불가" '열회수불가"
Q_VE_ZU = d_V_mech_m * (m_dot_1_L * t_V_mech_m * c_p_L * (theta_ZUL_wi - u * theta_ABL_wi - (1 - u) * theta_AUL) / 3600)
Case "현열교환" '현열교환"
Q_VE_ZU = d_V_mech_m * (m_dot_1_L * t_V_mech_m * c_p_L * (theta_ZUL_wi - u * theta_ABL_wi - (1 - u) * (theta_AUL + Phi_h * (theta_ABL_wi - theta_AUL))) / 3600) '==============2010.04.14 수정
Case "전열교환" '전열교환"
Q_VE_ZU = d_V_mech_m * (m_dot_1_L * t_V_mech_m * c_p_L * (theta_ZUL_wi - u * theta_ABL_wi - (1 - u) * (theta_AUL + Phi_h * (h_ABL_wi - h_AUL) / c_p_L)) / 3600) '==============2010.04.14 수정
End Select
If Dr공조.가습기유형 = "가습불가" Then 'Worksheets("공조처리시스템").Range("공조방식1").Offset(5, i_count_AHU - 1) = "가습불가" Then
Q_vh_b = Q_VE_ZU
Else
Q_vh_b = Q_VE_ZU
Q_vm_b = Q_VE_B - Q_VE_ZU
End If
End If
Else
Q_vh_b = 0
Q_vm_b = 0
End If
'------------------------------------------------------------------------------------------------------------------------------------------
If TOSG(Drow분석(0).냉방요구량공조) > 0 Then ' Sheets("" & i_count_month & "").Cells(11, 7 + i_count_zone) > 0 Then
'냉방공조처리에너지(냉각,리턴공기혼합유무(리턴공기혼합율 계산, 열회수유무(현열 또는 전열, 열회수율 입력)
Q_c_b = TOSG(Drow분석(0).냉방요구량공조) 'Sheets("" & i_count_month & "").Cells(11, 7 + i_count_zone)
Select Case Dr공조.공조방식.Trim 'Worksheets("공조처리시스템").Range("공조방식1").Offset(0, i_count_AHU - 1)
Case "정풍량" '정풍량"
If Dr공조.외기냉방제어유무 = "" Then ' Worksheets("공조처리시스템").Range("공조방식1").Offset(6, i_count_AHU - 1) = "유" Then
If theta_AUL - theta_i_c_soll > 0 Then
Q_c_b = Q_c_b - (theta_AUL - theta_i_c_soll) * c_p_L * rho_L * d_V_mech_m * t_V_mech_m * V_dot_A * A_B / 3600
Else
Q_c_b = Q_c_b - (theta_i_c_soll - theta_AUL) * c_p_L * rho_L * d_V_mech_m * t_V_mech_m * V_dot_A * A_B / 3600
End If
End If
If Q_c_b < 0 Then Q_c_b = 0
theta_ZUL_so = theta_i_c - 1000 * Q_c_b / (V_dot_mech_m * c_p_Lrho_L * t_V_mech_m * d_V_mech_m) 'd_Nutz=d_V_mech_m 으로 적용
Case "변풍량" '변풍량"
If V_dot_mech_m > V_dot_A * A_B OrElse V_dot_mech_m = 0 Then
theta_ZUL_so = theta_c_mech_m
Else
theta_ZUL_so = theta_i_c - 1000 * Q_c_b / (V_dot_mech_m * c_p_Lrho_L * t_V_mech_m * d_V_mech_m)
End If
End Select
p_S_theta_ZUL_so = TOSG(Math.Exp(23.621 - 4065 / (theta_ZUL_so + 236.2506)))
p_95_theta_ZUL_so = TOSG(0.95 * p_S_theta_ZUL_so)
x_95_ZUL_so = TOSG(0.5911 / (100000 / p_95_theta_ZUL_so - 0.95))
m_dot_1_L = V_dot_mech_m * rho_L
h_95_ZUL_so = c_p_L * theta_ZUL_so + x_95_ZUL_so * (r_0 + c_p_L * theta_ZUL_so)
'If theta_ZUL_so > theta_AUL Then
'냉방의 경우 가열에너지
'Select Case Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1)
'Case "열회수불가"
'If theta_ZUL_so > theta_ABL_so + (1 - u) * (theta_AUL - theta_ABL_so) Then
'Q_VE_ZU = d_V_mech_m * (m_dot_1_L * t_V_mech_m * c_p_L * (theta_ZUL_so - u * theta_ABL_so - (1 - u) * theta_AUL) / 3600)
'Q_vh_b = Q_vh_b + Q_VE_ZU
'Else
'If Worksheets("공조처리시스템").Range("공조방식1").Offset(6, i_count_AHU - 1) = "무" Then
'i_count_air = 1
'End If
'End If
'Case "현열교환"
'If theta_ZUL_so > theta_ABL_so + (1 - u) * (1 - Phi) * (theta_AUL - theta_ABL_so) Then
'Q_VE_ZU = d_V_mech_m * (m_dot_1_L * t_V_mech_m * c_p_L * (theta_ZUL_so - u * theta_ABL_so - (1 - u) * (theta_AUL + Phi * (theta_ABL_so - theta_AUL))) / 3600)
'Q_vh_b = Q_vh_b + Q_VE_ZU
'Else
'If Worksheets("공조처리시스템").Range("공조방식1").Offset(6, i_count_AHU - 1) = "무" Then
'i_count_air = 1
'End If
'End If
'Case "전열교환"
'If theta_ZUL_so > theta_ABL_so + (1 - u) * (1 - Phi) * (h_AUL - h_ABL_so) / c_p_L Then
'Q_VE_ZU = d_V_mech_m * (m_dot_1_L * t_V_mech_m * c_p_L * (theta_ZUL_so - u * theta_ABL_so - (1 - u) * (theta_AUL + Phi * (h_ABL_so - h_AUL) / c_p_L)) / 3600)
'Q_vh_b = Q_vh_b + Q_VE_ZU
'Else
'If Worksheets("공조처리시스템").Range("공조방식1").Offset(6, i_count_AHU - 1) = "무" Then
'i_count_air = 1
'End If
'End If
'End Select
'End If
If theta_ZUL_so > theta_AUL And Dr공조.외기냉방제어유무 = "" Then ' Worksheets("공조처리시스템").Range("공조방식1").Offset(6, i_count_AHU - 1) = "유" Then
Q_vc_b = 0
V_dot_mech_m = (t_V_mech_m * d_V_mech_m * c_p_Lrho_L * (theta_c_mech_m - theta_AUL) * V_dot_A * A_B) / 1000 + Q_c_b / (t_V_mech_m * d_V_mech_m * c_p_Lrho_L * (theta_i_c - theta_AUL) / 1000)
If V_dot_mech_m < V_dot_A * A_B Then V_dot_mech_m = V_dot_A * A_B
Else
If 0.5911 / (100000 / p_95_theta_ZUL_so - 0.95) > (1 - u) * x_AUL + u * x_ABL_so Then
Select Case Dr공조.열교환기유형.Trim ' Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1)
Case "열회수불가" '열회수불가"
Q_vc_b = -m_dot_1_L * d_V_mech_m * t_V_mech_m * c_p_L * (theta_ZUL_so - u * theta_ABL_so - (1 - u) * theta_AUL) / 3600
Case "현열교환" '현열교환"
Q_vc_b = -m_dot_1_L * d_V_mech_m * t_V_mech_m * c_p_L * (theta_ZUL_so - u * theta_ABL_so - (1 - u) * (theta_AUL + Phi_c * (theta_ABL_so - theta_AUL))) / 3600 '==================2010.04.14 수정
Case "전열교환" '전열교환"
Q_vc_b = -m_dot_1_L * d_V_mech_m * t_V_mech_m * c_p_L * (theta_ZUL_so - u * theta_ABL_so - (1 - u) * (theta_AUL + Phi_c * (h_ABL_so - h_AUL) / c_p_L)) / 3600 '==================2010.04.14 수정
End Select
Else
Select Case Dr공조.열교환기유형.Trim ' Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1)
Case "열회수불가" '열회수불가"
Q_vc_b = -m_dot_1_L * d_V_mech_m * t_V_mech_m * (h_95_ZUL_so - u * h_ABL_so - (1 - u) * h_AUL) / 3600
Case "현열교환" '현열교환"
Q_vc_b = -m_dot_1_L * d_V_mech_m * t_V_mech_m * (h_95_ZUL_so - u * h_ABL_so - (1 - u) * (h_AUL + c_p_L * Phi_c * (theta_ABL_so - theta_AUL))) / 3600 '==================2010.04.14 수정
Case "전열교환" '전열교환"
Q_vc_b = -m_dot_1_L * d_V_mech_m * t_V_mech_m * (h_95_ZUL_so - u * h_ABL_so - (1 - u) * (h_AUL + Phi_c * (h_ABL_so - h_AUL))) / 3600 '==================2010.04.14 수정
End Select
End If
End If
Else
Q_vc_b = 0
End If
'==========================================================================================================================================
'==========================================================================================================================================
Select Case Dr공조.공조방식.Trim ' Worksheets("공조처리시스템").Range("공조방식1").Offset(0, i_count_AHU - 1)
Case "정풍량" '정풍량"
If eta_ZUL <> 0 Then
P_V_ZUL_m = V_dot_mech_m * Delta_p_star_ZUL / eta_ZUL / 3600000 ' V_dot_ZUL = V_dot_mech_m (3.2.5-7) 정풍량 (3600은 Pa을 W환산하면서 h를 s로 환산)
Else
P_V_ZUL_m = 0
End If
If eta_ABL <> 0 Then
P_V_ABL_m = V_dot_mech_m * Delta_p_star_ABL / eta_ABL / 3600000
Else
P_V_ABL_m = 0
End If
Q_V_E_ZUL_m = P_V_ZUL_m * t_V_mech_m * d_V_mech_m '(3.2.5-10) 정풍량
Q_V_E_ABL_m = P_V_ABL_m * t_V_mech_m * d_V_mech_m '(3.2.5-10) 정풍량
Case "변풍량" '변풍량"
Sigma_V_dot = t_V_mech_m * d_V_mech_m * V_dot_mech_m + 1000 * Q_c_b / (c_p_Lrho_L * (theta_i_c - theta_V_mech_m)) '(3.2.5-5) 월간 공조풍량 합(변풍량)
' 수식 변경 Sigma_V_dot_3 = t_V_mech_m * d_V_mech_m * (V_dot_mech_m ^ 3) + Q_c_b / (c_p_L * rho_L * (theta_i_c - theta_V_mech_m))
Sigma_V_dot_3 = TOSG(Sigma_V_dot * (0.8 * V_dot_mech_m + 0.2 * V_dot_mech_max) ^ 2)
If V_dot_mech_m = 0 Then
P_V_ZUL_m = 0 'CSng(V_dot_mech_m * Delta_p_star_ZUL * f_p / eta_ZUL / 3600 + (V_dot_mech_m ^ 3 * Delta_p_star_ZUL * (1 - f_p)) / (eta_ZUL * V_dot_mech_m ^ 2) / 3600) '(3.2.5-11) 변풍량 시간, 용도로 추후검토
P_V_ABL_m = 0 'CSng(V_dot_mech_m * Delta_p_star_ABL * f_p / eta_ABL / 3600 + (V_dot_mech_m ^ 3 * Delta_p_star_ABL * (1 - f_p)) / (eta_ABL * V_dot_mech_m ^ 2) / 3600) '(3.2.5-11) 변풍량 시간, 용도로 추후검
Q_V_E_ZUL_m = 0 'P_V_ZUL_m * t_V_mech_m * d_V_mech_m / 1000 'kWh (3.2.5-10) 변풍량 냉방부하
Q_V_E_ABL_m = 0 'P_V_ABL_m * t_V_mech_m * d_V_mech_m / 1000 'kWh (3.2.5-10) 변풍량 냉방부하
Else
'==========================변풍량에서도 효율이 없을 경우 동력이 0인 것으로 평가 2010.10.10
If eta_ZUL <> 0 Then
P_V_ZUL_m = TOSG(V_dot_mech_m * Delta_p_star_ZUL * f_p / eta_ZUL / 3600 + (V_dot_mech_m ^ 3 * Delta_p_star_ZUL * (1 - f_p)) / (eta_ZUL * V_dot_mech_max ^ 2) / 3600) '(3.2.5-11) 변풍량 시간, 용도로 추후검토
'=============================================================================================== 최소외기도입량 동력보다 작으면 최소외기도입 동력으로 적용 2012.01.31
If P_V_ZUL_m < V_dot_A * A_B * Delta_p_star_ZUL / eta_ZUL / 3600 Then
P_V_ZUL_m = V_dot_A * A_B * Delta_p_star_ZUL / eta_ZUL / 3600
End If
'===============================================================================================
Else
P_V_ZUL_m = 0
End If
If eta_ABL <> 0 Then
P_V_ABL_m = TOSG(V_dot_mech_m * Delta_p_star_ABL * f_p / eta_ABL / 3600 + (V_dot_mech_m ^ 3 * Delta_p_star_ABL * (1 - f_p)) / (eta_ABL * V_dot_mech_max ^ 2) / 3600) '(3.2.5-11) 변풍량 시간, 용도로 추후검
'=============================================================================================== 최소외기도입량 동력보다 작으면 최소외기도입 동력으로 적용 2012.01.31
If P_V_ABL_m < V_dot_A * A_B * Delta_p_star_ABL / eta_ABL / 3600 Then
P_V_ABL_m = V_dot_A * A_B * Delta_p_star_ABL / eta_ABL / 3600
End If
'===============================================================================================
Else
P_V_ABL_m = 0
End If
'============================================================2010.10.10
Q_V_E_ZUL_m = P_V_ZUL_m * t_V_mech_m * d_V_mech_m / 1000 'kWh (3.2.5-10) 변풍량 냉방부하
Q_V_E_ABL_m = P_V_ABL_m * t_V_mech_m * d_V_mech_m / 1000 'kWh (3.2.5-10) 변풍량 냉방부하
End If
End Select
'------------------------------------------------------------------------------------------------------------------------------------------
' 우선 외기온도에 대한 공조에너지 요구량 산정 필요 ????
'q_st_12h_m = q_st_18_12h_m '(3.2.5-27)
'If theta_e < theta_hc_m Then
'Select Case Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1)
'Case "열회수불가"
'Delta_h_WRG = 0 '(3.2.5-54) 열 회수기 없음
'Case "현열교환"
'Delta_h_WRG = Worksheets("공조처리시스템").Range("열교환기1").Offset(1, i_count_AHU - 1) / 100 * c_p_L * (theta_ABL_wi - theta_e) '(3.2.5-55) 순수 현열 회수기
'Case "전열교환"
'Delta_h_WRG = Worksheets("공조처리시스템").Range("열교환기1").Offset(1, i_count_AHU - 1) / 100 * c_p_L * (theta_ABL_wi - theta_e) '(3.2.5-56) 현열 및 습기 회수기 우선 현열만 고려
'End Select
'q_h_12h_m = rho_L * (c_p_L * (theta_hc_m - theta_e) - Delta_h_WRG) * 12 * d_mth * V_dot_A * A_B + rho_L * c_p_L * (theta_h_mech_m - theta_i_h_soll) * 12 * d_mth * (V_dot_mech_m - V_dot_A * A_B) 'theta_h_mech_m 과 theta_hc_m 중 선택 검토
'End If
'If theta_e > theta_hc_m Then
'Select Case Worksheets("공조처리시스템").Range("열교환기1").Offset(0, i_count_AHU - 1)
'Case "열회수불가"
'Delta_h_WRG = 0 '(3.2.5-54) 열 회수기 없음
'Case "현열교환"
'If theta_e > theta_ABL_so Then
'Delta_h_WRG = Worksheets("공조처리시스템").Range("열교환기1").Offset(1, i_count_AHU - 1) / 100 * c_p_L * (theta_e - theta_ABL_so) '(3.2.5-55) 순수 현열 회수기
'Else
'Delta_h_WRG = Worksheets("공조처리시스템").Range("열교환기1").Offset(1, i_count_AHU - 1) / 100 * c_p_L * (theta_ABL_so - theta_e) '(3.2.5-55) 순수 현열 회수기
'End If
'Case "전열교환"
'If theta_e > theta_ABL_so Then
'Delta_h_WRG = Worksheets("공조처리시스템").Range("열교환기1").Offset(1, i_count_AHU - 1) / 100 * c_p_L * (theta_e - theta_ABL_so) '(3.2.5-55) 순수 현열 회수기 우선 현열만 고려
'Else
'Delta_h_WRG = Worksheets("공조처리시스템").Range("열교환기1").Offset(1, i_count_AHU - 1) / 100 * c_p_L * (theta_ABL_so - theta_e) '(3.2.5-55) 순수 현열 회수기 우선 현열만 고려
'End If
'End Select
'q_c_12h_m = rho_L * (c_p_L * (theta_e - theta_hc_m) - Delta_h_WRG) * 12 * d_mth * V_dot_A * A_B + rho_L * c_p_L * (theta_i_c_soll - theta_c_mech_m) * 12 * d_mth * (V_dot_mech_m - V_dot_A * A_B) 'theta_c_mech_m 과 theta_hc_m 중 선택 검토
'End If
'f_h_H = 1 + 6.333 * 10 ^ (-3) * (t_V_mech_m - 12) - 2.689 * 10 ^ (-4) * (t_V_mech_m - 12) ^ 2 + 6.94 * 10 ^ (-6) * (t_V_mech_m - 12) ^ 3 '(3.2.5-31)
'f_h_C = 1 - 5.583 * 10 ^ (-3) * (t_V_mech_m - 12) + 2.153 * 10 ^ (-4) * (t_V_mech_m - 12) ^ 2 - 6.597 * 10 ^ (-6) * (t_V_mech_m - 12) ^ 3 '(3.2.5-32) 편차가 없는 습도요구
'f_h_C = 1 - 1.552 * 10 ^ (-3) * (t_V_mech - 12) - 8.073 * 10 ^ (-4) * (t_V_mech_m - 12) ^ 2 - 1.302 * 10 ^ (-6) * (t_V_mech_m - 12) ^ 3 '(3.2.5-32) 편차가 있는 습도요구 추후 검토
'f_h_st = 1
'q_h_m = q_h_12h_m * t_V_mech_m / 12 * f_h_H * d_V_mech_m / d_mth '(3-28)
'q_c_m = q_c_12h_m * t_V_mech_m / 12 * f_h_C * d_V_mech_m / d_mth '(3-29)
'q_st_m = q_st_12h_m * t_V_mech_m / 12 * f_h_st * d_V_mech_m / d_mth '(3-30)
'Q_vh_b = q_h_m * V_dot_mech_m '(3-36) =Q_vi_b (7-2,7-8,7-14)
'Q_vc_b = q_c_m * V_dot_mech_m '(3-36) =Q_vi_b (7-2,7-8,7-14)
'Q_vm_b = q_st_m * V_dot_mech_m '(3-36) =Q_vi_b (7-2,7-8,7-14)
'Q_vh_b = q_h_m / 1000 ' 우선 공조풍량을 미리 포함시킴 추후 검토
'Q_vc_b = q_c_m / 1000 ' 우선 공조풍량을 미리 포함시킴 추후 검토
'Q_vm_b = q_st_m * V_dot_mech_m / 1000 '(3-36) =Q_vi_b (7-2,7-8,7-14)
'==========================================================================================================================================
Drow분석(0).공조풍량 = V_dot_mech_m
'Sheets("" & i_count_month & "").Cells(17, 7 + i_count_zone) = V_dot_mech_m
If Q_vh_b < 0 Then
Q_vh_b = 0 '음수 여부 추후 검토
End If
Drow분석(0).공조요구량난방 = Q_vh_b
'Sheets("" & i_count_month & "").Cells(19, 7 + i_count_zone) = Q_vh_b
If Q_vc_b < 0 Then
Q_vc_b = 0 '냉방공조에너지요구량이 -인 것은 난방에서 처리되는 것으로 설정
End If
Drow분석(0).공조요구량냉방 = Q_vc_b
'Sheets("" & i_count_month & "").Cells(21, 7 + i_count_zone) = Q_vc_b
If Q_vm_b < 0 Then
Q_vm_b = 0 '음수 여부 추후 검토
End If
Drow분석(0).공조요구량가습 = Q_vm_b ' Sheets("" & i_count_month & "").Cells(23, 7 + i_count_zone) = Q_vm_b
Drow분석(0).환기요구량 = Q_V_E_ZUL_m + Q_V_E_ABL_m ' Sheets("" & i_count_month & "").Cells(25, 7 + i_count_zone) = Q_V_E_ZUL_m + Q_V_E_ABL_m
'==========================================================================================================================================
'End If
'End If
Next
Else
Drow분석(0).공조풍량 = 0 ' Sheets("" & i_count_month & "").Cells(17, 7 + i_count_zone) = 0
Drow분석(0).공조요구량난방 = 0 ' Sheets("" & i_count_month & "").Cells(19, 7 + i_count_zone) = 0
Drow분석(0).공조요구량냉방 = 0 'Sheets("" & i_count_month & "").Cells(21, 7 + i_count_zone) = 0
Drow분석(0).공조요구량가습 = 0 ' Sheets("" & i_count_month & "").Cells(23, 7 + i_count_zone) = 0
Drow분석(0).환기요구량 = 0 'Sheets("" & i_count_month & "").Cells(25, 7 + i_count_zone) = 0
'==========================================================================2010.02.04 추가부분 시작
If Dr존.냉난방공조 = "환기" OrElse (Dr존.냉난방공조 = "난방" AndAlso Dr존.외기부하처리여부 = "") Then '//환기
Dim DR프로필() As DS.tbl_profileRow = CType(DSET.tbl_profile.Select("code='" & Dr존.프로필.ToString & "' and code <> '0'"), DS.tbl_profileRow())
If DR프로필.GetUpperBound(0) = 0 Then
t_V_mech_m = TOSG(DR프로필(0).운전시간난방) ' Worksheets("설정조건").Range("사용시작시간1").Offset(5, i_count_profile)
V_dot_A = TOSG(DR프로필(0).최소도입외기량) 'Worksheets("설정조건").Range("최소도입외기량1").Offset(0, i_count_profile)
A_B = TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) ' Worksheets("입력존").Range("전용면적1").Offset(0, i_count_zone - 1)
'===================================================================================2010.2.25 추가
'd_V_mech_m = Worksheets("설정조건").Range("월간사용일수1").Offset(i_count_month, i_count_profile)
Select Case i_count_month
Case 0 : d_V_mech_m = 0
Case 1 : d_V_mech_m = DR프로필(0).day01
Case 2 : d_V_mech_m = DR프로필(0).day02
Case 3 : d_V_mech_m = DR프로필(0).day03
Case 4 : d_V_mech_m = DR프로필(0).day04
Case 5 : d_V_mech_m = DR프로필(0).day05
Case 6 : d_V_mech_m = DR프로필(0).day06
Case 7 : d_V_mech_m = DR프로필(0).day07
Case 8 : d_V_mech_m = DR프로필(0).day08
Case 9 : d_V_mech_m = DR프로필(0).day09
Case 10 : d_V_mech_m = DR프로필(0).day10
Case 11 : d_V_mech_m = DR프로필(0).day11
Case 12 : d_V_mech_m = DR프로필(0).day12
End Select
'===================================================================================2010.2.25 추가
End If
Dim DR공조() As DS.tbl_kongjoRow = CType(DSET.tbl_kongjo.Select("code='" & Dr존.냉난방공조처리시스템 & "' and code <> '0'"), DS.tbl_kongjoRow())
If DR공조.GetUpperBound(0) = 0 Then
'------------------------------------------------------------------------------------------------------------------------------------------------------------------------------2010.05.26 추가
If DR공조(0).열교환기유형.Trim = "현열교환" OrElse DR공조(0).열교환기유형.Trim = "전열교환" Then
Phi_h = TOSG(DR공조(0).열회수율) 'Worksheets("공조처리시스템").Range("열교환기1").Offset(1, i_count_AHU - 1)
Phi_c = TOSG(DR공조(0).열회수율냉) 'Worksheets("공조처리시스템").Range("열교환기1").Offset(2, i_count_AHU - 1)
Else
Phi_h = 0
Phi_c = 0
End If
'// 여기 i_count_month 에 0 이 오지는 않나요? 예.. 1 부터 시작해요
'// If CSng(Drow분석(0).난방요구량공조) > 0 Then 'Sheets("" & i_count_month & "").Cells(8, 7 + i_count_zone) > 0 Then
If TOSG(Drow분석(0).난방요구량공조) > 0 Then
Drow분석(0).난방요구량공조 = (1 - Phi_h) * TOSG(Drow분석(0).난방요구량공조)
End If
If TOSG(Drow분석(0).냉방요구량공조) > 0 Then
Drow분석(0).냉방요구량공조 = (1 - Phi_c) * TOSG(Drow분석(0).냉방요구량공조)
End If
'If Sheets("" & i_count_month & "").Cells(8, 7 + i_count_zone) > 0 Then
' Sheets("" & i_count_month & "").Cells(8, 7 + i_count_zone) = (1 - Phi_h) * Sheets("" & i_count_month & "").Cells(8, 7 + i_count_zone)
'End If
'If Sheets("" & i_count_month & "").Cells(11, 7 + i_count_zone) > 0 Then
' Sheets("" & i_count_month & "").Cells(11, 7 + i_count_zone) = (1 - Phi_c) * Sheets("" & i_count_month & "").Cells(11, 7 + i_count_zone)
'End If
'------------------------------------------------------------------------------------------------------------------------------------------------------------------------------2010.05.26 추가
eta_ZUL = TOSG(DR공조(0).총효율급기팬) ' Worksheets("공조처리시스템").Range("총압력상승1").Offset(2, i_count_AHU - 1)
eta_ABL = TOSG(DR공조(0).총효율배기팬) ' Worksheets("공조처리시스템").Range("총압력상승1").Offset(3, i_count_AHU - 1)
Delta_p_star_ZUL = TOSG(DR공조(0).총압력손실급기팬) ' Worksheets("공조처리시스템").Range("총압력상승1").Offset(0, i_count_AHU - 1)
Delta_p_star_ABL = TOSG(DR공조(0).총압력손실배기팬) ' Worksheets("공조처리시스템").Range("총압력상승1").Offset(1, i_count_AHU - 1)
If eta_ZUL <> 0 Then
P_V_ZUL_m = V_dot_A * A_B * Delta_p_star_ZUL / eta_ZUL / 3600000
Else
P_V_ZUL_m = 0
End If
If eta_ABL <> 0 Then
P_V_ABL_m = V_dot_A * A_B * Delta_p_star_ABL / eta_ABL / 3600000
Else
P_V_ABL_m = 0
End If
Q_V_E_ZUL_m = P_V_ZUL_m * t_V_mech_m * d_V_mech_m
Q_V_E_ABL_m = P_V_ABL_m * t_V_mech_m * d_V_mech_m
Result.E분석(i_count_month).환기에너지요구량(Dr존.code) = Q_V_E_ZUL_m + Q_V_E_ABL_m
'Sheets("" & i_count_month & "").Cells(25, 7 + i_count_zone) = Q_V_E_ZUL_m + Q_V_E_ABL_m
End If
Else
Result.E분석(i_count_month).환기에너지요구량(Dr존.code) = 0
End If
'==========================================================================2010.02.04 추가부분 끝
End If
Next
pLog.Add(String.Format(">>Calc_AirHandling 완료"))
End Sub
Private DSET As DS
Private DSETR As DSR
Private Result As CResult
Public Sub New(ByRef pds As DS, ByRef pdsetr As DSR, ByRef presult As CResult)
DSET = pds
DSETR = pdsetr
Result = presult
End Sub
End Class

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,18 @@
<?xml version="1.0" encoding="utf-8"?>
<ClassDiagram MajorVersion="1" MinorVersion="1">
<Class Name="Eco2Ar.CShared">
<Position X="0.5" Y="0.5" Width="1.5" />
<TypeIdentifier>
<HashCode>AAAAAEAAAAAAAAAAAAAEAAAAAAABAAABACAABCAAABA=</HashCode>
<FileName>Calculator\CShared.vb</FileName>
</TypeIdentifier>
</Class>
<Class Name="Eco2Ar.CZone">
<Position X="2.25" Y="0.5" Width="1.75" />
<TypeIdentifier>
<HashCode>AAAAAAEAAAAAAAgAAAAAAAAhAAABAAgAAAAAIAACAAA=</HashCode>
<FileName>Calculator\Zone\CZone.vb</FileName>
</TypeIdentifier>
</Class>
<Font Name="굴림" Size="9" />
</ClassDiagram>

View File

@@ -0,0 +1,54 @@
<?xml version="1.0" encoding="utf-8"?>
<ClassDiagram MajorVersion="1" MinorVersion="1">
<Class Name="Eco2Ar.CResult">
<Position X="0.5" Y="0.5" Width="1.5" />
<Compartments>
<Compartment Name="Nested Types" Collapsed="false" />
</Compartments>
<TypeIdentifier>
<HashCode>AAAACAAAAAAAAEAEAAAEEAAiIAAAAAAAAgAAABAAAAA=</HashCode>
<FileName>Calculator\Result\CResult.vb</FileName>
</TypeIdentifier>
</Class>
<Class Name="Eco2Ar.C사용면적">
<Position X="2" Y="0.5" Width="1.5" />
<TypeIdentifier>
<HashCode>AAAAAgAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAgEQYAAA=</HashCode>
<FileName>Calculator\Result\C사용면적.vb</FileName>
</TypeIdentifier>
</Class>
<Class Name="Eco2Ar.CZones">
<Position X="5.5" Y="0.5" Width="1.75" />
<Compartments>
<Compartment Name="Fields" Collapsed="true" />
<Compartment Name="Nested Types" Collapsed="false" />
</Compartments>
<NestedTypes>
<Class Name="Eco2Ar.CZones.Citem">
<TypeIdentifier>
<NewMemberFileName>Calculator\Result\CZones.vb</NewMemberFileName>
</TypeIdentifier>
</Class>
</NestedTypes>
<TypeIdentifier>
<HashCode>AAAAAAAAAAAACAAAAAAAAAQAAAAAAAAAAAAAAAAAAIA=</HashCode>
<FileName>Calculator\Result\CZones.vb</FileName>
<NewMemberFileName>Calculator\Result\C최대냉난방부하.vb</NewMemberFileName>
</TypeIdentifier>
</Class>
<Class Name="Eco2Ar.C최대냉난방부하">
<Position X="3.5" Y="0.5" Width="2" />
<NestedTypes>
<Class Name="Eco2Ar.C최대냉난방부하.Citem" Collapsed="true">
<TypeIdentifier>
<NewMemberFileName>Calculator\Result\C최대냉난방부하.vb</NewMemberFileName>
</TypeIdentifier>
</Class>
</NestedTypes>
<TypeIdentifier>
<HashCode>AAAAACAAAAAAAAAAAAAAAAAEAAAAAAAAAAAAAAAAAAA=</HashCode>
<FileName>Calculator\Result\C최대냉난방부하.vb</FileName>
</TypeIdentifier>
</Class>
<Font Name="굴림" Size="9" />
</ClassDiagram>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,736 @@
Public Class CRenewable
Private Result As CResult
Private DSET As DS
Public Sub New(ByRef pds As DS, ByRef presult As CResult)
DSET = pds
Result = presult
'ByVal dr존 As DS.tbl_zoneRow,
End Sub
' Public Overridable Sub Calc_ThermalSolarSystem_EN(ByVal i_system_ts As Integer, ByVal i_count_ts As Integer, ByVal i_ts_month As Integer, ByVal i_ts_d_mth As Integer, ByVal Q_H_sol_us_m as decimal, ByVal Q_W_sol_us_m as decimal, ByRef Q_W_sol_out_m as decimal, ByRef Q_H_sol_out_m as decimal, ByRef W_sol_aux_m as decimal)
Public Overridable Sub Calc_ThermalSolarSystem_EN(ByVal i_system_ts As Integer, ByVal DR_code As String, ByVal i_ts_month As Integer, ByVal i_ts_d_mth As Integer, ByVal Q_H_sol_us_m As Decimal, ByVal Q_W_sol_us_m As Decimal, _
ByRef Q_W_sol_out_m As Decimal, ByRef Q_H_sol_out_m As Decimal, ByRef W_sol_aux_m As Decimal)
pLog.Add(String.Format(">>Calc_ThermalSolarSystem_EN 진입 : i_system_ts={0}, DR_code={1}, i_ts_month={2}, i_ts_d_mth={3}, Q_H_sol_us_m={4}, Q_W_sol_us_m={5}, Q_W_sol_out_m={6}, Q_H_sol_out_m={7}, W_sol_aux_m={8}", _
i_system_ts, DR_code, i_ts_month, i_ts_d_mth, Q_H_sol_us_m, Q_W_sol_us_m, Q_W_sol_out_m, Q_H_sol_out_m, W_sol_aux_m))
Dim theta_ref As Decimal, theta_w As Decimal, theta_cw As Decimal, U_loop_p As Decimal, U_loop As Decimal, Delta_T As Decimal
Dim A_ As Decimal, a As Decimal, b As Decimal, c As Decimal, d As Decimal, e As Decimal, f As Decimal, eta_loop As Decimal, IAM As Decimal, eta_0 As Decimal
Dim a_1 As Decimal, a_2 As Decimal, P_H As Decimal, P_W As Decimal, V_ref As Decimal, V_sol As Decimal, t_m As Decimal, I_m As Decimal, P_aux_nom As Decimal
'Dim i_ts_location As Integer, i_count_ts_location As Integer
' Dim i_count_month As Integer
Dim i_direction As Integer
Dim t_aux_m As Decimal, l_tot As Decimal, f_st As Decimal, U_st As Decimal
Dim theta_setpoint As Decimal, theta_a_avg As Decimal, theta_e_avg As Decimal
Dim Q_sol_ls_rbl_m As Decimal, Q_sol_aux_rbl_m As Decimal, Q_sol_st_ls_rbl_m As Decimal, Q_bu_dis_ls_rbl_m As Decimal, Q_bu_dis_ls_m As Decimal, Q_sol_ls_m As Decimal
Dim Q_W_bu_dis_ls_m As Decimal, Q_H_bu_dis_ls_m As Decimal, Q_W_sol_st_ls_m As Decimal, Q_H_sol_st_ls_m As Decimal
Dim A_H As Decimal, A_W As Decimal, X As Decimal, Y As Decimal
Dim Q_W_sol_out_net As Decimal, Q_H_sol_out_net As Decimal, H_W_ratio As Decimal
Q_W_sol_out_net = 0
Q_H_sol_out_net = 0
'Dim Dr기상데이터 As DS.tbl_weatherRow
'For i_count_ts_location = 1 To DSET.tbl_weather.Rows.Count ' Range("건물위치").Columns.Count
' Dr기상데이터 = DSET.tbl_weather(i_count_ts_location - 1)
' If dr존.지역 = Dr기상데이터.건물위치 Then '//이상하다 1버번쨰 존의 지역값만 계속쓴다 -_-;; 지역은 즉 존에할당된게아니고 1개만 존재하는듯하다
' i_ts_location = i_count_ts_location '//기상데이터에서 현재지정된 존.지역의 기상데이터의 지역의 열번호(엑셀에서만)를 기억한다 (나중에 이번호로 데이터 참조하려고)
' Exit For
' End If
' '//지역찾을떄그냥 DR지역을 사용하도록한다.
' 'If Worksheets("입력존").Range("지역1").Offset(0, 0) = Worksheets("기상데이타").Range("건물위치1").Offset(0, i_count_ts_location - 1) Then
' ' i_ts_location = i_count_ts_location
' ' Exit For
' 'End If
'Next
l_tot = 0
Dim Dr신재생 As DS.tbl_newRow = CType(DSET.tbl_new.Select("code='" & DR_code & "' and code <> '0'", "code")(0), DS.tbl_newRow) '//신재생의 태양열시스템
Select Case Dr신재생.집열판방위.Trim ' Worksheets("신재생기기").Range("태양열시스템종류1").Offset(3, i_count_ts - 1)
Case "" '동"
i_direction = 12
Case "남동" '남동"
i_direction = 10
Case "" '남"
i_direction = 9
Case "남서" '남서"
i_direction = 11
Case "" '서"
i_direction = 13
Case "수평" '수평" '//월별평균일사 수평면을 사용 나머지것들은 45도짜리를 사용한다. 45도짜리 코드값을 해당코드+1000이다. 해당코드+1000으로 미리 셋팅햇다(변경불가)
i_direction = 0
Case Else
MsgBox("신재생에너지-태양열의 집열판 방위값이 올바르지않습니다", MsgBoxStyle.Critical, "확인")
End Select
'//집열판방위에따른 월별평균일사의 총합을 가져온다
'//weather_ilsa 의 p코드에는 지역코드값이 들어가고 코드값은 집열판방위+1000 의값이 해당 각도의 방향에대한 데이터가된다.
'///만약값이 서울 방향이 남 이엇을경우에는 해당 일사데이터를 찾는게 목적이에요. 여기서 서울의 코드값은 찾을수잇어요
'//그담이 방향 남에 맞는 일사데이터를 찾아야하는데.. 일사데이터 코드로는 못찾으니깐. 이름으로 찾아요.
'//
Dim 일사이름 As String = Dr신재생.집열판방위 & "(45)" '//이렇게되면 남(45) 라는 최종이름이 되겟죠?
Dim Drow평균일사() As DS.weather_ilsaRow = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & _
"' and 설명='" & 일사이름 & "'"), DS.weather_ilsaRow())
'//그렇게해서 서울의 코드에 해당하는 pcode 와 이름이 남(45)로 되어잇는 일사데이터테이블에서 데이터를 검색하게되겟죠?
'//즉 데이터가 나오면 해당 데이터가 맞는거에요 ..이건 데이터베이스 이름을 남(45) 식으로 모두 고쳐주세요
If Drow평균일사.GetUpperBound(0) = -1 Then
MsgBox("지역코드=" + Calc.Pub.기상데이터.code + vbCrLf + "집열판방위코드=" + Dr신재생.집열판방위 + _
vbCrLf + "예상일사코드=" + 일사이름 + _
vbCrLf + "에 해당하는 평균일사데이터가 없습니다. 1개의 행이 반환되어야 합니다", MsgBoxStyle.Critical, "계산실패")
I_m = 0
' Return
Else
l_tot += TOSG(Drow평균일사(0).m01) + TOSG(Drow평균일사(0).m02) + TOSG(Drow평균일사(0).m03) + TOSG(Drow평균일사(0).m04) + _
TOSG(Drow평균일사(0).m05) + TOSG(Drow평균일사(0).m06) + TOSG(Drow평균일사(0).m07) + TOSG(Drow평균일사(0).m08) + _
TOSG(Drow평균일사(0).m09) + TOSG(Drow평균일사(0).m10) + TOSG(Drow평균일사(0).m11) + TOSG(Drow평균일사(0).m12)
I_m = TOSG(Drow평균일사(0)("m" & i_ts_month.ToString("00"))) '//이줄로 위의 케이스문을 대체햇다 오류나면 케이스문으로 일단 사용할예정
End If
t_aux_m = I_m / l_tot * 2000
'//월별외기평균온도(i_ts_month << 파라미터)
theta_e_avg = TOSG(Calc.Pub.기상데이터("m" & i_ts_month.ToString("00")))
'theta_e_avg = Worksheets("기상데이타").Range("최소외기온도1").Offset(2 + i_ts_month, i_ts_location - 1) '//월별외기평균온도 tbl_weather에 존재
Select Case Dr신재생.축열탱크설치장소.Trim ' Worksheets("신재생기기").Range("태양열축열탱크1").Offset(2, i_count_ts - 1)
Case "난방공간" '난방공간"
theta_a_avg = 20
Case "비난방공간" '비난방공간"
theta_a_avg = theta_e_avg + (20 - theta_e_avg) / 2
Case "외부공간" '외부공간"
theta_a_avg = theta_e_avg
End Select
theta_w = 40
theta_cw = 15
a_2 = 0
eta_loop = 0.8
eta_0 = 0.6
t_m = i_ts_d_mth * 24
a = 1.029
b = -0.065
c = -0.245
d = 0.0018
e = 0.0215
f = 0
Select Case Dr신재생.집열기유형.Trim 'Worksheets("신재생기기").Range("태양열시스템종류1").Offset(1, i_count_ts - 1)
Case "평판형" '평판형"
a_1 = 6
IAM = 0.94
Case "진공관형" '진공관형"
a_1 = 3
IAM = 1
End Select
If Dr신재생.태양열시스템의성능 = "성능치" Then ' Worksheets("신재생기기").Range("태양열시스템종류1").Offset(5, i_count_ts - 1) = "성능치" Then
eta_0 = TOSG(Dr신재생.무손실효율계수) 'Worksheets("신재생기기").Range("태양열시스템종류1").Offset(6, i_count_ts - 1)
a_1 = TOSG(Dr신재생.열손실계수1차) 'Worksheets("신재생기기").Range("태양열시스템종류1").Offset(7, i_count_ts - 1)
a_2 = TOSG(Dr신재생.열손실계수2차) 'Worksheets("신재생기기").Range("태양열시스템종류1").Offset(8, i_count_ts - 1)
End If
Select Case Dr신재생.태양열종류.Trim ' Worksheets("신재생기기").Range("태양열시스템종류1").Offset(0, i_count_ts - 1)
Case "급탕" '급탕"
A_ = TOSG(Dr신재생.집열판면적) ' Worksheets("신재생기기").Range("태양열시스템종류1").Offset(2, i_count_ts - 1)
U_loop_p = TOSG(5 + 0.5 * A_) '(B.3)
U_loop = a_1 + a_2 * 40 + U_loop_p / A_ '(13)
theta_ref = TOSG(11.6 + 1.18 * theta_w + 3.86 * theta_cw - 1.32 * theta_e_avg) '(B.8) 급탕시스템인 경우 theta_w는 40도, theta_cw 시수온도는15도 가정
Delta_T = theta_ref - theta_e_avg '(14)
V_ref = A_ * 75
V_sol = TOSG(Dr신재생.축열탱크체적급탕) ' Worksheets("신재생기기").Range("태양열축열탱크1").Offset(0, i_count_ts - 1)
f_st = TOSG((V_ref / V_sol) ^ 0.25) '(B.5)
If Q_W_sol_us_m <> 0 Then
X = A_ * U_loop * eta_loop * Delta_T * f_st * t_m / (Q_W_sol_us_m * 1000) '(12)
Y = A_ * IAM * eta_0 * eta_loop * I_m * t_m / (Q_W_sol_us_m * 1000) '(15)
Q_W_sol_out_m = (a * Y + b * X + c * Y * Y + d * X * X + e * Y * Y * Y + f * X * X * X) * Q_W_sol_us_m '(11)
Else
Q_W_sol_out_m = 0
End If
If Q_W_sol_out_m < 0 Then Q_W_sol_out_m = 0
If Q_W_sol_out_m > Q_W_sol_us_m Then Q_W_sol_out_m = Q_W_sol_us_m
'태양열시스템 열손실
U_st = TOSG(0.16 * V_sol ^ 0.5) '(B.9)
theta_setpoint = 60
If Q_W_sol_us_m <> 0 Then
Q_W_sol_st_ls_m = U_st * (theta_setpoint - theta_a_avg) * (Q_W_sol_out_m / Q_W_sol_us_m) * t_m / 1000 '(17)
Q_bu_dis_ls_m = TOSG(0.02 * Q_W_sol_us_m * (Q_W_sol_out_m / Q_W_sol_us_m))
Else
Q_W_sol_st_ls_m = 0
Q_bu_dis_ls_m = 0
End If
If i_system_ts = 1 Then '=====================================================2010.04.02 추가
'난방 부분
theta_ref = TOSG(11.6 + 1.18 * theta_w + 3.86 * theta_cw - 1.32 * theta_e_avg) '(B.8) 급탕시스템인 경우 theta_w는 40도, theta_cw 시수온도는15도 가정
Delta_T = theta_ref - theta_e_avg '(14)
V_ref = A_H * 75
V_sol = TOSG(Dr신재생.축열탱크체적난방) ' Worksheets("신재생기기").Range("태양열축열탱크1").Offset(1, i_count_ts - 1)
f_st = TOSG((V_ref / V_sol) ^ 0.25) '(B.5)
If Q_H_sol_us_m <> 0 Then
X = A_H * U_loop * eta_loop * Delta_T * f_st * t_m / (Q_H_sol_us_m * 1000) '(12)
Y = A_H * IAM * eta_0 * eta_loop * I_m * t_m / (Q_H_sol_us_m * 1000) '(15)
Q_H_sol_out_m = (a * Y + b * X + c * Y * Y + d * X * X + e * Y * Y * Y + f * X * X * X) * Q_H_sol_us_m '(11)
Else
Q_H_sol_out_m = 0
End If
If Q_H_sol_out_m < 0 Then Q_H_sol_out_m = 0
If Q_H_sol_out_m > Q_H_sol_us_m Then Q_H_sol_out_m = Q_H_sol_us_m
'태양열시스템 열손실
U_st = TOSG(0.16 * V_sol ^ 0.5) '(B.9)
theta_setpoint = 40
If Q_H_sol_us_m <> 0 Then
Q_H_sol_st_ls_m = U_st * (theta_setpoint - theta_a_avg) * (Q_H_sol_out_m / Q_H_sol_us_m) * t_m / 1000 '(17)
Q_H_bu_dis_ls_m = TOSG(0.02 * Q_H_sol_us_m * (Q_H_sol_out_m / Q_H_sol_us_m))
Else
Q_H_sol_st_ls_m = 0
Q_H_bu_dis_ls_m = 0
End If
Q_sol_ls_m = Q_H_sol_st_ls_m + Q_H_bu_dis_ls_m + Q_W_sol_st_ls_m + Q_W_bu_dis_ls_m
End If '=====================================================2010.04.02 추가
' Q_sol_ls_m = Q_W_sol_st_ls_m + Q_bu_dis_ls_m
' 보조에너지
P_aux_nom = TOSG(Dr신재생.솔라펌프의정격출력) ' Worksheets("신재생기기").Range("태양열시스템종류1").Offset(4, i_count_ts - 1)
W_sol_aux_m = P_aux_nom * t_aux_m / 1000
Q_sol_aux_rbl_m = TOSG(W_sol_aux_m * 0.5)
Select Case Dr신재생.축열탱크설치장소.Trim 'Worksheets("신재생기기").Range("태양열축열탱크1").Offset(2, i_count_ts - 1)
Case "난방공간" '난방공간"
Q_sol_st_ls_rbl_m = Q_W_sol_st_ls_m
Q_bu_dis_ls_rbl_m = Q_bu_dis_ls_m
Case "비난방공간" '비난방공간"
Q_sol_st_ls_rbl_m = TOSG(Q_W_sol_st_ls_m * 0.5)
Q_bu_dis_ls_rbl_m = TOSG(Q_bu_dis_ls_m * 0.5)
Case "외부공간" '외부공간"
Q_sol_st_ls_rbl_m = 0
Q_bu_dis_ls_rbl_m = 0
End Select
Q_sol_ls_rbl_m = Q_sol_aux_rbl_m + Q_sol_st_ls_rbl_m + Q_bu_dis_ls_rbl_m '(20)
Case "난방+급탕" '난방+급탕"
P_H = Q_H_sol_us_m / (Q_H_sol_us_m + Q_W_sol_us_m) '(9)
P_W = Q_W_sol_us_m / (Q_H_sol_us_m + Q_W_sol_us_m) '(10)
A_ = TOSG(Dr신재생.집열판면적) ' Worksheets("신재생기기").Range("태양열시스템종류1").Offset(2, i_count_ts - 1)
A_H = P_H * A_
A_W = P_W * A_
'급탕 부분
U_loop_p = 5 + 0.5 * A_W '(B.3) '===========================2010.04.24 추가
If A_W <> 0 Then
U_loop = a_1 + a_2 * 40 + U_loop_p / A_W '(13) '===============2010.04.24 추가
theta_ref = TOSG(11.6 + 1.18 * theta_w + 3.86 * theta_cw - 1.32 * theta_e_avg) '(B.8) 급탕시스템인 경우 theta_w는 40도, theta_cw 시수온도는15도 가정
Delta_T = theta_ref - theta_e_avg '(14)
V_ref = A_W * 75
V_sol = TOSG(Dr신재생.축열탱크체적급탕) ' Worksheets("신재생기기").Range("태양열축열탱크1").Offset(0, i_count_ts - 1)
f_st = TOSG((V_ref / V_sol) ^ 0.25) '(B.5)
End If
If Q_W_sol_us_m <> 0 Then
X = A_W * U_loop * eta_loop * Delta_T * f_st * t_m / (Q_W_sol_us_m * 1000) '(12)
Y = A_W * IAM * eta_0 * eta_loop * I_m * t_m / (Q_W_sol_us_m * 1000) '(15)
Q_W_sol_out_m = (a * Y + b * X + c * Y * Y + d * X * X + e * Y * Y * Y + f * X * X * X) * Q_W_sol_us_m '(11)
Else
Q_W_sol_out_m = 0
End If
If Q_W_sol_out_m < 0 Then Q_W_sol_out_m = 0
If Q_W_sol_out_m > Q_W_sol_us_m Then Q_W_sol_out_m = Q_W_sol_us_m
'태양열시스템 열손실
U_st = TOSG(0.16 * V_sol ^ 0.5) '(B.9)
theta_setpoint = 60
If Q_W_sol_us_m <> 0 Then
Q_W_sol_st_ls_m = U_st * (theta_setpoint - theta_a_avg) * (Q_W_sol_out_m / Q_W_sol_us_m) * t_m / 1000 '(17)
Q_W_bu_dis_ls_m = TOSG(0.02 * Q_W_sol_us_m * (Q_W_sol_out_m / Q_W_sol_us_m))
Else
Q_W_sol_st_ls_m = 0
Q_W_bu_dis_ls_m = 0
End If
'난방 부분
U_loop_p = 5 + 0.5 * A_H '(B.3) '===========================2010.04.24 추가
U_loop = a_1 + a_2 * 40 + U_loop_p / A_H '(13) '===============2010.04.24 추가
theta_ref = TOSG(11.6 + 1.18 * theta_w + 3.86 * theta_cw - 1.32 * theta_e_avg) '(B.8) 급탕시스템인 경우 theta_w는 40도, theta_cw 시수온도는15도 가정
Delta_T = theta_ref - theta_e_avg '(14)
V_ref = A_H * 75
V_sol = TOSG(Dr신재생.축열탱크체적난방) ' Worksheets("신재생기기").Range("태양열축열탱크1").Offset(1, i_count_ts - 1)
f_st = TOSG((V_ref / V_sol) ^ 0.25) '(B.5)
If Q_H_sol_us_m <> 0 Then
X = A_H * U_loop * eta_loop * Delta_T * f_st * t_m / (Q_H_sol_us_m * 1000) '(12)
Y = A_H * IAM * eta_0 * eta_loop * I_m * t_m / (Q_H_sol_us_m * 1000) '(15)
Q_H_sol_out_m = (a * Y + b * X + c * Y * Y + d * X * X + e * Y * Y * Y + f * X * X * X) * Q_H_sol_us_m '(11)
Else
Q_H_sol_out_m = 0
End If
If Q_H_sol_out_m < 0 Then Q_H_sol_out_m = 0
If Q_H_sol_out_m > Q_H_sol_us_m Then Q_H_sol_out_m = Q_H_sol_us_m
'태양열시스템 열손실
U_st = TOSG(0.16 * V_sol ^ 0.5) '(B.9)
theta_setpoint = 40
If Q_H_sol_us_m <> 0 Then
Q_H_sol_st_ls_m = U_st * (theta_setpoint - theta_a_avg) * (Q_H_sol_out_m / Q_H_sol_us_m) * t_m / 1000 '(17)
Q_H_bu_dis_ls_m = TOSG(0.02 * Q_H_sol_us_m * (Q_H_sol_out_m / Q_H_sol_us_m))
Else
Q_H_sol_st_ls_m = 0
Q_H_bu_dis_ls_m = 0
End If
Q_sol_ls_m = Q_H_sol_st_ls_m + Q_H_bu_dis_ls_m + Q_W_sol_st_ls_m + Q_W_bu_dis_ls_m
' 보조에너지
P_aux_nom = TOSG(Dr신재생.솔라펌프의정격출력) ' Worksheets("신재생기기").Range("태양열시스템종류1").Offset(4, i_count_ts - 1)
W_sol_aux_m = P_aux_nom * t_aux_m / 1000
Q_sol_aux_rbl_m = TOSG(W_sol_aux_m * 0.5)
Select Case Dr신재생.축열탱크설치장소.Trim ' Worksheets("신재생기기").Range("태양열축열탱크1").Offset(2, i_count_ts - 1)
Case "난방공간" '난방공간"
Q_sol_ls_rbl_m = Q_sol_aux_rbl_m + Q_sol_ls_m
Case "비난방공간" '비난방공간"
Q_sol_ls_rbl_m = TOSG(Q_sol_aux_rbl_m + Q_sol_ls_m * 0.5)
Case "외부공간" '외부공간"
Q_sol_ls_rbl_m = Q_sol_aux_rbl_m
End Select
End Select
''보조에너지
''f_sol_m = Q_sol_out_m / Q_sol_us_m '(21)
''W_bu_aux_m = W_bu_nom_m * (1 - f_sol_m) '(22)
''P_aux_nom = 50 + 5 * A_ '(B.4)
'// 신재생에너지 자립률 추가(2017.01.20)
H_W_ratio = Q_H_sol_out_m / (Q_H_sol_out_m + Q_W_sol_out_m)
Q_H_sol_out_net = Q_H_sol_out_m + H_W_ratio * W_sol_aux_m * 2.75
Q_W_sol_out_net = Q_W_sol_out_m + (1 - H_W_ratio) * W_sol_aux_m * 2.75
'// 신재생에너지 자립률 추가
'//열에너지생산량-태양열
Result.생산E(i_ts_month).태양열생산량 += Q_W_sol_out_net + Q_H_sol_out_net '// 20170120 추가
'//Result.생산E(i_ts_month).태양열생산량 += Q_W_sol_out_m + Q_H_sol_out_m '20170120 삭제
'DSETR.TReqUse.Rows(CEnum.ResultRow.생산_열생산량_태양열)(CStr("M" & Format(i_ts_month, "00"))) = CSng(DSETR.TReqUse.Rows(CEnum.ResultRow.생산_열생산량_태양열)(CStr("M" & Format(i_ts_month, "00")))) + Q_W_sol_out_m + Q_H_sol_out_m 'Sheets("계산결과").Cells(97, 7 + i_ts_month) = Q_W_sol_out_m + Q_H_sol_out_m
'Dim TDR As DSR.TReqUseRow = CType(DSETR.TReqUse.Rows(CEnum.ResultRow.생산_단위면적당생산량_태양열), DSR.TReqUseRow)
Select Case i_system_ts '//이것도 프로시져 파라미터이다.
Case 1 '//난방?급탕 혼합형태?
If Q_W_sol_out_m <> 0 Then
Result.생산E(i_ts_month).면적당생산량태양열 += (Q_W_sol_out_net / Result.사용면적.W) '// 20170120 추가
'Result.생산E(i_ts_month).면적당생산량태양열 += (Q_W_sol_out_m / Result.사용면적.W) 삭제
Else
Result.생산E(i_ts_month).면적당생산량태양열 += (Q_H_sol_out_net / Result.사용면적.H) '// 20170120 추가
'Result.생산E(i_ts_month).면적당생산량태양열 += (Q_H_sol_out_m / Result.사용면적.H)
End If
Case 2 '//냉방?
Result.생산E(i_ts_month).면적당생산량태양열 += (Q_H_sol_out_net / Result.사용면적.C) '// 20170120 추가
'Result.생산E(i_ts_month).면적당생산량태양열 += (Q_H_sol_out_m / Result.사용면적.C)
Case 3 '//급탕
Result.생산E(i_ts_month).면적당생산량태양열 += (Q_W_sol_out_net / Result.사용면적.W) '// 20170120 추가
'Result.생산E(i_ts_month).면적당생산량태양열 += (Q_W_sol_out_m / Result.사용면적.W)
Case Else
MsgBox("단위면적당생산량 누적시 i_syste_ts 가 알수없음", MsgBoxStyle.Critical, "확인")
End Select
pLog.Add(String.Format(">>Calc_ThermalSolarSystem_EN 진입 : 태양열생산량={0}, 면적당생산량태양열={1}, Q_W_sol_out_m={2}, Q_H_sol_out_m={3}", _
Result.생산E(i_ts_month).태양열생산량, Result.생산E(i_ts_month).면적당생산량태양열, Q_W_sol_out_net, Q_H_sol_out_net)) '// 20170120 수정
'pLog.Add(String.Format(">>Calc_ThermalSolarSystem_EN 진입 : 태양열생산량={0}, 면적당생산량태양열={1}, Q_W_sol_out_m={2}, Q_H_sol_out_m={3}", _
' Result.생산E(i_ts_month).태양열생산량, Result.생산E(i_ts_month).면적당생산량태양열, Q_W_sol_out_m, Q_H_sol_out_m))
End Sub
Public Overridable Sub Calc_PhotovoltaicSystem_EN(ByVal i_count_pv_month As Integer, ByVal i_pv_d_mth As Integer)
pLog.Add(String.Format(">>Calc_PhotovoltaicSystem_EN 진입 : i_count_pv_month={0}, i_pv_d_mth={1}", _
i_count_pv_month, i_pv_d_mth))
Dim E_el_pv_out As Decimal, P_pk As Decimal, f_perf As Decimal, E_sol As Decimal
Dim a As Decimal, K_pk As Decimal
'Dim i_count_pv As Integer, i_count_pv_location As Integer, i_pv_location As Integer
E_el_pv_out = 0
'If DSET.tbl_new.Rows.Count > 0 Then ' Worksheets("신재생기기").Range("신재생생산기기1").Offset(0, 0) <> "" Then '//신재생기기 처음칸에 뭐가 잇다? 즉 데이터가잇느냐
For Each Dr신재생 As DS.tbl_newRow In DSET.tbl_new.Select("code <> '0'", "code")
If Dr신재생.기기종류 = "태양광" Then
a = TOSG(Dr신재생.태양광모듈면적) ' Worksheets("신재생기기").Range("태양광모듈1").Offset(0, i_count_pv - 1)
Select Case Dr신재생.태양광모듈적용타입.Trim ' Worksheets("신재생기기").Range("태양광모듈1").Offset(4, i_count_pv - 1)
Case "밀착형" '밀착형"
f_perf = 0.7
Case "후면통풍형" '후면통풍형"
f_perf = 0.75
Case "기계환기형" '기계환기형"
f_perf = 0.8
End Select
'If a <> 0 Then '//태양광모듈면적이있을경우에만 작동하도록한다.
Dim Dr일사 As DS.weather_ilsaRow
Select Case Dr신재생.태양광모듈기울기.Trim ' Worksheets("신재생기기").Range("태양광모듈1").Offset(1, i_count_pv - 1)
Case "수평" '수평"
'//수평면에해당하는 월별평균일사 값을 가져온다.수평면 0001은 고정값이된다.
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='0001'")(0), DS.weather_ilsaRow)
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
Case "45도" '45도"
Select Case Dr신재생.태양광모듈방위.Trim ' Worksheets("신재생기기").Range("태양광모듈1").Offset(2, i_count_pv - 1)
Case "" '"남"
'//45도 남에대한건 기본 수평면하고 +9를 하면 나온다 나머지도 순서이므로 +1을 게속해주면된다.
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(1 + 9, "0000") & "'")(0), DS.weather_ilsaRow)
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
Case "남동" '"남동"
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(1 + 10, "0000") & "'")(0), DS.weather_ilsaRow)
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
Case "남서" '"남서"
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(1 + 11, "0000") & "'")(0), DS.weather_ilsaRow)
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
Case "" '"동"
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(1 + 12, "0000") & "'")(0), DS.weather_ilsaRow)
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
Case "" '"서"
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(1 + 13, "0000") & "'")(0), DS.weather_ilsaRow)
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
End Select
Case "수직" '수직"
Select Case Dr신재생.태양광모듈방위.Trim 'Worksheets("신재생기기").Range("태양광모듈1").Offset(2, i_count_pv - 1)
Case "" '"남"
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(1 + 1, "0000") & "'")(0), DS.weather_ilsaRow)
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
Case "남동" '"남동"
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(1 + 2, "0000") & "'")(0), DS.weather_ilsaRow)
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
Case "남서" '"남서"
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(1 + 3, "0000") & "'")(0), DS.weather_ilsaRow)
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
Case "" '"동"
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(1 + 4, "0000") & "'")(0), DS.weather_ilsaRow)
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
Case "" '"서"
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(1 + 5, "0000") & "'")(0), DS.weather_ilsaRow)
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
End Select
End Select
'E_sol = E_sol_hor * f_tlt 수평면일사에 계수를 곱하지 않고 직접 기상데이타 적용
Select Case Dr신재생.태양광모듈종류.Trim ' Worksheets("신재생기기").Range("태양광모듈1").Offset(3, i_count_pv - 1)
Case "단결정" '단결정"
K_pk = 0.12
Case "다결정" '다결정"
K_pk = 0.1
Case "비정질박막형" '비정질박막형"
K_pk = 0.04
Case "기타박막형" '기타박막형"
K_pk = 0.035
Case "CIS박막형" 'CIS박막형"
K_pk = 0.105
Case "CdTe박막형" 'CdTe박막형"
K_pk = 0.095
Case "성능치 입력"
Try
K_pk = TOSG(Dr신재생.태양광모듈효율)
Catch ex As Exception
MsgBox("태양광모듈효율을 알 수 없습니다.", MsgBoxStyle.Critical, "값=" & Dr신재생.태양광모듈효율)
K_pk = 0
End Try
Case Else
MsgBox("알수없는 태양광모듈종류입니다.", MsgBoxStyle.Critical, "값=" & Dr신재생.태양광모듈종류)
End Select
P_pk = K_pk * a
E_el_pv_out = E_el_pv_out + E_sol * P_pk * f_perf
'End If
End If
Next
'If Sheets("계산결과").Cells(104, 7 + i_count_pv_month) = "" Then
' Sheets("계산결과").Cells(104, 7 + i_count_pv_month) = E_el_pv_out
'Else
' Sheets("계산결과").Cells(104, 7 + i_count_pv_month) = Sheets("계산결과").Cells(104, 7 + i_count_pv_month) + E_el_pv_out
'End If
Result.생산E(i_count_pv_month).태양광전력생산량 += E_el_pv_out
pLog.Add(String.Format(">>Calc_PhotovoltaicSystem_EN 진입 : E_el_pv_out={0}, 태양광전력생산량={1}", _
E_el_pv_out, Result.생산E(i_count_pv_month).태양광전력생산량))
'DSETR.TReqUse.Rows(CEnum.ResultRow.생산_전기_태양광)("M" & Format(i_count_pv_month, "00")) = CSng(DSETR.TReqUse.Rows(CEnum.ResultRow.생산_전기_태양광)("M" & Format(i_count_pv_month, "00"))) + E_el_pv_out ' Sheets("계산결과").Cells(95, 7 + i_count_pv_month)
End Sub
Public Overridable Sub Calc_HeatpumpSystem(ByVal i_system_hp As Integer, ByVal i_HeatCool As Integer, ByVal Dr신재생 As DS.tbl_newRow, ByVal Q_hp_outg As Decimal, ByVal i_hp_month As Integer, _
ByVal d_h_mth As Integer, ByVal t_hp As Integer, ByVal theta_VA As Decimal, ByVal theta_i As Decimal, ByRef Q_h_outg As Decimal, ByRef Q_h_f_hp As Decimal, ByRef Q_h_g_aux As Decimal)
pLog.Add(String.Format(">>Calc_HeatpumpSystem 진입 : i_system_hp={0}, i_HeatCool={1},dr신재생={2},Q_hp_outg={3},i_hp_month={4},d_h_mth={5},t_hp={6},theta_VA={7},theta_i={8},Q_h_outg={9},Q_h_f_hp={10},Q_h_g_aux={11}", _
i_system_hp, i_HeatCool, Dr신재생.code, Q_hp_outg, i_hp_month, d_h_mth, t_hp, theta_VA, theta_i, Q_h_outg, Q_h_f_hp, Q_h_g_aux))
Dim f_Verwindung As Decimal, V As Decimal, q_B_S As Decimal, Phi_g As Decimal
Dim Q_h_g As Decimal, Q_h_g_s As Decimal, Q_h_g_WP As Decimal
Dim P_rd_mot As Decimal
'Dim Q_h_f_hp as decimal 'DIN 에서는 Q_h_f로 표기
'Dim Delta_p_prim as decimal, Delta_p_sek as decimal
Dim Phi_prim_aux As Decimal, Phi_sek_aux As Decimal, t_ON_aux As Decimal
Dim theta_h_s As Decimal
Dim COP As Decimal
Dim Q_h_outg_net As Decimal
Q_h_g_s = 0
Q_h_g_WP = 0 '전기히트펌프인 경우 0 가스히트펌프는 ?
P_rd_mot = 0
Q_h_f_hp = 0
Q_h_outg_net = 0
'eta_aux = 0.3
'Delta_p_prim = 40 'kPa 1차측
'Delta_p_sek = 10 'kPa 2차측
'MsgBox(i_count_hp)
'i_count_hp = 0 '//신재생 줄번호는 무조건 0이된다. 20100127 '//연습용데이터 문제있음
' Dim Dr신재생 As DS.tbl_newRow = CType(DSET.tbl_new.Rows(0), DS.tbl_newRow)
Phi_g = TOSG(Dr신재생.지열히트펌프용량) ' Worksheets("신재생기기").Range("지열히트펌프용량1").Offset(0, i_count_hp - 1)
If Dr신재생.가동연료 <> "전기" And i_HeatCool = 1 And Dr신재생.열교환기설치여부 = "" Then ' Worksheets("신재생기기").Range("지열히트펌프용량1").Offset(5, i_count_hp - 1) = "예" Then
P_rd_mot = 0.4
End If
If Q_hp_outg < (Phi_g * t_hp) * (1 + P_rd_mot) Then
Q_h_outg = Q_hp_outg
Else
Q_h_outg = Phi_g * t_hp * (1 + P_rd_mot)
End If
If i_HeatCool = 1 Or i_HeatCool = 3 Then '난방 1 , 냉방 2, 급탕 3
'난방, 급탕
If Dr신재생.팽창탱크설치여부 = "" Then ' Worksheets("신재생기기").Range("지열히트펌프용량1").Offset(6, i_count_hp - 1) = "예" Then
f_Verwindung = 1.2
V = TOSG(Dr신재생.팽창탱크체적) ' Worksheets("신재생기기").Range("지열히트펌프용량1").Offset(7, i_count_hp - 1)
q_B_S = TOSG(0.4 + 0.14 * V ^ 0.45) '(51)
theta_h_s = theta_VA '급수온도로 적용
Q_h_g_s = f_Verwindung * (theta_h_s - theta_i) / 45 * d_h_mth * q_B_S '(49) 외부완충(팽창탱크 유무)
End If
Q_h_g = Q_h_g_s + Q_h_g_WP
COP = TOSG(Dr신재생.열성능비난방) ' Worksheets("신재생기기").Range("지열히트펌프용량1").Offset(1, i_count_hp - 1)
Else
'냉방
COP = TOSG(Dr신재생.열성능비냉방) ' Worksheets("신재생기기").Range("지열히트펌프용량1").Offset(2, i_count_hp - 1)
End If
If Dr신재생.가동연료 = "전기" Then ' Worksheets("신재생기기").Range("신재생및열병합기기종류1").Offset(1, i_count_hp - 1) = "전기" Then
Q_h_f_hp = (Q_h_outg + Q_h_g) / COP
' Q_h_in = Q_h_outg + Q_h_g - Q_h_f_hp '월간 전기히트펌프(재생에너지유입량)
Else
Q_h_f_hp = Q_h_outg / COP
' If i_HeatCool = 1 And Worksheets("신재생기기").Range("지열히트펌프용량1").Offset(5, i_count_hp - 1) = "예" Then
' P_rd_mot = 0.4
' End If
' Q_h_in = Q_h_outg + Q_h_g - Q_h_f_hp * (1 + P_rd_mot) '월간 가스히트펌프(재생에너지유입량)
End If
'Q_h_f = Q_h_outg + Q_h_g - k_rd_g * Q_h_g_aux - Q_h_in '월간(A.1) 전기히트펌프(난방요구량 충당)
'Q_h_f = (Q_h_outg + Q_h_g - k_rd_g * Q_h_g_aux - Q_h_in) / (1 + P_rd_mot) '월간(A.2) 가스히트펌프(난방요구량 충당)
'보조에너지
'Phi_prim_aux = Delta_p_prim * V_dot / (eta_aux * 3600) '(89) 사용자 입력항목이므로 확인 요망
'Phi_sek_aux = Delta_p_sek * V_dot / (eta_aux * 3600) '(89) 사용자 입력항목이므로 확인 요망
t_ON_aux = Q_h_outg / (Phi_g) '(81)
Phi_prim_aux = TOSG(Dr신재생.펌프용량1차) ' Worksheets("신재생기기").Range("지열히트펌프용량1").Offset(3, i_count_hp - 1)
Phi_sek_aux = TOSG(Dr신재생.펌프용량2차) ' Worksheets("신재생기기").Range("지열히트펌프용량1").Offset(4, i_count_hp - 1)
Q_h_g_aux = TOSG((Phi_prim_aux + Phi_sek_aux) * 0.001 * t_ON_aux) '(88)
'// 신재생에너지 자립률 추가(2017.01.20)
If Dr신재생.가동연료 = "전기" Then
Q_h_outg_net = Q_h_outg - ((Q_h_f_hp + Q_h_g_aux) * 2.75) '전기 1차에너지계수 적용
If Q_h_outg_net < 0 Then Q_h_outg_net = 0
Else
Q_h_outg_net = Q_h_outg - (Q_h_f_hp * 1.1 + Q_h_g_aux * 2.75) '가스 1차에너지계수 적용
If Q_h_outg_net < 0 Then Q_h_outg_net = 0
End If
'// 신재생에너지 자립률 추가
'//열에너지생산량 (지열)
Result.생산E(i_hp_month).지열생산량 += Q_h_outg_net '//20170120 추가
'// Result.생산E(i_hp_month).지열생산량 += Q_h_f_hp '20170120 지열생산량을 수정
'DSETR.TReqUse.Rows(79)("M" & Format(i_hp_month, "00")) = CSng(DSETR.TReqUse.Rows(79)("M" & Format(i_hp_month, "00"))) + Q_h_f_hp 'DrT생산.열생산량지열 += Q_h_f_hp
pLog.Add(String.Format(">>Calc_HeatpumpSystem 결과0 Q_h_f_hp={0},t_ON_aux={1},Q_h_g_aux={2}", _
Q_h_f_hp, t_ON_aux, Q_h_g_aux))
pLog.Add(String.Format(">>Calc_HeatpumpSystem 결과1 지열생산량={0}", _
Result.생산E(i_hp_month).지열생산량))
'100 : Total >> DrT생산.단위면적당생산량지열
Select Case i_system_hp
Case 1
Result.생산E(i_hp_month).면적당생산량지열 += (Q_h_outg_net / Result.사용면적.H) '//20170120 추가
'//Result.생산E(i_hp_month).면적당생산량지열 += (Q_h_f_hp / Result.사용면적.H) '20170120 지열생산량을 수정
'DSETR.TReqUse.Rows(100)("M00") = CSng(DSETR.TReqUse.Rows(100)("M00")) + Q_h_f_hp / CSng(DSETR.TReqUse.Rows(10)("M00")) ' DrT요구량.난방사용면적 ' Sheets("계산결과").Cells(15, 7)
Case 2
Result.생산E(i_hp_month).면적당생산량지열 += (Q_h_outg_net / Result.사용면적.C) '//20170120 추가
'//Result.생산E(i_hp_month).면적당생산량지열 += (Q_h_f_hp / Result.사용면적.C) '20170120 지열생산량을 수정
'DSETR.TReqUse.Rows(100)("M00") = CSng(DSETR.TReqUse.Rows(100)("M00")) + Q_h_f_hp / CSng(DSETR.TReqUse.Rows(15)("M00")) 'DrT요구량.냉방사용면적 '("계산결과").Cells(20, 7)
Case 3
Result.생산E(i_hp_month).면적당생산량지열 += (Q_h_outg_net / Result.사용면적.W) '//20170120 추가
'//Result.생산E(i_hp_month).면적당생산량지열 += (Q_h_f_hp / Result.사용면적.W) '20170120 지열생산량을 수정
End Select
pLog.Add(String.Format(">>Calc_HeatpumpSystem 결과2 면적당생산량지열={0}", _
Result.생산E(i_hp_month).면적당생산량지열))
End Sub
Public Overridable Sub Calc_CogenerationSystemEN(ByVal Dr신재생 As DS.tbl_newRow, i_system_chp As Integer, ByVal i_chp_month As Integer, ByVal Q_h_outg As Decimal, ByVal t_chp As Integer, _
ByRef Q_chp_gen_out As Decimal, ByRef E_chp_gen_in As Decimal)
pLog.Add(String.Format(">>Calc_CogenerationSystemEN 진입 : Dr신재생={0}, i_system_chp={1},i_chp_month={2},Q_h_outg={3},t_chp={4},Q_chp_gen_out={5},E_chp_gen_in={6}", _
Dr신재생.code, i_system_chp, i_chp_month, Q_h_outg, t_chp, Q_chp_gen_out, E_chp_gen_in))
'EN15316-4-4_2007 5.6.2에서 시작
'Dim Wmsg As New System.Text.StringBuilder
'Wmsg.AppendLine("Calc_CogenerationSystemEN 이 함수의경우")
'Wmsg.AppendLine("i_count_chp 에따라서 열을 할당해야한다.... 지만..아직 이 파라미터값을 모르게삳")
'Wmsg.AppendLine("사용하는곳의 참조확인을해서 저곳이 신재생기기 코드값이 바로오는건지 다른값인지 확인해봐야겠다")
'MsgBox(Wmsg.ToString)
Dim Q_dot_T_chp As Decimal
Dim eta_T_chp_an As Decimal, eta_el_chp_an As Decimal
Dim E_el_chp_out As Decimal
Dim Q_chp_gen_out_net As Decimal, E_el_chp_out_net As Decimal, Q_E_ratio As Decimal, net_ratio As Decimal
Q_chp_gen_out_net = 0
E_el_chp_out_net = 0
Q_E_ratio = 0
net_ratio = 0
' Dim Dr신재생 As DS.tbl_newRow = CType(DSET.tbl_new.Rows(0), DS.tbl_newRow)
Q_dot_T_chp = TOSG(Dr신재생.열생산능력) ' Worksheets("신재생기기").Range("열병합열생산능력1").Offset(0, i_count_chp - 1)
eta_T_chp_an = TOSG(Dr신재생.열생산효율) ' Worksheets("신재생기기").Range("열병합열생산능력1").Offset(1, i_count_chp - 1)
eta_el_chp_an = TOSG(Dr신재생.발전효율) ' Worksheets("신재생기기").Range("열병합열생산능력1").Offset(2, i_count_chp - 1)
If Q_h_outg > (Q_dot_T_chp * t_chp) Then
Q_chp_gen_out = Q_dot_T_chp * t_chp
Else
Q_chp_gen_out = Q_h_outg
End If
E_chp_gen_in = Q_chp_gen_out / (eta_T_chp_an / 100)
E_el_chp_out = E_chp_gen_in * eta_el_chp_an / 100
Result.생산E(i_chp_month).열병합전력생산량 += E_el_chp_out
pLog.Add(String.Format("Calc_CogenerationSystemEN 결과0 E_chp_gen_in={0},E_el_chp_out={1}", E_chp_gen_in, E_el_chp_out))
pLog.Add(String.Format("Calc_CogenerationSystemEN 결과1 열병합전력생산량={0}", Result.생산E(i_chp_month).열병합전력생산량))
'//전기생산량 열병합
If Dr신재생.열병합신재생여부 Then
'// 신재생에너지 자립률 추가(2017.01.20)
net_ratio = (Q_chp_gen_out + E_el_chp_out * 2.75) / (E_chp_gen_in * 1.1)
Q_E_ratio = Q_chp_gen_out / (Q_chp_gen_out + E_el_chp_out * 2.75)
Q_chp_gen_out_net = Q_chp_gen_out * (net_ratio - 1) * Q_E_ratio
E_el_chp_out_net = (E_el_chp_out * 2.75 * (net_ratio - 1) * (1 - Q_E_ratio)) / 2.75
If Q_chp_gen_out_net < 0 Then Q_chp_gen_out_net = 0
If E_el_chp_out_net < 0 Then E_el_chp_out_net = 0
'// 신재생에너지 자립률 추가
'//전력
Result.생산E(i_chp_month).신재생열병합전력생산량 += (E_el_chp_out_net) '//20170120 추가
'Result.생산E(i_chp_month).신재생열병합전력생산량 += (E_el_chp_out)
pLog.Add(String.Format("Calc_CogenerationSystemEN 결과2 신재생열병합전력생산량={0}", Result.생산E(i_chp_month).신재생열병합전력생산량))
'//면적당열병합 (신재생면적당열생산량)
Select Case i_system_chp
Case 1
Result.생산E(i_chp_month).신재생면적당열생산량 += (Q_chp_gen_out_net / Result.사용면적.H) '// 20170120 추가
'Result.생산E(i_chp_month).신재생면적당열생산량 += (Q_chp_gen_out / Result.사용면적.H)
Case 2
Result.생산E(i_chp_month).신재생면적당열생산량 += (Q_chp_gen_out_net / Result.사용면적.C) '// 20170120 추가
'Result.생산E(i_chp_month).신재생면적당열생산량 += (Q_chp_gen_out / Result.사용면적.C)
Case 3
Result.생산E(i_chp_month).신재생면적당열생산량 += (Q_chp_gen_out_net / Result.사용면적.W) '// 20170120 추가
'Result.생산E(i_chp_month).신재생면적당열생산량 += (Q_chp_gen_out / Result.사용면적.W)
End Select
pLog.Add(String.Format("Calc_CogenerationSystemEN 결과3 신재생면적당열생산량={0}", Result.생산E(i_chp_month).신재생면적당열생산량))
End If
'DSETR.TReqUse.Rows(77)("M" & Format(i_chp_month, "00")) = CSng(DSETR.TReqUse.Rows(77)("M" & Format(i_chp_month, "00"))) + E_el_chp_out ' Sheets("계산결과").Cells(96, 7 + i_chp_month) = E_el_chp_out
End Sub
End Class

View File

@@ -0,0 +1,169 @@
''' <remarks>공용으로 사용되는 값을을 이곳에서 설정한다</remarks>
Public Class CShared
Public ReadOnly Property 기상데이터() As DS.tbl_weatherRow
Get
If DSET1.tbl_Desc.Rows.Count = 0 Then
MsgBox("건물개요데이터가 없습니다.", MsgBoxStyle.Critical, "오류")
Return Nothing
Else
Try
Return CType(DSET1.tbl_weather.Select("code ='" & DSET1.tbl_Desc.Rows(0)("buildarea").ToString & "'")(0), DS.tbl_weatherRow)
Catch ex As Exception
MsgBox("건물개요의 지역정보를 찾을수없습니다.", MsgBoxStyle.Critical, "오류")
Return Nothing
End Try
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번째 존에 지역이 설정된걸로 간주한다
'Dr신재생 = CType(DSET.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} ' 우선 휴일없는 것으로 설정
'//최소외기온도 설정
theta_e_min = TOSG(기상데이터.난방기)
theta_e_max = TOSG(기상데이터.냉방기)
'//지역의 외기온도값
theta_e(0) = 0
theta_e(1) = TOSG(기상데이터.m01)
theta_e(2) = TOSG(기상데이터.m02)
theta_e(3) = TOSG(기상데이터.m03)
theta_e(4) = TOSG(기상데이터.m04)
theta_e(5) = TOSG(기상데이터.m05)
theta_e(6) = TOSG(기상데이터.m06)
theta_e(7) = TOSG(기상데이터.m07)
theta_e(8) = TOSG(기상데이터.m08)
theta_e(9) = TOSG(기상데이터.m09)
theta_e(10) = TOSG(기상데이터.m10)
theta_e(11) = TOSG(기상데이터.m11)
theta_e(12) = TOSG(기상데이터.m12)
'//월별평균일사(기상데이터) 9개를 가져온다. 그중 최대부하값만 취한다.
'//현재 기상ROW의 CODE 와같은 Weather ilsa 데이터를 가져온다.
'//엑셀의 0 to 8 은 9개의 평균일사 데이터를 의미한다
Dim DRow일사() As DS.weather_ilsaRow = CType(DSET1.weather_ilsa.Select("pcode='" & 기상데이터.code & "'", "code"), DS.weather_ilsaRow())
If DRow일사.GetUpperBound(0) = -1 Then
MsgBox("월별평균일사데이터중 " & 기상데이터.code & "에 해당되는 지역이 없습니다", MsgBoxStyle.Critical, "CShared")
Me.IsError = True
Else
For i As Short = 0 To 8 'DRow일사.GetUpperBound(0) <- 이식을 사용하려했으나 45도용데이터떄문에 사용못함
Dim DR일사 As DS.weather_ilsaRow = DRow일사(i)
I_s(i, 0) = TOSG(DR일사.최대부하)
I_s(i, 1) = TOSG(DR일사.m01)
I_s(i, 2) = TOSG(DR일사.m02)
I_s(i, 3) = TOSG(DR일사.m03)
I_s(i, 4) = TOSG(DR일사.m04)
I_s(i, 5) = TOSG(DR일사.m05)
I_s(i, 6) = TOSG(DR일사.m06)
I_s(i, 7) = TOSG(DR일사.m07)
I_s(i, 8) = TOSG(DR일사.m08)
I_s(i, 9) = TOSG(DR일사.m09)
I_s(i, 10) = TOSG(DR일사.m10)
I_s(i, 11) = TOSG(DR일사.m11)
I_s(i, 12) = TOSG(DR일사.m12)
'#If DEBUG Then
' Dim f As String = "c:\temp\1\일사.txt"
' Dim b As New System.Text.StringBuilder
' If System.IO.File.Exists(f) = False Then
' b.AppendLine("기상코드 I M0 1 2 3 4 5 6 7 8 9 10 11 12")
' End If
' b.AppendLine(기상데이터.code + vbTab + i.ToString() + vbTab + DR일사.최대부하 + vbTab + _
' DR일사.m01 + vbTab + DR일사.m02 + vbTab + DR일사.m03 + vbTab + DR일사.m04 + vbTab + DR일사.m05 + vbTab + _
' DR일사.m06 + vbTab + DR일사.m07 + vbTab + DR일사.m08 + vbTab + DR일사.m09 + vbTab + DR일사.m10 + vbTab + DR일사.m11 + vbTab + DR일사.m12)
' My.Computer.FileSystem.WriteAllText(f, b.ToString, True)
'#End If
Next
End If
'=============================================================================2010.02.26 추가
Dim DRow차양() As DS.weather_chaRow = CType(DSET1.weather_cha.Select("pcode='" & 기상데이터.code & "'", "code"), DS.weather_chaRow())
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_chaRow = DRow차양(i)
F_sh_gl(i, 0) = TOSG(DR차양.m01)
F_sh_gl(i, 1) = TOSG(DR차양.m02)
F_sh_gl(i, 2) = TOSG(DR차양.m03)
F_sh_gl(i, 3) = TOSG(DR차양.m04)
F_sh_gl(i, 4) = TOSG(DR차양.m05)
F_sh_gl(i, 5) = TOSG(DR차양.m06)
F_sh_gl(i, 6) = TOSG(DR차양.m07)
F_sh_gl(i, 7) = TOSG(DR차양.m08)
F_sh_gl(i, 8) = TOSG(DR차양.m09)
F_sh_gl(i, 9) = TOSG(DR차양.m10)
F_sh_gl(i, 10) = TOSG(DR차양.m11)
F_sh_gl(i, 11) = TOSG(DR차양.m12)
'#If DEBUG Then
' Dim f As String = "c:\temp\1\차양.txt"
' Dim b As New System.Text.StringBuilder
' If System.IO.File.Exists(f) = False Then
' b.AppendLine("기상코드 I M0 1 2 3 4 5 6 7 8 9 10 11")
' End If
' b.AppendLine(기상데이터.code + vbTab + i.ToString() + vbTab + _
' DR차양.m01 + vbTab + DR차양.m02 + vbTab + DR차양.m03 + vbTab + DR차양.m04 + vbTab + DR차양.m05 + vbTab + _
' DR차양.m06 + vbTab + DR차양.m07 + vbTab + DR차양.m08 + vbTab + DR차양.m09 + vbTab + DR차양.m10 + vbTab + DR차양.m11 + vbTab + DR차양.m12)
' My.Computer.FileSystem.WriteAllText(f, b.ToString, True)
'#End If
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

View File

@@ -0,0 +1,892 @@
Public Class CSummary
Public Event Message(ByVal Msg As String, pval As Integer, pmin As Integer, pmax As Integer) '//메세지표시
Private DSETR As DSR
Private Result As CResult
Public Sub New(ByRef pdsetr As DSR, ByRef presult As CResult)
DSETR = pdsetr
Result = presult
End Sub
''' <summary>
''' 모든 집계데이터를 갱신합니다.
''' </summary>
''' <remarks></remarks>
Public Sub All()
''TMon()
RaiseEvent Message("최종데이터 집계중..." + vbCrLf + "잠시만기다려주세요", 1, 0, 1)
For Each Dr As C에너지분석 In Result.E분석 '//12달치의 각존들의 데이터를 가지고 합계내역을 추린다. '//LoadOfZone 에서 계산완료한다.
Dr.Calc()
Next
Result.최대부하.Calc_Summary() '//최대냉난방부하(합계-zone='00') 계산
'Result.생산E(0).Calc_Summary() '//합계필드(M00)에데이터를 누적합니다.
Result.일차E소요량(0).Calc_Summary() '//1차소요량의 합계데이터를 계산
Result.E소요량(0).Calc_Summary() '//1차소요량의 합계데이터를 계산
'TReqUse_M01M12() '//이것들은 현재 사용하지 않고있다.
'TReqUse_M00() '//현재 사용하지않고있따.
Me.Make_ResultSheet() '//최종결과를 보여주는 시트를 작성한다.
DSETR.AcceptChanges() '//변경된모든내용을 적용함
End Sub
#Region "미사용개체"
''' <summary>
''' 1월부터 10월까지 집계데이터를 계산한다.
''' </summary>
''' <remarks></remarks>
Public Sub TReqUse_M01M12()
For i As Short = 1 To 12
'MOn = "M" & Format(i, "00")
'Dim DR() As DSR.TReqUseRow = CType(DSETR.TReqUse.Select("", "code"), DSR.TReqUseRow())
''////////////////////////////////////
'' 연간 Co2 배출량
''////////////////////////////////////
''조명/환기에너지소요량
'DR(56 - 1)(MOn) = CType(DSETR.월별에너지분석.Select("월='" & MOn & "' and 존='00'")(0), DSR.월별에너지분석Row).조명요구량
'DR(57 - 1)(MOn) = CType(DSETR.월별에너지분석.Select("월='" & MOn & "' and 존='00'")(0), DSR.월별에너지분석Row).환기요구량
''//SUMProduct 계산
'Dim Acc1 as decimal = 0
'Dim Acc2 as decimal = 0
'For j As Short = 41 To 57
' Acc1 += Ru(j, MOn) * Ru(j, "sign")
'Next
'For j As Short = 58 To 59
' Acc2 += Ru(j, MOn) * Ru(j, "sign")
'Next
'Ru(ResultRow.CO2_연간배출량, MOn) = Acc1 - Acc2 '//최상단 합계(연가Co2배출량
''//Excel 67번줄데이터가 필요하므로 먼저계산한다..해당데이터는 마지막(64번줄에 할당함)
''//(I95+I96)/(I76+I82+I88+I90+I92)*$C$76
'Ru(64, MOn) = (Ru(58, MOn) + Ru(59, MOn)) / (Ru(45, MOn) + Ru(50, MOn) + Ru(55, MOn) + Ru(56, MOn) + Ru(57, MOn)) * Ru(45, "sign")
''//난방에너지소요량(계수(sign)* Sumproduct)
'Dim ACc_Nan as decimal = 0
'For j As Short = 41 To 45
' ACc_Nan += CSng(DR(j - 1)(MOn)) * CSng(DR(j - 1)("sign"))
'Next
'Dim ACc_Naeng as decimal = 0
'For j As Short = 46 To 50
' ACc_Naeng += CSng(DR(j - 1)(MOn)) * CSng(DR(j - 1)("sign"))
'Next
'Dim ACc_KUb as decimal = 0
'For j As Short = 51 To 55
' ACc_KUb += CSng(DR(j - 1)(MOn)) * CSng(DR(j - 1)("sign"))
'Next
''//67>64
''IF(csng(ru(7,"00"))=0,0,(ACc_Nan-ru(45,mon)*ru(64,mon))/$H$15)+IF($H$20=0,0,(SUMPRODUCT($C$78:$C$82,I78:I82)-I82*I67)/$H$20)+IF($H$26=0,0,(SUMPRODUCT($C$84:$C$88,I84:I88)-I88*I67)/$H$26)+IF($H$23=0,0,($C$90*I90-I90*I67)/$H$23)+IF($H$27=0,0,($C$92*I92-I92*I67)/$H$27)
''IF(csng(ru(7))=0,0,(ACc_Nan-ru(45,mon)*ru(64,mon))/ru(7))+IF(ru(12)=0,0,(acc_naeng-ru(50,mon)*ru(64,mon))/ru(12))+IF(ru(18)=0,0,(acc_kub-ru(55,mon)*ru(64,mon))/ru(18))+IF(ru(15)=0,0,(ru(56,"sign")*ru(56,mon)-ru(56,mon)*ru(64,mon))/ru(15))+IF(ru(19)=0,0,(ru(57,"sign")*ru(57,mon)-ru(57,mon)*ru(64,mon))/ru(19))
''//단위면적당Co2배출량)
'If Ru(ResultRow.요구량_난방_사용면적) = 0 Then
' Ru(ResultRow.CO2_단위면적당배출량, MOn) = 0
'Else
' '(ACc_Nan-ru(45,mon)*ru(64,mon))/ru(7))+IF(ru(12)=0,0,(acc_naeng-ru(50,mon)*ru(64,mon))/ru(12))+IF(ru(18)=0,0,(acc_kub-ru(55,mon)*ru(64,mon))/ru(18))+IF(ru(15)=0,0,(ru(56,"sign")*ru(56,mon)-ru(56,mon)*ru(64,mon))/ru(15))+IF(ru(19)=0,0,(ru(57,"sign")*ru(57,mon)-ru(57,mon)*ru(64,mon))/ru(19)
' Ru(ResultRow.CO2_단위면적당배출량, MOn) = (ACc_Nan - Ru(45, MOn) * Ru(64, MOn)) / Ru(7) + CSng(IIf(Ru(12) = 0, 0, (ACc_Naeng - Ru(50, MOn) * Ru(64, MOn)) / Ru(12))) + CSng(IIf(Ru(18) = 0, 0, (ACc_KUb - Ru(55, MOn) * Ru(64, MOn)) / Ru(18))) + CSng(IIf(Ru(15) = 0, 0, (Ru(56, "sign") * Ru(56, MOn) - Ru(56, MOn) * Ru(64, MOn)) / Ru(15))) + CSng(IIf(Ru(19) = 0, 0, (Ru(57, "sign") * Ru(57, MOn) - Ru(57, MOn) * Ru(64, MOn)) / Ru(19)))
'End If
Next
End Sub
''' <summary>
''' 에너지요구량및소요량 테이블의 M00(합계)를 누적(M01~M12)로 채웁니다. 그렇지않은건 이후에 합계프로시져별도로 생성함
''' </summary>
''' <remarks></remarks>
Public Sub TReqUse_M00()
''//LT(LineType 이 SL Sum Line 인경우가져와서 m00 = m01~m12 한다
'Dim DR() As DSR.TReqUseRow = CType(DSETR.TReqUse.Select("", "code"), DSR.TReqUseRow())
'For Each Drs As DSR.TReqUseRow In DSETR.TReqUse.Select("lt='SL'")
' Drs.M00 = Drs.M01 + Drs.M02 + Drs.M03 + Drs.M04 + Drs.M05 + Drs.M06 + Drs.M07 + Drs.M08 + Drs.M09 + Drs.M10 + Drs.M11 + Drs.M12
'Next
''//커스텀 합계필드 계산
''자주사용되는 SUM(1~12)를 미리 계산해둔다
'Dim L45, L50, L55, L56, L57, L22, L27, L31, L33, L37 as decimal : Dim Drow As DSR.TReqUseRow
'Drow = CType(DSETR.TReqUse.Rows(45 - 1), DSR.TReqUseRow)
'L45 = Drow.M01 + Drow.M02 + Drow.M03 + Drow.M04 + Drow.M05 + Drow.M06 + Drow.M07 + Drow.M08 + Drow.M09 + Drow.M10 + Drow.M11 + Drow.M12
'Drow = CType(DSETR.TReqUse.Rows(50 - 1), DSR.TReqUseRow)
'L50 = Drow.M01 + Drow.M02 + Drow.M03 + Drow.M04 + Drow.M05 + Drow.M06 + Drow.M07 + Drow.M08 + Drow.M09 + Drow.M10 + Drow.M11 + Drow.M12
'Drow = CType(DSETR.TReqUse.Rows(55 - 1), DSR.TReqUseRow)
'L55 = Drow.M01 + Drow.M02 + Drow.M03 + Drow.M04 + Drow.M05 + Drow.M06 + Drow.M07 + Drow.M08 + Drow.M09 + Drow.M10 + Drow.M11 + Drow.M12
'Drow = CType(DSETR.TReqUse.Rows(56 - 1), DSR.TReqUseRow)
'L56 = Drow.M01 + Drow.M02 + Drow.M03 + Drow.M04 + Drow.M05 + Drow.M06 + Drow.M07 + Drow.M08 + Drow.M09 + Drow.M10 + Drow.M11 + Drow.M12
'Drow = CType(DSETR.TReqUse.Rows(57 - 1), DSR.TReqUseRow)
'L57 = Drow.M01 + Drow.M02 + Drow.M03 + Drow.M04 + Drow.M05 + Drow.M06 + Drow.M07 + Drow.M08 + Drow.M09 + Drow.M10 + Drow.M11 + Drow.M12
'Drow = CType(DSETR.TReqUse.Rows(22 - 1), DSR.TReqUseRow)
'L22 = Drow.M01 + Drow.M02 + Drow.M03 + Drow.M04 + Drow.M05 + Drow.M06 + Drow.M07 + Drow.M08 + Drow.M09 + Drow.M10 + Drow.M11 + Drow.M12
'Drow = CType(DSETR.TReqUse.Rows(27 - 1), DSR.TReqUseRow)
'L27 = Drow.M01 + Drow.M02 + Drow.M03 + Drow.M04 + Drow.M05 + Drow.M06 + Drow.M07 + Drow.M08 + Drow.M09 + Drow.M10 + Drow.M11 + Drow.M12
'Drow = CType(DSETR.TReqUse.Rows(31 - 1), DSR.TReqUseRow)
'L31 = Drow.M01 + Drow.M02 + Drow.M03 + Drow.M04 + Drow.M05 + Drow.M06 + Drow.M07 + Drow.M08 + Drow.M09 + Drow.M10 + Drow.M11 + Drow.M12
'Drow = CType(DSETR.TReqUse.Rows(33 - 1), DSR.TReqUseRow)
'L33 = Drow.M01 + Drow.M02 + Drow.M03 + Drow.M04 + Drow.M05 + Drow.M06 + Drow.M07 + Drow.M08 + Drow.M09 + Drow.M10 + Drow.M11 + Drow.M12
'Drow = CType(DSETR.TReqUse.Rows(37 - 1), DSR.TReqUseRow)
'L37 = Drow.M01 + Drow.M02 + Drow.M03 + Drow.M04 + Drow.M05 + Drow.M06 + Drow.M07 + Drow.M08 + Drow.M09 + Drow.M10 + Drow.M11 + Drow.M12
''//실제 데이터 집계
'Drow = CType(DSETR.TReqUse.Rows(45 - 1), DSR.TReqUseRow)
'Drow.M00 = L45 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L45
''If (L45 + L50 + L55 + L56 + L57) <> 0 Then Drow.M00 = L45 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L45
'Drow = CType(DSETR.TReqUse.Rows(50 - 1), DSR.TReqUseRow)
'Drow.M00 = L50 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L50 '
''If (L45 + L50 + L55 + L56 + L57) <> 0 Then Drow.M00 = L50 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L50
'Drow = CType(DSETR.TReqUse.Rows(55 - 1), DSR.TReqUseRow)
'Drow.M00 = L55 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L55
''If (L45 + L50 + L55 + L56 + L57) <> 0 Then Drow.M00 = L55 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L55
'Drow = CType(DSETR.TReqUse.Rows(56 - 1), DSR.TReqUseRow)
'Drow.M00 = L56 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L56
''If (L45 + L50 + L55 + L56 + L57) <> 0 Then Drow.M00 = L56 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L56
'Drow = CType(DSETR.TReqUse.Rows(57 - 1), DSR.TReqUseRow)
'Drow.M00 = L57 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L57
''If (L45 + L50 + L55 + L56 + L57) <> 0 Then Drow.M00 = L57 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L57
''//
'Drow = CType(DSETR.TReqUse.Rows(22 - 1), DSR.TReqUseRow)
'' If (L45 + L50 + L55 + L56 + L57) <> 0 Then
'Drow.M00 = L22 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L45
'Drow.COLG = L22 - (DR(58 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L45
'' End If
'Drow = CType(DSETR.TReqUse.Rows(27 - 1), DSR.TReqUseRow)
'' If (L45 + L50 + L55 + L56 + L57) <> 0 Then
'Drow.M00 = L27 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L50
'Drow.COLG = L27 - (DR(58 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L50
'' End If
'Drow = CType(DSETR.TReqUse.Rows(31 - 1), DSR.TReqUseRow)
'' If (L45 + L50 + L55 + L56 + L57) <> 0 Then
'Drow.M00 = L31 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L56
'Drow.COLG = L31 - (DR(58 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L56
'' End If
'Drow = CType(DSETR.TReqUse.Rows(33 - 1), DSR.TReqUseRow)
''If (L45 + L50 + L55 + L56 + L57) <> 0 Then
'Drow.M00 = L33 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L55
'Drow.COLG = L33 - (DR(58 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L55
'' End If
''//
'Drow = CType(DSETR.TReqUse.Rows(20 - 1), DSR.TReqUseRow)
'Drow.M00 = DR(22 - 1).M00 + DR(27 - 1).M00 + DR(31 - 1).M00 + DR(33 - 1).M00 + DR(37 - 1).M00
''//
'Drow = CType(DSETR.TReqUse.Rows(26 - 1), DSR.TReqUseRow)
'Drow.M00 = CSng(IIf(DR(7 - 1).M00 = 0, 0, DR(22 - 1).M00 / DR(7 - 1).M00))
'Drow = CType(DSETR.TReqUse.Rows(30 - 1), DSR.TReqUseRow)
'Drow.M00 = CSng(IIf(DR(12 - 1).M00 = 0, 0, DR(27 - 1).M00 / DR(12 - 1).M00))
'Drow = CType(DSETR.TReqUse.Rows(32 - 1), DSR.TReqUseRow)
'Drow.M00 = CSng(IIf(DR(15 - 1).M00 = 0, 0, DR(31 - 1).M00 / DR(15 - 1).M00))
'Drow = CType(DSETR.TReqUse.Rows(36 - 1), DSR.TReqUseRow)
'Drow.M00 = CSng(IIf(DR(18 - 1).M00 = 0, 0, DR(33 - 1).M00 / DR(18 - 1).M00))
''=SUM(I58:T58)-(H95+H96)/(SUM(I76:T76)+SUM(I82:T82)+SUM(I88:T88)+SUM(I90:T90)+SUM(I92:T92))*SUM(I92:T92)
''=L37-(ru(58)+ru(59))/(L45+L50+L55+L56+L57)*L57
'Drow = CType(DSETR.TReqUse.Rows(37 - 1), DSR.TReqUseRow) '//환기에너지소요량(X)
'' If (L45 + L50 + L55 + L56 + L57) <> 0 Then
'Drow.M00 = L37 - (Ru(58) + Ru(59)) / (L45 + L50 + L55 + L56 + L57) * L57
'Drow.COLG = L37 - (Ru(58)) / (L45 + L50 + L55 + L56 + L57) * L57
'' End If
'Drow = CType(DSETR.TReqUse.Rows(38 - 1), DSR.TReqUseRow) '//환기에너지 단위면적당 소요량
'Drow.M00 = CSng(IIf(Ru(19) = 0, 0, Ru(37) / Ru(19)))
''//
'Drow = CType(DSETR.TReqUse.Rows(21 - 1), DSR.TReqUseRow)
'Drow.M00 = DR(26 - 1).M00 + DR(30 - 1).M00 + DR(32 - 1).M00 + DR(36 - 1).M00 + DR(38 - 1).M00
End Sub
#End Region
Public Sub Make_ResultSheet()
'//에너지요구량
DSETR.TReqUse.Clear()
DSETR.TReqUse.AcceptChanges()
Dim Array As New ArrayList
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E요구량(i).요구량)
Next
Set_ReqUseRow("100", "에너지요구량", "[kWh]", "Qb", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E요구량(i).면적당요구량)
Next
Set_ReqUseRow("100", "단위면적당 에너지 요구량", "[kWh/m²]", "Σ(Qb / Ab)", "=", Array, "N1")
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E요구량(i).난방요구량)
Next
Set_ReqUseRow("110", "난방에너지 요구량", "[kWh]", "QH,b", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E요구량(i).난방열)
Next
Set_ReqUseRow("110", "난방에너지 요구량(열)", "[kWh]", "Qh,b", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E요구량(i).난방공조)
Next
Set_ReqUseRow("110", "난방에너지 요구량(공조,환기)", "[kWh]", "Qh*,b", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E요구량(i).난방면적)
Next
Set_ReqUseRow("110", "단위면적당 요구량", "[kWh/m²]", "QH,b / AH", "=", Array, "N1")
Set_ReqUseRow("110", "사용면적(난방)", "[m²]", "AH", "=", Result.사용면적.H, "N1")
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E요구량(i).냉방요구량)
Next
Set_ReqUseRow("110", "냉방에너지 요구량", "[kWh]", "QC,b", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E요구량(i).냉방열)
Next
Set_ReqUseRow("110", "냉방에너지 요구량(열)", "[kWh]", "Qc,b", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E요구량(i).냉방공조)
Next
Set_ReqUseRow("110", "냉방에너지 요구량(공조,환기)", "[kWh]", "Qc*,b", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E요구량(i).냉방면적)
Next
Set_ReqUseRow("110", "단위면적당 요구량", "[kWh/m²]", "QC,b / AC", "=", Array, "N1")
Set_ReqUseRow("110", "사용면적(냉방)", "[m²]", "AC", "=", Result.사용면적.C, "N1")
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E요구량(i).조명요구량)
Next
Set_ReqUseRow("110", "조명에너지 요구량", "[kWh]", "QL,b", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E요구량(i).조명면적)
Next
Set_ReqUseRow("110", "단위면적당 요구량", "[kWh/m²]", "QL,b / AL", "=", Array, "N1")
Set_ReqUseRow("110", "사용면적(조명)", "[m²]", "AL", "=", Result.사용면적.L, "N1")
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E요구량(i).급탕요구량)
Next
Set_ReqUseRow("110", "급탕에너지 요구량", "[kWh]", "QW,b", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E요구량(i).급탕면적)
Next
Set_ReqUseRow("110", "단위면적당 요구량", "[kWh/m²]", "QW,b / AW", "=", Array, "N1")
Set_ReqUseRow("110", "사용면적(급탕)", "[m²]", "AW", "=", Result.사용면적.W, "N1")
Set_ReqUseRow("110", "사용면적(환기)", "[m²]", "AV", "=", Result.사용면적.V, "N1")
'//에너지소요량
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E소요량(i).소요량)
Next
Set_ReqUseRow("200", "에너지소요량", "[kWh]", "Qf", "", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E소요량(i).면적소요량)
Next
Set_ReqUseRow("200", "단위면적당 에너지 소요량", "[kWh/m²]", "Σ(Qf / Ab)", "", Array, "N1")
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E소요량(i).난방S)
Next
Set_ReqUseRow("210", "난방에너지 소요량", "[kWh]", "QH,f", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E소요량(i).난방)
Next
Set_ReqUseRow("210", "난방에너지 소요량", "[kWh]", "Qh,f", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E소요량(i).난방보조)
Next
Set_ReqUseRow("210", "난방보조에너지 소요량", "[kWh]", "Qh,aux", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E소요량(i).난방면적)
Next
Set_ReqUseRow("210", "단위면적당 소요량", "[kWh/m²]", "QH,f / AH", "=", Array, "N1")
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E소요량(i).냉방S)
Next
Set_ReqUseRow("210", "냉방에너지 소요량", "[kWh]", "QC,f", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E소요량(i).냉방)
Next
Set_ReqUseRow("210", "냉방에너지 소요량", "[kWh]", "Qc,f", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E소요량(i).냉방보조)
Next
Set_ReqUseRow("210", "냉방보조에너지 소요량", "[kWh]", "Qc,aux", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E소요량(i).냉방면적)
Next
Set_ReqUseRow("210", "단위면적당 소요량", "[kWh/m²]", "QC,f / AC", "=", Array, "N1")
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E소요량(i).조명S)
Next
Set_ReqUseRow("210", "조명에너지 소요량", "[kWh]", "QL,f", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E소요량(i).조명면적)
Next
Set_ReqUseRow("210", "단위면적당 소요량", "[kWh/m²]", "QL,f / AL", "=", Array, "N1")
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E소요량(i).급탕S)
Next
Set_ReqUseRow("210", "급탕에너지 소요량", "[kWh]", "QW,f", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E소요량(i).급탕)
Next
Set_ReqUseRow("210", "급탕에너지 소요량", "[kWh]", "Qw,f", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E소요량(i).급탕보조)
Next
Set_ReqUseRow("210", "급탕보조에너지 소요량", "[kWh]", "Qw,aux", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E소요량(i).급탕면적)
Next
Set_ReqUseRow("210", "단위면적당 소요량", "[kWh/m²]", "QW,f / AW", "=", Array, "N1")
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E소요량(i).환기S)
Next
Set_ReqUseRow("210", "환기에너지 소요량", "[kWh]", "QV,aux", "=", Array) '//36
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E소요량(i).환기면적)
Next
Set_ReqUseRow("210", "단위면적당 소요량", "[kWh/m²]", "QV.aux / AV", "=", Array, "N1")
'//1차에너지 소요량(10-02 추가)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).소요량)
Next
Set_ReqUseRow("300", "1차에너지 소요량", "[kWh]", "", "", Array) '//38
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).단위면적)
Next
Set_ReqUseRow("300", "단위면적당 1차에너지 소요량", "[kWh/m²]", "", "", Array, "N1") '//39
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).난방소요량)
Next
Set_ReqUseRow("310", "난방 1차에너지 소요량", "", "", "", Array) '//40
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).난방등유)
Next
Set_ReqUseRow("310", "난방유(등유) 소요량", "[kWh]", "1.1", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).난방LNG)
Next
Set_ReqUseRow("310", "천연가스(LNG) 소요량", "[kWh]", "1.1", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).난방LPG)
Next
Set_ReqUseRow("310", "액화가스(LPG) 소요량", "[kWh]", "1.1", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).난방지역)
Next
Set_ReqUseRow("310", "지역난방열료 소요량", "[kWh]", "0.728", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).난방전력)
Next
Set_ReqUseRow("310", "전력 소요량", "[kWh]", "2.75", "=", Array) '//45
'Array.Clear() '//--펠렛 100727
'For i As Integer = 0 To 12
' Array.Add(Result.일차E소요량(i).난방펠렛)
'Next
'Set_ReqUseRow("310", "펠렛보일러 소요량", "[kWh]", "1.1", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).난방면적)
Next
Set_ReqUseRow("310", "단위면적당 1차에너지 소요량", "[kWh/m2]", "", "=", Array, "N1") '//46
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).냉방소요량)
Next
Set_ReqUseRow("310", "냉방 1차에너지 소요량", "", "", "", Array) '//47
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).냉방등유)
Next
Set_ReqUseRow("310", "난방유(등유) 소요량", "[kWh]", "1.1", "=", Array) '//48
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).냉방LNG)
Next
Set_ReqUseRow("310", "천연가스(LNG) 소요량", "[kWh]", "1.1", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).냉방LPG)
Next
Set_ReqUseRow("310", "액화가스(LPG) 소요량", "[kWh]", "1.1", "=", Array) '//50
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).냉방지역난방열)
Next
Set_ReqUseRow("310", "지역난방열 소요량", "[kWh]", "0.728", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).냉방지역냉방열)
Next
Set_ReqUseRow("310", "지역냉방열 소요량", "[kWh]", Result.E변환계수.지역냉방.ToString("N3"), "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).냉방전력)
Next
Set_ReqUseRow("310", "전력 소요량", "[kWh]", "2.75", "=", Array) '//52
'Array.Clear() '//--펠렛 100727
'For i As Integer = 0 To 12
' Array.Add(Result.일차E소요량(i).냉방펠렛)
'Next
'Set_ReqUseRow("310", "펠렛보일러 소요량", "[kWh]", "1.1", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).냉방면적)
Next
Set_ReqUseRow("310", "단위면적당 1차에너지 소요량", "[kWh/m2]", "", "=", Array, "N1") '//53
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).급탕소요량)
Next
Set_ReqUseRow("310", "급탕 1차에너지 소요량", "", "", "", Array) '//54
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).급탕등유)
Next
Set_ReqUseRow("310", "난방유(등유) 소요량", "[kWh]", "1.1", "=", Array) '//55
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).급탕LNG)
Next
Set_ReqUseRow("310", "천연가스(LNG) 소요량", "[kWh]", "1.1", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).급탕LPG)
Next
Set_ReqUseRow("310", "액화가스(LPG) 소요량", "[kWh]", "1.1", "=", Array) '//57
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).급탕지역)
Next
Set_ReqUseRow("310", "지역난방열 소요량", "[kWh]", "0.728", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).급탕전력)
Next
Set_ReqUseRow("310", "전력 소요량", "[kWh]", "2.75", "=", Array) '//59
'Array.Clear() '//--펠렛 100727
'For i As Integer = 0 To 12
' Array.Add(Result.일차E소요량(i).급탕펠렛)
'Next
'Set_ReqUseRow("310", "펠렛보일러 소요량", "[kWh]", "1.1", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).급탕면적)
Next
Set_ReqUseRow("310", "단위면적당 1차에너지 소요량", "[kWh/m2]", "", "=", Array, "N1") '//60
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).조명소요량)
Next
Set_ReqUseRow("310", "조명 1차에너지 소요량", "", "", "", Array) '//61
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).조명전력)
Next
Set_ReqUseRow("310", "전력 소요량", "[kWh]", "2.75", "=", Array) '//62
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).조명면적)
Next
Set_ReqUseRow("310", "단위면적당 1차에너지 소요량", "[kWh/m2]", "", "=", Array, "N1") '//63
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).환기소요량)
Next
Set_ReqUseRow("310", "환기 1차에너지 소요량", "", "", "", Array) '//64
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).환기전력)
Next
Set_ReqUseRow("310", "전력 소요량", "[kWh]", "2.75", "=", Array) '//65
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).환기면적)
Next
Set_ReqUseRow("310", "단위면적당 1차에너지 소요량", "[kWh/m2]", "", "=", Array, "N1") '//66
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.생산E(i).태양광전력생산량)
Next
Set_ReqUseRow("310", "전기에너지 생산량(태양광)", "[kWh]", CStr(Result.E변환계수.전력), "=", Array) '//67
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.생산E(i).열병합전력생산량)
Next
Set_ReqUseRow("310", "전기에너지 생산량(열병합)", "[kWh]", CStr(Result.E변환계수.전력), "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.생산E(i).태양열생산량)
Next
Set_ReqUseRow("310", "열에너지 생산량(태양열)", "[kWh]", "", "=", Array) '//69
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.생산E(i).지열생산량)
Next
Set_ReqUseRow("310", "열에너지 생산량(지열)", "[kWh]", "", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.생산E(i).면적당생산량태양열)
Next
Set_ReqUseRow("310", "단위면적당 생산량(태양열)", "[kWh]", "", "=", Array, "N1") '//71
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.생산E(i).면적당생산량지열)
Next
Set_ReqUseRow("310", "단위면적당 생산량(지열)", "[kWh]", "", "=", Array, "N1") '//72
'//CO2배출량
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).발생량)
Next
Set_ReqUseRow("400", "연간 CO2 배출량", "[kg CO2]", "", "", Array) '//73
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).단위면적)
Next
Set_ReqUseRow("400", "단위면적당 CO2 배출량", "[kg CO2/m²]", "", "", Array, "N1") '//74
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).난방발생량)
Next
Set_ReqUseRow("410", "난방 CO2 발생량", "", "", "", Array) '//75
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).난방등유)
Next
Set_ReqUseRow("410", "난방유(등유) CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.등유), "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).난방LNG)
Next
Set_ReqUseRow("410", "천연가스(LNG) CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.LNG), "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).난방LPG)
Next
Set_ReqUseRow("410", "액화가스(LPG) CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.LPG), "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).난방지역)
Next
Set_ReqUseRow("410", "지역난방열 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.지역난방), "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).난방전력)
Next
Set_ReqUseRow("410", "전력 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.지역냉방), "=", Array)
'Array.Clear() '//펠렛
'For i As Integer = 0 To 12
' Array.Add(Result.Co2발생량(i).난방펠렛)
'Next
'Set_ReqUseRow("410", "펠렛 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.펠렛), "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).난방면적)
Next
Set_ReqUseRow("410", "단위면적당 CO2 발생량", "[kg CO2]", "", "=", Array, "N1")
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).냉방발생량)
Next
Set_ReqUseRow("410", "냉방 CO2 발생량", "", "", "", Array) '//82
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).냉방등유)
Next
Set_ReqUseRow("410", "난방유(등유) CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.등유), "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).냉방LNG)
Next
Set_ReqUseRow("410", "천연가스(LNG) CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.LNG), "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).냉방LPG)
Next
Set_ReqUseRow("410", "액화가스(LPG) CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.LPG), "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).냉방지역난방열)
Next
Set_ReqUseRow("410", "지역난방열 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.지역난방), "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).냉방지역냉방열)
Next
Set_ReqUseRow("410", "지역냉방열 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.지역냉방), "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).냉방전력)
Next
Set_ReqUseRow("410", "전력 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.전력), "=", Array)
'Array.Clear() '//낸ㅇ방펠렛
'For i As Integer = 0 To 12
' Array.Add(Result.Co2발생량(i).냉방펠렛)
'Next
'Set_ReqUseRow("410", "전력 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.펠렛), "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).냉방면적)
Next
Set_ReqUseRow("410", "단위면적당 CO2 발생량", "[kg CO2]", "", "=", Array, "N1")
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).급탕발생량)
Next
Set_ReqUseRow("410", "급탕 CO2 발생량", "", "", "", Array) '//89
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).급탕등유)
Next
Set_ReqUseRow("410", "난방유(등유) CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.등유), "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).급탕LNG)
Next
Set_ReqUseRow("410", "천연가스(LNG) CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.LNG), "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).급탕LPG)
Next
Set_ReqUseRow("410", "액화가스(LPG) CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.LPG), "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).급탕지역)
Next
Set_ReqUseRow("410", "지역난방열 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.지역난방), "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).급탕전력)
Next
Set_ReqUseRow("410", "전력 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.전력), "=", Array)
'Array.Clear() '//급탕펠렛
'For i As Integer = 0 To 12
' Array.Add(Result.Co2발생량(i).급탕펠렛)
'Next
'Set_ReqUseRow("410", "전력 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.펠렛), "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).급탕면적)
Next
Set_ReqUseRow("410", "단위면적당 CO2 발생량", "[kg CO2]", "", "=", Array, "N1")
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).조명발생량)
Next
Set_ReqUseRow("410", "조명 CO2 발생량", "", "", "", Array) '//96
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).조명전력)
Next
Set_ReqUseRow("410", "전력 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.전력), "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).조명면적)
Next
Set_ReqUseRow("410", "단위면적당 CO2 발생량", "[kg CO2]", "", "=", Array, "N1")
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).환기발생량)
Next
Set_ReqUseRow("410", "환기 CO2 발생량", "", "", "", Array) '//99
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).환기전력)
Next
Set_ReqUseRow("410", "전력 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.전력), "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).환기면적)
Next
Set_ReqUseRow("410", "단위면적당 CO2 발생량", "[kg CO2]", "", "=", Array, "N1")
'//CO2저감량
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).저감량태양광)
Next
Set_ReqUseRow("410", "전력 CO2 저감량(태양광)", "[kg CO2]", CStr(Result.Co2배출계수.전력), "=", Array) '//102
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).저감량열병합)
Next
Set_ReqUseRow("410", "전력 CO2 저감량(열병합)", "[kg CO2]", CStr(Result.Co2배출계수.전력), "=", Array) '//103
DSETR.AcceptChanges()
End Sub
Private Sub Set_ReqUseRow(ByVal GRP As String, ByVal desc As String, ByVal unit As String, ByVal sign As String, ByVal eq As String, ByVal Value As ArrayList, Optional ByVal F As String = "N0")
Dim DR As DSR.TReqUseRow : DR = DSETR.TReqUse.NewTReqUseRow
DR.Code = Format(DSETR.TReqUse.Rows.Count + 1, "000")
DR.GRP = GRP '//그룹 출력할떄 그룹으로 뽑는다.
DR.Desc = desc '//설명
DR.UNIT = unit '//단위
DR.SIGN = sign '//기호
DR.EQ = eq '//등호 =
DR.M00 = TOSG(Value.Item(0))
DR.M01 = TOSG(Value.Item(1))
DR.M02 = TOSG(Value.Item(2))
DR.M03 = TOSG(Value.Item(3))
DR.M04 = TOSG(Value.Item(4))
DR.M05 = TOSG(Value.Item(5))
DR.M06 = TOSG(Value.Item(6))
DR.M07 = TOSG(Value.Item(7))
DR.M08 = TOSG(Value.Item(8))
DR.M09 = TOSG(Value.Item(9))
DR.M10 = TOSG(Value.Item(10))
DR.M11 = TOSG(Value.Item(11))
DR.M12 = TOSG(Value.Item(12))
DR.F = F
DSETR.TReqUse.AddTReqUseRow(DR)
End Sub
Private Sub Set_ReqUseRow(ByVal GRP As String, ByVal desc As String, ByVal unit As String, ByVal sign As String, ByVal eq As String, ByVal Value As Decimal, Optional ByVal F As String = "N0")
Dim DR As DSR.TReqUseRow : DR = DSETR.TReqUse.NewTReqUseRow
DR.Code = Format(DSETR.TReqUse.Rows.Count + 1, "000")
DR.GRP = GRP '//그룹 출력할떄 그룹으로 뽑는다.
DR.Desc = desc '//설명
DR.UNIT = unit '//단위
DR.SIGN = sign '//기호
DR.EQ = eq '//등호 =
DR.M00 = Value
DR.F = F
'DR.M01 = CSng(Value.Item(1))
'DR.M02 = CSng(Value.Item(2))
'DR.M03 = CSng(Value.Item(3))
'DR.M04 = CSng(Value.Item(4))
'DR.M05 = CSng(Value.Item(5))
'DR.M06 = CSng(Value.Item(6))
'DR.M07 = CSng(Value.Item(7))
'DR.M08 = CSng(Value.Item(8))
'DR.M09 = CSng(Value.Item(9))
'DR.M10 = CSng(Value.Item(10))
'DR.M11 = CSng(Value.Item(11))
'DR.M12 = CSng(Value.Item(12))
DSETR.TReqUse.AddTReqUseRow(DR)
End Sub
End Class

View File

@@ -0,0 +1,907 @@
Public Class CZone
'Public Event PBarSet(ByVal min As Integer, ByVal max As Integer) '//프로그레시브바 초기화
Public Event Message(ByVal Msg As String, pval As Integer, pmin As Integer, pmax As Integer) '//메세지표시
' Public Event PBarVal(ByVal Value As Integer) '//프로그레시브 값설정
''' <summary>
''' (main)에너지요구량 계산
''' </summary>
''' <param name="Calc_Use">에너지소요량을 추가로 계산하려면 True 를 입력</param>
''' <param name="Log">로그가 입력될 스트링빌더</param>
''' <remarks></remarks>
Public Overridable Function Calc_LoadOfZones(showmsg As String, isSimul As Boolean, 기저비율 As Decimal, Optional ByVal p_난방설정온도 As Decimal = 20, Optional ByVal p_냉방설정온도 As Decimal = 26) As Boolean
pLog.Add(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
pLog.Add("Calc_LoadOfZones")
pLog.Add(String.Format("기저비율:{0},난방설정온도:{1},냉방설정온도:{2}", 기저비율, p_난방설정온도, p_냉방설정온도))
pLog.Add(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
pLog.Add("요구량log는 임시 종료함", True)
pLog.LogEnable = False
Dim title As String = ""
RaiseEvent Message(showmsg + "에너지요구량계산을 준비중입니다." + vbCrLf + "잠시만기다려주세요", 0, 0, 0)
'i_count_OpWe As Integer, d_we_month As Integer, Q_h_b_we as decimal, ==================================2010.2.21 삭제
Dim t_24 As Integer, f_wind As Integer, t_NA As Integer, t_h_op_d As Integer, i_count_Is As Integer
Dim Delta_theta_er As Decimal, Delta_theta_i_NA As Decimal, Delta_theta_i_WE As Decimal, theta_i As Decimal, theta_i_h As Decimal, theta_i_c As Decimal, F_f As Decimal, F__F As Decimal, F_W As Decimal, F_S As Decimal, F_V As Decimal, h_r As Decimal, c_p_arhoa As Decimal, e_wind As Decimal, n_50 As Decimal, n_ue As Decimal, n_mech As Decimal, n_inf As Decimal, A_B As Decimal, A_u As Decimal, h_u As Decimal, V As Decimal, V_ue As Decimal
Dim H_V_inf As Decimal, H_V_mech As Decimal, H_V_ue As Decimal, H_V_z As Decimal, theta_z As Decimal, theta_u As Decimal, H_T_D As Decimal, H_T_iu As Decimal, H_T_iz As Decimal, H_T_s As Decimal, Delta_U_WB As Decimal, H_V_mech_theta As Decimal, theta_i_h_soll As Decimal, theta_i_c_soll As Decimal, theta_V_mech As Decimal ', theta_e_min as decimal, theta_e_max as decimal
Dim C_wirk As Decimal, tau As Decimal, a As Decimal, a_tb As Decimal, f_we As Decimal, f_NA As Decimal, f_tb As Decimal, Q_h_max As Decimal, theta_V_mech_RLT As Decimal
Dim Q_V_inf_sink As Decimal, Q_V_mech_sink As Decimal, Q_V_z_sink As Decimal, Q_V_sink As Decimal, Q_T_e_sink As Decimal, Q_T_u_sink As Decimal, Q_T_z_sink As Decimal, Q_T_s_sink As Decimal, Q_T_sink As Decimal, Q_S_sink As Decimal, R_se As Decimal, Q_source As Decimal, Q_sink As Decimal, Q_I_source As Decimal
Dim Q_V_inf_source As Decimal, Q_V_mech_source As Decimal, Q_V_z_source As Decimal, Q_V_source As Decimal, Q_T_e_source As Decimal, Q_T_u_source As Decimal, Q_T_z_source As Decimal, Q_T_s_source As Decimal, Q_T_source As Decimal, Q_S_source As Decimal
Dim Q_I_source_p As Decimal, Q_I_source_fac As Decimal, Q_I_L As Decimal, Q_l_b As Decimal, Q_w_b As Decimal, gamma As Decimal, eta As Decimal, Q_h_b As Decimal, Q_h_b_op As Decimal, g_TI As Decimal
Dim V_mech As Decimal
'Dim d_op_month As Integer, theta_e_month as decimal
'Dim A_H as decimal, A_C as decimal, A_L as decimal, A_W as decimal, A_V as decimal
Dim Q_vh_b_op As Decimal
Dim g_blinds As Decimal, tau_e_B As Decimal, rho_e_B As Decimal, U_blinds As Decimal, tau_e_B_corr As Decimal, rho_e_B_corr As Decimal 'EN 13363-1 적용
Dim g As Decimal, alpa As Decimal
'Dim i_sub_wall As Integer
Dim V_mech_outdoor As Decimal
'//2010.02.04추가
Dim Phi As Decimal
'//2010.02.21추가
Dim d_op_mth As Integer
'//2011.04.04 추가
Dim Q_V_win_sink As Decimal, Q_V_win_source As Decimal, H_V_win As Decimal, n_win As Decimal
Dim zone_count As Decimal '//2012.07.08 추가 입력존의 수
'Dim priod_value As Single = 0
Dim age As Decimal = 1 '//준공연도에 의한 경년변화값
'For Each DRpriod As DS.tbl_DescRow In DSET.tbl_Desc.Select("cname<>'0'", "cname")
' priod_value = CSng(DRpriod.priod)
'Next
'If priod_value = 0 Then
' age = 1
'Else
' age = 1 / (1 - priod_value * 0.0012)
'End If
t_24 = 24
F_f = 0.5 '구조체와 하늘과의 형태계수
F__F = 0.7 '창 프레임 감소계수 __필요
F_W = 0.9 '수직입사가 아닌경우에 대한 감소계수
F_S = 1 '주변환경에 의한 그늘짐
F_V = 1 '0.9 '우선 먼지팩터는 없는 것으로 가정
h_r = 5 * 0.9 '= 5*e(모를경우 e=0.9)
Delta_theta_er = 10
Delta_theta_i_NA = 4 '(용도별조건)
'theta_i = 21
'theta_i_h = 21
theta_i_h_soll = p_난방설정온도 ' 20 '//난방설정온도
theta_i_c = 24
theta_i_c_soll = p_냉방설정온도 ' 26 '//냉방설정온도
theta_V_mech_RLT = 27
'theta_e_min = -11.3
'theta_e_max = 31.5
c_p_arhoa = 0.34 '//먼지모름
'n_50 = 1.5
n_ue = 0.6
e_wind = 0.07
f_wind = 15
R_se = 0.043 '외기에 직접 열전달저항 확인요망
g_TI = 0.35 '(2-113)
alpa = 0.4 '우선 0.4으로 설정 표면흡수율 도표 2-6 참조
n_mech = 1 '임시
A_u = 1
h_u = 1 '임시
RaiseEvent Message("요구량계산준비완료", 0, 0, 0)
'/////////////////////////////////////////////////////
For i_count_HeatCool As Integer = 1 To 2 '(1) 루프회전 난방/냉방 구분해서 회전한다. 둘의 산식이 거의 비슷하므로 루프를 이용해서 계산
For i_count_month As Short = 0 To 12 '(2) --월전체의 루프?
If i_count_HeatCool = 1 AndAlso i_count_month = 1 Then
Console.WriteLine("col")
End If
title = showmsg + "요구량계산중..." & CStr(IIf(i_count_HeatCool = 1, "난방", "냉방")) & "(" & i_count_month & "/12)"
pLog.Add(String.Format("요구량계산({0}),Month={1}", IIf(i_count_HeatCool = 1, "난방", "냉방"), i_count_month), True)
RaiseEvent Message(title, i_count_month, 0, 12)
Dim Mon As String = "M" & Format(i_count_month, "00") '//저장소의 필드명이 M00 식으로되어있다.
If i_count_month = 0 Then '//난방이라면? '//최소외기온도 난방기(theta_e_min)
Calc.Pub.theta_e(i_count_month) = TOSG(IIf(i_count_HeatCool = 1, Calc.Pub.theta_e_min, Calc.Pub.theta_e_max))
pLog.Add(String.Format(" Calc.Pub.theta_e({0}) = {1}", i_count_month, Calc.Pub.theta_e(i_count_month)))
End If
'//존 루프
For Each DR존 As DS.tbl_zoneRow In DSET.tbl_zone.Select("code<>'0'", "code") ' DSET.tbl_zone.Rows.Count '(3)
'//방식이나 공조는 ZZ는 사용안함이다 V=환기 외기부하처리여부의경우 0001 은 예이다.
zone_count = TOSG(DR존.입력존의수)
pLog.Add(String.Format("Start Zone Code={0},Desc={1},입력존수={2}", DR존.code, DR존.설명, zone_count))
If DR존.냉난방방식 <> "기능없음" Or (DR존.냉난방공조 <> "기능없음" And (DR존.냉난방공조 <> "환기" Or DR존.외기부하처리여부 = "")) Then
Q_vh_b_op = 0
'//i_count_OpWe 1은 평일 2는 주말이다ㅡㅡ/
'======================================2010.2.21 삭제
'For i_count_OpWe = 1 To 2
'======================================2010.2.21 삭제
Q_V_inf_sink = 0
Q_V_inf_source = 0
Q_V_mech_sink = 0
Q_V_mech_source = 0
Q_V_z_sink = 0
Q_V_z_source = 0
Q_V_win_sink = 0 '//2011.04.04 추가
Q_V_win_source = 0 '//2011.04.04 추가
Q_T_e_sink = 0
Q_T_e_source = 0
Q_T_u_sink = 0
Q_T_u_source = 0
Q_T_z_sink = 0
Q_T_z_source = 0
Q_T_s_sink = 0
Q_T_s_source = 0
A_B = TOSG(DR존.면적) ' Worksheets("입력존").Range("전용면적1").Offset(0, i_count_zone - 1)
V = TOSG(DR존.순실체적) ' Worksheets("입력존").Range("체적1").Offset(0, i_count_zone - 1)
V_ue = A_u * h_u
'Log.AppendLine(" >> V_ue = A_u * h_u = // au와 hu 는 선언부에서 1값으로 고정되어있음 v_ue는 항상 1")
'//존의 프로필설정에대한 실제 프로필의 데이터를 가져옴
Dim DR프로필() As DS.tbl_profileRow = CType(DSET.tbl_profile.Select("code='" & DR존.프로필 & "' and code <> '0'"), DS.tbl_profileRow())
If DR프로필.GetUpperBound(0) = -1 Then
MsgBox("존=" & DR존.code & " 의 프로필=" & DR존.프로필 & " 의 데이터가 존재하지않습니다", MsgBoxStyle.Critical, "확인")
Return False
Else
'Log.AppendLine(" >> 존의 프로필코드(" & DR존.프로필 & ") 에 해당하는 프로필정보를 가져옵니다")
t_h_op_d = TOIT(DR프로필(0).운전시간난방) ' Worksheets("설정조건").Range("사용시작시간1").Offset(5, i_count_profile)
'===================================================================================2010.2.21 추가
If i_count_month = 0 Then
d_op_mth = 0
Else
d_op_mth = CInt(TOSG(DR프로필(0)("day" & Format(i_count_month, "00"))))
End If
'===================================================================================2010.2.21 추가
If Not isSimul Then '//개선계산중이아닌경우에만 사용한다.
theta_i_h_soll = TOSG(DR프로필(0).난방설정온도) ' Worksheets("설정조건").Range("난방설정온도1").Offset(0, i_count_profile)
theta_i_c_soll = TOSG(DR프로필(0).냉방설정온도) ' Worksheets("설정조건").Range("냉방설정온도1").Offset(0, i_count_profile)
End If
Delta_theta_i_NA = TOSG(DR프로필(0).야간최저허용온도) ' Worksheets("설정조건").Range("야간최저허용온도1").Offset(0, i_count_profile)
Delta_theta_i_WE = TOSG(DR프로필(0).주말최저허용온도) ' Worksheets("설정조건").Range("주말최저허용온도1").Offset(0, i_count_profile)
' If i_count_OpWe = 1 Then=============================================================2010.2.21 삭제
'Log.AppendLine(" >> i_count_OpWe = 1 >> Q_I_source_p/Q_I_source_fac/V_mech 계산됨")
Q_I_source_p = TOSG(DR프로필(0).사람) * A_B ' Worksheets("설정조건").Range("사람1").Offset(0, i_count_profile) * A_B '(2-118)
Q_I_source_fac = (TOSG(DR프로필(0).작업보조기기) * A_B) + 기저비율 ' Worksheets("설정조건").Range("작업보조기기1").Offset(0, i_count_profile) * A_B '(2-119)
V_mech = TOSG(DR프로필(0).최소도입외기량) * A_B ' Worksheets("설정조건").Range("최소도입외기량1").Offset(0, i_count_profile) * A_B
' Else '=============================================================2010.2.21 삭제
' Log.AppendLine(" >> i_count_OpWe <> 1 >> Q_I_source_p/Q_I_source_fac 는 0입니다")
' Q_I_source_p = 0 '주말 사람없음
' Q_I_source_fac = 0 '주말 기기발열 없음
'End If
'Q_I_L = 0 'mu_L*Q_I_L_elektr (2-123)추후 추가
End If
V_mech_outdoor = 1 '외기처리 관련 (ZZ=사용안함 Y=예)
If DR존.냉난방방식 <> "기능없음" And DR존.냉난방공조 <> "기능없음" And DR존.외기부하처리여부 = "" Then
If i_count_HeatCool = 1 Then '//난방이라면
If DR존.냉난방공조 <> "난방" AndAlso DR존.냉난방공조 <> "냉난방" Then '난방/냉난방 이 아니면!
If theta_i_h_soll > Calc.Pub.theta_e(i_count_month) Then '//난방설정온도 > 외기온도(난방기)
Q_vh_b_op = V_mech * (theta_i_h_soll - Calc.Pub.theta_e(i_count_month)) * t_h_op_d * c_p_arhoa * d_op_mth * zone_count '===============d_op(i_count_month) 2010.2.21 수정
V_mech_outdoor = 0 ' 외기처리된 상태인 경우
'Log.AppendLine(" >> 외기처리됨")
End If
End If
Else
If DR존.냉난방공조 <> "냉방" AndAlso DR존.냉난방공조 <> "냉난방" Then '냉방/냉난방이 아닐경우
If theta_i_c_soll < Calc.Pub.theta_e(i_count_month) Then
Q_vh_b_op = V_mech * (Calc.Pub.theta_e(i_count_month) - theta_i_c_soll) * t_h_op_d * c_p_arhoa * d_op_mth * zone_count '===============d_op(i_count_month) 2010.2.21 수정
V_mech_outdoor = 0 ' 외기처리된 상태인 경우
'Log.AppendLine(" >> 외기처리됨")
End If
End If
End If
End If
pLog.Add(String.Format("Q_vh_b_op:{0},V_mech_outdoor:{1}", Q_vh_b_op, V_mech_outdoor))
n_50 = TOSG(DR존.침기율) '//tosg 는 빈값일경우 0을 반환
n_inf = n_50 * e_wind '(2-59) 환기기기 없는 경우
'n_inf = n_50 * e_wind * (1 + f_V_mech * t_V_mech / 24) '(2-60) 급기 및 배기에 대한 환기회수 필요
'///////////////////////////////////////////////////////////////////////////////////////////////////////2011.04.04 추가
'If n_nutz < 1.2 Then
' Delta_n_win = n_nutz - (n_nutz - 0.2) * n_inf - 0.1
'Else
' Delta_n_win = n_nutz - n_inf - 0.1
'End If
'If Delta_n_win < 0 Then
' Delta_n_win = 0
'End If
'n_win = 0.1 + Delta_n_win * t_h_op_d / 24
n_win = 0.1 ' 최소외기 도입량은 환기기기 유무와 상관없이 적용되는 것으로 평가하기 때문에 자연환기 기본값만 적용
'///////////////////////////////////////////////////////////////////////////////////////////////////////2011.04.04 추가
H_T_D = 0
H_T_iu = 0
H_T_iz = 0
Dim Drow프로필 As DS.tbl_profileRow = CType(DSET.tbl_profile.Select("code='" & DR존.프로필 & "' and code <> '0'")(0), DS.tbl_profileRow)
If DR존.조명부하산출방법 = "계산치" Then
Q_I_L = TOSG(DR존.조명에너지부하율계산치) * TOSG(Drow프로필.일일사용시간) * A_B
Else
Q_I_L = TOSG(DR존.조명에너지부하율입력치) * TOSG(Drow프로필.일일사용시간) * A_B
End If
'Q_I_L = TOSG(IIf(DR존.조명부하산출방법 = "계산치", TOSG(DR존.조명에너지부하율계산치), TOSG(DR존.조명에너지부하율입력치))) * TOSG(Drow프로필.일일사용시간) * A_B
Q_w_b = TOSG(Drow프로필.일일급탕요구량) * A_B * d_op_mth
'===================================2010.2.21 삭제
'If DR존.조명부하산출방법 = "CALC" Then '//OpWe의 2번은 주말인거 같다.
' '//부하율계산치?입력치구분
' Q_w_b = TOSG(DR존.급탕요구량) * A_B * Calc.Pub.d_op_mth(i_count_month)
'Else
' Q_I_L = 0 '주말 소등으로 설정
' Q_w_b = 0 '주말은 급탕사용안함
'End If
'===================================2010.2.21 삭제
'Log.AppendLine(" >> 현재존을 사용하는 각 입력면(" & DSET.tbl_myoun.Select("존분류='" & DR존.code & "'").GetUpperBound(0) & ")으로부터 데이터를 누적")
For Each Dr입력면 As DS.tbl_myounRow In DSET.tbl_myoun.Select("존분류='" & DR존.code & "'")
If Dr입력면.code <> "0" Then
If DR존.열교가산치 = "내단열" Then
Delta_U_WB = 0.15 '내단열(=0001) Worksheets("입력존").Range("열교1").Offset(0, i_count_zone - 1) = "내단열" Then
Else
Delta_U_WB = 0.1 '내단열(=0001) Worksheets("입력존").Range("열교1").Offset(0, i_count_zone - 1) = "내단열" Then
End If
Select Case Dr입력면.건축부위방식.Trim ' Case Worksheets("입력면").Range("입력부위" & i_sub_wall & "").Offset(0, i_count_wall)
Case "외벽" '"외벽"
'Dr입력면.열관류율 >> Calc.Get_열관류율(Dr입력면)
H_T_D = H_T_D + Calc.Get_열관류율(Dr입력면) * age * TOSG(Dr입력면.건축부위면적) + Delta_U_WB * TOSG(Dr입력면.건축부위면적) ' Worksheets("입력면").Range("부위면적" & i_sub_wall & "").Offset(0, i_count_wall) '(2-44) Delta_U_WB는 외단열 0.1, 내단열 0.15
Case "외부창", "내부창" '=================2010.03.20 수정
If Dr입력면.블라인드유무 = "" Then ' '0001(=유) Range("에너지투과율" & i_sub_wall & "").Offset(3, i_count_wall) = "유" Then
If Calc.Get_열관류율(Dr입력면) = 0 Then
MsgBox("블라인드 사용이지만 열관류율 수치가 입력되지 않았습니다", MsgBoxStyle.Critical, "확인")
Else
Select Case Dr입력면.블라인드위치.Trim ' Range("에너지투과율" & i_sub_wall & "").Offset(4, i_count_wall)
Case "내부" '"내부"
U_blinds = TOSG(1 / (1 / (Calc.Get_열관류율(Dr입력면) * age) + 1 / 30))
Case "중간" '중간"
U_blinds = TOSG(1 / (1 / (Calc.Get_열관류율(Dr입력면) * age) + 1 / 3))
Case "외부" ' '외부"
U_blinds = TOSG(1 / (1 / (Calc.Get_열관류율(Dr입력면) * age) + 1 / 5 + 1 / 10))
End Select
End If
Else
U_blinds = Calc.Get_열관류율(Dr입력면) * age 'Worksheets("입력면").Range("열관류율" & i_sub_wall & "").Offset(0, i_count_wall)
End If
'=========================================================================================================2010.03.20 수정
If Dr입력면.건축부위방식.Trim = "외부창" Then
H_T_D = H_T_D + U_blinds * TOSG(Dr입력면.건축부위면적) + Delta_U_WB * TOSG(Dr입력면.건축부위면적) '(2-44) Delta_U_WB는 외단열 0.1, 내단열 0.15
Else
H_T_iu = H_T_iu + U_blinds * TOSG(Dr입력면.건축부위면적)
End If
'=========================================================================================================2010.03.20 수정
Case "내벽" ' "내벽"
H_T_iu = H_T_iu + Calc.Get_열관류율(Dr입력면) * age * TOSG(Dr입력면.건축부위면적) '(2-48)
Case "간벽" '"간벽"
H_T_iz = H_T_iz + Calc.Get_열관류율(Dr입력면) * age * TOSG(Dr입력면.건축부위면적) '(2-52)
Case Else
MsgBox("입력면 건축부위방식이 없습니다", MsgBoxStyle.Critical, "확인")
Return False
End Select
End If
Next
If H_T_D = 0 Then
H_V_inf = 0
Else
H_V_inf = n_inf * V * c_p_arhoa '(2-58) c_p_arhoa는 0.34 V는 존의 체적
End If
H_V_win = n_win * V * c_p_arhoa '//2011.04.04 추가
H_V_mech = V_mech * c_p_arhoa 'n_mech * V * c_p_arhoa '(2-83)
H_V_ue = n_ue * V_ue * c_p_arhoa '(2-94)
'H_V_z = n_z_d * c_p_arhoa '(2-99)
pLog.Add(String.Format("H_V_inf:{0},H_V_win:{1},H_V_mech:{2},H_V_ue:{3}", H_V_inf, H_V_win, H_V_mech, H_V_ue))
If DR존.열저장능력 = "" Then
MsgBox(DR존.설명 & "의 열저장능력이 입력되어 있지않습니다", MsgBoxStyle.Critical, "확인")
C_wirk = 0
Else
C_wirk = TOSG(DR존.열저장능력) * A_B ' .Worksheets("입력존").Range("열저장능력1").Offset(0, i_count_zone - 1) * A_B
End If
If i_count_HeatCool = 1 Then
H_V_mech_theta = 0 'H_V_mech * (theta_i_h_soll - theta_V_mech) / 6 '(2-130) 우선 고려안함
Else
H_V_mech_theta = 0 'H_V_mech * (theta_i_c_soll - theta_V_mech) / 6 '(2-130)
End If
tau = C_wirk / ((H_T_D + H_T_iu + H_T_iz) + (H_V_inf + H_V_mech + H_V_ue + H_V_win) + H_V_mech_theta) '(2-22, 129) 추후 H_V_z 추가 '//2011.04.04 H_V_win 추가
If tau < 48 Then tau = 48
a = 1 + tau / 16 '(2-25)
a_tb = 1 ' =A_beheizt / A_B 'A_beheizt는 난방면적, A_B는 전용면적
t_NA = 24 - t_h_op_d
f_tb = TOSG(0.8 * (1 - Math.Exp(-Q_h_max / (A_B * 35))) * a_tb ^ 2) '(2-34)
pLog.Add(String.Format("t_NA:{0},f_tb:{1}", t_NA, f_tb))
'================================================2010.2.21 삭제
'If i_count_OpWe = 1 Then
'================================================2010.2.21 삭제
Select Case DR존.야간운전방식.Trim '공통1002 Worksheets("입력존").Range("야간가동1").Offset(0, i_count_zone - 1)
Case "정상가동" '정상가동"
f_NA = 0
Case "감소가동" '감소가동"
f_NA = TOSG(0.13 * t_NA * Math.Exp(-tau / 250) / 24) '(2-28) 감소가동
Case "가동정지" '가동정지"
f_NA = TOSG(0.26 * t_NA * Math.Exp(-tau / 250) / 24) '(2-29) 가동정지
End Select
theta_i_h = theta_i_h_soll - f_NA * (theta_i_h_soll - Calc.Pub.theta_e(i_count_month))
If theta_i_h < theta_i_h_soll - Delta_theta_i_NA * t_NA / 24 Then theta_i_h = theta_i_h_soll - Delta_theta_i_NA * t_NA / 24 '(2-27) 야간감소
'================================================2010.2.21 삭제
'Else
'================================================2010.2.21 삭제
Select Case DR존.주말운전방식.Trim ' Worksheets("입력존").Range("주말가동1").Offset(0, i_count_zone - 1)
Case "정상가동" '정상가동"
f_we = 0
Case "감소가동" '감소가동"
f_we = TOSG(0.2 * (1 - 0.4 * tau / 250)) '(2-31) 난방감소
Case "가동정지" '가동정지"
f_we = TOSG(0.3 * (1 - 0.2 * tau / 250)) '(2-32) 난방정지식
End Select
theta_i_h = theta_i_h_soll - f_we * (theta_i_h_soll - Calc.Pub.theta_e(i_count_month))
If theta_i_h < theta_i_h_soll - Delta_theta_i_WE Then theta_i_h = theta_i_h_soll - Delta_theta_i_WE '(2-30) 주말감소식 변형
'================================================2010.2.21 삭제
'End If
'================================================2010.2.21 삭제
pLog.Add(String.Format("theta_i_h:{0}", theta_i_h))
If i_count_HeatCool = 1 Then
theta_i = theta_i_h
theta_z = theta_i_h
theta_u = TOSG(theta_i_h_soll - 0.7 * (theta_i_h_soll - Calc.Pub.theta_e(i_count_month)))
Else
theta_i = theta_i_c_soll '24'에너지 사용량 계산할때 24 사용
theta_z = theta_i_c_soll
theta_u = TOSG(theta_i_c_soll - 0.7 * (theta_i_c_soll - Calc.Pub.theta_e(i_count_month)))
End If
'theta_i_h = theta_i_h_soll - f_tb * (theta_i_h_soll - theta_e(i_count_month)) '(2-33) 공간적제한
'theta_i_h = theta_i_NA - f_tb * (theta_i_NA - theta_e(i_count_month)) '(2-35) 공간적 시간적 제한
'theta_V_mech = theta_e(i_count_month) '(2-90) 공조처리 없는 경우
'theta_V_mech = theta_e(i_count_month) + eta_V_mech * (theta_i - theta_e(i_count_month)) '(2-91) 비제어적 열교환 eta_V_mech은 사용자입력
theta_V_mech_RLT = TOSG(IIf(i_count_HeatCool = 1, 27, 16))
theta_V_mech = Calc.Pub.theta_e(i_count_month) 'theta_V_mech_RLT '(2-92) 공조처리된 급기온도(도표 3-3, 3-4, 7-5) 난방 27, 냉방 16으로 설정
pLog.Add(String.Format("theta_i:{0},theta_z:{1},theta_u:{2},theta_V_mech_RLT:{3},theta_V_mech:{4}", theta_i, theta_z, theta_u, theta_V_mech_RLT, theta_V_mech))
'=======================================================================2010.02.04 추가부분 시작
If DR존.냉난방공조처리시스템 <> "0" And DR존.냉난방공조 = "환기" Then '//냉난방공조처리시스템이 선택되어있고 공조가 환기라면
'//공조처리스템과 일치하는 공조기기(tbl_kongjo) 를 찾아서 계산한다.
Dim DR() As DS.tbl_kongjoRow = CType(DSET.tbl_kongjo.Select("code='" & DR존.냉난방공조처리시스템 & "' and code <> '0'"), DS.tbl_kongjoRow())
If DR.GetUpperBound(0) = 0 Then
Select Case DR(0).열교환기유형.Trim
Case "현열교환", "전열교환" '//현열교환,전열교환
Phi = TOSG(DR(0).열회수율) ' Worksheets("공조처리시스템").Range("열교환기1").Offset(1, i_count_AHU - 1)
Case Else
Phi = 0
End Select
theta_V_mech = Calc.Pub.theta_e(i_count_month) + Phi * (theta_i - Calc.Pub.theta_e(i_count_month))
Else
MsgBox(DR존.설명 & "존의 냉난방공조처리스템(" & DR존.냉난방공조처리시스템 & ") 의값이 일치하지않습니다", MsgBoxStyle.Critical, "확인")
End If
End If
'=======================================================================2010.02.04 추가부분 끝
If theta_i > Calc.Pub.theta_e(i_count_month) Then
Q_V_inf_sink = H_V_inf * (theta_i - Calc.Pub.theta_e(i_count_month)) * t_24 '(2-56)
Q_V_win_sink = H_V_win * (theta_i - Calc.Pub.theta_e(i_count_month)) * t_24 '//2011.04.04 추가
Else
Q_V_inf_source = H_V_inf * (Calc.Pub.theta_e(i_count_month) - theta_i) * t_24 '(2-
Q_V_win_source = H_V_win * (Calc.Pub.theta_e(i_count_month) - theta_i) * t_24 '//2011.04.04 추가
End If
'================================================2010.2.21 삭제
'If i_count_OpWe = 1 Then
'================================================2010.2.21 삭제
If theta_i > theta_V_mech Then
Q_V_mech_sink = H_V_mech * V_mech_outdoor * (theta_i - theta_V_mech) * t_h_op_d '(2-81)
Else
Q_V_mech_source = H_V_mech * V_mech_outdoor * (theta_V_mech - theta_i) * t_h_op_d '(2-
End If
'================================================2010.2.21 삭제
'Else
'If theta_i > theta_V_mech Then
' Q_V_mech_sink = 0
'Else
' Q_V_mech_source = 0
'End If
'End If
'================================================2010.2.21 삭제
pLog.Add(String.Format("Q_V_inf_sink:{0},Q_V_win_sink:{1},Q_V_mech_sink:{2},Q_V_mech_source:{3}", _
Q_V_inf_sink, Q_V_win_sink, Q_V_mech_sink, Q_V_mech_source))
If theta_i > theta_z Then
Q_V_z_sink = H_V_z * (theta_i - theta_z) * t_24 '(2-97)
Else
Q_V_z_source = H_V_z * (theta_z - theta_i) * t_24 '(2-
End If
Q_V_sink = Q_V_inf_sink + Q_V_mech_sink + Q_V_z_sink + Q_V_win_sink '(2-13) '//2011.04.04 추가
'//Console.WriteLine(String.Format("mon={0},QV_sink={1},{2},{3},{4},{5}", i_count_month, Q_V_sink, Q_V_inf_sink, Q_V_mech_sink, Q_V_z_sink, Q_V_win_sink))
Q_V_source = Q_V_inf_source + Q_V_mech_source + Q_V_z_source + Q_V_win_source '(2- '//2011.04.04 추가
If theta_i > Calc.Pub.theta_e(i_count_month) Then
Q_T_e_sink = H_T_D * (theta_i - Calc.Pub.theta_e(i_count_month)) * t_24 '(2-42)
Else
Q_T_e_source = H_T_D * (Calc.Pub.theta_e(i_count_month) - theta_i) * t_24 '(2-
End If
If theta_i > theta_u Then
Q_T_u_sink = H_T_iu * (theta_i - theta_u) * t_24 '(2-46)
Else
Q_T_u_source = H_T_iu * (theta_u - theta_i) * t_24 '(2-
End If
If theta_i > theta_z Then
Q_T_z_sink = H_T_iz * (theta_i - theta_z) * t_24 '(2-50)
Else
Q_T_z_source = H_T_iz * (theta_z - theta_i) * t_24 '(2-
End If
If theta_i > Calc.Pub.theta_e(i_count_month) Then
Q_T_s_sink = H_T_s * (theta_i - Calc.Pub.theta_e(i_count_month)) * t_24 '(2-53) 추후수정
Else
Q_T_s_source = H_T_s * (Calc.Pub.theta_e(i_count_month) - theta_i) * t_24 '(2-53) 추후수정
End If
Q_T_sink = Q_T_e_sink + Q_T_u_sink + Q_T_z_sink + Q_T_s_sink '(2-12)
Q_T_source = Q_T_e_source + Q_T_u_source + Q_T_z_source + Q_T_s_source '(2-12)
Q_S_sink = 0
Q_S_source = 0
pLog.Add(String.Format("Q_T_sink:{0},Q_T_source:{1}", Q_T_sink, Q_T_source))
For Each DRF입력면 As DS.tbl_myounRow In DSET.tbl_myoun.Select("존분류='" & DR존.code & "' and code <> '0'") '//해당존을 사용하는 모든 입력면을 가져옴
Select Case DRF입력면.방위.Trim ' Worksheets("입력면").Range("방위" & i_sub_wall & "").Offset(0, i_count_wall)
Case "수평" '"수평"
i_count_Is = 0
Case "" '"남"
i_count_Is = 1
Case "남동" '"남동"
i_count_Is = 2
Case "남서" '"남서"
i_count_Is = 3
Case "" '"동"
i_count_Is = 4
Case "" '"서"
i_count_Is = 5
Case "북동" '"북동"
i_count_Is = 6
Case "북서" '"북서"
i_count_Is = 7
Case "" '"북"
i_count_Is = 8
'==========================================================2010.03.20 추가
Case Else
i_count_Is = -1
'==========================================================2010.03.20 추가
End Select
If i_count_Is <> -1 Then '=====================================2010.03.20 추가
Select Case DRF입력면.건축부위방식.Trim ' Range("입력부위" & i_sub_wall & "").Offset(0, i_count_wall)
Case "외벽" '외벽
If alpa * Calc.Pub.I_s(i_count_Is, i_count_month) < F_f * h_r * Delta_theta_er Then
Q_S_sink = Q_S_sink + R_se * Calc.Get_열관류율(DRF입력면) * age * TOSG(DRF입력면.건축부위면적) * (F_f * h_r * Delta_theta_er - alpa * Calc.Pub.I_s(i_count_Is, i_count_month)) * t_24 '(2-111)
Else
'Log.AppendLine("외벽 if else = " & Q_S_source)
Q_S_source = Q_S_source + R_se * Calc.Get_열관류율(DRF입력면) * age * TOSG(DRF입력면.건축부위면적) * (alpa * Calc.Pub.I_s(i_count_Is, i_count_month) - F_f * h_r * Delta_theta_er) * t_24 '(2-
'Log.AppendLine(">>" & Q_S_source)
End If
Case "외부창", "내부창" '=====================================2010.03.20 수정
If TOSG(DRF입력면.수평차양각) < 67.5 Then 'Range("에너지투과율" & i_sub_wall & "").Offset(1, i_count_wall) < 67.5 Then
If DRF입력면.블라인드유무 = "" Then ' Range("에너지투과율" & i_sub_wall & "").Offset(3, i_count_wall) = "유" Then
Select Case DRF입력면.블라인드빛종류.Trim ' Range("에너지투과율" & i_sub_wall & "").Offset(6, i_count_wall)
Case "불투과(t=0.0)" '불투과(t=0.0)"
tau_e_B = 0
Select Case DRF입력면.블라인드색상.Trim ' Range("에너지투과율" & i_sub_wall & "").Offset(7, i_count_wall)
Case "흰색" '흰색"
rho_e_B = 0.7
Case "밝은색" '밝은색"
rho_e_B = 0.5
Case "어두운색" '어두운색"
rho_e_B = 0.3
Case "검은색" '검은색"
rho_e_B = 0.1
Case Else
MsgBox("불투과 블라인드색상이 없습니다", MsgBoxStyle.Critical, "확인")
End Select
Case "약투과(t=0.2)" '약투과(t=0.2)"
tau_e_B = 0.2
Select Case DRF입력면.블라인드색상.Trim 'Range("에너지투과율" & i_sub_wall & "").Offset(7, i_count_wall)
Case "흰색"
rho_e_B = 0.6
Case "밝은색"
rho_e_B = 0.4
Case "어두운색"
rho_e_B = 0.2
Case "검은색"
rho_e_B = 0.1
Case Else
MsgBox("약투과 블라인드색상이 없습니다", MsgBoxStyle.Critical, "확인")
End Select
Case "반투과(t=0.4)" '반투과(t=0.4)"
tau_e_B = 0.4
Select Case DRF입력면.블라인드색상.Trim 'Range("에너지투과율" & i_sub_wall & "").Offset(7, i_count_wall)
Case "흰색"
rho_e_B = 0.4
Case "밝은색"
rho_e_B = 0.3
Case "어두운색"
rho_e_B = 0.2
Case "검은색"
rho_e_B = 0.1
Case Else
MsgBox("반투과 블라인드색상이 없습니다", MsgBoxStyle.Critical, "확인")
End Select
End Select
If DRF입력면.블라인드각도 = "45도" Then ' Range("에너지투과율" & i_sub_wall & "").Offset(5, i_count_wall) = "45도" Then
tau_e_B_corr = TOSG(0.65 * tau_e_B + 0.15 * rho_e_B)
rho_e_B_corr = TOSG(rho_e_B * (0.75 + 0.7 * tau_e_B))
tau_e_B = tau_e_B_corr
rho_e_B = rho_e_B_corr
End If
g = TOSG(DRF입력면.투과율) ' Range("에너지투과율" & i_sub_wall & "").Offset(0, i_count_wall)
If DRF입력면.블라인드위치.Trim <> "" AndAlso Calc.Get_열관류율(DRF입력면) = 0 Then
MsgBox(DRF입력면.설명 & "의 열관류율이 0입니다", MsgBoxStyle.Critical, "확인")
Else
Select Case DRF입력면.블라인드위치.Trim 'Range("에너지투과율" & i_sub_wall & "").Offset(4, i_count_wall)
Case "내부" '내부"
U_blinds = TOSG(1 / (1 / (Calc.Get_열관류율(DRF입력면) * age) + 1 / 30))
g_blinds = g * (1 - g * rho_e_B - (1 - tau_e_B - rho_e_B) * U_blinds / 30)
Case "중간" '중간"
U_blinds = TOSG(1 / (1 / (Calc.Get_열관류율(DRF입력면) * age) + 1 / 3))
g_blinds = g * tau_e_B + g * ((1 - tau_e_B - rho_e_B) + (1 - g) * rho_e_B) * U_blinds / 3
Case "외부" '외부"
U_blinds = TOSG(1 / (1 / (Calc.Get_열관류율(DRF입력면) * age) + 1 / 5 + 1 / 10))
g_blinds = tau_e_B * g + (1 - tau_e_B - rho_e_B) * U_blinds / 10 + tau_e_B * (1 - g) * g / 5
Case Else
MsgBox("블라인드위치가 없습니다", MsgBoxStyle.Critical, "확인")
End Select
End If
'===========================================================================2010.02.27 추가
If i_count_month = 0 Then
If i_count_HeatCool = 1 Then
g_blinds = (1 - Calc.Pub.F_sh_gl(i_count_Is - 1, 1 - 1)) * g + Calc.Pub.F_sh_gl(i_count_Is - 1, 1 - 1) * g_blinds
Else
g_blinds = (1 - Calc.Pub.F_sh_gl(i_count_Is - 1, 7 - 1)) * g + Calc.Pub.F_sh_gl(i_count_Is - 1, 7 - 1) * g_blinds
End If
Else
g_blinds = (1 - Calc.Pub.F_sh_gl(i_count_Is - 1, i_count_month - 1)) * g + Calc.Pub.F_sh_gl(i_count_Is - 1, i_count_month - 1) * g_blinds
End If
'===========================================================================2010.02.27 추가
Else
g_blinds = TOSG(DRF입력면.투과율) ' Range("에너지투과율" & i_sub_wall & "").Offset(0, i_count_wall)
End If
If TOSG(DRF입력면.수평차양각) < 67.5 Then '===================================================================2014.04.03 if문 추가
Q_S_source = TOSG(Q_S_source + F__F * TOSG(DRF입력면.건축부위면적) * F_S * F_W * F_V * g_blinds * Math.Cos(1.33 * TOSG(DRF입력면.수평차양각) * 3.141592 / 180) * (1 - TOSG(DRF입력면.수직차양각) / 300) * Calc.Pub.I_s(i_count_Is, i_count_month) * t_24) '(2-113)
End If
End If
End Select
End If '==========================================================2010.03.20 추가
Next
Q_I_source = Q_I_source_p + Q_I_source_fac + Q_I_L '(2-20)
Q_source = Q_S_source + Q_T_source + Q_V_source + Q_I_source '(2-16)
If i_count_month = 0 AndAlso i_count_HeatCool = 1 Then Q_source = 0 ' 난방 최대부하 계산
Q_sink = Q_T_sink + Q_V_sink + Q_S_sink '(2-11) Q_I_sink는 현재 고려안함
If Q_sink = 0 Then
eta = 0
Else
gamma = Q_source / Q_sink '(2-21)
'If gamma > 1.1 And a > 100 Then
If gamma ^ a > 1000000 Then
eta = 1 / gamma
Else
If gamma = 1 Then
eta = a / (a + 1) '(2-24)
Else
eta = TOSG((1 - gamma ^ a) / (1 - gamma ^ (a + 1))) '(2-23)
End If
End If
If 1 - (eta * gamma) < 0.01 Then eta = 1 / gamma '(2-137)
If (1 - eta) * gamma < 0.01 Then eta = 1 '(2-138)
'If V_mech >= Q_C_max / (c_p_arhoa * (theta_i - theta_mech)) Then eta = 1 '(2-139) 추후 고민
End If
If i_count_HeatCool = 1 Then
Q_h_b = Q_sink - eta * Q_source '(2-1)
Else
Q_h_b = (1 - eta) * Q_source '(2-7)
End If
If Q_h_b < 0.001 Then Q_h_b = 0 '1W 미만 제거
pLog.Add(String.Format("Q_h_b:{0}", Q_h_b))
'========================================================2010.2.21 수정 And i_count_OpWe = 1 삭제
If i_count_month = 0 Then
If t_h_op_d <> 0 Then
Q_h_b_op = Q_h_b / t_h_op_d * zone_count
Else
Q_h_b_op = Q_h_b * zone_count
End If
Else
'=================================================2010.2.21 삭제
'If i_count_OpWe = 1 Then
'=================================================2010.2.21 삭제
Q_h_b_op = Q_h_b * d_op_mth * zone_count
' MsgBox(i_count_month & " " & Q_h_b & " " & d_op(i_count_month) & " " & Q_h_b_op)
'=================================================2010.2.21 삭제
'Else
'Q_h_b_we = Q_h_b * Calc.Pub.d_we(i_count_month)
'=================================================2010.2.21 삭제
Dim DRProf As DS.tbl_profileRow = CType(DSET.tbl_profile.Select("code='" & DR존.프로필 & "' and code <> '0'")(0), DS.tbl_profileRow)
If DR존.조명부하산출방법 = "계산치" Then 'Worksheets("조명").Range("조명부하산출방법1").Offset(0, i_count_zone - 1) = "계산치" Then
Q_l_b = TOSG(DR존.조명에너지부하율계산치) * TOSG(DRProf.일일사용시간) * A_B * d_op_mth * zone_count
Else
Q_l_b = TOSG(DR존.조명에너지부하율입력치) * TOSG(DRProf.일일사용시간) * A_B * d_op_mth * zone_count
End If
Q_w_b = TOSG(DRProf.일일급탕요구량) * A_B * d_op_mth * zone_count 'Worksheets("입력존").Range("일일급탕요구량1").Offset(0, i_count_zone - 1) * A_B * d_op(i_count_month)
'=================================================2010.2.21 삭제
'End If
'=================================================2010.2.21 삭제
End If
'Q_h_b_mth = d_op(i_count_month) * (Q_sink_op - eta_op * Q_source_op) + d_we(i_count_month) * (Q_sink_we - eta_we * Q_source_we) '(2-6)
'======================================2010.2.21 삭제
'Next
'======================================2010.2.21 삭제
Else
A_B = TOSG(DR존.면적) ' Worksheets("입력존").Range("전용면적1").Offset(0, i_count_zone - 1)
Q_vh_b_op = 0
Q_h_b_op = 0
'Q_h_b_we = 0
'//조명부하산출방법이 계산치(0001)일경우 계산치로 그렇지않을경우 입력치로 계산함
Dim DRProf As DS.tbl_profileRow = CType(DSET.tbl_profile.Select("code='" & DR존.프로필 & "' and code <> '0'")(0), DS.tbl_profileRow)
If DR존.조명부하산출방법 = "계산치" Then
Q_l_b = TOSG(DR존.조명에너지부하율계산치) * TOSG(DRProf.일일사용시간) * A_B * d_op_mth * zone_count
Else
Q_l_b = TOSG(DR존.조명에너지부하율입력치) * TOSG(DRProf.일일사용시간) * A_B * d_op_mth * zone_count
End If
Q_w_b = TOSG(DRProf.일일급탕요구량) * A_B * d_op_mth * zone_count '===============d_op(i_count_month) 2010.2.21 수정
End If
pLog.Add(String.Format("Q_w_b:{0}", Q_w_b))
Dim Dr최대부하 As New C최대냉난방부하.Citem(DSETR, DR존.code) ' DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & DR존.code & "'")(0), DSR.최대냉난방부하Row)
If i_count_HeatCool = 1 Then
If i_count_month = 0 Then '//0번시트는최대 냉난방부하 시트이다.
Dr최대부하.최대난방기기부하 = TOSG((Q_h_b_op) / 1000) ''=================== Q_h_b_we 2010.2.21 삭제
'Worksheets("" & i_count_month & "").Range("최대난방부하1").Offset(0, i_count_zone - 1) = (Q_h_b_op + Q_h_b_we) / 1000
If DR존.야간운전방식 = "가동정지" Then ' Worksheets("입력존").Range("야간가동1").Offset(0, i_count_zone - 1) = "가동정지" Then
Dr최대부하.일일난방최대가동시간 = t_h_op_d
'Dr최대냉난방부하.난방최대가동시간 = t_h_op_d ' Worksheets("" & i_count_month & "").Range("최대난방부하1").Offset(2, i_count_zone - 1) = t_h_op_d
Else
Dr최대부하.일일난방최대가동시간 = 24
'Dr최대냉난방부하.난방최대가동시간 = 24 ' Worksheets("" & i_count_month & "").Range("최대난방부하1").Offset(2, i_count_zone - 1) = 24
End If
Else
Dim Dr월에너지요구량 As New C에너지분석(DSETR, Result, i_count_month, DR존.code)
'Dim Dr월에너지요구량 As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & DR존.code & "'")(0), DSR.월별에너지분석Row)
'Dr월에너지요구량 = DSETR.에너지분석및요구량.Rows(i_count_month - 1) '//각 월별 시트에 값을 셋트(에너지분석및요구량 테이블에 들어있다)
If DR존.냉난방방식 = "냉난방" Or DR존.냉난방방식 = "난방" Then '//냉난방,난방
Dr월에너지요구량.난방에너지요구량열 = TOSG((Q_h_b_op) / 1000) '=================== Q_h_b_we 2010.2.21 삭제
Dr월에너지요구량.난방에너지요구량공조환기 = TOSG(Q_vh_b_op / 1000)
' If i_count_month = 1 Then MsgBox("1")
'Log.AppendLine("공조값설정=" & CSng(Q_vh_b_op / 1000))
ElseIf DR존.냉난방공조 = "냉난방" Or DR존.냉난방공조 = "난방" Then '//냉난방,난방
Dr월에너지요구량.난방에너지요구량열 = 0
Dr월에너지요구량.난방에너지요구량공조환기 = TOSG((Q_h_b_op) / 1000) '=================== Q_h_b_we 2010.2.21 삭제
'//오류확인용 존1만 확인한다.
'If DR존.code = "0001" Then MsgBox(DR존.냉난방방식 & vbCrLf & DR존.냉난방공조 & vbCrLf & CSng((Q_h_b_op + Q_h_b_we) / 1000), MsgBoxStyle.Information, DR존.code)
Else
If (DR존.냉난방공조 = "냉방" Or DR존.냉난방공조 = "환기") And DR존.외기부하처리여부 = "" Then '냉방/환기/"예" Then
Dr월에너지요구량.난방에너지요구량열 = 0
' If i_count_month = 1 Then MsgBox("3")
Dr월에너지요구량.난방에너지요구량공조환기 = TOSG(Q_vh_b_op / 1000)
Else
' If i_count_month = 1 Then MsgBox("4")
Dr월에너지요구량.난방에너지요구량열 = 0
Dr월에너지요구량.난방에너지요구량공조환기 = 0
End If
End If
Dr월에너지요구량.조명에너지요구량 = Q_l_b / 1000
' Log.AppendLine("i_count_HeatCool=" & i_count_HeatCool & "i_count_month=" & i_count_month & ",급탕에너지요구량=" & CSng(Q_w_b / 1000))
Dr월에너지요구량.급탕에너지요구량 = Q_w_b / 1000
' MsgBox("난방요구량" & Dr월에너지요구량.난방요구량공조, MsgBoxStyle.Information, i_count_month & "CZONE")
pLog.Add(String.Format("난방에너지요구량열:{0},공조환기:{1},조명에너지요구량:{2},급탕에너지요구량:{3}", _
Dr월에너지요구량.난방에너지요구량열, _
Dr월에너지요구량.난방에너지요구량공조환기, _
Dr월에너지요구량.조명에너지요구량, _
Dr월에너지요구량.급탕에너지요구량))
End If
Else
If i_count_month = 0 Then
Dr최대부하.최대냉방기기부하 = TOSG((Q_h_b_op) / 1000) '=================== Q_h_b_we 2010.2.21 삭제
'Worksheets("" & i_count_month & "").Range("최대냉방부하1").Offset(0, i_count_zone - 1) = (Q_h_b_op + Q_h_b_we) / 1000
If DR존.야간운전방식 = "가동정지" Then '//가동정지
Dr최대부하.일일냉방최대가동시간 = t_h_op_d ' Worksheets("" & i_count_month & "").Range("최대냉방부하1").Offset(2, i_count_zone - 1) = t_h_op_d
Else
Dr최대부하.일일냉방최대가동시간 = 24 'Worksheets("" & i_count_month & "").Range("최대냉방부하1").Offset(2, i_count_zone - 1) = 24
End If
pLog.Add(String.Format("Dr최대부하.일일냉방최대가동시간:{0}", Dr최대부하.일일냉방최대가동시간))
Else
Dim Dr월에너지요구량 As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & DR존.code & "'")(0), DSR.월별에너지분석Row)
If DR존.냉난방방식 = "냉난방" Or DR존.냉난방방식 = "냉방" Then '//냉난방/냉방
Dr월에너지요구량.냉방요구량열 = TOSG((Q_h_b_op) / 1000) '=================== Q_h_b_we 2010.2.21 삭제
Dr월에너지요구량.냉방요구량공조 = TOSG(Q_vh_b_op / 1000)
Else
If DR존.냉난방공조 = "냉난방" Or DR존.냉난방공조 = "냉방" Then '//냉난방/냉방
Dr월에너지요구량.냉방요구량열 = 0
Dr월에너지요구량.냉방요구량공조 = TOSG((Q_h_b_op) / 1000) '=================== Q_h_b_we 2010.2.21 삭제
Else
If (DR존.냉난방공조 = "난방" Or DR존.냉난방공조 = "환기") And DR존.냉난방공조 = "" Then '//난방/환기/예
Dr월에너지요구량.냉방요구량열 = 0
Dr월에너지요구량.냉방요구량공조 = TOSG(Q_vh_b_op / 1000)
Else
Dr월에너지요구량.냉방요구량열 = 0
Dr월에너지요구량.냉방요구량공조 = 0
End If
End If
End If
pLog.Add(String.Format("냉방요구량열:{0},냉방요구량공조{1}", Dr월에너지요구량.냉방요구량열, Dr월에너지요구량.냉방요구량공조))
End If
End If
Next '(3)
Dim CAir As New CAirHandling(DSET, DSETR, Result)
If i_count_month = 0 Then
CAir.Calc_Max_Power(i_count_HeatCool) '//AIR HANDLING 모듈 에 존재함..역시 내용이 크다 ㅠ_ㅠ
End If
Next '(2)
Next '(1)
title = showmsg + "분석데이터 집계중..."
RaiseEvent Message(title, 12, 0, 12)
'//요구량 계산이 완료되었으므로 Summary 계산한다. (이것이 없어서 소요량이 오류났음)
For Each Dr As C에너지분석 In Result.E분석 '//12달치의 각존들의 데이터를 가지고 합계내역을 추린다.
Dr.Calc()
Next
DSETR.AcceptChanges()
Return True
End Function
''' <summary>
''' (main2)소요량 계산
''' </summary>
''' <remarks></remarks>
Public Function Calc_Useage(isSimul As String) As Boolean
pLog.Add(">>>>>>>>>>>>>>>>>>>>>>>>>>")
pLog.Add("Calc_Useage")
pLog.Add(">>>>>>>>>>>>>>>>>>>>>>>>>>")
'Dim d_op_month As Integer
Dim theta_e_month As Decimal
Dim d_full_mth As Integer
Dim title = isSimul + "소요량계산준비중..."
RaiseEvent Message(title, 12, 0, 12)
'//160428
For i_count_month As Short = 1 To 12 '//월별로 난/냉방 소요량을 계산
pLog.LogEnable = False
title = isSimul + "소요량계산중..." & "(" & i_count_month & "/12)"
RaiseEvent Message(title, i_count_month, 0, 12)
'===============================================2010.2.21 수정
'd_op_month = d_op(i_count_month)
d_full_mth = CInt(Calc.Pub.d_full(i_count_month))
'===============================================2010.2.21 수정
theta_e_month = Calc.Pub.theta_e(i_count_month)
pLog.Add(String.Format("소요량계산 Mon={0},d_full_mth={1},theta_e_month={2}", i_count_month, d_full_mth, theta_e_month))
'///난방
pLog.Add("급탕소요량 시작")
Calc.Heating.Calc_WaterheatingSystem(i_count_month, d_full_mth, theta_e_month) '//급탕소요량 '========2010.2.21 수정
pLog.Add("환기소요량 시작")
Calc.AirHandling.Calc_AirHandling(i_count_month, d_full_mth) '//환기? '========2010.2.21 수정
'//
If Result.E분석(i_count_month).난방에너지요구량 <> 0 Then
pLog.Add(String.Format("난방에너지요구량({0})이 0보다 큽니다 추가 계산을 실행 : Calc.Heating.Calc_HeatingSystem", Result.E분석(i_count_month).난방에너지요구량))
Calc.Heating.Calc_HeatingSystem(i_count_month, theta_e_month) '//난방소요량
End If
'///냉방
pLog.LogEnable = True
If Result.E분석(i_count_month).냉방에너지요구량 <> 0 Then
pLog.Add(String.Format("냉방에너지요구량({0})이 0보다 큽니다 추가 계산을 실행 : Calc.Cooling.Calc_CoolingSystem", Result.E분석(i_count_month).냉방에너지요구량))
Calc.Cooling.Calc_CoolingSystem(i_count_month, theta_e_month)
End If
pLog.Add(String.Format("==== 소요량 Mon={0} 완료==========", i_count_month))
Next
DSETR.AcceptChanges()
Return True
End Function
Private DSET As DS
Private DSETR As DSR
Private Result As CResult
Public Sub New(ByRef pds As DS, ByRef pdsetr As DSR, ByRef presult As CResult)
DSET = pds
DSETR = pdsetr
Result = presult
End Sub
End Class

View File

@@ -0,0 +1,719 @@
Public Class Calculator
Public WithEvents Zone As CZone '//존에클래스할당
Public WithEvents AirHandling As CAirHandling '//존에클래스할당
Public WithEvents Cooling As CCooling '//존에클래스할당
Public WithEvents Heating As CHeating '//존에클래스할당
Public WithEvents Renewable As CRenewable '//존에클래스할당
Public WithEvents Summary As CSummary
Public WithEvents Pub As CShared
Public IsError As Boolean = False
Public IsSimulation As Boolean = False
Enum ECalc
All = 0
REq = 1
Use = 2
설계개선안 = 3
End Enum
Private DSET As DS
Private DSETR As DSR
Private Result As CResult
Public Sub New(ByVal Version As String, ByRef pds As DS, ByRef pdsetr As DSR, ByRef prresult As CResult, p_simul As Boolean)
Me.IsError = False
DSET = pds
DSETR = pdsetr
Result = prresult
IsSimulation = p_simul '//평가계산에의해서는 시뮬레이션모드로 작동
Select Case Version
Case "2009123100", StartVersion
Me.Zone = New CZone(DSET, DSETR, Result) '//존
Me.AirHandling = New CAirHandling(DSET, DSETR, Result) '//공기
Me.Cooling = New CCooling(DSET, DSETR, Result)
Me.Heating = New CHeating(DSET, DSETR, Result)
Me.Renewable = New CRenewable(DSET, Result) '//신재상
Me.Summary = New CSummary(DSETR, Result) '//계산결과 집계
Me.Pub = New CShared '//공용변수(여기추가됬을거에요)- 기상오류처리
Me.IsError = Me.Pub.IsError '//공용변수값에 오류확인
Case Else
MsgBox("LG계산식에 지원되지않는 버젼(" & StartVersion & "/" & Version & ")입니다", MsgBoxStyle.Critical, "확인")
Me.IsError = True
End Select
End Sub
Private Function 설계개선안사용여부(findcode As String) As Boolean
Dim retval As Boolean = False
For Each dr As DS.tbl_monuseRow In DSET1.tbl_monuse.Select("code='" + findcode + "'", "")
If dr.도시가스 <> "0" Then
retval = True
Exit For
End If
If dr.전력 <> "0" Then
retval = True
Exit For
End If
If dr.지역난방 <> "0" Then
retval = True
Exit For
End If
Next
Return retval
End Function
Private Sub 입력값계수변환(code As String)
If 설계개선안사용여부(code) Then
For Each dr As DS.tbl_monuseRow In DSET1.tbl_monuse.Select("code='" + code + "'", "")
Dim newdr As DSR.월별1차에너지사용량Row = DSETR1.월별1차에너지사용량.NewRow
newdr.도시가스 = dr.도시가스 * Result2.E변환계수.LNG
newdr.전력 = dr.전력 * Result2.E변환계수.전력
newdr.지역난방 = dr.지역난방 * Result2.E변환계수.지역난방
newdr.code = dr.code
newdr. = dr.
newdr. = dr.
DSETR1.월별1차에너지사용량.Rows.Add(newdr)
Next
End If
End Sub
'''130824
Public Function 설계개선안계산() As Boolean
Dim dr_desc As DS.tbl_DescRow = DSET.tbl_Desc.Rows(0)
'//년면적값확인
Dim 년면적 As Decimal = 0
If IsNumeric(dr_desc.buildm23) = False Then dr_desc.buildm23 = "0"
년면적 = CDec(dr_desc.buildm23)
If 년면적 = 0 Then
MsgBox("년면적값이 없습니다.", MsgBoxStyle.Critical, "확인")
Return False
End If
'//월별에너지사용량에서 입력한 값
Dim 사용자입력값에너지사용량(12) As Decimal
'//현재계산되어있는 1차에너지사용량
Dim 년면적당(12) As Decimal
Dim 년면적당원본(12) As Decimal
Dim ok As Boolean = True
Dim 오차계산횟수 As Decimal = 0
Dim 난방설정온도 As Decimal = 20
Dim 냉방설정온도 As Decimal = 26
Dim 실내발열 As Decimal = 0
Dim 전반기최저입력 As Decimal = 999999
Dim 하반기최저입력 As Decimal = 999999
Dim 전반기최저 As Decimal = 999999
Dim 하반기최저 As Decimal = 999999
For i As Integer = 1 To 12
사용자입력값에너지사용량(i) = 0
년면적당(i) = 0
Zone_Message("계산데이터와 입력데이터 집계중(" + i.ToString() + "/3)...", i, 0, 12)
'//사용자에의해서 입력된 값을 누적한다.
For Each dr1 As DSR.월별1차에너지사용량Row In DSETR.월별1차에너지사용량.Select("월='" + i.ToString("00") + "'")
사용자입력값에너지사용량(i) += TOSG(dr1.도시가스) + TOSG(dr1.전력) + TOSG(dr1.지역난방)
Next
'//임시계산저장소의 값을 이용한다.
년면적당원본(i) = (Result1.일차E소요량(i).난방소요량 / 년면적) + (Result1.일차E소요량(i).냉방소요량 / 년면적) _
+ (Result1.일차E소요량(i).급탕소요량 / 년면적) + (Result1.일차E소요량(i).조명소요량 / 년면적) _
+ (Result1.일차E소요량(i).환기소요량 / 년면적)
If i <= 6 Then
If 사용자입력값에너지사용량(i) < 전반기최저입력 Then 전반기최저입력 = 사용자입력값에너지사용량(i)
If 년면적당원본(i) < 전반기최저 Then 전반기최저 = 년면적당원본(i)
Else
If 사용자입력값에너지사용량(i) < 하반기최저입력 Then 하반기최저입력 = 사용자입력값에너지사용량(i)
If 년면적당원본(i) < 하반기최저 Then 하반기최저 = 년면적당원본(i)
End If
Next
Dim 입력값평균 As Decimal = (하반기최저입력 + 전반기최저입력) / 2
Dim 계산값평균 As Decimal = (하반기최저 + 전반기최저) / 2
Dim 오차 As Decimal = 계산값평균 - 입력값평균
Dim 오차재계산횟수 As Integer = 5
While (True)
For i As Integer = 1 To 12
사용자입력값에너지사용량(i) = 0
년면적당(i) = 0
Zone_Message("계산데이터와 입력데이터 집계중(" + i.ToString() + "/3)...", i, 0, 12)
'//사용자에의해서 입력된 값을 누적한다.
For Each dr1 As DSR.월별1차에너지사용량Row In DSETR.월별1차에너지사용량.Select("월='" + i.ToString("00") + "'")
사용자입력값에너지사용량(i) += TOSG(dr1.도시가스) + TOSG(dr1.전력) + TOSG(dr1.지역난방)
Next
'//임시계산저장소의 값을 이용한다.
년면적당(i) = (Result2.일차E소요량(i).난방소요량 / 년면적) + (Result2.일차E소요량(i).냉방소요량 / 년면적) _
+ (Result2.일차E소요량(i).급탕소요량 / 년면적) + (Result2.일차E소요량(i).조명소요량 / 년면적) _
+ (Result2.일차E소요량(i).환기소요량 / 년면적)
년면적당(i) += (-1 * 오차)
Next
'//여름피크확인(8월)
'//겨울피크확인(1월)
Dim 오차겨울 As Decimal = Math.Abs(년면적당(1) - 사용자입력값에너지사용량(1))
Dim 오차여름 As Decimal = Math.Abs(년면적당(8) - 사용자입력값에너지사용량(8))
Dim 원본겨울 As Decimal = 년면적당원본(1)
Dim 원본여름 As Decimal = 년면적당원본(8)
Dim 오차발생여름 As Boolean = False
Dim 오차발생겨울 As Boolean = False
Dim 오차겨울퍼센트 As Decimal = (오차겨울 / 년면적당(1)) * 100
Dim 오차여름퍼센트 As Decimal = (오차여름 / 년면적당(8)) * 100
'//오차계산에따른 반복제어
If 오차계산횟수 > 오차재계산횟수 Then
' MsgBox("오차계산횟수를 초과하였습니다" + vbCrLf + "개선작업이 종료됩니다.", MsgBoxStyle.Information, "확인")
ok = False
Exit While
End If
If 오차겨울퍼센트 > 0.1 Then
오차발생겨울 = True
If 년면적당(1) < 사용자입력값에너지사용량(1) Then
난방설정온도 += 0.5
Else
난방설정온도 -= 0.5
End If
End If
If 오차여름퍼센트 > 0.1 Then
오차발생여름 = True
If 년면적당(8) < 사용자입력값에너지사용량(8) Then
냉방설정온도 -= 0.5
Else
냉방설정온도 += 0.5
End If
End If
'//오차가발생하지않았다면 더이상 진행하지 않는다.
If Not 오차발생여름 AndAlso Not 오차발생겨울 Then
ok = True
Exit While
End If
'//변경될 온도정보를 가지고 다시 계산합니다.
If Me.Start("설계개선작업(" + (오차계산횟수 + 1).ToString() + "/" + 오차재계산횟수.ToString + ")" + vbCrLf + vbCrLf + _
"(겨울/여름)오차발생율:" + 오차겨울퍼센트.ToString("#0.00") + "%/" + 오차여름퍼센트.ToString("#0.00") + "%" + vbCrLf, ECalc.All, LogSB, (-1 * 오차), 난방설정온도, 냉방설정온도) Then '//파라미터 True 라면 소요량이 추가로 게산된다.
오차계산횟수 += 1
Me.Summary.All()
'오차 = 0
'Continue While
Else
MsgBox("설계개선작업중 오류가 발생하였습니다." + vbCrLf + LogSB.ToString, MsgBoxStyle.Critical, "확인")
ok = False
Exit While
End If
End While
'//가상결과데이터(DSR2)를 집계해서 실제결과DSR1에 넣는다.
DSETR1.설계계산결과.Clear()
DSETR1.설계계산결과.AcceptChanges()
For i As Integer = 1 To 12
Dim ndr As DSR.설계계산결과Row = DSETR1.설계계산결과.New설계계산결과Row
ndr. = i.ToString("00")
ndr.난방전 = (Result2.일차E소요량(i).난방소요량 / 년면적)
ndr.냉방전 = (Result2.일차E소요량(i).냉방소요량 / 년면적)
ndr.조명전 = (Result2.일차E소요량(i).조명소요량 / 년면적)
ndr.급탕전 = +(Result2.일차E소요량(i).급탕소요량 / 년면적)
ndr.환기전 = (Result2.일차E소요량(i).환기소요량 / 년면적)
DSETR1.설계계산결과.Rows.Add(ndr)
Next
'//벽체 열관류율, 창호 열관류율, 일사투과율, 장비 효율, 조명밀도 등 적용
'//면형태 : 벽체 - 외,내벽 :: tbl_yk 모든 열관류율을 = 0.1 *get열관류율을 마지막에 한번만 작동하도록 상수지정
'//면형태 : 창호 - 외부창,내부창 = 1.0
'//면형태 : 창호 - 외부창,내부창 일사투과율 = 0.3
For Each drmn As DS.tbl_ykRow In DSET.tbl_yk.Select("code <> '0'")
Dim 면형태코드 As String = drmn.면형태
If 면형태코드.Trim = "" Then Continue For
Dim 면형태 As String = Get_CName("1088", 면형태코드)
Select Case 면형태
Case "외벽(벽체)", "내벽(벽체)", "지중벽"
drmn.열관류율 = "0.1"
Case "외부창", "내부창"
drmn.열관류율 = "1"
drmn.일사에너지투과율 = "0.3"
End Select
Next : DSET.tbl_yk.AcceptChanges()
'//난방기기 , 정격보일러효율=0.9 , 히트난방정격7=4.5
For Each drmn As DS.tbl_nanbangkikiRow In DSET.tbl_nanbangkiki.Select("code <> '0'")
If CDec(drmn.정격보일러효율) < 90 Then
drmn.정격보일러효율 = "90"
End If
If CDec(drmn.히트난방정격7) < 4.5 Then
drmn.히트난방정격7 = "4.5"
End If
Next : DSET.tbl_nanbangkiki.AcceptChanges()
'//냉방기기 , 열성능비 = 5.0
For Each drmn As DS.tbl_nangbangkikiRow In DSET.tbl_nangbangkiki.Select("code <> '0'")
If CDec(drmn.열성능비) < 5 Then
drmn.열성능비 = "5.0"
End If
Next : DSET.tbl_nangbangkiki.AcceptChanges()
'//조명밀도 : 조명에너지부하율입력치 : 6
For Each drmn As DS.tbl_zoneRow In DSET.tbl_zone.Select("code <> '0'")
If drmn.조명부하산출방법 = "입력치" Then
drmn.조명에너지부하율입력치 = 6
End If
Next : DSET.tbl_zone.AcceptChanges()
'//보정데이터유지하고 계산실행
'//그래프출력시 발생한 오차를 데이터테이블에 표시
'//변경될 온도정보를 가지고 다시 계산합니다.
If Me.Start("설계개선작업II" + vbCrLf, ECalc.All, LogSB, (-1 * 오차), 난방설정온도, 냉방설정온도) Then '//파라미터 True 라면 소요량이 추가로 게산된다.
Me.Summary.All()
ok = False
End If
For i As Integer = 1 To 12
Dim ndr As DSR.설계계산결과Row = DSETR1.설계계산결과.Rows(i - 1)
ndr.난방 = (Result2.일차E소요량(i).난방소요량 / 년면적)
ndr.냉방 = (Result2.일차E소요량(i).냉방소요량 / 년면적)
ndr.조명 = (Result2.일차E소요량(i).조명소요량 / 년면적)
ndr.급탕 = +(Result2.일차E소요량(i).급탕소요량 / 년면적)
ndr.환기 = (Result2.일차E소요량(i).환기소요량 / 년면적)
ndr.AcceptChanges()
Next
DSETR1.설계계산결과.AcceptChanges()
'//파라미터저장
DSETR1.설계계산파라미터.Clear()
Dim ndr3 As DSR.설계계산파라미터Row = DSETR1.설계계산파라미터.New설계계산파라미터Row
ndr3.난방 = 난방설정온도.ToString
ndr3.냉방 = 냉방설정온도.ToString
ndr3.기저비율 = CDec(-1 * 오차).ToString()
DSETR1.설계계산파라미터.Rows.Add(ndr3)
DSETR1.설계계산파라미터.AcceptChanges()
If ok Then
Return True
Else
Return False
End If
Return True
End Function
Public Function Start(showmsg As String, ByVal CalcType As ECalc, ByRef logBuffer As System.Text.StringBuilder, 기저비율 As Decimal, Optional ByVal 난방설정온도 As Decimal = 20, Optional ByVal 냉방설정온도 As Decimal = 26) As Boolean
pLog.Add("=====================================")
pLog.Add("Calc Start")
pLog.Add("=====================================", True)
Me.Pub = New CShared '//공용변수
'//계산을 시작 p_CalcUse : 는 소요량 계산도 할건지으 ㅣ플래그 나중에 분리해야겠따.
'Dim ST As Date = Now
If Me.IsError Then
MsgBox("계산준비중 오류발생", MsgBoxStyle.Critical, "확인")
Return False
End If
logBuffer = New System.Text.StringBuilder("")
Dim Cnt As Integer = FixData()
'log.AppendLine(">>데이터보정(" & Cnt.ToString & ")개의 데이터가 보정되었습니다")
'log.AppendLine(">>유효성검사시작")
If validation() = False Then Return False '//유효성 체크를 수행한다.
If CalcType <> ECalc.Use AndAlso CalcType <> ECalc.설계개선안 Then
'log.AppendLine(">>계산영역초기화")
Clear_ResultArea() '//과거의 계산영역을 클리어시킨다.
'log.AppendLine(">>각존의 사용면적 계산")
Result.사용면적.Calc() '//A_H,C,W,L,V 의 누적값을 계산(사용면적) : 개별프로시져로 할당
'log.AppendLine(">>주계산시작")
End If
'//사용자가입력한 1차에너지사용량(=월별에너지사용량)을 변환계수를 이용해 값을 생성한다.
DSETR1.월별1차에너지사용량.Rows.Clear() : DSETR2.월별1차에너지사용량.Rows.Clear()
DSETR1.월별1차에너지사용량.AcceptChanges() : DSETR2.월별1차에너지사용량.AcceptChanges()
Zone_Message("설계개선안 입력데이터 변환중(1/3)...", 1, 0, 3) : 입력값계수변환("0001")
Zone_Message("설계개선안 입력데이터 변환중(2/3)...", 2, 0, 3) : 입력값계수변환("0002")
Zone_Message("설계개선안 입력데이터 변환중(3/3)...", 1, 0, 3) : 입력값계수변환("0003")
DSETR1.월별1차에너지사용량.AcceptChanges()
DSETR2.월별1차에너지사용량.Merge(DSETR1.월별1차에너지사용량)
DSETR2.월별1차에너지사용량.AcceptChanges()
Dim Retval As Boolean
Select Case CalcType
Case ECalc.All
pLog.LogEnable = False
Retval = Zone.Calc_LoadOfZones(showmsg, IsSimulation, 기저비율, 난방설정온도, 냉방설정온도)
pLog.LogEnable = True
If Retval Then Retval = Zone.Calc_Useage(showmsg)
Return Retval
Case ECalc.REq
pLog.LogEnable = True
Return Zone.Calc_LoadOfZones(showmsg, IsSimulation, 기저비율, 난방설정온도, 냉방설정온도)
Case ECalc.Use
pLog.LogEnable = True
Return Zone.Calc_Useage(showmsg)
Case ECalc.설계개선안
pLog.LogEnable = True
Return 설계개선안계산()
End Select
pLog.LogEnable = True
End Function
Private Function FixData() As Integer
Dim RetCnt As Integer = 0
Dim Null As String = "(없음)"
'//보정할수있는데이터를 보정합니다.
';//입력면 - 건축부위방식이 .내벽 or 간벽일경우 방위는 (없음)이다
For Each DR면 As DS.tbl_myounRow In DSET.tbl_myoun.Select("code <> '0'")
If DR면.건축부위방식 = "내벽" Or DR면.건축부위방식 = "간벽" Then
If DR면.방위 <> Null Then
RetCnt += 1
DR면.방위 = Null
End If
End If
Next
For Each DR존 As DS.tbl_zoneRow In DSET.tbl_zone.Select("code <> '0'")
If DR존.조명방식.ToString = "0" OrElse DR존.조명방식.ToString = "" Then
RetCnt += 1
LogSB.AppendLine("Zone " & DR존.설명.ToString & "] 의 조명방식이 없음으로 설정됩니다.")
DR존.조명방식 = "(없음)"
End If
If DR존.인공광원.ToString = "0" OrElse DR존.인공광원.ToString = "" Then
RetCnt += 1
LogSB.AppendLine("Zone " & DR존.설명.ToString & "] 의 인공광원이 없음으로 설정됩니다.")
DR존.인공광원 = "(없음)"
End If
If DR존.외기부하처리여부.ToString = "0" OrElse DR존.외기부하처리여부.ToString = "" Then
RetCnt += 1
LogSB.AppendLine("Zone " & DR존.설명.ToString & "] 의 외기부하처리여부가 아니오로 설정됩니다.")
DR존.외기부하처리여부 = "아니오"
End If
'If DR존.조명방식.ToString.Trim = "" Then DR존.조명방식 = "(없음)"
'If DR존.인공광원.ToString.Trim = "" Then DR존.인공광원 = "(없음)"
Next
DSET.AcceptChanges() '//변경내용 적용
Return RetCnt
End Function
Public Function validation() As Boolean
pLog.Add("Calc Validation")
'//존이 2개이상있어야한다 (없음데이터로인해서 반드시 1개는 있기때문이다.)
'//여기보정데이터가잇네요.;
Dim NoErr As Boolean = True
'//콤보박스들의 값이 지정되어잇는지 확인한다. 무조건 있어야한다
Dim Title As String
Dim Columns() As String '//(없음)이 들어가는 콤보필드
Dim ColumnC() As String '//공용코드전용 필드들
Dim CGubun() As String '//공용코드필드의 구분값이 저장됨
Dim Columnst() As String '//0이 들어가는 콤보필드
'//ZONE
Title = "Zone"
Columns = New String() {"냉난방열공급시스템", "열저장능력", "열교가산치", _
"주말운전방식", "야간운전방식", "외기부하처리여부", _
"냉난방공조", "냉난방방식", _
"조명부하산출방법", "조명방식", "인공광원"}
ColumnC = New String() {"열저장능력", "열교가산치", _
"주말운전방식", "야간운전방식", "외기부하처리여부"} '
'//다를지도 모르니 나중에 함 확인하시구요
CGubun = New String() {"1023", "1022", _
"1002", "1002", "1054"} '//공용코드있는데는 모조리 설정하시구요 물론 길이는 바로위하고 같아야합닌다.
'//여기에 각 공용코드의 구분값 1009 뭐 이런것들을 같게 넣어주세요 column 가 8개가있었따면 cgubun 도 8개가 잇으면됩니다.
Columnst = New String() {"프로필", "냉난방공조처리시스템", "열생산난방생산기기", _
"열생산급탕생산기기", "열생산냉방생산기기", _
"열생산가습생산기기", "냉난방공조분배시스템", _
"냉난방분배시스템", "공조냉방생산기기", "공조난방생산기기"}
Set_Null(Columns, DSET.tbl_zone, "(없음)") '//데이터를 기본값 셋팅해주는구문이구요 없는데이터는 넓값처리
Set_Null(ColumnC, DSET.tbl_zone, "(없음)") '//공용코드값이 아에없는 데이터를 기본값 셋팅해주는구문이구요 없는데이터는 넓값처리
'Set_CheckCommon(ColumnC, DSET.tbl_zone, CGubun) '//이거는 // 공용코드오류난 데이터 검색하는부분이에요
Set_Null(Columnst, DSET.tbl_zone, "0")
Title = "신재생에너지"
Columns = New String() {"기기종류", "가동연료", "태양열종류", "집열기유형", _
"집열판방위", "태양열시스템의성능", "축열탱크설치장소", _
"태양광모듈기울기", "태양광모듈방위", _
"태양광모듈종류", "태양광모듈적용타입", _
"열교환기설치여부", "팽창탱크설치여부"}
Set_Null(Columns, DSET.tbl_new, "(없음)")
'Set_Null(Columnst, DSET.tbl_bunbae, "0")
Title = "난방분배시스템"
Columns = New String() {"생산기기구분", "표준치적용", "배관망유형", _
"배관구간방식", "배관설치장소", _
"배관설치장소", "지관장소"}
Set_Null(Columns, DSET.tbl_nbunbae, "(없음)")
'Set_Null(Columnst, DSET.tbl_bunbae, "0")
Title = "난방기기"
Columns = New String() {"열생산기기방식", "사용연료", "운전방식", "보일러방식", _
"지역난방방식", "단열등급", "축열탱크방식", _
"배관망유형", "펌프교정계수", "펌프제어유형", _
"분배시스템방식", "순환유무", "펌프제어", _
"히트펌프시스템종류", "신재생연결여부"}
Columnst = New String() {"연결된시스템"}
Set_Null(Columns, DSET.tbl_nanbangkiki, "(없음)")
Set_Null(Columnst, DSET.tbl_nanbangkiki, "0")
Title = "냉방기기"
Columns = New String() {"냉동기방식", "냉동기종류", "냉동기압축방식", _
"압축기제어방식", "냉동기설비시스템", _
"냉동기설비시스템", "제어방식", _
"열생산연결방식", "사용연료", "증발식건식냉각기", _
"증발식냉각기", "보조방음기유무", "신재생연결여부"}
Columnst = New String() {"온수열생산기기", "연결된시스템"}
Set_Null(Columns, DSET.tbl_nangbangkiki, "(없음)")
Set_Null(Columnst, DSET.tbl_nangbangkiki, "0")
Title = "입력면"
Columns = New String() {"건축부위방식", "블라인드유무", _
"블라인드위치", "방위", "블라인드빛종류", _
"블라인드색상", "블라인드각도"}
Columnst = New String() {"존분류", "대차대조존"}
Set_Null(Columns, DSET.tbl_myoun, "(없음)")
Set_Null(Columnst, DSET.tbl_myoun, "0")
Title = "난방공급시스템"
Columns = New String() {"열공급시스템", "노출형제어", "바닥난방열제어", _
"바닥난방열건축부위", "바닥난방전기제어", "바닥난방전기건축부위", "전기난방제어"}
Columnst = New String() {"열공급생산기기"}
Set_Null(Columns, DSET.tbl_kongkub, "(없음)")
Set_Null(Columnst, DSET.tbl_kongkub, "0")
Title = "공조처리"
Columns = New String() {"공조방식", "리턴공기혼합여부", "가습기유형", "외기냉방제어유무", "열교환기유형"}
Set_Null(Columns, DSET.tbl_kongjo, "(없음)")
'Set_Null(Columnst, DSET.tbl_bunbae, "0")
Title = "냉방분배시스템"
Columns = New String() {"냉매방식", "펌프운전제어유무"}
Columnst = New String() {"냉동기"}
Set_Null(Columns, DSET.tbl_bunbae, "(없음)")
Set_Null(Columnst, DSET.tbl_bunbae, "0")
'//모든공조데이터 순환
For Each DR As DS.tbl_kongjoRow In DSET.tbl_kongjo.Select("code<>'0'")
DR.팬효율산출방식 = DR.팬효율산출방식.Trim
'MsgBox(DR.설명 & "==현재저장된값 : " & DR.팬효율산출방식 & " 길이 = " & DR.팬효율산출방식.Length)
If DR.팬효율산출방식.Trim = "" Then DR.팬효율산출방식 = "입력치"
Next
'DSET.tbl_kongjo.AcceptChanges()
DSET.AcceptChanges()
'//그값이 존에잇어요?cnrkehlsrp?추가된게?공조기기요
For Each Dr As DS.tbl_zoneRow In DSET.tbl_zone.Select("code <> '0'") '//모든존을 검사 없음(0)은 빼고
'If Dr.공조난방생산기기 = "0" And Dr.공조냉방생산기기 = "0" Then '//둘다 0일경우
'//오류를 내고싶으면 여기서 return false 해버리면됩니다.'다른족건이 잇다면.. 아까처럼..
'Return False 냉난방공조 라는 공조에 냉난방이 있으면 : :
'End If
If Dr.냉난방공조 = "냉난방" Then '//
If Dr.공조난방생산기기 = "0" OrElse Dr.공조냉방생산기기 = "0" Then
MsgBox("입력존에서 공조방식에 대응하는 공조냉난방생산기기가 지정되지 않은 것이 있습니다.")
Return False
End If
End If
If Dr.냉난방공조 = "난방" OrElse (Dr.냉난방공조 = "냉방" And Dr.외기부하처리여부 = "") Then '//
If Dr.공조난방생산기기 = "0" Then
MsgBox("입력존에서 공조방식에 대응하는 공조난방생산기기가 지정되지 않은 것이 있습니다.")
Return False
End If
End If
If Dr.냉난방공조 = "냉방" OrElse (Dr.냉난방공조 = "난방" And Dr.외기부하처리여부 = "") Then '//
If Dr.공조냉방생산기기 = "0" Then
MsgBox("입력존에서 공조방식에 대응하는 공조냉방생산기기가 지정되지 않은 것이 있습니다.")
Return False
End If
End If
If Dr.냉난방공조 = "환기" And Dr.외기부하처리여부 = "" Then '//
If Dr.공조난방생산기기 = "0" OrElse Dr.공조냉방생산기기 = "0" Then
MsgBox("입력존에서 외기부하처리에 따른 공조냉난방생산기기가 지정되지 않은 것이 있습니다.")
Return False
End If
End If
Next
'//여기에서 FAlse 를 반환해버리면.. 게산은 돌지않아요 게산전에 수행되는곳이구요
'//아까 파일오픈시에도 여기를 호출합니다. 바로 윗부분이 nul l값에대한 기본값 처리구요.
Return NoErr
End Function
Private Sub Set_Null(ByVal Columns() As String, ByRef dt As DataTable, ByVal val As String)
For Each Dr As DataRow In dt.Select("code<>'0'", "code")
For Each Col As String In Columns
If Dr(Col).ToString.Trim = "" Then '//값이없으면 기본값(val)으로 설정
Dr(Col) = val
End If
Next
Next
End Sub
'''공용코드에값이있는지확인
Private Sub Set_CheckCommon(ByVal Columns() As String, ByRef dt As DataTable, ByVal gubunval() As String)
Dim index As Short = -1
For Each Dr As DataRow In dt.Select("code<>'0'", "code")
index = 0
For Each Col As String In Columns
If Dr(Col).ToString.Trim = "" Then '//값이없으면 기본값(val)으로 설정
'Dr(Col) = val
Else '//값이있을때
Dim V As String = Dr(Col).ToString.Trim
'//v의값이 공용ㅇ코드에 있는지 확인 공용코드는 name 을 저장하므로 name 으로검사를 수행
Dim Cdr() As DS.tbl_commonRow = DSET.tbl_common.Select("gubun='" & gubunval(index) & "' and name='" & V & "'")
If Cdr.GetUpperBound(0) = -1 Then
MsgBox("값이있으나 공용코드에없음(여기에 경고문구좀 날려주시면되구요")
End If
End If
index += 1
Next
Next
End Sub
''' <summary>
''' 계산결과 영역을 초기화시킵니다.
''' </summary>
''' <remarks></remarks>
Private Sub Clear_ResultArea()
pLog.Add("Clear_ResultArea")
DSETR.Clear() : DSETR.AcceptChanges() '//기존데이터 클리어
'//0번시트의 결과값을 저장할 장소를 생성한다. Zone=00 은 합계필드이다(이것이 일률적이지않아서 00으로 할당을 따로 해서 나중에 합산작업을 할 예정)
'//00번 존을포함하여 현재 존의 갯수+1개를 생성한다.
'//최대냉난방/E분석
Dim ZoneCode As String
For Each Dr존 As DS.tbl_zoneRow In DSET.tbl_zone.Select("", "code")
If Dr존.code = "0" Then
ZoneCode = "00"
Else
ZoneCode = Dr존.code
End If
Dim Res1 As DSR.최대냉난방부하Row = DSETR.최대냉난방부하.New최대냉난방부하Row
Res1.Zone = ZoneCode : DSETR.최대냉난방부하.Add최대냉난방부하Row(Res1)
For ii As Integer = 1 To 12
Dim DrE분석 As DSR.월별에너지분석Row = DSETR.월별에너지분석.New월별에너지분석Row
DrE분석. = "M" & Format(ii, "00") '//정렬을위해서 00숫자형태로 기록한다. 앞으로 모든 월데이터는 그렇게 기록함
DrE분석. = ZoneCode
DSETR.월별에너지분석.Add월별에너지분석Row(DrE분석)
'MsgBox("M" & Format(ii, "00"), MsgBoxStyle.Information, ZoneCo'de)
Next
Next
'//월별로 움직이는데이터
Dim Mon As String
Dim Dr As DataRow
For ii As Integer = 0 To 12
Mon = "M" & Format(ii, "00")
Dr = DSETR.생산에너지.NewRow
Dr("mon") = Mon '//정렬을위해서 00숫자형태로 기록한다. 앞으로 모든 월데이터는 그렇게 기록함
DSETR.생산에너지.Rows.Add(Dr)
Dr = DSETR.에너지소요량.NewRow
Dr("mon") = Mon '//정렬을위해서 00숫자형태로 기록한다. 앞으로 모든 월데이터는 그렇게 기록함
DSETR.에너지소요량.Rows.Add(Dr)
Dr = DSETR.에너지소요량1.NewRow
Dr("mon") = Mon '//정렬을위해서 00숫자형태로 기록한다. 앞으로 모든 월데이터는 그렇게 기록함
DSETR.에너지소요량1.Rows.Add(Dr)
Next
'//전부다시 구성해야함
DSETR.AcceptChanges()
End Sub
'''열관류율값ㅇㄹ 반환
Public Function Get_열관류율(ByVal Dr As DS.tbl_myounRow) As Decimal
Dim 열관류율2 As String = Dr.열관류율2 '//저장된 코드값 cmb_열관류율
If IsNumeric(열관류율2) Then
If CInt(열관류율2) > 0 Then
Try
Dim Drow As DS.tbl_ykRow = DSET.tbl_yk.Select("code='" & 열관류율2 & "'")(0)
Return TOSG(Drow.열관류율) '//코드내에 저장된 값을 보낸다
Catch ex As Exception
MsgBox("열관류율코드값(" & 열관류율2 & ") 값오류" & vbCrLf & ex.Message.ToString, MsgBoxStyle.Critical, "확인")
Return 0
End Try
End If
End If
Dim 열관 As Single = 0
Try
열관 = Single.Parse(Dr.열관류율)
Catch ex As Exception
열관 = 0
End Try
Return TOSG(Dr.열관류율)
'If 열관 = 0 Then '//0이므로 코드값을 찾는다.
' Try
' Dim Drow As DS.tbl_ykRow = DSET.tbl_yk.Select("code='" & 열관류율2 & "'")(0)
' Return TOSG(Drow.열관류율) '//코드내에 저장된 값을 보낸다
' Catch ex As Exception
' MsgBox("열관류율코드값(" & 열관류율2 & ") 값오류" & vbCrLf & ex.Message.ToString, MsgBoxStyle.Critical, "확인")
' Return 0
' End Try
'Else '//입력값이 잇으므로 입력값을 바로사용한다.
'End If
End Function
Private Sub Zone_Message(Msg As String, pval As Integer, pmin As Integer, pmax As Integer) Handles Zone.Message
If Not msgf Is Nothing Then
msgf.Label1.Text = Msg
msgf.ProgressBar1.Minimum = pmin
msgf.ProgressBar1.Maximum = pmax
msgf.ProgressBar1.Value = pval
msgf.Label1.Refresh()
Else
msgf = New Frm_Work("계산중...")
msgf.Label1.Text = Msg
msgf.ProgressBar1.Minimum = pmin
msgf.ProgressBar1.Maximum = pmax
msgf.ProgressBar1.Value = pval
msgf.TopMost = True
msgf.Show()
End If
msgf.Refresh()
End Sub
End Class

View File

@@ -0,0 +1,813 @@
Public Class CCooling
Public Overridable Sub Calc_CoolingSystem(ByVal i_count_month As Integer, ByVal theta_e As Decimal)
Dim c_p1 As Decimal, c_p2 As Decimal, c_cl As Decimal
Dim b As Decimal, L As Decimal, n_G As Decimal, h_G As Decimal, L_max As Decimal, R As Decimal, z As Decimal
Dim rho_cl As Decimal
Dim eta_c_star_d As Decimal, eta_c_star_ce_sens As Decimal, eta_c_star_ce As Decimal, eta_c_d As Decimal, eta_c_ce As Decimal, eta_c_ce_sens As Decimal
Dim Q_c_star_s As Decimal, Q_c_s As Decimal, Q_c_b As Decimal, Q_vc_b As Decimal, Q_vm_b As Decimal, Q_c_b_i As Decimal, Q_c_star_b_i As Decimal
Dim Q_c_star_b As Decimal, Q_m_star_b As Decimal, Q_c_star_d As Decimal, Q_c_star_ce As Decimal, Q_c_d As Decimal, Q_c_ce As Decimal
Dim Q_c_star_outg As Decimal, Q_z_outg_l As Decimal, Q_m_star_outg As Decimal, Q_dot_c_outg As Decimal, Q_c_outg As Decimal, Q_c_outg_total As Decimal, Q_dot_z As Decimal
Dim Q_c_ce_aux As Decimal, Q_z_aux_d_l As Decimal, Q_z_star_outg_l As Decimal
Dim f_c_ce_aux As Decimal, f_Abgl As Decimal, f_e As Decimal
Dim V_dot_z As Decimal
Dim EER As Decimal, PLV_av As Decimal
Dim P_d_hydr As Decimal, P_Pump As Decimal
Dim beta_d_l As Decimal, e_d_l As Decimal
Dim W_d_hydr_l As Decimal
Dim Q_c_f_elektr As Decimal, Q_c_f_R_elektr As Decimal, Q_dot_R_outg As Decimal, Q_c_outg_therm As Decimal, Q_c_f As Decimal, Q_c_aux As Decimal
Dim t_h_max As Integer
Dim Q_c_g As Decimal, Q_c_g_v_i As Decimal, Q_dot_N As Decimal, Q_dot_d_in As Decimal
Dim theta_VA As Decimal, theta_RA As Decimal, theta_HK_m_beta_h_d As Decimal, beta_h As Decimal, n_beta As Decimal
Dim eta_k_100 As Decimal, eta_k_pl As Decimal, f As Decimal, e As Decimal, q_B_70 As Decimal, q_B_theta As Decimal, f_Hs_Hi As Decimal
Dim Q_V_g_100 As Decimal, Q_dot_B_h As Decimal, Q_V_g_pl As Decimal, q_R_elektr As Decimal
Dim beta_k_pl As Decimal, Delta_theta_z_cl As Decimal
Dim Delta_P_WUE As Decimal, Delta_P_WUV As Decimal, Delta_P_RV As Decimal, Delta_p_z As Decimal
Dim k_n As Decimal, f_1_av As Decimal, f_2_av As Decimal, f_R_av As Decimal, T_W_1_i As Decimal, l_min_i As Decimal
Dim use_Oil As Decimal, use_LNG As Decimal, use_LPG As Decimal, use_Elec As Decimal, use_DH As Decimal
'20100223 제거 i_count_chiller As Integer, 최적화중 사용안함
'Dim i_count_zone As Integer, i_count_c_d As Integer
Dim i_count_beta As Integer, k_n_index As Integer
' Dim i_count_renewable As Integer
Dim i_HeatCool As Integer
Dim theta_i As Decimal, Q_hp_outg As Decimal, Q_c_f_hp As Decimal, Q_c_g_hp_aux As Decimal
Dim Q_chp_outg As Decimal, Q_c_f_chp As Decimal
Dim system_type As Integer
'==================================2010.2.21 수정
Dim use_DC As Decimal
Dim d_op_mth As Integer
Dim d_op_max_mth As Integer
Dim f_1_av_up As Decimal, f_1_av_dn As Decimal
' Dim i_count_profile As Integer
use_DC = 0
d_op_max_mth = 0
'==================================2010.2.21 수정
'==================================2010.04.02 수정
Dim Q_H_sol_out_m As Decimal, Q_W_sol_out_m As Decimal, W_sol_aux_m As Decimal
Dim Q_h_outg_i As Decimal
Q_H_sol_out_m = 0
Q_h_outg_i = 0
'==================================2010.04.02 수정
Dim priod_value As Single = 0
Dim age As Single '//준공연도에 의한 경년변화값
Dim age_heating As Single
For Each DRpriod As DS.tbl_DescRow In DSET.tbl_Desc.Select("cname<>'0'", "cname")
priod_value = CSng(DRpriod.priod)
Next
If priod_value > 20 Then priod_value = 20
age = (1 - 0.01) ^ priod_value
age_heating = (1 - 0.005) ^ priod_value
eta_c_star_d = 0.95 '건물 내 배관 적용
eta_c_star_ce_sens = 1 '습도요구 편차없음 적용
eta_c_star_ce = 0.9 '공조기기로 냉열전달에서 현열전달효율로 우선 0.9 적용
Q_c_star_s = 0
Q_c_s = 0 '(3.2.8-22)
eta_c_d = 0.9 ' 우선 적용 추후 검토
eta_c_ce = 1 ' 우선 적용 추후 검토
eta_c_ce_sens = 0.9 '우선 적용 추후 검토
f_c_ce_aux = 0.04 ' 표3.93 우선 적용 추후 검토
f_Abgl = 1 '수리역학적으로 평형을 이룬 배관망
Q_c_f = 0
Q_c_aux = 0
beta_k_pl = 0.3
PLV_av = 1
use_Oil = 0
use_LNG = 0
use_LPG = 0
use_Elec = 0
use_DH = 0
i_HeatCool = 2
system_type = 2
Dim Mon As String = "M" & Format(i_count_month, "00")
For Each dr냉방 As DS.tbl_nangbangkikiRow In DSET.tbl_nangbangkiki.Select("code<>'0'", "code")
'//이 냉방기가가 존에서 사용되었는지확인한다.
Dim Drow존() As DS.tbl_zoneRow = CType(DSET.tbl_zone.Select("(공조냉방생산기기 = '" & dr냉방.code & "' and 냉난방공조 <> '기능없음' and (외기부하처리여부 = '예' or 냉난방공조 = '냉난방' or 냉난방공조 = '냉방') ) or (열생산냉방생산기기='" & dr냉방.code & "' and 냉난방방식 <> '난방' and 냉난방방식 <> '기능없음') and code <> '0'"), DS.tbl_zoneRow())
If Drow존.GetUpperBound(0) <> -1 Then ' Worksheets("냉방기기").Range("냉방생산기기1").Offset(2, i_count_chiller - 1) = "0001" Then '2
Q_c_b = 0
Q_c_star_b = 0
t_h_max = 0
Q_c_f_elektr = 0
Q_c_outg_therm = 0
Q_c_g = 0
Q_c_f_R_elektr = 0
For Each Dr존 As DS.tbl_zoneRow In DSET.tbl_zone.Select("(공조냉방생산기기 = '" & dr냉방.code & "' and 냉난방공조 <> '기능없음' and (외기부하처리여부 = '예' or 냉난방공조 = '냉난방' or 냉난방공조 = '냉방') ) or (열생산냉방생산기기='" & dr냉방.code & "' and 냉난방방식 <> '난방' and 냉난방방식 <> '기능없음') and code <> '0'", "code")
Dim Drow분석() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & Dr존.code & "'"), DSR.월별에너지분석Row())
' 존데이터를가져올떄 해당 냉방기기에서 사용한 존만 가져왔따.
' If Dr존.열생산냉방생산기기 <> "" Then ' Worksheets("입력존").Range("입력냉방생산기기1").Offset(0, i_count_zone - 1) <> "" Then
' If Dr존.열생산냉방생산기기 = dr냉방.code Then ' Worksheets("입력존").Range("입력냉방생산기기1").Offset(0, i_count_zone - 1) = Worksheets("냉방기기").Range("냉방생산기기1").Offset(0, i_count_chiller - 1) Then
If Dr존.열생산냉방생산기기 = dr냉방.code And (Dr존.냉난방방식 = "냉난방" OrElse Dr존.냉난방방식 = "냉방") Then
Q_c_b_i = Result.E분석(i_count_month).냉방에너지요구량열(Dr존.code) ' CSng(Drow분석(0).냉방요구량열) ' Sheets("" & i_count_month & "").Cells(10, 7 + i_count_zone)
Q_c_b = Q_c_b + Q_c_b_i
End If
If Dr존.공조냉방생산기기 = dr냉방.code And Dr존.냉난방공조 = "냉난방" OrElse Dr존.냉난방공조 = "냉방" OrElse ((Dr존.냉난방공조 = "환기" OrElse Dr존.냉난방공조 = "난방") And Dr존.외기부하처리여부 = "") Then
If (Dr존.냉난방공조 = "환기" OrElse Dr존.냉난방공조 = "난방") And Dr존.외기부하처리여부 = "" Then '// 2010.11.19 추가
Q_c_star_b_i = TOSG(Drow분석(0).냉방요구량공조) '//2010.11.19 추가
Else
Q_c_star_b_i = Result.E분석(i_count_month).공조에너지요구량냉방(Dr존.code) ' CSng(Drow분석(0).공조요구량냉방) ' Sheets("" & i_count_month & "").Cells(21, 7 + i_count_zone)
End If
Q_c_star_b = Q_c_star_b + Q_c_star_b_i
End If
'===================================================================================2010.2.21 수정
Dim Dr프로필 As DS.tbl_profileRow = CType(DSET.tbl_profile.Select("code='" & Dr존.프로필 & "' and code <> '0'")(0), DS.tbl_profileRow)
Dim Drow최대() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Dr존.code & "'"), DSR.최대냉난방부하Row())
If i_count_month = 0 Then
d_op_mth = 0
Else
d_op_mth = CInt(Dr프로필("day" & Format(i_count_month, "00")))
End If
'If t_h_max < TOSG(Drow최대(0).난방최대가동시간) * d_op_mth Then
' t_h_max = CInt(TOSG(Drow최대(0).난방최대가동시간) * d_op_mth)
'End If
If t_h_max < TOSG(Dr프로필.일일운전시간) * d_op_mth Then
t_h_max = CInt(TOSG(Dr프로필.일일운전시간) * d_op_mth)
End If
If d_op_max_mth < d_op_mth Then
d_op_max_mth = d_op_mth
End If
'===================================================================================2010.2.21 수정
' End If
' End If
Next
'Q_vh_b = Sheets("" & i_count_month & "").Cells(19, 7 + i_count_zone)
'Q_vc_b = Sheets("" & i_count_month & "").Cells(21, 7 + i_count_zone)
'Q_vm_b = Sheets("" & i_count_month & "").Cells(23, 7 + i_count_zone)
'==========================================================================================================================================
' 가열유닛에 대한 사용에너지(3차 에너지)
' 외부 공조덕트가 없어서 Q_vh_d 는 0으로 적용
'Q_dot_V_H_max = V_dot_star_rho_L(c_p_L * (theta_ZUL_wi - theta_AUL_wi) - Delta_h_WRG) '(3.2.5-58)
'Q_dot_V_H_max = V_dot_star * rho_L(h_ZUL_wi - h_AUL_wi - Delta_h_WRG) '(3.2.5-57)
'b_VH_a = sigma1_12(b_VH_month) '(3.2.8-7)
'b_VH_mth = Q_vh_b / Q_dot_V_H_max '(3.2.8-6)
't_H_r = t_H_r_14_12h + (t_H_r_22_12h - t_H_r_14_12h) * (theta_V_mech - 14) / 8 '(3-B.1) theta_V_mech은 (3-C.1)
't_H_star_op_mth = t_H_r * b_VH_mth / b_VH_a '(3.2.8-5)
'Q_vh_d = f_vh_d * A_K_A * t_H_star_opo_mth '(3.2.8-10) f_vh_d=16W/m
'Q_vh_ce = (1 - eta_vh_ce) * Q_vh_b '(3.2.8-9) eta_vh_ce 는 1로 Q_vh_ce 는 0이 됨
'Q_h_star_b = Q_vh_b 'Q_h_star_b = Q_vh_b + Q_vh_ce + Q_vh_d '(3.2.8-2)
'==========================================================================================================================================
'==========================================================================================================================================
' 냉각 유닛에 대한 사용 에너지(3차 에너지)
' 외부 공조덕트가 없어서 Q_vc_d 는 0으로 적용
'Q_dot_V_C_max = V_dot_star * rho_L(h_AUL_so - h_ZUL_so - Delta_h_WRG) '(3.2.5-62)
'b_VC_a = sigma1_12(b_VC_month) '(3.2.8-13)
'b_VC_mth = Q_vc_b / Q_dot_V_C_max '(3.2.8-12)
't_C_r = (t_C_r_14_12h + (t_C_r_22_12h - t_C_r_14_12h) * (theta_V_mech - 14) / 8) * f_h_C '(3-B.2) theta_V_mech은 (3-C.1)
't_C_star_op_mth = t_C_r * b_VC_mth / b_VC_a '(3.2.8-11)
'Q_vc_d = f_vc_d * A_K_A * t_C_star_opo_mth '(3.2.8-10) f_vh_d=9W/m
'Q_vc_ce = (1 - eta_vc_ce) * Q_vc_b '(3.2.8-9) eta_vc_ce 는 1로 Q_vc_ce 는 0이 됨
'Q_c_star_b = Q_vc_b 'Q_c_star_b = Q_vc_b + Q_vc_ce + Q_vc_d '(3.2.8-8)
'==========================================================================================================================================
'가습
'Q_m_star_b = Q_vm_b '(3.2.8-14)
' 실-냉방 냉열 공급
'Q_c_b = Sheets("" & i_count_month & "").Cells(7, 7 + i_count_zone)
Q_c_d = (1 - eta_c_d) * Q_c_b '(3.2.8-21) eta_c_d는 (Tab.7-8)
Q_c_ce = ((1 - eta_c_ce) + (1 - eta_c_ce_sens)) * Q_c_b '(3.2.5-20) eta_c_ce는(Tab.7-8), eta_c_ce_sens는 (Tab.7-7)
Q_c_outg = Q_c_b + Q_c_ce + Q_c_d + Q_c_s '(3.2.8-19)
'==========================================================================================================================================
' 실-냉방 2차 공기 송풍기의 전기에너지 요구량
' 추후 세부 변수 검토
'beta_c_i = beat_c_we = Q_c_b_we / (Q_c_max_res * t_c_op_we) '(2-D.7)
'beta_c_i = beta_c_nutz = Q_c_b_nutz / (Q_c_max_res * t_c_op_nutz)
't_c_i = t_mth_nutz = d_nutz * t_c_op_nutz '(2-D.8) t_c_i=t_mth_we=d_we*t_c_op_we
't_c_i = t_mth_i * beta_c_i / beta_c_grenz '(2-D.6)
't_c_op = t_c_NR + t_c_we '(2-D.5)
'Q_c_outg = Q_c_b + Q_c_ce + Q_c_d + Q_c_s '(3.2.8-19)
'Q_c_ce_aux = f_c_ce_aux * Q_c_outg * t_c_op / 1000 '(3.2.8-23) f_c_ce_aux 는 (Tab.3.93)
Q_c_ce_aux = f_c_ce_aux * Q_c_outg * t_h_max / 1000
'==========================================================================================================================================
'공조-냉방 냉열 공급
Q_c_star_d = (1 - eta_c_star_d) * Q_c_star_b '(3.2.8-18) eta_c_star_d는 (Tab.3.91)
Q_c_star_ce = ((1 - eta_c_star_ce) + (1 - eta_c_star_ce_sens)) * Q_c_star_b '(3.2.8-16) eta_c_star_ce는 (Tab.3.91), eta_c_star_ce_sens는 (Tab.3.91)
Q_c_star_outg = Q_c_star_b + Q_c_star_ce + Q_c_star_d + Q_c_star_s '(3.2.8-15)
Q_z_star_outg_l = Q_c_star_outg
' 공조기기 가습에 필요한 생산기의 이용열 교부
'Q_m_star_d = 0
'Q_m_star_ce = 0
'Q_m_star_b = Q_vm_b '(3.2.8-14)
'Q_m_star_outg = Q_m_star_b 'Q_m_star_outg = Q_m_star_b + Q_m_star_ce + Q_m_star_d '(3.2.8-24)
Q_c_outg_total = Q_c_outg + Q_c_star_outg
Q_z_outg_l = Q_c_outg_total
'==================================================================================================================================
'==================================================================================================================================
'지열시스템
Dim CRenew As New CRenewable
If dr냉방.신재생연결여부 = "시스템연결" AndAlso dr냉방.연결된시스템 <> "0" Then ' 시스템연결" Then
Dim Dr신재생 As DS.tbl_newRow = CType(DSET.tbl_new.Select("code='" & dr냉방.연결된시스템 & "' and code <> '0'")(0), DS.tbl_newRow)
'//연결되었을시에는
Select Case Dr신재생.기기종류.Trim
Case "태양열" '//태양열
Case "태양광" '//태양광
Case "지열" '//지열
Select Case Dr신재생.가동연료.Trim
Case "전기" '전기"
CRenew.Calc_HeatpumpSystem(system_type, i_HeatCool, Dr신재생, Q_c_outg_total, i_count_month, d_op_max_mth, t_h_max, theta_VA, theta_i, Q_hp_outg, Q_c_f_hp, Q_c_g_hp_aux)
Q_c_outg_total = Q_c_outg_total - Q_hp_outg
Q_c_f = Q_c_f + Q_c_f_hp + Q_c_g_hp_aux
use_Elec = use_Elec + Q_c_f_hp + Q_c_g_hp_aux
Case "천연가스" '천연가스"
CRenew.Calc_HeatpumpSystem(system_type, i_HeatCool, Dr신재생, Q_c_outg_total, i_count_month, d_op_max_mth, t_h_max, theta_VA, theta_i, Q_hp_outg, Q_c_f_hp, Q_c_g_hp_aux)
Q_c_outg_total = Q_c_outg_total - Q_hp_outg
Q_c_f = Q_c_f + Q_c_f_hp + Q_c_g_hp_aux
use_LNG = use_LNG + Q_c_f_hp
use_Elec = use_Elec + Q_c_g_hp_aux
Case "액화가스" '액화가스"
CRenew.Calc_HeatpumpSystem(system_type, i_HeatCool, Dr신재생, Q_c_outg_total, i_count_month, d_op_max_mth, t_h_max, theta_VA, theta_i, Q_hp_outg, Q_c_f_hp, Q_c_g_hp_aux)
Q_c_outg_total = Q_c_outg_total - Q_hp_outg
Q_c_f = Q_c_f + Q_c_f_hp + Q_c_g_hp_aux
use_LPG = use_LPG + Q_c_f_hp
use_Elec = use_Elec + Q_c_g_hp_aux
End Select
Case "열병합" '//열병합
End Select
End If
'==================================================================================================================================
'==================================================================================================================================
EER = TOSG(dr냉방.열성능비) * age ' Dr냉방.열성능비
Q_dot_c_outg = TOSG(dr냉방.냉동기용량) ' dr냉방.냉동기용량
k_n = Q_c_outg_total / (Q_dot_c_outg * t_h_max)
If k_n > 1 Then k_n = 1
k_n_index = 100 ' 조건에 없는 압축방식에서 에러 발생 유도함
Select Case dr냉방.냉동기방식.Trim 'Dr냉방.냉동기방식
Case "압축식", "압축식(LNG)" '압축식"
T_W_1_i = TOSG(dr냉방.냉각탑입구온도) ' Dr냉방.냉각탑입구온도
Select Case dr냉방.냉동기종류.Trim ' Dr냉방.냉동기종류
Case "수냉식" '수냉식"
Select Case dr냉방.냉동기압축방식.Trim ' Dr냉방.냉동기압축방식
Case "왕복동/스크롤 압축기" '왕복동/스크롤압축기"
Select Case dr냉방.압축기제어방식.Trim 'Dr냉방.압축기제어방식
Case "on/off제어"
k_n_index = 7
f_2_av = 1
Case "다단제어" '다단제어"
k_n_index = 8
Select Case dr냉방.증발식건식냉각기.Trim ' Dr냉방.증발식건식냉각기
Case "증발식" '증발식"
f_2_av = TOSG(2.0614 - 0.0307 * T_W_1_i)
Case "건식" '건식"
f_2_av = TOSG(2.1181 - 0.0249 * T_W_1_i)
Case Else
MsgBox("22")
End Select
Case "실린더off"
k_n_index = 9
Select Case dr냉방.증발식건식냉각기.Trim
Case "증발식" '증발식"
f_2_av = TOSG(2.0614 - 0.0307 * T_W_1_i)
Case "건식" '건식"
f_2_av = TOSG(2.1181 - 0.0249 * T_W_1_i)
Case Else
MsgBox("21")
End Select
Case "바이패스제어" '바이패스제어"
k_n_index = 10
f_2_av = 1
Case Else
MsgBox("19")
End Select
Case "스크류압축기" '스크류압축기"
k_n_index = 11
Select Case dr냉방.증발식건식냉각기.Trim
Case "증발식" '증발식"
f_2_av = TOSG(2.0614 - 0.0307 * T_W_1_i)
Case "건식" '건식"
f_2_av = TOSG(3.1851 - 0.0486 * T_W_1_i)
Case Else
MsgBox("18")
End Select
Case "터보압축기" '터보압축기"
k_n_index = 12
Select Case dr냉방.증발식건식냉각기.Trim
Case "증발식" '증발식"
f_2_av = TOSG(2.0614 - 0.0307 * T_W_1_i)
Case "건식" '건식"
f_2_av = TOSG(2.1181 - 0.0249 * T_W_1_i)
Case Else
MsgBox("16")
End Select
Case Else
MsgBox("17")
End Select
Case "공냉식" '공냉식"
Select Case dr냉방.냉동기압축방식.Trim
Case "왕복동/스크롤 압축기" '왕복동/스크롤압축기"
Select Case dr냉방.압축기제어방식.Trim
Case "on/off제어"
k_n_index = 0
f_2_av = 1
Case "다단제어" '다단제어"
k_n_index = 1
f_2_av = 1
Case Else
MsgBox("15")
End Select
Case "스크류압축기" '스크류압축기"
k_n_index = 2
f_2_av = 1
Case Else
MsgBox("14")
End Select
Case "실내공조시스템" '실내공조시스템"
Select Case dr냉방.냉동기설비시스템.Trim ' Dr냉방.냉동기설비시스템
Case "콤팩트형시스템" '콤팩트형시스템"
k_n_index = 3
f_2_av = 1
Case "실내외분리시스템" '실내외분리시스템"
Select Case dr냉방.제어방식.Trim.ToLower '냉동기설비시스템의제어방식 Dr냉방.제어방식
Case "on/off제어"
k_n_index = 3
f_2_av = 1
Case "회전수제어" '회전수제어"
k_n_index = 5
f_2_av = 1
Case Else
MsgBox(dr냉방.제어방식.Trim)
End Select
Case "멀티분리시스템" '멀티분리시스템"
Select Case dr냉방.제어방식.Trim
Case "on/off제어"
k_n_index = 4
f_2_av = 1
Case "회전수제어" '회전수제어"
k_n_index = 6
f_2_av = 1
Case Else
MsgBox("11")
End Select
Case Else
MsgBox("13")
End Select
Case Else
MsgBox("30")
End Select
'//이부분정확히 살펴보아야할듯
If k_n = 0 Then k_n = 0.001 ' 부분부하율이 0일 경우 부분부하를 0에서 0.1구간으로 설정
'Dim Drow부분부하() As DS.tbl_buhaRow = DSET.tbl_buha.Rows(k_n_index) '.Select("code='" & Format(9 - Int((1 - k_n) * 10), "00") & "'")
If k_n_index >= 100 Then
Log.AppendLine("냉방기기(" & dr냉방.설명 & ")의 냉동기방식(" & dr냉방.냉동기방식.Trim & ")에따른 종류(" & dr냉방.냉동기종류.Trim & ")를 확인할 수 없습니다")
Exit For 'Return
Else
f_1_av_up = TOSG(DSET.tbl_buha.Rows(k_n_index)(CInt(9 - Int((1 - k_n) * 10) + 2)))
If k_n < 0.1 Then
f_1_av_dn = f_1_av_up
Else
f_1_av_dn = TOSG(DSET.tbl_buha.Rows(k_n_index)(CInt(9 - Int((1 - k_n) * 10) + 1)))
End If
f_1_av = f_1_av_up - (f_1_av_up - f_1_av_dn) * (1 - (k_n * 10 - Int(k_n * 10)))
'f_1_av = TOSG(DSET.tbl_buha.Rows(k_n_index)(CInt(9 - Int((1 - k_n) * 10) + 2))) ' Worksheets("부분부하율").Range("냉동기부분부하율1").Offset(k_n_index, 9 - Int((1 - k_n) * 10))
End If
PLV_av = f_1_av * f_2_av
If dr냉방.냉동기방식 = "압축식" Then
Q_c_f_elektr = Q_c_outg_total / (EER * PLV_av)
'======================================================================= 2010.10.5 추가
ElseIf dr냉방.냉동기방식 = "압축식(LNG)" Then
Q_c_outg_therm = Q_c_outg_total / (EER * PLV_av)
use_LNG = use_LNG + Q_c_outg_therm
'======================================================================= 2010.10.5 추가
End If
If (dr냉방.냉동기방식 = "압축식" Or dr냉방.냉동기방식 = "압축식(LNG)") And dr냉방.냉동기종류 = "수냉식" Then 'If Dr냉방.냉동기방식 = "압축식" And Dr냉방.냉동기종류 = "수냉식" Then
Q_dot_R_outg = Q_dot_c_outg * (1 + 1 / EER)
Select Case dr냉방.증발식건식냉각기.Trim
Case "증발식" '증발식"
l_min_i = TOSG(1.2103 - 0.0162 * theta_e) '원래는 습구온도로 입력요망 우선 외기건구온도로 입력 추후 수정
'f_R_av = (Log(1 - 0.5 / 0.8) * l_min_i / (Log(1 - 0.5 / 0.8) * 0.87)) ^ 2 ' 냉각탑 가동시간을 부분부하 25%이상이면 가동하는 것으로 계산 추후 수정
f_R_av = Q_c_outg_total * 4 / (Q_dot_c_outg * t_h_max) ' 냉각탑 가동시간을 부분부하 25%이상이면 가동하는 것으로 계산 추후 수정
If f_R_av > 1 Then f_R_av = 1 ' 냉각탑 가동시간을 부분부하 25%이상이면 가동하는 것으로 계산하고 최대가동시간 이하로 계산 추후 수정
Select Case dr냉방.증발식냉각기.Trim 'Dr냉방.증발식냉각기
Case "폐쇄형" '폐쇄형"
Select Case dr냉방.보조방음기유무.Trim 'Dr냉방.보조방음기유무
Case "아니오" '아니오"
q_R_elektr = 0.033
Case "" '예"
q_R_elektr = 0.04
End Select
Case "개방형" '개방형"
Select Case dr냉방.보조방음기유무.Trim
Case "아니오" '아니오"
q_R_elektr = 0.018
Case "" '예"
q_R_elektr = 0.021
End Select
End Select
Case "건식" '건식"
f_R_av = 1 '우선 1로 적용 추후 검토
q_R_elektr = 0.045
End Select
Q_c_f_R_elektr = Q_dot_R_outg * q_R_elektr * f_R_av * t_h_max
Else
Q_c_f_R_elektr = 0
End If
Case "흡수식" '흡수식"
Q_dot_R_outg = Q_dot_c_outg * (1 + 1 / EER)
T_W_1_i = TOSG(dr냉방.냉각탑입구온도)
Select Case dr냉방.증발식건식냉각기.Trim
Case "증발식" '증발식"
l_min_i = TOSG(1.2103 - 0.0162 * theta_e) '원래는 습구온도로 입력요망 우선 외기건구온도로 입력 추후 수정
'f_R_av = (Log(1 - 0.5 / 0.8) * l_min_i / (Log(1 - 0.5 / 0.8) * 0.87)) ^ 2 ' 냉각탑 가동시간을 부분부하 25%이상이면 가동하는 것으로 계산 추후 수정
f_R_av = Q_c_outg_total * 4 / (Q_dot_c_outg * t_h_max) ' 냉각탑 가동시간을 부분부하 25%이상이면 가동하는 것으로 계산 추후 수정
If f_R_av > 1 Then f_R_av = 1 ' 냉각탑 가동시간을 부분부하 25%이상이면 가동하는 것으로 계산하고 최대가동시간 이하로 계산 추후 수정
Select Case dr냉방.증발식냉각기.Trim
Case "폐쇄형"
Select Case dr냉방.보조방음기유무.Trim
Case "아니오"
q_R_elektr = 0.033
Case ""
q_R_elektr = 0.04
End Select
Case "개방형"
Select Case dr냉방.보조방음기유무.Trim
Case "아니오"
q_R_elektr = 0.018
Case ""
q_R_elektr = 0.021
End Select
End Select
Case "건식" '건식"
f_R_av = 1 '우선 1로 적용 추후 검토
q_R_elektr = 0.045
End Select
Q_c_f_R_elektr = Q_dot_R_outg * q_R_elektr * f_R_av * t_h_max
Select Case dr냉방.증발식건식냉각기.Trim
Case "증발식"
f_2_av = TOSG(1.7174 - 0.0217 * T_W_1_i)
Case "건식"
f_2_av = TOSG(2.3235 - 0.0294 * T_W_1_i)
Case Else
'MsgBox("증발식건식냉각기를 확인할 수 없습니다" & vbCrLf & "Calc_CoolingSystem 429번줄 Case else 를 입력하세요", MsgBoxStyle.Critical, dr냉방.증발식건식냉각기)
End Select
'//13번째줄
If k_n = 0 Then k_n = 0.01 ' 부분부하율이 0일 경우 부분부하를 0에서 0.1구간으로 설정
f_1_av_up = TOSG(DSET.tbl_buha.Rows(13)(CInt(9 - Int((1 - k_n) * 10) + 2)))
If k_n < 0.1 Then
f_1_av_dn = f_1_av_up
Else
f_1_av_dn = TOSG(DSET.tbl_buha.Rows(13)(CInt(9 - Int((1 - k_n) * 10) + 1)))
End If
f_1_av = f_1_av_up - (f_1_av_up - f_1_av_dn) * (1 - (k_n * 10 - Int(k_n * 10)))
'f_1_av = TOSG(DSET.tbl_buha.Rows(13)(CInt(9 - Int((1 - k_n) * 10) + 2))) 'Worksheets("부분부하율").Range("냉동기부분부하율1").Offset(13, 9 - Int((1 - k_n) * 10))
PLV_av = f_1_av * f_2_av
Q_c_outg_therm = Q_c_outg_total / (EER * PLV_av)
': 흡수식 냉동기에서 사용되는 보일러의 생산손실에너지 계산
If dr냉방.열생산연결방식.ToString = "외부연결" Then '==============================2010.04.02 if문 추가
'//냉방의 온수열생산기기로 지정된 난방기기만을 취한다 10.02.23 최적화중변경
For Each Dr난방 As DS.tbl_nanbangkikiRow In DSET.tbl_nanbangkiki.Select("code = '" & dr냉방.온수열생산기기 & "' and code <> '0'", "code")
'If Dr난방.code = dr냉방.온수열생산기기 Then ' Dr냉방.온수열생산기기 Then
theta_VA = TOSG(Dr난방.급수온도) ' Worksheets("난방기기").Range("난방기기급수온도1").Offset(0, i_count_c_d - 1)
theta_RA = TOSG(Dr난방.환수온도) ' Worksheets("난방기기").Range("난방기기환수온도1").Offset(0, i_count_c_d - 1)
theta_HK_m_beta_h_d = TOSG(0.5 * (theta_VA + theta_RA))
'----------------------------------------------------------------------------------------------------------------------------------
'----------------------------------------------------------------------------------------------------------------------------------
'신재생 및 열병합 시스템
Dim CNew As New CRenewable
If Dr난방.신재생연결여부 = "시스템연결" AndAlso Dr난방.연결된시스템 <> "0" Then ' Worksheets("난방기기").Range("신재생난방연결1").Offset(0, i_count_c_d - 1) = "시스템연결" Then
Dim Dr신재생 As DS.tbl_newRow = CType(DSET.tbl_new.Select("code='" & Dr난방.연결된시스템 & "' and code <> '0'")(0), DS.tbl_newRow)
Select Case Dr신재생.기기종류.Trim
Case "태양열" '//태양열
'========================================================================================2010.04.02 추가
If Q_c_outg_therm > 0 Then
Calc.Renewable.Calc_ThermalSolarSystem_EN(system_type, Dr신재생.code, i_count_month, d_op_max_mth, Q_h_outg_i, Q_c_outg_therm, Q_W_sol_out_m, Q_H_sol_out_m, W_sol_aux_m)
Q_c_outg_therm = Q_c_outg_therm - Q_W_sol_out_m
Q_c_aux = Q_c_aux + W_sol_aux_m
End If
'========================================================================================2010.04.02 추가
Case "태양광" '//태양광
Case "지열" '//지열
Case "열병합" '//열병합
If Q_c_outg_therm > 0 Then '===========================2010.04.02 And Q_c_outg_therm > 0 추가
Select Case Dr신재생.가동연료.Trim
Case "난방유" '난방유"
CNew.Calc_CogenerationSystemEN(Dr신재생, i_count_month, Q_c_outg_therm, t_h_max, Q_chp_outg, Q_c_f_chp)
Q_c_outg_therm = Q_c_outg_therm - Q_chp_outg
use_Oil = use_Oil + Q_c_f_chp
Case "천연가스" '천연가스"
CNew.Calc_CogenerationSystemEN(Dr신재생, i_count_month, Q_c_outg_therm, t_h_max, Q_chp_outg, Q_c_f_chp)
Q_c_outg_therm = Q_c_outg_therm - Q_chp_outg
use_LNG = use_LNG + Q_c_f_chp
Case "액화가스" '액화가스"
CNew.Calc_CogenerationSystemEN(Dr신재생, i_count_month, Q_c_outg_therm, t_h_max, Q_chp_outg, Q_c_f_chp)
Q_c_outg_therm = Q_c_outg_therm - Q_chp_outg
use_LPG = use_LPG + Q_c_f_chp
End Select
End If
End Select
End If
'----------------------------------------------------------------------------------------------------------------------------------
'----------------------------------------------------------------------------------------------------------------------------------
If Dr난방.열생산기기방식 = "보일러" Then ' Worksheets("난방기기").Range("열생산기기방식1").Offset(0, i_count_c_d - 1) = "보일러" Then
Q_dot_N = TOSG(Dr난방.정격보일러효율) * age_heating ' Worksheets("난방기기").Range("난방기기정격출력1").Offset(0, i_count_c_d - 1)
Q_dot_d_in = Q_c_outg_therm / t_h_max
Select Case Dr난방.운전방식.Trim ' Worksheets("난방기기").Range("난방기기운전방식1").Offset(0, i_count_c_d - 1)
Case "단독가동" '단독가동"
beta_h = Q_dot_d_in / Q_dot_N '(3.2.7-64) : 단일보일러 시설
Case "동시가동" ' 동시가동"
beta_h = Q_dot_d_in / (Q_dot_N * TOSG(Dr난방.보일러대수)) ' Worksheets("난방기기").Range("난방기기운전방식1").Offset(1, i_count_c_d - 1)) '(3.2.7-64) : 다수보일러 동시가동
Case "순차가동" '순차가동"
For i_count_beta = 1 To CInt(TOSG(Dr난방.보일러대수))
If Q_dot_d_in <= (Q_dot_N * i_count_beta) Then
beta_h = (Q_dot_d_in - Q_dot_N * (i_count_beta - 1)) / Q_dot_N * i_count_beta '다수보일러 대수제어
n_beta = i_count_beta - 1
Exit For
End If
Next
End Select
eta_k_100 = TOSG(Dr난방.정격보일러효율) * age_heating / 100 'Worksheets("난방기기").Range("난방기기정격효율1").Offset(0, i_count_c_d - 1) / 100
eta_k_pl = eta_k_100
f = -0.4
Select Case Dr난방.보일러방식.Trim 'Worksheets("난방기기").Range("보일러방식1").Offset(0, i_count_c_d - 1)
Case "가스보일러" '가스보일러"
e = 8.5
f = -0.4
Case "기름보일러" '기름보일러"
e = 8.5
f = -0.4
Case "저온가스보일러" '저온가스보일러"
e = 4.5
f = -0.4
Case "저온기름보일러" '저온기름보일러"
e = 4.25
Case "콘덴싱보일러" '콘덴싱보일러"
e = 4
End Select
q_B_70 = TOSG((e * (Q_dot_N ^ f)) / 100)
q_B_theta = q_B_70 '원래는 =q_B_70 * (theta_HK_m_beta_h_g - theta_i) / (70 - 20) 이지만 q_B_theta 와 q_B_70 이 같은 것으로 적용 추후검토
'Select Case Worksheets("난방기기").Range("난방기기사용연료1").Offset(0, i_count_c_d - 1)
'Case "난방유"
'f_Hs_Hi = 1.06
'Case "천연가스"
'f_Hs_Hi = 1.11
'Case "액화가스"
'f_Hs_Hi = 1.09
'Case "석탄"
'f_Hs_Hi = 1.04
'Case "갈탄"
'f_Hs_Hi = 1.07
'Case "나무"
'f_Hs_Hi = 1.08
'End Select
f_Hs_Hi = 1 ' 국내는 총발열량을 기준으로 입력함으로 우선 1로 설정, 추후 검토
Q_dot_B_h = q_B_theta * (Q_dot_N / eta_k_100) * f_Hs_Hi '(3.2.7-71)
Q_V_g_100 = (f_Hs_Hi - eta_k_100) / eta_k_100 * Q_dot_N
Q_V_g_pl = (f_Hs_Hi - eta_k_pl) / eta_k_pl * beta_k_pl * Q_dot_N
'------------------------------------------------------------------------------------------------------
If beta_h > beta_k_pl Then
Q_c_g_v_i = ((beta_h - beta_k_pl) / (1 - beta_k_pl) * (Q_V_g_100 - Q_V_g_pl) + Q_V_g_pl)
Q_c_g_v_i = Q_c_g_v_i + ((Q_V_g_100 - Q_V_g_pl) + Q_V_g_pl) * n_beta
Else
Q_c_g_v_i = ((beta_h / beta_k_pl) * (Q_V_g_pl - Q_dot_B_h) + Q_dot_B_h)
End If
Q_c_g = Q_c_g_v_i * t_h_max ' 추후 검토
Else
':지역난방의 경우 적용 추후 검토
Q_c_g = 0
End If
If Dr난방.열생산기기방식 = "보일러" Then 'Worksheets("난방기기").Range("열생산기기방식1").Offset(0, i_count_c_d - 1) = "보일러" Then
Select Case Dr난방.사용연료.Trim ' Worksheets("난방기기").Range("난방기기사용연료1").Offset(0, i_count_c_d - 1)
Case "난방유" '난방유"
use_Oil = use_Oil + Q_c_g + Q_c_outg_therm
Case "천연가스" '천연가스"
use_LNG = use_LNG + Q_c_g + Q_c_outg_therm
Case "액화가스" '액화가스"
use_LPG = use_LPG + Q_c_g + Q_c_outg_therm
End Select
Else
Select Case Dr난방.열생산기기방식.Trim 'Worksheets("난방기기").Range("열생산기기방식1").Offset(0, i_count_c_d - 1)
Case "지역난방" '지역난방"
use_DH = use_DH + Q_c_outg_therm
Case "전기보일러" '전기보일러"
use_Elec = use_Elec + Q_c_outg_therm
End Select
End If
' End If
Next
'=================================================================================================2010.04.02 if문 추가
ElseIf dr냉방.열생산연결방식 = "직화식" Then
Select Case dr냉방.사용연료.ToString
Case "난방유"
use_Oil = use_Oil + Q_c_outg_therm
Case "천연가스"
use_LNG = use_LNG + Q_c_outg_therm
Case "액화가스"
use_LPG = use_LPG + Q_c_outg_therm
Case Else
MsgBox("냉동기기(" & dr냉방.설명 & ")가 직화식이나 사용연료가 없습니다.확인바랍니다.", vbOKOnly, "건물 에너지 평가 프로그램(ECO2)")
End Select
Else
MsgBox("냉동기기(" & dr냉방.설명 & ")의 열생산연결방식을 확인바랍니다.", vbOKOnly, "건물 에너지 평가 프로그램(ECO2)")
End If
'=================================================================================================2010.04.02 if문 추가
Case "지역냉방" '지역냉방"
'--------------------------------------------------------------------------------------------------2010.02.22 수정
use_DC = use_DC + Q_c_outg_total
'--------------------------------------------------------------------------------------------------2010.02.22 수정
Q_c_outg_therm = Q_c_outg_total
End Select
Q_c_f = Q_c_f + Q_c_f_elektr + Q_c_f_R_elektr + Q_c_outg_therm + Q_c_g
use_Elec = use_Elec + Q_c_f_elektr + Q_c_f_R_elektr
If i_count_month = 6 Then
i_count_month = 6
End If
' 분배에 대한 전기 에너지 소비
For Each Dr분배 As DS.tbl_bunbaeRow In DSET.tbl_bunbae.Select("냉동기='" & dr냉방.code & "' and code <> '0'", "code")
'If Dr분배.냉동기 = dr냉방.code Then ' Worksheets("냉방분배시스템").Range("냉동기분배1").Offset(0, i_count_c_d - 1) = Worksheets("냉방기기").Range("냉방생산기기1").Offset(0, i_count_chiller - 1) Then
Q_dot_z = Q_dot_c_outg * (1 + 1 / EER) '(3.2.8-30)
Delta_theta_z_cl = TOSG(Dr분배.설정점에서의온도차) ' Worksheets("냉방분배시스템").Range("급수온도1").Offset(3, i_count_c_d - 1) 6
c_cl = TOSG(Dr분배.냉매의비열) ' Worksheets("냉방분배시스템").Range("급수온도1").Offset(4, i_count_c_d - 1) 4.18
rho_cl = TOSG(Dr분배.냉매의밀도) ' Worksheets("냉방분배시스템").Range("급수온도1").Offset(5, i_count_c_d - 1) 1000
V_dot_z = (3600 * Q_dot_z) / (Delta_theta_z_cl * c_cl * rho_cl) '(3.2.8-29)
L = TOSG(Dr분배.공급범위의길이) ' Worksheets("냉방분배시스템").Range("공급범위길이1").Offset(0, i_count_c_d - 1)
b = TOSG(Dr분배.공급범위의넓이) 'Worksheets("냉방분배시스템").Range("공급범위길이1").Offset(1, i_count_c_d - 1)
n_G = TOSG(Dr분배.열층의수) ' Worksheets("냉방분배시스템").Range("공급범위길이1").Offset(2, i_count_c_d - 1)
h_G = TOSG(Dr분배.층고) 'Worksheets("냉방분배시스템").Range("공급범위길이1").Offset(3, i_count_c_d - 1)
L_max = 2 * (L + b / 2 + h_G * n_G + 10) '(3.2.8-32)
R = TOSG(Dr분배.배관의압력손실) ' Worksheets("냉방분배시스템").Range("급수온도1").Offset(7, i_count_c_d - 1) 0.3
z = TOSG(Dr분배.개별저항비율) '("냉방분배시스템").Range("급수온도1").Offset(8, i_count_c_d - 1) 0.4
Delta_P_WUE = TOSG(Dr분배.생산기기압력손실) ' Worksheets("냉방분배시스템").Range("생산기기압력손실1").Offset(0, i_count_c_d - 1)
Delta_P_WUV = TOSG(Dr분배.사용기기압력손실) ' Worksheets("냉방분배시스템").Range("생산기기압력손실1").Offset(1, i_count_c_d - 1)
Delta_P_RV = TOSG(Dr분배.제어밸브압력손실) ' Worksheets("냉방분배시스템").Range("생산기기압력손실1").Offset(2, i_count_c_d - 1)
Delta_p_z = R * L_max * (1 + z) + Delta_P_WUE + Delta_P_RV + Delta_P_WUV '(3.2.8-31) R(7-Tab.11), Delta_P_WUE, Delta_P_RV, Delta_P_WUV (7-Tab.12)
P_d_hydr = 1000 * Delta_p_z * V_dot_z / 3600 '(3.2.8-28)
'f_e = f_dash_e * (1 + (nu_cl ^ 2 / (16 * P_d_hydr)) ^ 0.4) '기존건물 관련
'f_e = (1.25 + (200 / P_d_hydr) ^ 0.5) * f_Adap * b '(3.2.8-38) '기존건물 관련
P_Pump = TOSG(Dr분배.펌프동력) 'Worksheets("냉방분배시스템").Range("급수온도1").Offset(9, i_count_c_d - 1)
'P_Pump = Worksheets("냉방분배시스템").Range("급수온도1").Offset(9, i_count_c_d - 1) << 이거오류인듯 펌프는 8번인덱스여야한다.9번줄에는 아무것도 없다.
f_e = P_Pump / P_d_hydr '원래는 P_hydr '(3.2.8-37)
If Dr분배.펌프운전제어유무 = "제어" Then ' Worksheets("냉방분배시스템").Range("급수온도1").Offset(-1, i_count_c_d - 1) = "제어" Then
c_p1 = 0.85
c_p2 = 0.15
ElseIf Dr분배.펌프운전제어유무 = "대수제어" Then
c_p1 = 0.75
c_p2 = 0.25
Else
c_p1 = 0.25
c_p2 = 0.75
End If
'beta_d_l = beta_dash_ + (1 - beta_dash_d_l) * V_dot_z_min / V_dot_z '(3.2.8-35)
If Q_z_outg_l <> 0 Then
beta_d_l = Q_z_outg_l / (Q_dot_z * t_h_max) '(3.2.8-34) t_d_l 을 t_h_max으로 사용
e_d_l = f_e * (c_p1 + c_p2 / beta_d_l) '(3.2.8-36)
W_d_hydr_l = P_d_hydr / 1000 * t_h_max * beta_d_l * f_Abgl '(3.2.8-27) t_d_l 을 t_h_max으로 사용
Q_z_aux_d_l = W_d_hydr_l * e_d_l '(3.2.8-26)
'Q_z_aux_d_a = sigma(Q_z_zux_d_l) '(3.2.8-25)
Q_c_aux = Q_c_aux + Q_z_aux_d_l
End If
'End If
Next
End If '2
Next '1
'//계산결과 시트의 각 월에해당되는 곳에 데이터를 기록한다.
Result.E소요량(i_count_month).냉방 = Q_c_f
Result.E소요량(i_count_month).냉방보조 = Q_c_aux
use_Elec = use_Elec + Q_c_aux
Result.일차E소요량(i_count_month).냉방등유 = use_Oil
Result.일차E소요량(i_count_month).냉방LNG = use_LNG
Result.일차E소요량(i_count_month).냉방LPG = use_LPG
Result.일차E소요량(i_count_month).냉방지역난방열 = use_DH
'--------------------------------------------------------------------------------------------------2010.02.22 수정
Result.일차E소요량(i_count_month).냉방지역냉방열 = use_DC
'--------------------------------------------------------------------------------------------------2010.02.22 수정
Result.일차E소요량(i_count_month).냉방전력 = use_Elec
End Sub
End Class

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,593 @@
Public Class CRenewable
Public Sub New()
'ByVal dr존 As DS.tbl_zoneRow,
End Sub
' Public Overridable Sub Calc_ThermalSolarSystem_EN(ByVal i_system_ts As Integer, ByVal i_count_ts As Integer, ByVal i_ts_month As Integer, ByVal i_ts_d_mth As Integer, ByVal Q_H_sol_us_m as decimal, ByVal Q_W_sol_us_m as decimal, ByRef Q_W_sol_out_m as decimal, ByRef Q_H_sol_out_m as decimal, ByRef W_sol_aux_m as decimal)
Public Overridable Sub Calc_ThermalSolarSystem_EN(ByVal i_system_ts As Integer, ByVal DR_code As String, ByVal i_ts_month As Integer, ByVal i_ts_d_mth As Integer, ByVal Q_H_sol_us_m As Decimal, ByVal Q_W_sol_us_m As Decimal, ByRef Q_W_sol_out_m As Decimal, ByRef Q_H_sol_out_m As Decimal, ByRef W_sol_aux_m As Decimal)
Dim theta_ref As Decimal, theta_w As Decimal, theta_cw As Decimal, U_loop_p As Decimal, U_loop As Decimal, Delta_T As Decimal
Dim A_ As Decimal, a As Decimal, b As Decimal, c As Decimal, d As Decimal, e As Decimal, f As Decimal, eta_loop As Decimal, IAM As Decimal, eta_0 As Decimal
Dim a_1 As Decimal, a_2 As Decimal, P_H As Decimal, P_W As Decimal, V_ref As Decimal, V_sol As Decimal, t_m As Decimal, I_m As Decimal, P_aux_nom As Decimal
'Dim i_ts_location As Integer, i_count_ts_location As Integer
' Dim i_count_month As Integer
Dim i_direction As Integer
Dim t_aux_m As Decimal, l_tot As Decimal, f_st As Decimal, U_st As Decimal
Dim theta_setpoint As Decimal, theta_a_avg As Decimal, theta_e_avg As Decimal
Dim Q_sol_ls_rbl_m As Decimal, Q_sol_aux_rbl_m As Decimal, Q_sol_st_ls_rbl_m As Decimal, Q_bu_dis_ls_rbl_m As Decimal, Q_bu_dis_ls_m As Decimal, Q_sol_ls_m As Decimal
Dim Q_W_bu_dis_ls_m As Decimal, Q_H_bu_dis_ls_m As Decimal, Q_W_sol_st_ls_m As Decimal, Q_H_sol_st_ls_m As Decimal
Dim A_H As Decimal, A_W As Decimal, X As Decimal, Y As Decimal
'Dim Dr기상데이터 As DS.tbl_weatherRow
'For i_count_ts_location = 1 To DSET.tbl_weather.Rows.Count ' Range("건물위치").Columns.Count
' Dr기상데이터 = DSET.tbl_weather(i_count_ts_location - 1)
' If dr존.지역 = Dr기상데이터.건물위치 Then '//이상하다 1버번쨰 존의 지역값만 계속쓴다 -_-;; 지역은 즉 존에할당된게아니고 1개만 존재하는듯하다
' i_ts_location = i_count_ts_location '//기상데이터에서 현재지정된 존.지역의 기상데이터의 지역의 열번호(엑셀에서만)를 기억한다 (나중에 이번호로 데이터 참조하려고)
' Exit For
' End If
' '//지역찾을떄그냥 DR지역을 사용하도록한다.
' 'If Worksheets("입력존").Range("지역1").Offset(0, 0) = Worksheets("기상데이타").Range("건물위치1").Offset(0, i_count_ts_location - 1) Then
' ' i_ts_location = i_count_ts_location
' ' Exit For
' 'End If
'Next
l_tot = 0
Dim Dr신재생 As DS.tbl_newRow = CType(DSET.tbl_new.Select("code='" & DR_code & "' and code <> '0'", "code")(0), DS.tbl_newRow) '//신재생의 태양열시스템
Select Case Dr신재생.집열판방위.Trim ' Worksheets("신재생기기").Range("태양열시스템종류1").Offset(3, i_count_ts - 1)
Case "" '동"
i_direction = 12
Case "남동" '남동"
i_direction = 10
Case "" '남"
i_direction = 9
Case "남서" '남서"
i_direction = 11
Case "" '서"
i_direction = 13
Case "수평" '수평" '//월별평균일사 수평면을 사용 나머지것들은 45도짜리를 사용한다. 45도짜리 코드값을 해당코드+1000이다. 해당코드+1000으로 미리 셋팅햇다(변경불가)
i_direction = 0
Case Else
MsgBox("신재생에너지-태양열의 집열판 방위값이 올바르지않습니다", MsgBoxStyle.Critical, "확인")
End Select
'//집열판방위에따른 월별평균일사의 총합을 가져온다
'//weather_ilsa 의 p코드에는 지역코드값이 들어가고 코드값은 집열판방위+1000 의값이 해당 각도의 방향에대한 데이터가된다.
'///만약값이 서울 방향이 남 이엇을경우에는 해당 일사데이터를 찾는게 목적이에요. 여기서 서울의 코드값은 찾을수잇어요
'//그담이 방향 남에 맞는 일사데이터를 찾아야하는데.. 일사데이터 코드로는 못찾으니깐. 이름으로 찾아요.
'//
Dim 일사이름 As String = Dr신재생.집열판방위 & "(45)" '//이렇게되면 남(45) 라는 최종이름이 되겟죠?
Dim Drow평균일사() As DS.weather_ilsaRow = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & _
"' and 설명='" & 일사이름 & "'"), DS.weather_ilsaRow())
'//그렇게해서 서울의 코드에 해당하는 pcode 와 이름이 남(45)로 되어잇는 일사데이터테이블에서 데이터를 검색하게되겟죠?
'//즉 데이터가 나오면 해당 데이터가 맞는거에요 ..이건 데이터베이스 이름을 남(45) 식으로 모두 고쳐주세요
If Drow평균일사.GetUpperBound(0) = -1 Then
MsgBox("지역코드=" + Calc.Pub.기상데이터.code + vbCrLf + "집열판방위코드=" + Dr신재생.집열판방위 + _
vbCrLf + "예상일사코드=" + 일사이름 + _
vbCrLf + "에 해당하는 평균일사데이터가 없습니다. 1개의 행이 반환되어야 합니다", MsgBoxStyle.Critical, "계산실패")
I_m = 0
' Return
Else
l_tot += TOSG(Drow평균일사(0).m01) + TOSG(Drow평균일사(0).m02) + TOSG(Drow평균일사(0).m03) + TOSG(Drow평균일사(0).m04) + _
TOSG(Drow평균일사(0).m05) + TOSG(Drow평균일사(0).m06) + TOSG(Drow평균일사(0).m07) + TOSG(Drow평균일사(0).m08) + _
TOSG(Drow평균일사(0).m09) + TOSG(Drow평균일사(0).m10) + TOSG(Drow평균일사(0).m11) + TOSG(Drow평균일사(0).m12)
I_m = TOSG(Drow평균일사(0)("m" & i_ts_month.ToString("00"))) '//이줄로 위의 케이스문을 대체햇다 오류나면 케이스문으로 일단 사용할예정
End If
t_aux_m = I_m / l_tot * 2000
'//월별외기평균온도(i_ts_month << 파라미터)
theta_e_avg = TOSG(Calc.Pub.기상데이터("m" & i_ts_month.ToString("00")))
'theta_e_avg = Worksheets("기상데이타").Range("최소외기온도1").Offset(2 + i_ts_month, i_ts_location - 1) '//월별외기평균온도 tbl_weather에 존재
Select Case Dr신재생.축열탱크설치장소.Trim ' Worksheets("신재생기기").Range("태양열축열탱크1").Offset(2, i_count_ts - 1)
Case "난방공간" '난방공간"
theta_a_avg = 20
Case "비난방공간" '비난방공간"
theta_a_avg = theta_e_avg + (20 - theta_e_avg) / 2
Case "외부공간" '외부공간"
theta_a_avg = theta_e_avg
End Select
theta_w = 40
theta_cw = 15
a_2 = 0
eta_loop = 0.8
eta_0 = 0.6
t_m = i_ts_d_mth * 24
a = 1.029
b = -0.065
c = -0.245
d = 0.0018
e = 0.0215
f = 0
Select Case Dr신재생.집열기유형.Trim 'Worksheets("신재생기기").Range("태양열시스템종류1").Offset(1, i_count_ts - 1)
Case "평판형" '평판형"
a_1 = 6
IAM = 0.94
Case "진공관형" '진공관형"
a_1 = 3
IAM = 1
End Select
If Dr신재생.태양열시스템의성능 = "성능치" Then ' Worksheets("신재생기기").Range("태양열시스템종류1").Offset(5, i_count_ts - 1) = "성능치" Then
eta_0 = TOSG(Dr신재생.무손실효율계수) 'Worksheets("신재생기기").Range("태양열시스템종류1").Offset(6, i_count_ts - 1)
a_1 = TOSG(Dr신재생.열손실계수1차) 'Worksheets("신재생기기").Range("태양열시스템종류1").Offset(7, i_count_ts - 1)
a_2 = TOSG(Dr신재생.열손실계수2차) 'Worksheets("신재생기기").Range("태양열시스템종류1").Offset(8, i_count_ts - 1)
End If
Select Case Dr신재생.태양열종류.Trim ' Worksheets("신재생기기").Range("태양열시스템종류1").Offset(0, i_count_ts - 1)
Case "급탕" '급탕"
A_ = TOSG(Dr신재생.집열판면적) ' Worksheets("신재생기기").Range("태양열시스템종류1").Offset(2, i_count_ts - 1)
U_loop_p = TOSG(5 + 0.5 * A_) '(B.3)
U_loop = a_1 + a_2 * 40 + U_loop_p / A_ '(13)
theta_ref = TOSG(11.6 + 1.18 * theta_w + 3.86 * theta_cw - 1.32 * theta_e_avg) '(B.8) 급탕시스템인 경우 theta_w는 40도, theta_cw 시수온도는15도 가정
Delta_T = theta_ref - theta_e_avg '(14)
V_ref = A_ * 75
V_sol = TOSG(Dr신재생.축열탱크체적급탕) ' Worksheets("신재생기기").Range("태양열축열탱크1").Offset(0, i_count_ts - 1)
f_st = TOSG((V_ref / V_sol) ^ 0.25) '(B.5)
If Q_W_sol_us_m <> 0 Then
X = A_ * U_loop * eta_loop * Delta_T * f_st * t_m / (Q_W_sol_us_m * 1000) '(12)
Y = A_ * IAM * eta_0 * eta_loop * I_m * t_m / (Q_W_sol_us_m * 1000) '(15)
Q_W_sol_out_m = (a * Y + b * X + c * Y * Y + d * X * X + e * Y * Y * Y + f * X * X * X) * Q_W_sol_us_m '(11)
Else
Q_W_sol_out_m = 0
End If
If Q_W_sol_out_m < 0 Then Q_W_sol_out_m = 0
If Q_W_sol_out_m > Q_W_sol_us_m Then Q_W_sol_out_m = Q_W_sol_us_m
'태양열시스템 열손실
U_st = TOSG(0.16 * V_sol ^ 0.5) '(B.9)
theta_setpoint = 60
If Q_W_sol_us_m <> 0 Then
Q_W_sol_st_ls_m = U_st * (theta_setpoint - theta_a_avg) * (Q_W_sol_out_m / Q_W_sol_us_m) * t_m / 1000 '(17)
Q_bu_dis_ls_m = TOSG(0.02 * Q_W_sol_us_m * (Q_W_sol_out_m / Q_W_sol_us_m))
Else
Q_W_sol_st_ls_m = 0
Q_bu_dis_ls_m = 0
End If
If i_system_ts = 1 Then '=====================================================2010.04.02 추가
'난방 부분
theta_ref = TOSG(11.6 + 1.18 * theta_w + 3.86 * theta_cw - 1.32 * theta_e_avg) '(B.8) 급탕시스템인 경우 theta_w는 40도, theta_cw 시수온도는15도 가정
Delta_T = theta_ref - theta_e_avg '(14)
V_ref = A_H * 75
V_sol = TOSG(Dr신재생.축열탱크체적난방) ' Worksheets("신재생기기").Range("태양열축열탱크1").Offset(1, i_count_ts - 1)
f_st = TOSG((V_ref / V_sol) ^ 0.25) '(B.5)
If Q_H_sol_us_m <> 0 Then
X = A_H * U_loop * eta_loop * Delta_T * f_st * t_m / (Q_H_sol_us_m * 1000) '(12)
Y = A_H * IAM * eta_0 * eta_loop * I_m * t_m / (Q_H_sol_us_m * 1000) '(15)
Q_H_sol_out_m = (a * Y + b * X + c * Y * Y + d * X * X + e * Y * Y * Y + f * X * X * X) * Q_H_sol_us_m '(11)
Else
Q_H_sol_out_m = 0
End If
If Q_H_sol_out_m < 0 Then Q_H_sol_out_m = 0
If Q_H_sol_out_m > Q_H_sol_us_m Then Q_H_sol_out_m = Q_H_sol_us_m
'태양열시스템 열손실
U_st = TOSG(0.16 * V_sol ^ 0.5) '(B.9)
theta_setpoint = 40
If Q_H_sol_us_m <> 0 Then
Q_H_sol_st_ls_m = U_st * (theta_setpoint - theta_a_avg) * (Q_H_sol_out_m / Q_H_sol_us_m) * t_m / 1000 '(17)
Q_H_bu_dis_ls_m = TOSG(0.02 * Q_H_sol_us_m * (Q_H_sol_out_m / Q_H_sol_us_m))
Else
Q_H_sol_st_ls_m = 0
Q_H_bu_dis_ls_m = 0
End If
Q_sol_ls_m = Q_H_sol_st_ls_m + Q_H_bu_dis_ls_m + Q_W_sol_st_ls_m + Q_W_bu_dis_ls_m
End If '=====================================================2010.04.02 추가
' Q_sol_ls_m = Q_W_sol_st_ls_m + Q_bu_dis_ls_m
' 보조에너지
P_aux_nom = TOSG(Dr신재생.솔라펌프의정격출력) ' Worksheets("신재생기기").Range("태양열시스템종류1").Offset(4, i_count_ts - 1)
W_sol_aux_m = P_aux_nom * t_aux_m / 1000
Q_sol_aux_rbl_m = TOSG(W_sol_aux_m * 0.5)
Select Case Dr신재생.축열탱크설치장소.Trim 'Worksheets("신재생기기").Range("태양열축열탱크1").Offset(2, i_count_ts - 1)
Case "난방공간" '난방공간"
Q_sol_st_ls_rbl_m = Q_W_sol_st_ls_m
Q_bu_dis_ls_rbl_m = Q_bu_dis_ls_m
Case "비난방공간" '비난방공간"
Q_sol_st_ls_rbl_m = TOSG(Q_W_sol_st_ls_m * 0.5)
Q_bu_dis_ls_rbl_m = TOSG(Q_bu_dis_ls_m * 0.5)
Case "외부공간" '외부공간"
Q_sol_st_ls_rbl_m = 0
Q_bu_dis_ls_rbl_m = 0
End Select
Q_sol_ls_rbl_m = Q_sol_aux_rbl_m + Q_sol_st_ls_rbl_m + Q_bu_dis_ls_rbl_m '(20)
Case "난방+급탕" '난방+급탕"
P_H = Q_H_sol_us_m / (Q_H_sol_us_m + Q_W_sol_us_m) '(9)
P_W = Q_W_sol_us_m / (Q_H_sol_us_m + Q_W_sol_us_m) '(10)
A_ = TOSG(Dr신재생.집열판면적) ' Worksheets("신재생기기").Range("태양열시스템종류1").Offset(2, i_count_ts - 1)
A_H = P_H * A_
A_W = P_W * A_
'급탕 부분
U_loop_p = 5 + 0.5 * A_W '(B.3) '===========================2010.04.24 추가
If A_W <> 0 Then
U_loop = a_1 + a_2 * 40 + U_loop_p / A_W '(13) '===============2010.04.24 추가
theta_ref = TOSG(11.6 + 1.18 * theta_w + 3.86 * theta_cw - 1.32 * theta_e_avg) '(B.8) 급탕시스템인 경우 theta_w는 40도, theta_cw 시수온도는15도 가정
Delta_T = theta_ref - theta_e_avg '(14)
V_ref = A_W * 75
V_sol = TOSG(Dr신재생.축열탱크체적급탕) ' Worksheets("신재생기기").Range("태양열축열탱크1").Offset(0, i_count_ts - 1)
f_st = TOSG((V_ref / V_sol) ^ 0.25) '(B.5)
End If
If Q_W_sol_us_m <> 0 Then
X = A_W * U_loop * eta_loop * Delta_T * f_st * t_m / (Q_W_sol_us_m * 1000) '(12)
Y = A_W * IAM * eta_0 * eta_loop * I_m * t_m / (Q_W_sol_us_m * 1000) '(15)
Q_W_sol_out_m = (a * Y + b * X + c * Y * Y + d * X * X + e * Y * Y * Y + f * X * X * X) * Q_W_sol_us_m '(11)
Else
Q_W_sol_out_m = 0
End If
If Q_W_sol_out_m < 0 Then Q_W_sol_out_m = 0
If Q_W_sol_out_m > Q_W_sol_us_m Then Q_W_sol_out_m = Q_W_sol_us_m
'태양열시스템 열손실
U_st = TOSG(0.16 * V_sol ^ 0.5) '(B.9)
theta_setpoint = 60
If Q_W_sol_us_m <> 0 Then
Q_W_sol_st_ls_m = U_st * (theta_setpoint - theta_a_avg) * (Q_W_sol_out_m / Q_W_sol_us_m) * t_m / 1000 '(17)
Q_W_bu_dis_ls_m = TOSG(0.02 * Q_W_sol_us_m * (Q_W_sol_out_m / Q_W_sol_us_m))
Else
Q_W_sol_st_ls_m = 0
Q_W_bu_dis_ls_m = 0
End If
'난방 부분
U_loop_p = 5 + 0.5 * A_H '(B.3) '===========================2010.04.24 추가
U_loop = a_1 + a_2 * 40 + U_loop_p / A_H '(13) '===============2010.04.24 추가
theta_ref = TOSG(11.6 + 1.18 * theta_w + 3.86 * theta_cw - 1.32 * theta_e_avg) '(B.8) 급탕시스템인 경우 theta_w는 40도, theta_cw 시수온도는15도 가정
Delta_T = theta_ref - theta_e_avg '(14)
V_ref = A_H * 75
V_sol = TOSG(Dr신재생.축열탱크체적난방) ' Worksheets("신재생기기").Range("태양열축열탱크1").Offset(1, i_count_ts - 1)
f_st = TOSG((V_ref / V_sol) ^ 0.25) '(B.5)
If Q_H_sol_us_m <> 0 Then
X = A_H * U_loop * eta_loop * Delta_T * f_st * t_m / (Q_H_sol_us_m * 1000) '(12)
Y = A_H * IAM * eta_0 * eta_loop * I_m * t_m / (Q_H_sol_us_m * 1000) '(15)
Q_H_sol_out_m = (a * Y + b * X + c * Y * Y + d * X * X + e * Y * Y * Y + f * X * X * X) * Q_H_sol_us_m '(11)
Else
Q_H_sol_out_m = 0
End If
If Q_H_sol_out_m < 0 Then Q_H_sol_out_m = 0
If Q_H_sol_out_m > Q_H_sol_us_m Then Q_H_sol_out_m = Q_H_sol_us_m
'태양열시스템 열손실
U_st = TOSG(0.16 * V_sol ^ 0.5) '(B.9)
theta_setpoint = 40
If Q_H_sol_us_m <> 0 Then
Q_H_sol_st_ls_m = U_st * (theta_setpoint - theta_a_avg) * (Q_H_sol_out_m / Q_H_sol_us_m) * t_m / 1000 '(17)
Q_H_bu_dis_ls_m = TOSG(0.02 * Q_H_sol_us_m * (Q_H_sol_out_m / Q_H_sol_us_m))
Else
Q_H_sol_st_ls_m = 0
Q_H_bu_dis_ls_m = 0
End If
Q_sol_ls_m = Q_H_sol_st_ls_m + Q_H_bu_dis_ls_m + Q_W_sol_st_ls_m + Q_W_bu_dis_ls_m
' 보조에너지
P_aux_nom = TOSG(Dr신재생.솔라펌프의정격출력) ' Worksheets("신재생기기").Range("태양열시스템종류1").Offset(4, i_count_ts - 1)
W_sol_aux_m = P_aux_nom * t_aux_m / 1000
Q_sol_aux_rbl_m = TOSG(W_sol_aux_m * 0.5)
Select Case Dr신재생.축열탱크설치장소.Trim ' Worksheets("신재생기기").Range("태양열축열탱크1").Offset(2, i_count_ts - 1)
Case "난방공간" '난방공간"
Q_sol_ls_rbl_m = Q_sol_aux_rbl_m + Q_sol_ls_m
Case "비난방공간" '비난방공간"
Q_sol_ls_rbl_m = TOSG(Q_sol_aux_rbl_m + Q_sol_ls_m * 0.5)
Case "외부공간" '외부공간"
Q_sol_ls_rbl_m = Q_sol_aux_rbl_m
End Select
End Select
''보조에너지
''f_sol_m = Q_sol_out_m / Q_sol_us_m '(21)
''W_bu_aux_m = W_bu_nom_m * (1 - f_sol_m) '(22)
''P_aux_nom = 50 + 5 * A_ '(B.4)
'//열에너지생산량-태양열
Result.생산E(i_ts_month).태양열생산량 += Q_W_sol_out_m + Q_H_sol_out_m
'DSETR.TReqUse.Rows(CEnum.ResultRow.생산_열생산량_태양열)(CStr("M" & Format(i_ts_month, "00"))) = CSng(DSETR.TReqUse.Rows(CEnum.ResultRow.생산_열생산량_태양열)(CStr("M" & Format(i_ts_month, "00")))) + Q_W_sol_out_m + Q_H_sol_out_m 'Sheets("계산결과").Cells(97, 7 + i_ts_month) = Q_W_sol_out_m + Q_H_sol_out_m
'Dim TDR As DSR.TReqUseRow = CType(DSETR.TReqUse.Rows(CEnum.ResultRow.생산_단위면적당생산량_태양열), DSR.TReqUseRow)
Select Case i_system_ts '//이것도 프로시져 파라미터이다.
Case 1 '//난방?급탕 혼합형태?
If Q_W_sol_out_m <> 0 Then
Result.생산E(i_ts_month).면적당생산량태양열 += (Q_W_sol_out_m / Result.사용면적.W)
Else
Result.생산E(i_ts_month).면적당생산량태양열 += (Q_H_sol_out_m / Result.사용면적.H)
End If
Case 2 '//냉방?
Result.생산E(i_ts_month).면적당생산량태양열 += (Q_H_sol_out_m / Result.사용면적.C)
Case 3 '//급탕
Result.생산E(i_ts_month).면적당생산량태양열 += (Q_W_sol_out_m / Result.사용면적.W)
Case Else
MsgBox("단위면적당생산량 누적시 i_syste_ts 가 알수없음", MsgBoxStyle.Critical, "확인")
End Select
End Sub
Public Overridable Sub Calc_PhotovoltaicSystem_EN(ByVal i_count_pv_month As Integer, ByVal i_pv_d_mth As Integer)
Dim E_el_pv_out As Decimal, P_pk As Decimal, f_perf As Decimal, E_sol As Decimal, E_sol_hor As Decimal, f_tlt As Decimal
Dim a As Decimal, K_pk As Decimal
'Dim i_count_pv As Integer, i_count_pv_location As Integer, i_pv_location As Integer
E_el_pv_out = 0
'If DSET.tbl_new.Rows.Count > 0 Then ' Worksheets("신재생기기").Range("신재생생산기기1").Offset(0, 0) <> "" Then '//신재생기기 처음칸에 뭐가 잇다? 즉 데이터가잇느냐
For Each Dr신재생 As DS.tbl_newRow In DSET.tbl_new.Select("code <> '0'", "code")
If Dr신재생.기기종류 = "태양광" Then
a = TOSG(Dr신재생.태양광모듈면적) ' Worksheets("신재생기기").Range("태양광모듈1").Offset(0, i_count_pv - 1)
Select Case Dr신재생.태양광모듈적용타입.Trim ' Worksheets("신재생기기").Range("태양광모듈1").Offset(4, i_count_pv - 1)
Case "밀착형" '밀착형"
f_perf = 0.7
Case "후면통풍형" '후면통풍형"
f_perf = 0.75
Case "기계환기형" '기계환기형"
f_perf = 0.8
End Select
'If a <> 0 Then '//태양광모듈면적이있을경우에만 작동하도록한다.
Dim Dr일사 As DS.weather_ilsaRow
Select Case Dr신재생.태양광모듈기울기.Trim ' Worksheets("신재생기기").Range("태양광모듈1").Offset(1, i_count_pv - 1)
Case "수평" '수평"
'//수평면에해당하는 월별평균일사 값을 가져온다.수평면 0001은 고정값이된다.
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='0001'")(0), DS.weather_ilsaRow)
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
Case "45도" '45도"
Select Case Dr신재생.태양광모듈방위.Trim ' Worksheets("신재생기기").Range("태양광모듈1").Offset(2, i_count_pv - 1)
Case "" '"남"
'//45도 남에대한건 기본 수평면하고 +9를 하면 나온다 나머지도 순서이므로 +1을 게속해주면된다.
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(1 + 9, "0000") & "'")(0), DS.weather_ilsaRow)
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
Case "남동" '"남동"
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(1 + 10, "0000") & "'")(0), DS.weather_ilsaRow)
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
Case "남서" '"남서"
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(1 + 11, "0000") & "'")(0), DS.weather_ilsaRow)
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
Case "" '"동"
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(1 + 12, "0000") & "'")(0), DS.weather_ilsaRow)
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
Case "" '"서"
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(1 + 13, "0000") & "'")(0), DS.weather_ilsaRow)
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
End Select
Case "수직" '수직"
Select Case Dr신재생.태양광모듈방위.Trim 'Worksheets("신재생기기").Range("태양광모듈1").Offset(2, i_count_pv - 1)
Case "" '"남"
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(1 + 1, "0000") & "'")(0), DS.weather_ilsaRow)
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
Case "남동" '"남동"
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(1 + 2, "0000") & "'")(0), DS.weather_ilsaRow)
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
Case "남서" '"남서"
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(1 + 3, "0000") & "'")(0), DS.weather_ilsaRow)
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
Case "" '"동"
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(1 + 4, "0000") & "'")(0), DS.weather_ilsaRow)
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
Case "" '"서"
Dr일사 = CType(DSET.weather_ilsa.Select("pcode='" & Calc.Pub.기상데이터.code & "' and code='" & Format(1 + 5, "0000") & "'")(0), DS.weather_ilsaRow)
E_sol = TOSG(Dr일사("M" & Format(i_count_pv_month, "00"))) * i_pv_d_mth * 24 / 1000
End Select
End Select
'E_sol = E_sol_hor * f_tlt 수평면일사에 계수를 곱하지 않고 직접 기상데이타 적용
Select Case Dr신재생.태양광모듈종류.Trim ' Worksheets("신재생기기").Range("태양광모듈1").Offset(3, i_count_pv - 1)
Case "단결정" '단결정"
K_pk = 0.12
Case "다결정" '다결정"
K_pk = 0.1
Case "비정질박막형" '비정질박막형"
K_pk = 0.04
Case "기타박막형" '기타박막형"
K_pk = 0.035
Case "CIS박막형" 'CIS박막형"
K_pk = 0.105
Case "CdTe박막형" 'CdTe박막형"
K_pk = 0.095
Case "성능치 입력"
Try
K_pk = TOSG(Dr신재생.태양광모듈효율)
Catch ex As Exception
MsgBox("태양광모듈효율을 알 수 없습니다.", MsgBoxStyle.Critical, "값=" & Dr신재생.태양광모듈효율)
K_pk = 0
End Try
Case Else
MsgBox("알수없는 태양광모듈종류입니다.", MsgBoxStyle.Critical, "값=" & Dr신재생.태양광모듈종류)
End Select
P_pk = K_pk * a
E_el_pv_out = E_el_pv_out + E_sol * P_pk * f_perf
'End If
End If
Next
'If Sheets("계산결과").Cells(104, 7 + i_count_pv_month) = "" Then
' Sheets("계산결과").Cells(104, 7 + i_count_pv_month) = E_el_pv_out
'Else
' Sheets("계산결과").Cells(104, 7 + i_count_pv_month) = Sheets("계산결과").Cells(104, 7 + i_count_pv_month) + E_el_pv_out
'End If
Result.생산E(i_count_pv_month).태양광전력생산량 += E_el_pv_out
'DSETR.TReqUse.Rows(CEnum.ResultRow.생산_전기_태양광)("M" & Format(i_count_pv_month, "00")) = CSng(DSETR.TReqUse.Rows(CEnum.ResultRow.생산_전기_태양광)("M" & Format(i_count_pv_month, "00"))) + E_el_pv_out ' Sheets("계산결과").Cells(95, 7 + i_count_pv_month)
End Sub
Public Overridable Sub Calc_HeatpumpSystem(ByVal i_system_hp As Integer, ByVal i_HeatCool As Integer, ByVal Dr신재생 As DS.tbl_newRow, ByVal Q_hp_outg As Decimal, ByVal i_hp_month As Integer, ByVal d_h_mth As Integer, ByVal t_hp As Integer, ByVal theta_VA As Decimal, ByVal theta_i As Decimal, ByRef Q_h_outg As Decimal, ByRef Q_h_f_hp As Decimal, ByRef Q_h_g_aux As Decimal)
Dim f_Verwindung As Decimal, V As Decimal, q_B_S As Decimal, Phi_g As Decimal
Dim Q_h_g As Decimal, Q_h_g_s As Decimal, Q_h_g_WP As Decimal
Dim P_rd_mot As Decimal
'Dim Q_h_f_hp as decimal 'DIN 에서는 Q_h_f로 표기
'Dim Delta_p_prim as decimal, Delta_p_sek as decimal
Dim Phi_prim_aux As Decimal, Phi_sek_aux As Decimal, t_ON_aux As Decimal
Dim theta_h_s As Decimal
Dim COP As Decimal
Q_h_g_s = 0
Q_h_g_WP = 0 '전기히트펌프인 경우 0 가스히트펌프는 ?
P_rd_mot = 0
Q_h_f_hp = 0
'eta_aux = 0.3
'Delta_p_prim = 40 'kPa 1차측
'Delta_p_sek = 10 'kPa 2차측
'MsgBox(i_count_hp)
'i_count_hp = 0 '//신재생 줄번호는 무조건 0이된다. 20100127 '//연습용데이터 문제있음
' Dim Dr신재생 As DS.tbl_newRow = CType(DSET.tbl_new.Rows(0), DS.tbl_newRow)
Phi_g = TOSG(Dr신재생.지열히트펌프용량) ' Worksheets("신재생기기").Range("지열히트펌프용량1").Offset(0, i_count_hp - 1)
If Dr신재생.가동연료 <> "전기" And i_HeatCool = 1 And Dr신재생.열교환기설치여부 = "" Then ' Worksheets("신재생기기").Range("지열히트펌프용량1").Offset(5, i_count_hp - 1) = "예" Then
P_rd_mot = 0.4
End If
If Q_hp_outg < (Phi_g * t_hp) * (1 + P_rd_mot) Then
Q_h_outg = Q_hp_outg
Else
Q_h_outg = Phi_g * t_hp * (1 + P_rd_mot)
End If
If i_HeatCool = 1 Or i_HeatCool = 3 Then '난방 1 , 냉방 2, 급탕 3
'난방, 급탕
If Dr신재생.팽창탱크설치여부 = "" Then ' Worksheets("신재생기기").Range("지열히트펌프용량1").Offset(6, i_count_hp - 1) = "예" Then
f_Verwindung = 1.2
V = TOSG(Dr신재생.팽창탱크체적) ' Worksheets("신재생기기").Range("지열히트펌프용량1").Offset(7, i_count_hp - 1)
q_B_S = TOSG(0.4 + 0.14 * V ^ 0.45) '(51)
theta_h_s = theta_VA '급수온도로 적용
Q_h_g_s = f_Verwindung * (theta_h_s - theta_i) / 45 * d_h_mth * q_B_S '(49) 외부완충(팽창탱크 유무)
End If
Q_h_g = Q_h_g_s + Q_h_g_WP
COP = TOSG(Dr신재생.열성능비난방) ' Worksheets("신재생기기").Range("지열히트펌프용량1").Offset(1, i_count_hp - 1)
Else
'냉방
COP = TOSG(Dr신재생.열성능비냉방) ' Worksheets("신재생기기").Range("지열히트펌프용량1").Offset(2, i_count_hp - 1)
End If
If Dr신재생.가동연료 = "전기" Then ' Worksheets("신재생기기").Range("신재생및열병합기기종류1").Offset(1, i_count_hp - 1) = "전기" Then
Q_h_f_hp = (Q_h_outg + Q_h_g) / COP
' Q_h_in = Q_h_outg + Q_h_g - Q_h_f_hp '월간 전기히트펌프(재생에너지유입량)
Else
Q_h_f_hp = Q_h_outg / COP
' If i_HeatCool = 1 And Worksheets("신재생기기").Range("지열히트펌프용량1").Offset(5, i_count_hp - 1) = "예" Then
' P_rd_mot = 0.4
' End If
' Q_h_in = Q_h_outg + Q_h_g - Q_h_f_hp * (1 + P_rd_mot) '월간 가스히트펌프(재생에너지유입량)
End If
'Q_h_f = Q_h_outg + Q_h_g - k_rd_g * Q_h_g_aux - Q_h_in '월간(A.1) 전기히트펌프(난방요구량 충당)
'Q_h_f = (Q_h_outg + Q_h_g - k_rd_g * Q_h_g_aux - Q_h_in) / (1 + P_rd_mot) '월간(A.2) 가스히트펌프(난방요구량 충당)
'보조에너지
'Phi_prim_aux = Delta_p_prim * V_dot / (eta_aux * 3600) '(89) 사용자 입력항목이므로 확인 요망
'Phi_sek_aux = Delta_p_sek * V_dot / (eta_aux * 3600) '(89) 사용자 입력항목이므로 확인 요망
t_ON_aux = Q_h_outg / (Phi_g) '(81)
Phi_prim_aux = TOSG(Dr신재생.펌프용량1차) ' Worksheets("신재생기기").Range("지열히트펌프용량1").Offset(3, i_count_hp - 1)
Phi_sek_aux = TOSG(Dr신재생.펌프용량2차) ' Worksheets("신재생기기").Range("지열히트펌프용량1").Offset(4, i_count_hp - 1)
Q_h_g_aux = TOSG((Phi_prim_aux + Phi_sek_aux) * 0.001 * t_ON_aux) '(88)
'//열에너지생산량 (지열)
Result.생산E(i_hp_month).지열생산량 += Q_h_f_hp
'DSETR.TReqUse.Rows(79)("M" & Format(i_hp_month, "00")) = CSng(DSETR.TReqUse.Rows(79)("M" & Format(i_hp_month, "00"))) + Q_h_f_hp 'DrT생산.열생산량지열 += Q_h_f_hp
'100 : Total >> DrT생산.단위면적당생산량지열
Select Case i_system_hp
Case 1
Result.생산E(i_hp_month).면적당생산량지열 += (Q_h_f_hp / Result.사용면적.H)
'DSETR.TReqUse.Rows(100)("M00") = CSng(DSETR.TReqUse.Rows(100)("M00")) + Q_h_f_hp / CSng(DSETR.TReqUse.Rows(10)("M00")) ' DrT요구량.난방사용면적 ' Sheets("계산결과").Cells(15, 7)
Case 2
Result.생산E(i_hp_month).면적당생산량지열 += (Q_h_f_hp / Result.사용면적.C)
'DSETR.TReqUse.Rows(100)("M00") = CSng(DSETR.TReqUse.Rows(100)("M00")) + Q_h_f_hp / CSng(DSETR.TReqUse.Rows(15)("M00")) 'DrT요구량.냉방사용면적 '("계산결과").Cells(20, 7)
Case 3
Result.생산E(i_hp_month).면적당생산량지열 += (Q_h_f_hp / Result.사용면적.W)
End Select
End Sub
Public Overridable Sub Calc_CogenerationSystemEN(ByVal Dr신재생 As DS.tbl_newRow, ByVal i_chp_month As Integer, ByVal Q_h_outg As Decimal, ByVal t_chp As Integer, ByRef Q_chp_gen_out As Decimal, ByRef E_chp_gen_in As Decimal)
'EN15316-4-4_2007 5.6.2에서 시작
'Dim Wmsg As New System.Text.StringBuilder
'Wmsg.AppendLine("Calc_CogenerationSystemEN 이 함수의경우")
'Wmsg.AppendLine("i_count_chp 에따라서 열을 할당해야한다.... 지만..아직 이 파라미터값을 모르게삳")
'Wmsg.AppendLine("사용하는곳의 참조확인을해서 저곳이 신재생기기 코드값이 바로오는건지 다른값인지 확인해봐야겠다")
'MsgBox(Wmsg.ToString)
Dim Q_dot_T_chp As Decimal
Dim eta_T_chp_an As Decimal, eta_el_chp_an As Decimal
Dim E_el_chp_out As Decimal
' Dim Dr신재생 As DS.tbl_newRow = CType(DSET.tbl_new.Rows(0), DS.tbl_newRow)
Q_dot_T_chp = TOSG(Dr신재생.열생산능력) ' Worksheets("신재생기기").Range("열병합열생산능력1").Offset(0, i_count_chp - 1)
eta_T_chp_an = TOSG(Dr신재생.열생산효율) ' Worksheets("신재생기기").Range("열병합열생산능력1").Offset(1, i_count_chp - 1)
eta_el_chp_an = TOSG(Dr신재생.발전효율) ' Worksheets("신재생기기").Range("열병합열생산능력1").Offset(2, i_count_chp - 1)
If Q_h_outg > (Q_dot_T_chp * t_chp) Then
Q_chp_gen_out = Q_dot_T_chp * t_chp
Else
Q_chp_gen_out = Q_h_outg
End If
E_chp_gen_in = Q_chp_gen_out / (eta_T_chp_an / 100)
E_el_chp_out = E_chp_gen_in * eta_el_chp_an / 100
'//전기생산량 열병합
Result.생산E(i_chp_month).열병합전력생산량 += E_el_chp_out
'DSETR.TReqUse.Rows(77)("M" & Format(i_chp_month, "00")) = CSng(DSETR.TReqUse.Rows(77)("M" & Format(i_chp_month, "00"))) + E_el_chp_out ' Sheets("계산결과").Cells(96, 7 + i_chp_month) = E_el_chp_out
End Sub
End Class

View File

@@ -0,0 +1,780 @@
Public Class C1차소요량
Public Mon As String
Private ErrMsg As String = "1차에너지소요량 계산되지 않았습니다"
Private MIdx As Integer
'//M00 일떄의 합계식이 추가되지않았따
'//해당부분은 주로 합계식에서 사용된다.
Public Sub Calc_Summary()
If MIdx <> 0 Then
MsgBox("Calc 계산식은 0번만 가능합니다")
Return
End If
Dim i1, i2, i3, i4, i5, i6 As Decimal
i1 = 0 : i2 = 0 : i3 = 0 : i4 = 0 : i5 = 0
For i As Integer = 1 To 12
i1 += Result.일차E소요량(i).난방등유
i2 += Result.일차E소요량(i).난방LNG
i3 += Result.일차E소요량(i).난방LPG
i4 += Result.일차E소요량(i).난방지역
i5 += Result.일차E소요량(i).난방전력
Next
Me.난방등유 = i1
Me.난방LNG = i2
Me.난방LPG = i3
Me.난방지역 = i4
Me.난방전력 = i5
i1 = 0 : i2 = 0 : i3 = 0 : i4 = 0 : i5 = 0 : i6 = 0
For i As Integer = 1 To 12
i1 += Result.일차E소요량(i).냉방등유
i2 += Result.일차E소요량(i).냉방LNG
i3 += Result.일차E소요량(i).냉방LPG
i4 += Result.일차E소요량(i).냉방지역난방열
i5 += Result.일차E소요량(i).냉방지역냉방열
i6 += Result.일차E소요량(i).냉방전력
Next
Me.냉방등유 = i1
Me.냉방LNG = i2
Me.냉방LPG = i3
Me.냉방지역난방열 = i4
Me.냉방지역냉방열 = i5
Me.냉방전력 = i6
i1 = 0 : i2 = 0 : i3 = 0 : i4 = 0 : i5 = 0
For i As Integer = 1 To 12
i1 += Result.일차E소요량(i).급탕등유
i2 += Result.일차E소요량(i).급탕LNG
i3 += Result.일차E소요량(i).급탕LPG
i4 += Result.일차E소요량(i).급탕지역
i5 += Result.일차E소요량(i).급탕전력
Next
Me.급탕등유 = i1
Me.급탕LNG = i2
Me.급탕LPG = i3
Me.급탕지역 = i4
Me.급탕전력 = i5
End Sub
Private DSETR As DSR
Private Result As CResult
Public Sub New(ByRef pdsetr As DSR, ByRef presult As CResult, Optional ByVal pmIdx As Integer = 0)
DSETR = pdsetr
Result = presult
MIdx = pmIdx
Mon = "M" & Format(pmIdx, "00")
End Sub
ReadOnly Property 소요량() As Decimal
Get
If MIdx = 0 Then
Dim R As Decimal = 0
For i As Integer = 1 To 12
R += Result.일차E소요량(i).소요량
Next
Return R
Else
Return Me.난방소요량 + Me.냉방소요량 + Me.급탕소요량 + Me.조명소요량 + Me.환기소요량 - (Result.생산E(MIdx).태양광전력생산량 * Result.E변환계수.전력) - (Result.생산E(MIdx).열병합전력생산량 * Result.E변환계수.전력)
End If
End Get
End Property
ReadOnly Property 단위면적() As Decimal
Get
If MIdx <> 0 Then
Return 0
Else
Return Me.난방면적 + Me.냉방면적 + Me.급탕면적 + Me.조명면적 + Me.환기면적
End If
End Get
End Property
#Region "난방"
ReadOnly Property 난방소요량() As Decimal
Get
If MIdx = 0 Then
Dim R As Decimal = Me.난방등유 * Result.E변환계수.등유 + Me.난방LNG * Result.E변환계수.LNG + _
Me.난방LPG * Result.E변환계수.LPG + Me.난방지역 * Result.E변환계수.지역난방 + _
Me.난방전력 * Result.E변환계수.전력
Try
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).열병합전력생산량) / _
(Me.난방전력 + Me.냉방전력 + Me.급탕전력 + Me.조명전력 + Me.환기전력) * Me.난방전력 * Result.E변환계수.전력
Catch ex As Exception
End Try
Else
Return Me.난방등유 * Result.E변환계수.등유 + Me.난방LNG * Result.E변환계수.LNG + _
Me.난방LPG * Result.E변환계수.LPG + Me.난방지역 * Result.E변환계수.지역난방 + _
Me.난방전력 * Result.E변환계수.전력
End If
End Get
End Property
ReadOnly Property 난방소요량2() As Decimal '//140112(?)
Get
Dim 건물용도 As Integer = CInt(DSET1.tbl_Desc.Rows(0)("isjugo"))
If MIdx = 0 Then
If 건물용도 < 10 Then
Dim R As Decimal = Me.난방등유 * Result.E변환계수.지역난방 + Me.난방LNG * Result.E변환계수.지역난방 + _
Me.난방LPG * Result.E변환계수.지역난방 + Me.난방지역 * Result.E변환계수.지역난방 + _
Me.난방전력 * Result.E변환계수.전력
Try
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).열병합전력생산량) / _
(Me.난방전력 + Me.냉방전력 + Me.급탕전력 + Me.조명전력 + Me.환기전력) * Me.난방전력 * Result.E변환계수.전력
Catch ex As Exception
End Try
Else
Dim R As Decimal = Me.난방등유 * Result.E변환계수.등유 + Me.난방LNG * Result.E변환계수.LNG + _
Me.난방LPG * Result.E변환계수.LPG + Me.난방지역 * Result.E변환계수.지역난방 + _
Me.난방전력 * Result.E변환계수.전력
Try
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).열병합전력생산량) / _
(Me.난방전력 + Me.냉방전력 + Me.급탕전력 + Me.조명전력 + Me.환기전력) * Me.난방전력 * Result.E변환계수.전력
Catch ex As Exception
End Try
End If
Else
If 건물용도 < 10 Then
Return Me.난방등유 * Result.E변환계수.지역난방 + Me.난방LNG * Result.E변환계수.지역난방 + _
Me.난방LPG * Result.E변환계수.지역난방 + Me.난방지역 * Result.E변환계수.지역난방 + _
Me.난방전력 * Result.E변환계수.전력
Else
Return Me.난방등유 * Result.E변환계수.등유 + Me.난방LNG * Result.E변환계수.LNG + _
Me.난방LPG * Result.E변환계수.LPG + Me.난방지역 * Result.E변환계수.지역난방 + _
Me.난방전력 * Result.E변환계수.전력
End If
End If
End Get
End Property
Property 난방등유() As Decimal
Get
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
Return 0
Else
Return TOSG(DR(0)("난방등유"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
Else
DR(0)("난방등유") = value
End If
End Set
End Property
Property 난방LNG() As Decimal
Get
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
Return 0
Else
Return TOSG(DR(0)("난방LNG"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
Else
DR(0)("난방LNG") = value
End If
End Set
End Property
Property 난방LPG() As Decimal
Get
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
Return 0
Else
Return TOSG(DR(0)("난방LPG"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
Else
DR(0)("난방LPG") = value
End If
End Set
End Property
'Property 난방펠렛() As Decimal
' Get
' Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
' If DR.GetUpperBound(0) = -1 Then
' MsgBox(ErrMsg,MsgBoxStyle.Information,"C1차소요량")
' Return 0
' Else
' Return TOSG(DR(0)("난방펠렛"))
' End If
' End Get
' Set(ByVal value As Decimal)
' Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
' If DR.GetUpperBound(0) = -1 Then
' MsgBox(ErrMsg,MsgBoxStyle.Information,"C1차소요량")
' Else
' DR(0)("난방펠렛") = value
' End If
' End Set
'End Property
Property 난방지역() As Decimal
Get
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
Return 0
Else
Return TOSG(DR(0)("난방지역"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
Else
DR(0)("난방지역") = value
End If
End Set
End Property
Property 난방전력() As Decimal
Get
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
Return 0
Else
Return TOSG(DR(0)("난방전력"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
Else
DR(0)("난방전력") = value
End If
End Set
End Property
ReadOnly Property 난방면적() As Decimal
Get
If Result.사용면적.H = 0 Then
Return 0
Else
Return Me.난방소요량 / Result.사용면적.H
End If
End Get
End Property
ReadOnly Property 난방면적2() As Decimal
Get
If Result.사용면적.H = 0 Then
Return 0
Else
Return Me.난방소요량2 / Result.사용면적.H
End If
End Get
End Property
#End Region
#Region "냉방"
ReadOnly Property 냉방소요량() As Decimal
Get
If MIdx = 0 Then
Dim R As Decimal = Me.냉방등유 * Result.E변환계수.등유 + Me.냉방LNG * Result.E변환계수.LNG + _
Me.냉방LPG * Result.E변환계수.LPG + Me.냉방지역난방열 * Result.E변환계수.지역난방 + _
Me.냉방지역냉방열 * Result.E변환계수.지역냉방 + Me.냉방전력 * Result.E변환계수.전력
Try
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).열병합전력생산량) / _
(Me.난방전력 + Me.냉방전력 + Me.급탕전력 + Me.조명전력 + Me.환기전력) * Me.냉방전력 * Result.E변환계수.전력
Catch ex As Exception
End Try
Else
Return Me.냉방등유 * Result.E변환계수.등유 + Me.냉방LNG * Result.E변환계수.LNG + _
Me.냉방LPG * Result.E변환계수.LPG + Me.냉방지역난방열 * Result.E변환계수.지역난방 + _
Me.냉방지역냉방열 * Result.E변환계수.지역냉방 + Me.냉방전력 * Result.E변환계수.전력
End If
End Get
End Property
Property 냉방등유() As Decimal
Get
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
Return 0
Else
Return TOSG(DR(0)("냉방등유"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
Else
DR(0)("냉방등유") = value
End If
End Set
End Property
Property 냉방LNG() As Decimal
Get
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
Return 0
Else
Return TOSG(DR(0)("냉방LNG"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
Else
DR(0)("냉방LNG") = value
End If
End Set
End Property
Property 냉방펠렛() As Decimal
Get
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
Return 0
Else
Return TOSG(DR(0)("냉방펠렛"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
Else
DR(0)("냉방펠렛") = value
End If
End Set
End Property
Property 냉방LPG() As Decimal
Get
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
Return 0
Else
Return TOSG(DR(0)("냉방LPG"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
Else
DR(0)("냉방LPG") = value
End If
End Set
End Property
Property 냉방지역난방열() As Decimal
Get
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
Return 0
Else
Return TOSG(DR(0)("냉방지역"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
Else
DR(0)("냉방지역") = value
End If
End Set
End Property
Property 냉방지역냉방열() As Decimal
Get
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
Return 0
Else
Return TOSG(DR(0)("냉방지역2"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
Else
DR(0)("냉방지역2") = value
End If
End Set
End Property
Property 냉방전력() As Decimal
Get
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
Return 0
Else
Return TOSG(DR(0)("냉방전력"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
Else
DR(0)("냉방전력") = value
End If
End Set
End Property
ReadOnly Property 냉방면적() As Decimal
Get
If Result.사용면적.C = 0 Then
Return 0
Else
Return Me.냉방소요량 / Result.사용면적.C
End If
End Get
End Property
#End Region
#Region "급탕"
ReadOnly Property 급탕소요량() As Decimal
Get
If MIdx = 0 Then
Dim R As Decimal = Me.급탕등유 * Result.E변환계수.등유 + Me.급탕LNG * Result.E변환계수.LNG + _
Me.급탕LPG * Result.E변환계수.LPG + Me.급탕지역 * Result.E변환계수.지역난방 + _
Me.급탕전력 * Result.E변환계수.전력
'#If DEBUG Then
' Dim f As String = "c:\temp\1\급탕소요량1.txt"
' Dim b As New System.Text.StringBuilder
' If System.IO.File.Exists(f) = False Then
' b.AppendLine("태양광전력생산량 열병합전력생산량 난방전력 냉방전력 급탕전력 조명전력 환기전력 전력변환계수")
' End If
' b.AppendLine(Result.생산E(0).태양광전력생산량.ToString() + vbTab + Result.생산E(0).열병합전력생산량.ToString() + vbTab + _
' 난방전력.ToString() + vbTab + 냉방전력.ToString() + vbTab + 급탕전력.ToString() + vbTab + 조명전력.ToString() + vbTab + _
' 환기전력.ToString() + vbTab + Result.E변환계수.전력.ToString())
' My.Computer.FileSystem.WriteAllText(f, b.ToString, True)
'#End If
Try
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).열병합전력생산량) / _
(Me.난방전력 + Me.냉방전력 + Me.급탕전력 + Me.조명전력 + Me.환기전력) * Me.급탕전력 * Result.E변환계수.전력
Catch ex As Exception
End Try
Else
'#If DEBUG Then
' Dim f As String = "c:\temp\1\급탕소요량2.txt"
' Dim b As New System.Text.StringBuilder
' If System.IO.File.Exists(f) = False Then
' b.AppendLine("MIDX 급탕등유 급탕LNG 급탕LPG 급탕지역 급탕전력")
' End If
' b.AppendLine(MIdx.ToString() + vbTab + 급탕등유.ToString() + vbTab + 급탕LNG.ToString() + vbTab + 급탕LPG.ToString() + vbTab + 급탕지역.ToString() + vbTab + 급탕전력.ToString())
' My.Computer.FileSystem.WriteAllText(f, b.ToString, True)
'#End If
Return Me.급탕등유 * Result.E변환계수.등유 + Me.급탕LNG * Result.E변환계수.LNG + _
Me.급탕LPG * Result.E변환계수.LPG + Me.급탕지역 * Result.E변환계수.지역난방 + _
Me.급탕전력 * Result.E변환계수.전력
End If
End Get
End Property
ReadOnly Property 급탕소요량2() As Decimal
Get
Dim 건물용도 As Integer = CInt(DSET1.tbl_Desc.Rows(0)("isjugo"))
If MIdx = 0 Then
If 건물용도 < 10 Then
Dim R As Decimal = Me.급탕등유 * Result.E변환계수.지역난방 + Me.급탕LNG * Result.E변환계수.지역난방 + _
Me.급탕LPG * Result.E변환계수.지역난방 + Me.급탕지역 * Result.E변환계수.지역난방 + _
Me.급탕전력 * Result.E변환계수.전력
Try
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).열병합전력생산량) / _
(Me.난방전력 + Me.냉방전력 + Me.급탕전력 + Me.조명전력 + Me.환기전력) * Me.급탕전력 * Result.E변환계수.전력
Catch ex As Exception
End Try
Else
Dim R As Decimal = Me.급탕등유 * Result.E변환계수.등유 + Me.급탕LNG * Result.E변환계수.LNG + _
Me.급탕LPG * Result.E변환계수.LPG + Me.급탕지역 * Result.E변환계수.지역난방 + _
Me.급탕전력 * Result.E변환계수.전력
Try
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).열병합전력생산량) / _
(Me.난방전력 + Me.냉방전력 + Me.급탕전력 + Me.조명전력 + Me.환기전력) * Me.급탕전력 * Result.E변환계수.전력
Catch ex As Exception
End Try
End If
Else
If 건물용도 < 10 Then
Return Me.급탕등유 * Result.E변환계수.지역난방 + Me.급탕LNG * Result.E변환계수.지역난방 + _
Me.급탕LPG * Result.E변환계수.지역난방 + Me.급탕지역 * Result.E변환계수.지역난방 + _
Me.급탕전력 * Result.E변환계수.전력
Else
Return Me.급탕등유 * Result.E변환계수.등유 + Me.급탕LNG * Result.E변환계수.LNG + _
Me.급탕LPG * Result.E변환계수.LPG + Me.급탕지역 * Result.E변환계수.지역난방 + _
Me.급탕전력 * Result.E변환계수.전력
End If
End If
End Get
End Property
Property 급탕등유() As Decimal
Get
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
Return 0
Else
Return TOSG(DR(0)("급탕등유"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
Else
DR(0)("급탕등유") = value
End If
End Set
End Property
Property 급탕LNG() As Decimal
Get
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
Return 0
Else
Return TOSG(DR(0)("급탕LNG"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
Else
DR(0)("급탕LNG") = value
End If
End Set
End Property
Property 급탕펠렛() As Decimal
Get
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
Return 0
Else
Return TOSG(DR(0)("급탕펠렛"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
Else
DR(0)("급탕펠렛") = value
End If
End Set
End Property
Property 급탕LPG() As Decimal
Get
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
Return 0
Else
Return TOSG(DR(0)("급탕LPG"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
Else
DR(0)("급탕LPG") = value
End If
End Set
End Property
Property 급탕지역() As Decimal
Get
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
Return 0
Else
Return TOSG(DR(0)("급탕지역"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
Else
DR(0)("급탕지역") = value
End If
End Set
End Property
Property 급탕전력() As Decimal
Get
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
Return 0
Else
Return TOSG(DR(0)("급탕전력"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.에너지소요량1Row = CType(DSETR.에너지소요량1.Select("mon='" & Mon & "'"), DSR.에너지소요량1Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "C1차소요량")
Else
DR(0)("급탕전력") = value
End If
End Set
End Property
ReadOnly Property 급탕면적() As Decimal
Get
If Result.사용면적.W = 0 Then
Return 0
Else
Return Me.급탕소요량 / Result.사용면적.W
End If
End Get
End Property
ReadOnly Property 급탕면적2() As Decimal
Get
If Result.사용면적.W = 0 Then
Return 0
Else
Return Me.급탕소요량2 / Result.사용면적.W
End If
End Get
End Property
#End Region
#Region "조명부분(읽기전용)"
ReadOnly Property 조명소요량() As Decimal
Get
If MIdx = 0 Then
Dim R As Decimal = 조명전력 * Result.E변환계수.전력
Try
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).열병합전력생산량) / _
(Me.난방전력 + Me.냉방전력 + Me.급탕전력 + Me.조명전력 + Me.환기전력) * Me.조명전력 * Result.E변환계수.전력
Catch ex As Exception
End Try
Else
Return 조명전력 * Result.E변환계수.전력
End If
End Get
End Property
ReadOnly Property 조명전력() As Decimal
Get
If MIdx = 0 Then '//합계필드라면 12월의 합계를 반환한다.
Dim i1 As Decimal = 0
For i As Integer = 1 To 12
i1 += Result.일차E소요량(i).조명전력
Next
Return i1
Else
Return Result.E소요량(Me.MIdx).조명S
End If
End Get
End Property
ReadOnly Property 조명면적() As Decimal
Get
If Result.사용면적.L = 0 Then
Return 0
Else
Return Me.조명소요량 / Result.사용면적.L
End If
End Get
End Property
#End Region
#Region "환기부분(읽기전용)"
ReadOnly Property 환기소요량() As Decimal
Get
If MIdx = 0 Then
Dim R As Decimal = 환기전력 * Result.E변환계수.전력
Try
Return R - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).열병합전력생산량) / _
(Me.난방전력 + Me.냉방전력 + Me.급탕전력 + Me.조명전력 + Me.환기전력) * Me.환기전력 * Result.E변환계수.전력
Catch ex As Exception
End Try
Else
Return 환기전력 * Result.E변환계수.전력
End If
End Get
End Property
ReadOnly Property 환기전력() As Decimal
Get
If MIdx = 0 Then '//합계필드라면 12월의 합계를 반환한다.
Dim i1 As Decimal = 0
For i As Integer = 1 To 12
i1 += Result.일차E소요량(i).환기전력
Next
Return i1
Else
Return Result.E소요량(Me.MIdx).환기S
End If
End Get
End Property
ReadOnly Property 환기면적() As Decimal
Get
If Result.사용면적.V = 0 Then
Return 0
Else
Return Me.환기소요량 / Result.사용면적.V
End If
End Get
End Property
#End Region
End Class

View File

@@ -0,0 +1,452 @@
Public Class CCo2발생량
Public Mon As String
Private ErrMsg As String = "에너지소요량 계산되지 않았습니다"
Private MIdx As Integer
Private Result As CResult
Public Sub New(ByRef presult As CResult, Optional ByVal pmIdx As Integer = 0)
Result = presult
MIdx = pmIdx
Mon = "M" & Format(MIdx, "00")
End Sub
ReadOnly Property 발생량() As Decimal
Get
If MIdx = 0 Then '//최종합계는 저람량을 제하지않는다?
Return Me.난방발생량 + Me.냉방발생량 + Me.급탕발생량 + Me.조명발생량 + Me.환기발생량
Else
Return Me.난방발생량 + Me.냉방발생량 + Me.급탕발생량 + Me.조명발생량 + Me.환기발생량 - Me.저감량태양광 - Me.저감량열병합
End If
End Get
End Property
ReadOnly Property 단위면적() As Decimal
Get '//월구분없음 실제로는 최종합 M00 에만 값이 있다.
Return Me.난방면적 + Me.냉방면적 + Me.급탕면적 + Me.조명면적 + Me.환기면적
End Get
End Property
#Region "난방"
ReadOnly Property 난방발생량() As Decimal
Get
If MIdx = 0 Then
Dim R As Decimal = Me.난방등유 + Me.난방LNG + Me.난방LPG + Me.난방지역 + Me.난방전력
Try
Return R - (Me.저감량열병합 + Me.저감량태양광) / (Me.난방전력 + Me.냉방전력 + Me.조명전력 + Me.환기전력 + Me.급탕전력) * Me.난방전력
Catch ex As Exception
End Try
Else
Return Me.난방등유 + Me.난방LNG + Me.난방LPG + Me.난방지역 + Me.난방전력
End If
End Get
End Property
ReadOnly Property 난방등유() As Decimal
Get
If Me.MIdx = 0 Then
Dim Res As Decimal = 0
For i As Short = 1 To 12
Res += Result.Co2발생량(i).난방등유
Next
Return Res
Else
Return Result.일차E소요량(MIdx).난방등유 * Result.Co2배출계수.등유
End If
End Get
End Property
ReadOnly Property 난방LNG() As Decimal
Get
If Me.MIdx = 0 Then
Dim Res As Decimal = 0
For i As Short = 1 To 12
Res += Result.Co2발생량(i).난방LNG
Next
Return Res
Else
Return Result.일차E소요량(MIdx).난방LNG * Result.Co2배출계수.LNG
End If
End Get
End Property
ReadOnly Property 난방LPG() As Decimal
Get
If Me.MIdx = 0 Then
Dim Res As Decimal = 0
For i As Short = 1 To 12
Res += Result.Co2발생량(i).난방LPG
Next
Return Res
Else
Return Result.일차E소요량(MIdx).난방LPG * Result.Co2배출계수.LPG
End If
End Get
End Property
ReadOnly Property 난방지역() As Decimal
Get
If Me.MIdx = 0 Then
Dim Res As Decimal = 0
For i As Short = 1 To 12
Res += Result.Co2발생량(i).난방지역
Next
Return Res
Else
Return Result.일차E소요량(MIdx).난방지역 * Result.Co2배출계수.지역난방
End If
End Get
End Property
ReadOnly Property 난방전력() As Decimal
Get
If Me.MIdx = 0 Then
Dim Res As Decimal = 0
For i As Short = 1 To 12
Res += Result.Co2발생량(i).난방전력
Next
Return Res
Else
Return Result.일차E소요량(MIdx).난방전력 * Result.Co2배출계수.전력
End If
End Get
End Property
'ReadOnly Property 난방펠렛() As Decimal
' Get
' If Me.MIdx = 0 Then
' Dim Res As Decimal = 0
' For i As Short = 1 To 12
' Res += Result.Co2발생량(i).난방펠렛
' Next
' Return Res
' Else
' Return Result.일차E소요량(MIdx).난방펠렛 * Result.Co2배출계수.펠렛
' End If
' End Get
'End Property
ReadOnly Property 난방면적() As Decimal
Get
If Result.사용면적.H = 0 Then
Return 0
Else
Return Me.난방발생량 / Result.사용면적.H
End If
End Get
End Property
#End Region
ReadOnly Property 냉방발생량() As Decimal
Get
Dim R As Decimal = Me.냉방등유 + Me.냉방LNG + Me.냉방LPG + Me.냉방지역난방열 + Me.냉방지역냉방열 + Me.냉방전력
If MIdx = 0 Then
Try
Return R - (Me.저감량열병합 + Me.저감량태양광) / (Me.난방전력 + Me.냉방전력 + Me.조명전력 + Me.환기전력 + Me.급탕전력) * Me.냉방전력
Catch ex As Exception
End Try
Else
Return R
End If
End Get
End Property
ReadOnly Property 냉방등유() As Decimal
Get
If Me.MIdx = 0 Then
Dim Res As Decimal = 0
For i As Short = 1 To 12
Res += Result.Co2발생량(i).냉방등유
Next
Return Res
Else
Return Result.일차E소요량(MIdx).냉방등유 * Result.Co2배출계수.등유
End If
End Get
End Property
ReadOnly Property 냉방LNG() As Decimal
Get
If Me.MIdx = 0 Then
Dim Res As Decimal = 0
For i As Short = 1 To 12
Res += Result.Co2발생량(i).냉방LNG
Next
Return Res
Else
Return Result.일차E소요량(MIdx).냉방LNG * Result.Co2배출계수.LNG
End If
End Get
End Property
'ReadOnly Property 냉방펠렛() As Decimal
' Get
' If Me.MIdx = 0 Then
' Dim Res As Decimal = 0
' For i As Short = 1 To 12
' Res += Result.Co2발생량(i).냉방펠렛
' Next
' Return Res
' Else
' Return Result.일차E소요량(MIdx).냉방펠렛 * Result.Co2배출계수.펠렛
' End If
' End Get
'End Property
ReadOnly Property 냉방LPG() As Decimal
Get
If Me.MIdx = 0 Then
Dim Res As Decimal = 0
For i As Short = 1 To 12
Res += Result.Co2발생량(i).냉방LPG
Next
Return Res
Else
Return Result.일차E소요량(MIdx).냉방LPG * Result.Co2배출계수.LPG
End If
End Get
End Property
ReadOnly Property 냉방지역난방열() As Decimal
Get
If Me.MIdx = 0 Then
Dim Res As Decimal = 0
For i As Short = 1 To 12
Res += Result.Co2발생량(i).냉방지역난방열
Next
Return Res
Else
Return Result.일차E소요량(MIdx).냉방지역난방열 * Result.Co2배출계수.지역난방
End If
End Get
End Property
ReadOnly Property 냉방지역냉방열() As Decimal
Get
If Me.MIdx = 0 Then
Dim Res As Decimal = 0
For i As Short = 1 To 12
Res += Result.Co2발생량(i).냉방지역냉방열
Next
Return Res
Else
Return Result.일차E소요량(MIdx).냉방지역냉방열 * Result.Co2배출계수.지역냉방
End If
End Get
End Property
ReadOnly Property 냉방전력() As Decimal
Get
If Me.MIdx = 0 Then
Dim Res As Decimal = 0
For i As Short = 1 To 12
Res += Result.Co2발생량(i).냉방전력
Next
Return Res
Else
Return Result.일차E소요량(MIdx).냉방전력 * Result.Co2배출계수.전력
End If
End Get
End Property
ReadOnly Property 냉방면적() As Decimal
Get
If Result.사용면적.C = 0 Then
Return 0
Else
Return Me.냉방발생량 / Result.사용면적.C
End If
End Get
End Property
ReadOnly Property 급탕발생량() As Decimal
Get
If MIdx = 0 Then
Dim R As Decimal = Me.급탕등유 + Me.급탕LNG + Me.급탕LPG + Me.급탕지역 + Me.급탕전력
Try
Return R - (Me.저감량열병합 + Me.저감량태양광) / (Me.난방전력 + Me.냉방전력 + Me.조명전력 + Me.환기전력 + Me.급탕전력) * Me.급탕전력
Catch ex As Exception
End Try
Else
Return Me.급탕등유 + Me.급탕LNG + Me.급탕LPG + Me.급탕지역 + Me.급탕전력
End If
End Get
End Property
ReadOnly Property 급탕등유() As Decimal
Get
If Me.MIdx = 0 Then
Dim Res As Decimal = 0
For i As Short = 1 To 12
Res += Result.Co2발생량(i).급탕등유
Next
Return Res
Else
Return Result.일차E소요량(MIdx).급탕등유 * Result.Co2배출계수.등유
End If
End Get
End Property
'ReadOnly Property 급탕펠렛() As Decimal
' Get
' If Me.MIdx = 0 Then
' Dim Res As Decimal = 0
' For i As Short = 1 To 12
' Res += Result.Co2발생량(i).급탕펠렛
' Next
' Return Res
' Else
' Return Result.일차E소요량(MIdx).급탕펠렛 * Result.Co2배출계수.펠렛
' End If
' End Get
'End Property
ReadOnly Property 급탕LNG() As Decimal
Get
If Me.MIdx = 0 Then
Dim Res As Decimal = 0
For i As Short = 1 To 12
Res += Result.Co2발생량(i).급탕LNG
Next
Return Res
Else
Return Result.일차E소요량(MIdx).급탕LNG * Result.Co2배출계수.LNG
End If
End Get
End Property
ReadOnly Property 급탕LPG() As Decimal
Get
If Me.MIdx = 0 Then
Dim Res As Decimal = 0
For i As Short = 1 To 12
Res += Result.Co2발생량(i).급탕LPG
Next
Return Res
Else
Return Result.일차E소요량(MIdx).급탕LPG * Result.Co2배출계수.LPG
End If
End Get
End Property
ReadOnly Property 급탕지역() As Decimal
Get
If Me.MIdx = 0 Then
Dim Res As Decimal = 0
For i As Short = 1 To 12
Res += Result.Co2발생량(i).급탕지역
Next
Return Res
Else
Return Result.일차E소요량(MIdx).급탕지역 * Result.Co2배출계수.지역난방
End If
End Get
End Property
ReadOnly Property 급탕전력() As Decimal
Get
If Me.MIdx = 0 Then
Dim Res As Decimal = 0
For i As Short = 1 To 12
Res += Result.Co2발생량(i).급탕전력
Next
Return Res
Else
Return Result.일차E소요량(MIdx).급탕전력 * Result.Co2배출계수.전력
End If
End Get
End Property
ReadOnly Property 급탕면적() As Decimal
Get
If Result.사용면적.W = 0 Then
Return 0
Else
Return Me.급탕발생량 / Result.사용면적.W
End If
End Get
End Property
ReadOnly Property 조명발생량() As Decimal
Get
If MIdx = 0 Then
Dim R As Decimal = Me.조명전력
Try
Return R - (Me.저감량열병합 + Me.저감량태양광) / (Me.난방전력 + Me.냉방전력 + Me.조명전력 + Me.환기전력 + Me.급탕전력) * Me.조명전력
Catch ex As Exception
End Try
Else
Return Me.조명전력
End If
End Get
End Property
ReadOnly Property 조명전력() As Decimal
Get
If Me.MIdx = 0 Then
Dim Res As Decimal = 0
For i As Short = 1 To 12
Res += Result.Co2발생량(i).조명전력
Next
Return Res
Else
Return Result.일차E소요량(MIdx).조명전력 * Result.Co2배출계수.전력
End If
End Get
End Property
ReadOnly Property 조명면적() As Decimal
Get
If Result.사용면적.L = 0 Then
Return 0
Else
Return Me.조명발생량 / Result.사용면적.L
End If
End Get
End Property
ReadOnly Property 환기발생량() As Decimal
Get
If MIdx = 0 Then
Dim R As Decimal = Me.환기전력
Try
Return R - (Me.저감량열병합 + Me.저감량태양광) / (Me.난방전력 + Me.냉방전력 + Me.조명전력 + Me.환기전력 + Me.급탕전력) * Me.환기전력
Catch ex As Exception
End Try
Else
Return Me.환기전력
End If
End Get
End Property
ReadOnly Property 환기전력() As Decimal
Get
If Me.MIdx = 0 Then
Dim Res As Decimal = 0
For i As Short = 1 To 12
Res += Result.Co2발생량(i).환기전력
Next
Return Res
Else
Return Result.일차E소요량(MIdx).환기전력 * Result.Co2배출계수.전력
End If
End Get
End Property
ReadOnly Property 환기면적() As Decimal
Get
If Result.사용면적.V = 0 Then
Return 0
Else
Return Me.환기발생량 / Result.사용면적.V
End If
End Get
End Property
ReadOnly Property 저감량태양광() As Decimal
Get
If Me.MIdx = 0 Then
Dim Res As Decimal = 0
For i As Short = 1 To 12
Res += Result.Co2발생량(i).저감량태양광
Next
Return Res
Else
Return Result.생산E(MIdx).태양광전력생산량 * Result.Co2배출계수.전력
End If
End Get
End Property
ReadOnly Property 저감량열병합() As Decimal
Get
If Me.MIdx = 0 Then
Dim Res As Decimal = 0
For i As Short = 1 To 12
Res += Result.Co2발생량(i).저감량열병합
Next
Return Res
Else
Return Result.생산E(MIdx).열병합전력생산량 * Result.Co2배출계수.전력
End If
End Get
End Property
End Class

View File

@@ -0,0 +1,48 @@
Public Class CResult
Public Zones As CZones
Public E요구량(12) As C에너지요구량
Public E소요량(12) As C에너지소요량
Public 일차E소요량(12) As C1차소요량
Public 생산E(12) As C생산에너지
Public Co2발생량(12) As CCo2발생량
Public E분석(12) As C에너지분석 '//여기는 유일하게 0번 인덱스를 쓸수없다
Public Co2배출계수 As CCo2배출계수
Public E변환계수 As C1차에너지변환계수
Public 사용면적 As C사용면적
Public 최대부하 As C최대냉난방부하
Private DSETR As DSR
Private DSET As DS
Public Sub New(ByRef pds As DS, ByRef pdsetr As DSR)
DSET = pds
DSETR = pdsetr
'//공용
Co2배출계수 = New CCo2배출계수
E변환계수 = New C1차에너지변환계수
'//단일
사용면적 = New C사용면적(DSET, DSETR, Me)
최대부하 = New C최대냉난방부하(DSETR)
'//서브추가항목
Zones = New CZones(DSET, DSETR, Me)
'//월별로 들어가는 배열항목
For i As Integer = 0 To 12
Me.E요구량(i) = New C에너지요구량(Me, i)
Me.E소요량(i) = New C에너지소요량(DSETR, Me, i)
Me.일차E소요량(i) = New C1차소요량(DSETR, Me, i)
Me.생산E(i) = New C생산에너지(DSETR, Me, i)
Me.Co2발생량(i) = New CCo2발생량(Me, i)
Me.E분석(i) = New C에너지분석(DSETR, Me, i)
Next
End Sub
End Class

View File

@@ -0,0 +1,71 @@
''' <summary>
''' 각존의 데이터를 참조한다
''' </summary>
Public Class CZones
Dim ErrMsg As String = "최대냉난방부하가 계산되지 않았습니다"
Public Items() As Citem
Private DSET As DS
Private DSETR As DSR
Private Result As CResult
Public Sub New(ByRef pds As DS, ByRef pdsetr As DSR, ByRef presult As CResult) '//존은초기화값을 가지고 생성한다.
DSET = pds
DSETR = pdsetr
Result = presult
ReDim Items(Me.CountR) '//결과내의 존을 초기화한다.
Dim idx As Integer = 0
For Each It As DSR.최대냉난방부하Row In DSETR.최대냉난방부하.Select("zone<>'00'")
Items(idx) = New Citem(DSET, DSETR, Result, idx, It.Zone)
idx += 1
Next
'//해당존의 코드값을 가지고 결과가 게산되어있따.
End Sub
Public Function Count() As Integer
Return DSET.tbl_zone.Rows.Count '//현재 시스템의 존 카운터를 반환
End Function
Public Function CountR() As Integer
Return DSETR.최대냉난방부하.Select("zone<>'00'").GetUpperBound(0) + 1 '//계산결과내의 존의 갯수를 반환
End Function
Public Class Citem
Public Index As Integer
Public Code As String
Public 최대냉난방부하 As C최대냉난방부하.Citem
Public 월에너지분석(11) As C에너지분석 '//이존의 12달의 내역을 참조한다.
Private DSETR As DSR
Private DSET As DS
Private Result As CResult
Public Sub New(ByRef pds As DS, ByRef pdsetr As DSR, ByRef presult As CResult, ByVal pidx As Integer, ByVal pcode As String)
DSET = pds
DSETR = pdsetr
Result = presult
Me.Index = pidx
Me.Code = pcode
최대냉난방부하 = New C최대냉난방부하.Citem(DSETR, pcode)
Dim Idx As Integer = 0
For Each DR As C에너지분석 In Me.월에너지분석
DR = New C에너지분석(DSETR, Result, Idx, pcode)
Idx += 1
Next
End Sub
Public Function Name() As String
Dim dR() As DataRow = DSET.tbl_zone.Select("code='" & Me.Code & "'")
If dR.GetUpperBound(0) = -1 Then
Return "존재하지않는 Zone 입니다"
Else
Return dR(0)("설명").ToString
End If
End Function
Public Function Row() As DS.tbl_zoneRow
Dim dR() As DS.tbl_zoneRow = CType(DSET.tbl_zone.Select("code='" & Me.Code & "'"), DS.tbl_zoneRow())
If dR.GetUpperBound(0) = -1 Then
Return Nothing
Else
Return dR(0)
End If
End Function
End Class
End Class

View File

@@ -0,0 +1,75 @@
Public Class CCo2배출계수
Public Sub New()
End Sub
ReadOnly Property 등유() As Decimal
Get
Return 0.259
End Get
End Property
ReadOnly Property LNG() As Decimal
Get
Return 0.202
End Get
End Property
ReadOnly Property LPG() As Decimal
Get
Return 0.227
End Get
End Property
'ReadOnly Property 펠렛() As Decimal
' Get
' Return 0.0 '//나중에 지정하세요.
' End Get
'End Property
ReadOnly Property 지역난방() As Decimal
Get
Return 0.164
End Get
End Property
ReadOnly Property 지역냉방() As Decimal
Get
Return 0.14
End Get
End Property
ReadOnly Property 전력() As Decimal
Get
Return 0.4691
End Get
End Property
End Class
Public Class C1차에너지변환계수
Public Sub New()
End Sub
ReadOnly Property 등유() As Decimal
Get
Return 1.1
End Get
End Property
ReadOnly Property LNG() As Decimal
Get
Return 1.1
End Get
End Property
ReadOnly Property LPG() As Decimal
Get
Return 1.1
End Get
End Property
ReadOnly Property 지역난방() As Decimal
Get
Return 0.728
End Get
End Property
ReadOnly Property 지역냉방() As Decimal
Get
Return 0.937
End Get
End Property
ReadOnly Property 전력() As Decimal
Get
Return 2.75
End Get
End Property
End Class

View File

@@ -0,0 +1,412 @@
''' <summary>
''' 전체존의 사용면적을 계산및 확인(냉,난,조,급,환)
''' </summary>
''' <remarks>전체존의 사용면적을 계산및 확인(냉,난,조,급,환)</remarks>
Public Class C사용면적
''' <summary>
''' 난방
''' </summary>
''' <remarks>난방</remarks>
Property H() As Decimal
Get
If DSETR.사용면적.Rows.Count = 0 Then
LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
Return 0
Else
Return TOSG(DSETR.사용면적(0)("H"))
End If
End Get
Set(ByVal value As Decimal)
If DSETR.사용면적.Rows.Count = 0 Then
LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
Else
DSETR.사용면적(0)("H") = value
End If
End Set
End Property
''' <summary>
''' 냉방
''' </summary>
''' <remarks>냉방</remarks>
Property C() As Decimal
Get
If DSETR.사용면적.Rows.Count = 0 Then
LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
Return 0
Else
Return TOSG(DSETR.사용면적(0)("C"))
End If
End Get
Set(ByVal value As Decimal)
If DSETR.사용면적.Rows.Count = 0 Then
LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
Else
DSETR.사용면적(0)("C") = value
End If
End Set
End Property
''' <summary>
''' 조명
''' </summary>
''' <remarks>조명</remarks>
Property L() As Decimal
Get
If DSETR.사용면적.Rows.Count = 0 Then
LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
Return 0
Else
Return TOSG(DSETR.사용면적(0)("L"))
End If
End Get
Set(ByVal value As Decimal)
If DSETR.사용면적.Rows.Count = 0 Then
LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
Else
DSETR.사용면적(0)("L") = value
End If
End Set
End Property
''' <summary>
''' 급탕
''' </summary>
''' <remarks>급탕</remarks>
Property W() As Decimal
Get
If DSETR.사용면적.Rows.Count = 0 Then
LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
Return 0
Else
Return TOSG(DSETR.사용면적(0)("W"))
End If
End Get
Set(ByVal value As Decimal)
If DSETR.사용면적.Rows.Count = 0 Then
LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
Else
DSETR.사용면적(0)("W") = value
End If
End Set
End Property
''' <summary>
''' 환기
''' </summary>
''' <remarks>환기</remarks>
Property V() As Decimal
Get
If DSETR.사용면적.Rows.Count = 0 Then
LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
Return 0
Else
Return TOSG(DSETR.사용면적(0)("V"))
End If
End Get
Set(ByVal value As Decimal)
If DSETR.사용면적.Rows.Count = 0 Then
LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
Else
DSETR.사용면적(0)("V") = value
End If
End Set
End Property
''' <summary>
''' 난방_WF
''' </summary>
''' <remarks>난방</remarks>
Property H_WF() As Decimal
Get
If DSETR.사용면적.Rows.Count = 0 Then
LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
Return 0
Else
Return TOSG(DSETR.사용면적(0)("H_WF"))
End If
End Get
Set(ByVal value As Decimal)
If DSETR.사용면적.Rows.Count = 0 Then
LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
Else
DSETR.사용면적(0)("H_WF") = value
End If
End Set
End Property
''' <summary>
''' 냉방_WF
''' </summary>
''' <remarks>냉방</remarks>
Property C_WF() As Decimal
Get
If DSETR.사용면적.Rows.Count = 0 Then
LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
Return 0
Else
Return TOSG(DSETR.사용면적(0)("C_WF"))
End If
End Get
Set(ByVal value As Decimal)
If DSETR.사용면적.Rows.Count = 0 Then
LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
Else
DSETR.사용면적(0)("C_WF") = value
End If
End Set
End Property
''' <summary>
''' 조명_WF
''' </summary>
''' <remarks>조명</remarks>
Property L_WF() As Decimal
Get
If DSETR.사용면적.Rows.Count = 0 Then
LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
Return 0
Else
Return TOSG(DSETR.사용면적(0)("L_WF"))
End If
End Get
Set(ByVal value As Decimal)
If DSETR.사용면적.Rows.Count = 0 Then
LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
Else
DSETR.사용면적(0)("L_WF") = value
End If
End Set
End Property
''' <summary>
''' 급탕_WF
''' </summary>
''' <remarks>급탕</remarks>
Property W_WF() As Decimal
Get
If DSETR.사용면적.Rows.Count = 0 Then
LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
Return 0
Else
Return TOSG(DSETR.사용면적(0)("W_WF"))
End If
End Get
Set(ByVal value As Decimal)
If DSETR.사용면적.Rows.Count = 0 Then
LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
Else
DSETR.사용면적(0)("W_WF") = value
End If
End Set
End Property
''' <summary>
''' 환기_WF
''' </summary>
''' <remarks>환기</remarks>
Property V_WF() As Decimal
Get
If DSETR.사용면적.Rows.Count = 0 Then
LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
Return 0
Else
Return TOSG(DSETR.사용면적(0)("V_WF"))
End If
End Get
Set(ByVal value As Decimal)
If DSETR.사용면적.Rows.Count = 0 Then
LogSB.AppendLine("사용면적이 계산되지않았습니다" & vbCrLf & "값을 가져올 수 없습니다")
Else
DSETR.사용면적(0)("V_WF") = value
End If
End Set
End Property
Public Overridable Sub Calc()
pLog.Add(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
pLog.Add(">> C사용면적.Calc")
pLog.Add(">>>>>>>>>>>>>>>>>>>>>>>>>>>>>")
Dim A_H As Decimal = 0
Dim A_C As Decimal = 0
Dim A_L As Decimal = 0
Dim A_W As Decimal = 0
Dim A_V As Decimal = 0
'//용도별 면적가중치(wf) 추가 '2012.07.01
Dim A_H_wf As Decimal = 0
Dim A_C_wf As Decimal = 0
Dim A_L_wf As Decimal = 0
Dim A_W_wf As Decimal = 0
Dim A_V_wf As Decimal = 0
Dim day_year As Decimal
'//'2012.07.01
If DSETR.사용면적.Rows.Count = 0 Then '//데결과가 없으면 신규줄을 기록한다.
Dim Dr As DSR.사용면적Row = DSETR.사용면적.New사용면적Row
Dr.H = 0 : Dr.C = 0 : Dr.L = 0 : Dr.W = 0 : Dr.V = 0
DSETR.사용면적.Add사용면적Row(Dr)
DSETR.AcceptChanges()
End If
'//건물용도
Dim 건물용도 As Integer = CInt(DSET.tbl_Desc.Rows(0)("isjugo"))
'//A_H,C,W,L,V 의 누적값을 계산(사용면적) '//모든존을 대상으로
For Each Dr존 As DS.tbl_zoneRow In DSET.tbl_zone.Select("code<>'0'", "code")
Dim Dr프로필 As DS.tbl_profileRow = CType(DSET.tbl_profile.Select("code='" & Dr존.프로필 & "'")(0), DS.tbl_profileRow)
Dim offset As Integer = 1
If Dr프로필.code = "0016" Then
If Dr존.조명부하산출방법 = "입력치" Then
If Dr존.조명에너지부하율입력치 > 10 Then
offset = ((Dr존.조명에너지부하율입력치 - 10) * 0.4 + 10) / Dr존.조명에너지부하율입력치
End If
ElseIf Dr존.조명부하산출방법 = "계산치" Then
If Dr존.조명에너지부하율계산치 > 10 Then
offset = ((Dr존.조명에너지부하율계산치 - 10) * 0.4 + 10) / Dr존.조명에너지부하율계산치
End If
End If
End If
pLog.Add(String.Format(">> Zone({0})Row Offset={1}", Dr존.code, offset))
'//냉난방(HC) 이거나 난방(H)일경우 난방면적 누적
If Dr존.냉난방방식.IndexOf("") <> -1 OrElse Dr존.냉난방공조.IndexOf("") <> -1 Then
A_H += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수)
If 건물용도 < 10 Then '//주거일경우에
'//연
A_H_wf = A_H
Else
day_year = TOSG(Dr프로필.day01) + TOSG(Dr프로필.day02) + TOSG(Dr프로필.day03) + TOSG(Dr프로필.day04) + TOSG(Dr프로필.day05) + TOSG(Dr프로필.day06) + TOSG(Dr프로필.day07) + TOSG(Dr프로필.day08) + TOSG(Dr프로필.day09) + TOSG(Dr프로필.day10) + TOSG(Dr프로필.day11) + TOSG(Dr프로필.day12)
'A_H_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * (TOSG(Dr프로필.일일운전시간) * Math.Round(day_year / (11 * 250), 3))
A_H_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)), 3)
'If Dr프로필.code <> "0010" Then
' A_H_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)), 3)
'Else
' A_H_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)) / (0.583 / 0.314), 3) '//전산실 용도에 따른 난방 가중치 적용
'End If
End If
pLog.Add(String.Format(">> Zone({0})Row A_H_wf={1}", Dr존.code, A_H_wf))
End If
'//냉난방(hC) 이거나 냉방(C)일경우 냉방면적 누적
If Dr존.냉난방방식.IndexOf("") <> -1 OrElse Dr존.냉난방공조.IndexOf("") <> -1 Then
A_C += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수)
If 건물용도 < 10 Then
A_C_wf = A_C
Else
day_year = TOSG(Dr프로필.day01) + TOSG(Dr프로필.day02) + TOSG(Dr프로필.day03) + TOSG(Dr프로필.day04) + TOSG(Dr프로필.day05) + TOSG(Dr프로필.day06) + TOSG(Dr프로필.day07) + TOSG(Dr프로필.day08) + TOSG(Dr프로필.day09) + TOSG(Dr프로필.day10) + TOSG(Dr프로필.day11) + TOSG(Dr프로필.day12)
'A_C_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * (TOSG(Dr프로필.일일운전시간) * Math.Round(day_year / (11 * 250), 3))
A_C_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)), 3)
'If Dr프로필.code <> "0010" Then
' A_C_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)), 3)
'Else
' A_C_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)) / (0.045 / 0.314), 3) '//전산실 용도에 따른 냉방 가중치 적용
'End If
End If
pLog.Add(String.Format(">> Zone({0})Row A_C={1},A_C_wf={2}", Dr존.code, A_C, A_C_wf))
End If
'//급탕요구량이 있다면 급탕면적 누적
If TOSG(Dr프로필.일일급탕요구량) > 0 Then
A_W += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수)
If 건물용도 < 10 Then
A_W_wf = A_W
Else
day_year = TOSG(Dr프로필.day01) + TOSG(Dr프로필.day02) + TOSG(Dr프로필.day03) + TOSG(Dr프로필.day04) + TOSG(Dr프로필.day05) + TOSG(Dr프로필.day06) + TOSG(Dr프로필.day07) + TOSG(Dr프로필.day08) + TOSG(Dr프로필.day09) + TOSG(Dr프로필.day10) + TOSG(Dr프로필.day11) + TOSG(Dr프로필.day12)
'A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * (TOSG(Dr프로필.일일급탕요구량) * Math.Round(day_year / (30 * 250), 3)) 160211 소수점오류인한 수정
A_W_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일급탕요구량) * (day_year / (30 * 250)), 3)
End If
pLog.Add(String.Format(">> Zone({0})Row A_W={1},A_W_wf={2}", Dr존.code, A_W, A_W_wf))
End If
'//조명의 에너지부하율값이 있으면 조명면적 누적
If Dr존.조명에너지부하율계산치 <> "0" OrElse Dr존.조명에너지부하율입력치 <> "0" Then
A_L += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수)
If 건물용도 < 10 Then
'//가스를쓰는 난방 급탕은 계가 발생
A_L_wf = A_L
Else
day_year = TOSG(Dr프로필.day01) + TOSG(Dr프로필.day02) + TOSG(Dr프로필.day03) + TOSG(Dr프로필.day04) + TOSG(Dr프로필.day05) + TOSG(Dr프로필.day06) + TOSG(Dr프로필.day07) + TOSG(Dr프로필.day08) + TOSG(Dr프로필.day09) + TOSG(Dr프로필.day10) + TOSG(Dr프로필.day11) + TOSG(Dr프로필.day12)
'A_L_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * (TOSG(Dr프로필.일일사용시간) * Math.Round(day_year / (9 * 250), 3) * offset)
A_L_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일사용시간) * (day_year / (9 * 250)), 3) * offset
End If
pLog.Add(String.Format(">> Zone({0})Row A_L={1},A_L_wf={2}", Dr존.code, A_L, A_L_wf))
End If
'//냉난방공조를 사용하고있다면 환기면적 누적(ZZ:기능없음)
If (Dr존.냉난방공조 <> "기능없음") Then
A_V += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수)
If 건물용도 < 10 Then
A_V_wf = A_V
Else
day_year = TOSG(Dr프로필.day01) + TOSG(Dr프로필.day02) + TOSG(Dr프로필.day03) + TOSG(Dr프로필.day04) + TOSG(Dr프로필.day05) + TOSG(Dr프로필.day06) + TOSG(Dr프로필.day07) + TOSG(Dr프로필.day08) + TOSG(Dr프로필.day09) + TOSG(Dr프로필.day10) + TOSG(Dr프로필.day11) + TOSG(Dr프로필.day12)
'A_V_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * (TOSG(Dr프로필.일일운전시간) * Math.Round(day_year / (11 * 250), 3))
A_V_wf += TOSG(Dr존.면적) * TOSG(Dr존.입력존의수) * Math.Round(TOSG(Dr프로필.일일운전시간) * (day_year / (11 * 250)), 3)
End If
pLog.Add(String.Format(">> Zone({0})Row A_V={1},A_V_wf={2}", Dr존.code, A_V, A_V_wf))
End If
Next
'//저장소에 보관한다.
'//가중치 없는 사용면적
Result.사용면적.H = A_H
Result.사용면적.C = A_C
Result.사용면적.L = A_L
Result.사용면적.W = A_W
Result.사용면적.V = A_V
pLog.Add("C사용면적.CALC 결과 : 가중치없음")
pLog.Add(String.Format("H={0},C={1},L={2},W={3},V={4}", A_H, A_C, A_L, A_W, A_V))
'// 가중치 있는 사용면적 '2013.07.01
Result.사용면적.H_WF = A_H_wf
Result.사용면적.C_WF = A_C_wf
Result.사용면적.L_WF = A_L_wf
Result.사용면적.W_WF = A_W_wf
Result.사용면적.V_WF = A_V_wf
pLog.Add("C사용면적.CALC 결과 : 가중치적용")
pLog.Add(String.Format("H_wf={0},C_wf={1},L_wf={2},W_wf={3},V_wf={4}", A_H_wf, A_C_wf, A_L_wf, A_W_wf, A_V_wf))
End Sub
Private DSETR As DSR
Private Result As CResult
Private DSET As DS
Public Sub New(ByRef pds As DS, ByRef pdsetr As DSR, ByRef presult As CResult)
If Not pLog Is Nothing Then
pLog.Add("New C사용면적", True)
End If
DSET = pds
DSETR = pdsetr
Result = presult
End Sub
End Class

View File

@@ -0,0 +1,272 @@
'// 0월합계에대한 처리는 하였음
'// 완료일자 : 2010-03-08
Public Class C생산에너지
Public Mon As String
Private MIdx As Integer
Private ErrMsg As String = "에너지소요량 계산되지 않았습니다"
'Public Sub Calc_Summary()
' '//
' If MIdx <> 0 Then
' MsgBox("계산식은 0번 합계배열만 가능합니다")
' Return
' End If
' Dim I1 as decimal = 0
' Dim I2 as decimal = 0
' Dim I3 as decimal = 0
' Dim I4 as decimal = 0
' Dim I5 as decimal = 0
' Dim I6 as decimal = 0
' For i As Integer = 1 To 12
' '//12월을 다더해서 0번열에 기록한다.
' I1 += Result.생산E(i).태양광전력생산량
' I2 += Result.생산E(i).열병합전력생산량
' I3 += Result.생산E(i).태양열생산량
' I4 += Result.생산E(i).지열생산량
' I5 += Result.생산E(i).면적당생산량태양열
' I6 += Result.생산E(i).면적당생산량지열
' Next
' Me.태양광전력생산량 = I1
' Me.열병합전력생산량 = I2
' Me.태양열생산량 = I3
' Me.지열생산량 = I4
' Me.면적당생산량태양열 = I5
' Me.면적당생산량지열 = I6
'End Sub
Private DSETR As DSR
Private Result As CResult
Public Sub New(ByRef pdsetr As DSR, ByRef presult As CResult, Optional ByVal pmIdx As Integer = 0)
DSETR = pdsetr
Result = presult
MIdx = pmIdx
Mon = "M" & Format(MIdx, "00")
End Sub
Property 태양광전력생산량() As Decimal
Get
Dim DR() As DSR.생산에너지Row = CType(DSETR.생산에너지.Select("mon='" & Mon & "'"), DSR.생산에너지Row())
If DR.GetUpperBound(0) = -1 Then
'MsgBox(ErrMsg)
Return 0
Else
If MIdx = 0 Then '//0월이면 모든월의 합계를 반환한다.
Dim Res As Decimal = 0
For i As Short = 1 To 12
Res += Result.생산E(i).태양광전력생산량
Next
Return Res
Else
Return TOSG(DR(0)("전력태양광"))
End If
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.생산에너지Row = CType(DSETR.생산에너지.Select("mon='" & Mon & "'"), DSR.생산에너지Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Else
' MsgBox("태양광기록(" & Mon & ")")
DR(0)("전력태양광") = value
End If
End Set
End Property
Property 열병합전력생산량() As Decimal
Get
Dim DR() As DSR.생산에너지Row = CType(DSETR.생산에너지.Select("mon='" & Mon & "'"), DSR.생산에너지Row())
If DR.GetUpperBound(0) = -1 Then
'MsgBox(ErrMsg)
Return 0
Else
If MIdx = 0 Then '//0월이면 모든월의 합계를 반환한다.
Dim Res As Decimal = 0
For i As Short = 1 To 12
Res += Result.생산E(i).열병합전력생산량
Next
Return Res
Else
Return TOSG(DR(0)("전력열병합"))
End If
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.생산에너지Row = CType(DSETR.생산에너지.Select("mon='" & Mon & "'"), DSR.생산에너지Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Else
DR(0)("전력열병합") = value
End If
End Set
End Property
Property 신재생열병합전력생산량() As Decimal
Get
Dim DR() As DSR.생산에너지Row = CType(DSETR.생산에너지.Select("mon='" & Mon & "'"), DSR.생산에너지Row())
If DR.GetUpperBound(0) = -1 Then
'MsgBox(ErrMsg)
Return 0
Else
If MIdx = 0 Then '//0월이면 모든월의 합계를 반환한다.
Dim Res As Decimal = 0
For i As Short = 1 To 12
Res += Result.생산E(i).신재생열병합전력생산량
Next
Return Res
Else
Return TOSG(DR(0)("신재생열병합전력생산량"))
End If
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.생산에너지Row = CType(DSETR.생산에너지.Select("mon='" & Mon & "'"), DSR.생산에너지Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Else
DR(0)("신재생열병합전력생산량") = value
End If
End Set
End Property
Property 신재생면적당열생산량() As Decimal
Get
Dim DR() As DSR.생산에너지Row = CType(DSETR.생산에너지.Select("mon='" & Mon & "'"), DSR.생산에너지Row())
If DR.GetUpperBound(0) = -1 Then
'MsgBox(ErrMsg)
Return 0
Else
If MIdx = 0 Then '//0월이면 모든월의 합계를 반환한다.
Dim Res As Decimal = 0
For i As Short = 1 To 12
Res += Result.생산E(i).신재생면적당열생산량
Next
Return Res
Else
Return TOSG(DR(0)("신재생면적당열생산량"))
End If
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.생산에너지Row = CType(DSETR.생산에너지.Select("mon='" & Mon & "'"), DSR.생산에너지Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Else
DR(0)("신재생면적당열생산량") = value
End If
End Set
End Property
Property 태양열생산량() As Decimal
Get
Dim DR() As DSR.생산에너지Row = CType(DSETR.생산에너지.Select("mon='" & Mon & "'"), DSR.생산에너지Row())
If DR.GetUpperBound(0) = -1 Then
'MsgBox(ErrMsg)
Return 0
Else
If MIdx = 0 Then '//0월이면 모든월의 합계를 반환한다.
Dim Res As Decimal = 0
For i As Short = 1 To 12
Res += Result.생산E(i).태양열생산량
Next
Return Res
Else
Return TOSG(DR(0)("생산량태양열"))
End If
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.생산에너지Row = CType(DSETR.생산에너지.Select("mon='" & Mon & "'"), DSR.생산에너지Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Else
DR(0)("생산량태양열") = value
End If
End Set
End Property
Property 지열생산량() As Decimal
Get
Dim DR() As DSR.생산에너지Row = CType(DSETR.생산에너지.Select("mon='" & Mon & "'"), DSR.생산에너지Row())
If DR.GetUpperBound(0) = -1 Then
'MsgBox(ErrMsg)
Return 0
Else
If MIdx = 0 Then '//0월이면 모든월의 합계를 반환한다.
Dim Res As Decimal = 0
For i As Short = 1 To 12
Res += Result.생산E(i).지열생산량
Next
Return Res
Else
Return TOSG(DR(0)("생산량지열"))
End If
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.생산에너지Row = CType(DSETR.생산에너지.Select("mon='" & Mon & "'"), DSR.생산에너지Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Else
DR(0)("생산량지열") = value
End If
End Set
End Property
Property 면적당생산량태양열() As Decimal
Get
Dim DR() As DSR.생산에너지Row = CType(DSETR.생산에너지.Select("mon='" & Mon & "'"), DSR.생산에너지Row())
If DR.GetUpperBound(0) = -1 Then
'MsgBox(ErrMsg)
Return 0
Else
If MIdx = 0 Then '//0월이면 모든월의 합계를 반환한다.
Dim Res As Decimal = 0
For i As Short = 1 To 12
Res += Result.생산E(i).면적당생산량태양열
Next
Return Res
Else
Return TOSG(DR(0)("면적당생산량태양열"))
End If
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.생산에너지Row = CType(DSETR.생산에너지.Select("mon='" & Mon & "'"), DSR.생산에너지Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Else
DR(0)("면적당생산량태양열") = value
End If
End Set
End Property
Property 면적당생산량지열() As Decimal
Get
Dim DR() As DSR.생산에너지Row = CType(DSETR.생산에너지.Select("mon='" & Mon & "'"), DSR.생산에너지Row())
If DR.GetUpperBound(0) = -1 Then
'MsgBox(ErrMsg)
Return 0
Else
If MIdx = 0 Then '//0월이면 모든월의 합계를 반환한다.
Dim Res As Decimal = 0
For i As Short = 1 To 12
Res += Result.생산E(i).면적당생산량지열
Next
Return Res
Else
Return TOSG(DR(0)("면적당생산량지열"))
End If
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.생산에너지Row = CType(DSETR.생산에너지.Select("mon='" & Mon & "'"), DSR.생산에너지Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Else
DR(0)("면적당생산량지열") = value
End If
End Set
End Property
End Class

View File

@@ -0,0 +1,355 @@
Public Class C에너지분석
Public ZZone As String
Public Mon As String
Private ErrMsg As String = "월에너지분석이 계산되지 않았습니다"
Private DSETR As DSR
Private Result As CResult
Public Sub New(ByRef pdsetr As DSR, ByRef presult As CResult, ByVal mIdx As Integer, Optional ByVal pZone As String = "00")
DSETR = pdsetr
Result = presult
Me.ZZone = pZone
Mon = "M" & Format(mIdx, "00")
End Sub
ReadOnly Property 에너지요구량(Optional ByVal Zone As String = "00") As Decimal
Get
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "에너지요구량")
Return 0
Else
Return 난방에너지요구량열(CStr(IIf(Zone <> "00", Zone, ZZone))) + _
난방에너지요구량공조환기(CStr(IIf(Zone <> "00", Zone, ZZone))) + _
냉방에너지요구량열(CStr(IIf(Zone <> "00", Zone, ZZone))) + _
냉방에너지요구량공조환기(CStr(IIf(Zone <> "00", Zone, ZZone))) + _
조명에너지요구량(CStr(IIf(Zone <> "00", Zone, ZZone))) + _
급탕에너지요구량(CStr(IIf(Zone <> "00", Zone, ZZone)))
End If
End Get
End Property
ReadOnly Property 면적당에너지요구량(Optional ByVal Zone As String = "00") As Decimal
Get
Return Me.난방단위면적당요구량 + Me.냉방단위면적당요구량 + Me.조명단위면적당요구량 + Me.급탕단위면적당요구량
End Get
End Property
ReadOnly Property 난방에너지요구량(Optional ByVal Zone As String = "00") As Decimal
Get
Return Me.난방에너지요구량열(IIf(Zone <> "00", Zone, ZZone).ToString) + Me.난방에너지요구량공조환기(IIf(Zone <> "00", Zone, ZZone).ToString)
End Get
End Property
ReadOnly Property 난방단위면적당요구량(Optional ByVal Zone As String = "00") As Decimal
Get
If Result.사용면적.H = 0 Then
Return 0
Else
Return Me.난방에너지요구량 / Result.사용면적.H
End If
' Return Me.난방에너지요구량열(Zone) + Me.난방에너지요구량공조환기(Zone)
End Get
End Property
Property 난방에너지요구량열(Optional ByVal Zone As String = "00") As Decimal
Get
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "난방에너지요구량열")
Return 0
Else
Return TOSG(DR(0)("난방요구량열"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "난방에너지요구량열")
Else
DR(0)("난방요구량열") = value
End If
End Set
End Property
Property 난방에너지요구량공조환기(Optional ByVal Zone As String = "00") As Decimal
Get
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "난방에너지요구량공조환기")
Return 0
Else
Return TOSG(DR(0)("난방요구량공조"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "난방에너지요구량공조환기")
Else
DR(0)("난방요구량공조") = value
End If
End Set
End Property
ReadOnly Property 냉방에너지요구량(Optional ByVal Zone As String = "00") As Decimal
Get
Return Me.냉방에너지요구량열(CStr(IIf(Zone <> "00", Zone, ZZone))) + Me.냉방에너지요구량공조환기(CStr(IIf(Zone <> "00", Zone, ZZone)))
End Get
End Property
ReadOnly Property 냉방단위면적당요구량(Optional ByVal Zone As String = "00") As Decimal
Get
If Result.사용면적.H = 0 Then
Return 0
Else
Return Me.냉방에너지요구량 / Result.사용면적.C
End If
' Return Me.난방에너지요구량열(Zone) + Me.난방에너지요구량공조환기(Zone)
End Get
End Property
Property 냉방에너지요구량열(Optional ByVal Zone As String = "00") As Decimal
Get
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "냉방에너지요구량열")
Return 0
Else
Return TOSG(DR(0)("냉방요구량열"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "냉방에너지요구량열")
Else
DR(0)("냉방요구량열") = value
End If
End Set
End Property
Property 냉방에너지요구량공조환기(Optional ByVal Zone As String = "00") As Decimal
Get
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "냉방에너지요구량공조환기")
Return 0
Else
Return TOSG(DR(0)("냉방요구량공조"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "냉방에너지요구량공조환기")
Else
DR(0)("냉방요구량공조") = value
End If
End Set
End Property
Property 조명에너지요구량(Optional ByVal Zone As String = "00") As Decimal
Get
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "조명에너지요구량")
Return 0
Else
Return TOSG(DR(0)("조명요구량"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "조명에너지요구량")
Else
DR(0)("조명요구량") = value
End If
End Set
End Property
ReadOnly Property 조명단위면적당요구량(Optional ByVal Zone As String = "00") As Decimal
Get
If Result.사용면적.L = 0 Then
Return 0
Else
Return Me.조명에너지요구량 / Result.사용면적.L
End If
' Return Me.난방에너지요구량열(Zone) + Me.난방에너지요구량공조환기(Zone)
End Get
End Property
Property 급탕에너지요구량(Optional ByVal Zone As String = "00") As Decimal
Get
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "급탕요구량")
Return 0
Else
Return TOSG(DR(0)("급탕요구량"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "급탕요구량")
Else
DR(0)("급탕요구량") = value
End If
End Set
End Property
ReadOnly Property 급탕단위면적당요구량(Optional ByVal Zone As String = "00") As Decimal
Get
If Result.사용면적.W = 0 Then
Return 0
Else
Return Me.급탕에너지요구량 / Result.사용면적.W
End If
' Return Me.난방에너지요구량열(Zone) + Me.난방에너지요구량공조환기(Zone)
End Get
End Property
Property 공조풍량(Optional ByVal Zone As String = "00") As Decimal
Get
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "공조풍량")
Return 0
Else
Return TOSG(DR(0)("공조풍량"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "공조풍량")
Else
DR(0)("공조풍량") = value
End If
End Set
End Property
Property 공조에너지요구량난방(Optional ByVal Zone As String = "00") As Decimal
Get
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "공조에너지요구량난방")
Return 0
Else
Return TOSG(DR(0)("공조요구량난방"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg, MsgBoxStyle.Information, "공조에너지요구량난방")
Else
DR(0)("공조요구량난방") = value
End If
End Set
End Property
Property 공조에너지요구량냉방(Optional ByVal Zone As String = "00") As Decimal
Get
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Return 0
Else
Return TOSG(DR(0)("공조요구량냉방"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Else
DR(0)("공조요구량냉방") = value
End If
End Set
End Property
Property 공조에너지요구량가습(Optional ByVal Zone As String = "00") As Decimal
Get
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Return 0
Else
Return TOSG(DR(0)("공조요구량가습"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Else
DR(0)("공조요구량가습") = value
End If
End Set
End Property
Property 환기에너지요구량(Optional ByVal Zone As String = "00") As Decimal
Get
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone = "00", ZZone, Zone).ToString & "'"), DSR.월별에너지분석Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Return 0
Else
Return TOSG(DR(0)("환기요구량"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & IIf(Zone <> "00", Zone, ZZone).ToString & "'"), DSR.월별에너지분석Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Else
DR(0)("환기요구량") = value
End If
End Set
End Property
Public Sub Calc()
'//Zone 이 00일떄만 계산된다
'//여기데이터는 12개가 미리존재한다 그러므로 현재 속한 월말 계산하면된다
'//현재 월 존에해당하는 데이터가없다면 생성해준다.
Dim Drow As DSR.월별에너지분석Row
If DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='00'").GetUpperBound(0) = -1 Then
Drow = DSETR.월별에너지분석.New월별에너지분석Row
Drow. = "00"
Drow. = Mon
DSETR.월별에너지분석.Add월별에너지분석Row(Drow) '//기본줄을 추가함
DSETR.AcceptChanges()
End If
Dim a2, a3, a4, a5, a6, a7, a8, a9, a10, a11, a12 As Decimal
a2 = 0 : a3 = 0 : a4 = 0 : a5 = 0 : a6 = 0
a7 = 0 : a8 = 0 : a9 = 0 : a10 = 0 : a11 = 0 : a12 = 0
For Each Dr As DSR.월별에너지분석Row In DSETR.월별에너지분석.Select("월='" & Mon & "' and 존 <> '00'", "")
'//존별로 에너지요구량 최상단 합데이터를 갱신한다.
'Dr.에너지요구량 = Dr.난방요구량열 + Dr.난방요구량공조 + Dr.냉방요구량열 + Dr.냉방요구량공조 + Dr.조명요구량 + Dr.급탕요구량
'a1 = a1 + Dr.에너지요구량
a2 = a2 + Dr.난방요구량열
a3 = a3 + Dr.난방요구량공조
a4 = a4 + Dr.냉방요구량열
a5 = a5 + Dr.냉방요구량공조
a6 = a6 + Dr.조명요구량
a7 = a7 + Dr.급탕요구량
a8 = a8 + Dr.공조풍량
a9 = a9 + Dr.공조요구량난방
a10 = a10 + Dr.공조요구량냉방
a11 = a11 + Dr.공조요구량가습
a12 = a12 + Dr.환기요구량
Next
'Me.에너지요구량 = a2 + a3 + a4 + a5 + a6 + a7 ㅇ건 Readonlye 로 계산한다.
Me.난방에너지요구량열 = a2
Me.난방에너지요구량공조환기 = a3
Me.냉방에너지요구량열 = a4
Me.냉방에너지요구량공조환기 = a5
Me.조명에너지요구량 = a6
Me.급탕에너지요구량 = a7
Me.공조풍량 = a8
Me.공조에너지요구량난방 = a9
Me.공조에너지요구량냉방 = a10
Me.공조에너지요구량가습 = a11
Me.환기에너지요구량 = a12
' Next
End Sub
End Class

View File

@@ -0,0 +1,401 @@
Public Class C에너지소요량
Dim Midx As Integer
Public Mon As String
Private ErrMsg As String = "에너지소요량 계산되지 않았습니다"
Private DSETR As DSR
Private Result As CResult
Public Sub New(ByRef pdsetr As DSR, ByRef presult As CResult, Optional ByVal pmIdx As Integer = 0)
DSETR = pdsetr
Result = presult
Mon = "M" & Format(pmIdx, "00")
Me.Midx = pmIdx
End Sub
Public Sub Calc_Summary()
If Midx <> 0 Then
MsgBox("계산식은 0번 합계필드만 가능합니다.", MsgBoxStyle.Critical, "확인")
Return
End If
Dim I10 As Decimal = 0
Dim I20 As Decimal = 0
Dim I30 As Decimal = 0
Dim I40 As Decimal = 0
Dim I50 As Decimal = 0
Dim I60 As Decimal = 0
Dim IH As Decimal = 0
Dim IC As Decimal = 0
Dim IL As Decimal = 0
Dim IW As Decimal = 0
Dim IV As Decimal = 0
Dim I4 As Decimal = 0 '//난방
Dim I5 As Decimal = 0 '//냉방
Dim I6 As Decimal = 0 '//조명
Dim I7 As Decimal = 0 '//급탕
Dim I8 As Decimal = 0 '//환기
For i As Integer = 1 To 12
'//12월을 다더해서 0번열에 기록한다.
I10 += Result.E소요량(i).난방
I20 += Result.E소요량(i).난방보조
I30 += Result.E소요량(i).냉방
I40 += Result.E소요량(i).냉방보조
I50 += Result.E소요량(i).급탕
I60 += Result.E소요량(i).급탕보조
IH += Result.E소요량(i).난방S
IC += Result.E소요량(i).냉방S
IL += Result.E소요량(i).조명S
IW += Result.E소요량(i).급탕S
IV += Result.E소요량(i).환기S
I4 += Result.일차E소요량(i).난방전력
I5 += Result.일차E소요량(i).냉방전력
I6 += Result.일차E소요량(i).조명전력
I7 += Result.일차E소요량(i).급탕전력
I8 += Result.일차E소요량(i).환기전력
Next
Me.난방 = I10
Me.난방보조 = I20
Me.냉방 = I30
Me.냉방보조 = I40
Me.급탕 = I50
Me.급탕보조 = I60
If (I4 + I5 + I6 + I7 + I8 <> 0) Then
Me.난방S = IH - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).열병합전력생산량) / (I4 + I5 + I6 + I7 + I8) * I4
Me.냉방S = IC - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).열병합전력생산량) / (I4 + I5 + I6 + I7 + I8) * I5
Me.조명S = IL - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).열병합전력생산량) / (I4 + I5 + I6 + I7 + I8) * I6
Me.급탕S = IW - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).열병합전력생산량) / (I4 + I5 + I6 + I7 + I8) * I7
Me.환기S = IV - (Result.생산E(0).태양광전력생산량 + Result.생산E(0).열병합전력생산량) / (I4 + I5 + I6 + I7 + I8) * I8
End If
End Sub
ReadOnly Property 소요량() As Decimal
Get
Return 난방S + 냉방S + 조명S + 환기S + 급탕S
End Get
End Property
ReadOnly Property 면적소요량() As Decimal
Get
Return 난방면적 + 냉방면적 + 조명면적 + 급탕면적 + 환기면적
End Get
End Property
Property 난방S() As Decimal
Get
If Midx = 0 Then
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Return 0
Else
Return TOSG(DR(0)("난방"))
End If
Else
Return 난방 + 난방보조
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Else
DR(0)("난방") = value
End If
End Set
End Property
Property 난방() As Decimal
Get
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Return 0
Else
Return TOSG(DR(0)("난방에너지소요량"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Else
DR(0)("난방에너지소요량") = value
End If
End Set
End Property
Property 난방보조() As Decimal
Get
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Return 0
Else
Return TOSG(DR(0)("난방보조에너지소요량"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Else
DR(0)("난방보조에너지소요량") = value
End If
End Set
End Property
ReadOnly Property 난방면적() As Decimal
Get
If Result.사용면적.H = 0 Then
Return 0
Else
Return Me.난방S / Result.사용면적.H
End If
End Get
End Property
Property 냉방S() As Decimal
Get
If Midx = 0 Then
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Return 0
Else
Return TOSG(DR(0)("냉방"))
End If
Else
Return 냉방 + 냉방보조
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Else
DR(0)("냉방") = value
End If
End Set
End Property
Property 냉방() As Decimal
Get
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Return 0
Else
Return TOSG(DR(0)("냉방에너지소요량"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Else
DR(0)("냉방에너지소요량") = value
End If
End Set
End Property
Property 냉방보조() As Decimal
Get
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Return 0
Else
Return TOSG(DR(0)("냉방보조에너지소요량"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Else
DR(0)("냉방보조에너지소요량") = value
End If
End Set
End Property
ReadOnly Property 냉방면적() As Decimal
Get
If Result.사용면적.C = 0 Then
Return 0
Else
Return Me.냉방S / Result.사용면적.C
End If
End Get
End Property
Property 조명S() As Decimal
Get
If Midx = 0 Then
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Return 0
Else
Return TOSG(DR(0)("조명"))
End If
Else
Return Result.E분석(Midx).조명에너지요구량
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Else
DR(0)("조명") = value
End If
End Set
End Property
ReadOnly Property 조명면적() As Decimal
Get
If Result.사용면적.L = 0 Then
Return 0
Else
Return Me.조명S / Result.사용면적.L
End If
End Get
End Property
Property 급탕S() As Decimal
Get
If Midx = 0 Then
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Return 0
Else
Return TOSG(DR(0)("급탕"))
End If
Else
Return 급탕 + 급탕보조
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Else
DR(0)("급탕") = value
End If
End Set
End Property
Property 급탕() As Decimal
Get
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Return 0
Else
'#If DEBUG Then
' Dim f As String = "c:\temp\1\급탕에너지소요량.txt"
' Dim b As New System.Text.StringBuilder
' If System.IO.File.Exists(f) = False Then
' b.AppendLine("Mon 급탕에너지소요량")
' End If
' b.AppendLine(Mon + vbTab + DR(0)("급탕에너지소요량").ToString)
' My.Computer.FileSystem.WriteAllText(f, b.ToString, True)
'#End If
Return TOSG(DR(0)("급탕에너지소요량"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Else
DR(0)("급탕에너지소요량") = value
End If
End Set
End Property
Property 급탕보조() As Decimal
Get
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Return 0
Else
#If DEBUG Then
'Dim f As String = "c:\temp\1\급탕보조에너지소요량.txt"
'Dim b As New System.Text.StringBuilder
'If System.IO.File.Exists(f) = False Then
' b.AppendLine("Mon 급탕보조에너지소요량")
'End If
'b.AppendLine(Mon + vbTab + DR(0)("급탕보조에너지소요량").ToString)
'My.Computer.FileSystem.WriteAllText(f, b.ToString, True)
#End If
Return TOSG(DR(0)("급탕보조에너지소요량"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Else
DR(0)("급탕보조에너지소요량") = value
End If
End Set
End Property
ReadOnly Property 급탕면적() As Decimal
Get
If Result.사용면적.W = 0 Then
Return 0
Else
'#If DEBUG Then
' Dim f As String = "c:\temp\1\급탕면적.txt"
' Dim b As New System.Text.StringBuilder
' If System.IO.File.Exists(f) = False Then
' b.AppendLine("급탕S 사용면적")
' End If
' b.AppendLine(급탕S.ToString() + vbTab + Result.사용면적.W.ToString)
' My.Computer.FileSystem.WriteAllText(f, b.ToString, True)
'#End If
Return 급탕S / Result.사용면적.W
End If
End Get
End Property
Property 환기S() As Decimal
Get
If Midx = 0 Then
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Return 0
Else
Return TOSG(DR(0)("환기"))
End If
Else
Return Result.E분석(Midx).환기에너지요구량
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.에너지소요량Row = CType(DSETR.에너지소요량.Select("mon='" & Mon & "'"), DSR.에너지소요량Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Else
DR(0)("환기") = value
End If
End Set
End Property
ReadOnly Property 환기면적() As Decimal
Get
If Result.사용면적.V = 0 Then
Return 0
Else
Return 환기S / Result.사용면적.V
End If
End Get
End Property
End Class

View File

@@ -0,0 +1,224 @@
Public Class C에너지요구량
Dim Midx As Integer
Public Mon As String
Private ErrMsg As String = "에너지요구량 계산되지 않았습니다"
Private Result As CResult
Public Sub New(ByRef presult As CResult, Optional ByVal pmIdx As Integer = 0)
Result = presult
Mon = "M" & Format(pmIdx, "00")
Me.Midx = pmIdx
End Sub
ReadOnly Property 요구량() As Decimal
Get
If Midx = 0 Then '//누적데이터
Dim R As Decimal = 0
For i As Integer = 1 To 12
R += Result.E요구량(i).요구량
Next
Return R
Else
Return 난방요구량 + 냉방요구량 + 조명요구량 + 급탕요구량
End If
End Get
End Property
ReadOnly Property 면적당요구량() As Decimal
Get
If Midx = 0 Then '//누적데이터
Dim R As Decimal = 0
For i As Integer = 1 To 12
R += Result.E요구량(i).면적당요구량
Next
Return R
Else
Return 난방면적 + 냉방면적 + 조명면적 + 급탕면적
End If
End Get
End Property
#Region "난방요구량"
ReadOnly Property 난방요구량() As Decimal
Get
If Midx = 0 Then '//누적데이터
Dim R As Decimal = 0
For i As Integer = 1 To 12
R += Result.E요구량(i).난방요구량
Next
Return R
Else
Return Me.난방열 + Me.난방공조
End If
End Get
End Property
ReadOnly Property 난방열() As Decimal
Get '//월별 에너지분석에서 난방요구량
If Midx = 0 Then
Dim R As Decimal = 0
For i As Integer = 1 To 12
R += Result.E분석(i).난방에너지요구량열
Next
Return R
Else
Return Result.E분석(Midx).난방에너지요구량열
End If
End Get
End Property
ReadOnly Property 난방공조() As Decimal
Get '//월별 에너지분석에서 난방요구량
If Midx = 0 Then
Dim R As Decimal = 0
For i As Integer = 1 To 12
R += Result.E분석(i).난방에너지요구량공조환기
Next
Return R
Else
Return Result.E분석(Midx).난방에너지요구량공조환기
End If
End Get
End Property
ReadOnly Property 난방면적() As Decimal
Get '//월별 에너지분석에서 난방요구량
If Midx = 0 Then
Dim R As Decimal = 0
For i As Integer = 1 To 12
R += Result.E요구량(i).난방면적
Next
Return R
Else
If Result.사용면적.H = 0 Then
Return 0
Else
Return Me.난방요구량 / Result.사용면적.H
End If
End If
End Get
End Property
#End Region
#Region "냉방요구량"
ReadOnly Property 냉방요구량() As Decimal
Get
If Midx = 0 Then '//누적데이터
Dim R As Decimal = 0
For i As Integer = 1 To 12
R += Result.E요구량(i).냉방요구량
Next
Return R
Else
Return Me.냉방열 + Me.냉방공조
End If
End Get
End Property
ReadOnly Property 냉방열() As Decimal
Get '//월별 에너지분석에서 난방요구량
If Midx = 0 Then
Dim R As Decimal = 0
For i As Integer = 1 To 12
R += Result.E분석(i).냉방에너지요구량열
Next
Return R
Else
Return Result.E분석(Midx).냉방에너지요구량열
End If
End Get
End Property
ReadOnly Property 냉방공조() As Decimal
Get '//월별 에너지분석에서 난방요구량
If Midx = 0 Then
Dim R As Decimal = 0
For i As Integer = 1 To 12
R += Result.E분석(i).냉방에너지요구량공조환기
Next
Return R
Else
Return Result.E분석(Midx).냉방에너지요구량공조환기
End If
End Get
End Property
ReadOnly Property 냉방면적() As Decimal
Get '//월별 에너지분석에서 난방요구량
If Midx = 0 Then
Dim R As Decimal = 0
For i As Integer = 1 To 12
R += Result.E요구량(i).냉방면적
Next
Return R
Else
If Result.사용면적.C = 0 Then
Return 0
Else
Return Me.냉방요구량 / Result.사용면적.C
End If
End If
End Get
End Property
#End Region
#Region "조명요구량"
ReadOnly Property 조명요구량() As Decimal
Get
If Midx = 0 Then '//누적데이터
Dim R As Decimal = 0
For i As Integer = 1 To 12
R += Result.E요구량(i).조명요구량
Next
Return R
Else
Return Result.E분석(Midx).조명에너지요구량
End If
End Get
End Property
ReadOnly Property 조명면적() As Decimal
Get '//월별 에너지분석에서 난방요구량
If Midx = 0 Then
Dim R As Decimal = 0
For i As Integer = 1 To 12
R += Result.E요구량(i).조명면적
Next
Return R
Else
If Result.사용면적.L = 0 Then
Return 0
Else
Return Me.조명요구량 / Result.사용면적.L
End If
End If
End Get
End Property
#End Region
#Region "급탕요구량"
ReadOnly Property 급탕요구량() As Decimal
Get
If Midx = 0 Then '//누적데이터
Dim R As Decimal = 0
For i As Integer = 1 To 12
R += Result.E요구량(i).급탕요구량
Next
Return R
Else
Return Result.E분석(Midx).급탕에너지요구량
End If
End Get
End Property
ReadOnly Property 급탕면적() As Decimal
Get '//월별 에너지분석에서 난방요구량
If Midx = 0 Then
Dim R As Decimal = 0
For i As Integer = 1 To 12
R += Result.E요구량(i).급탕면적
Next
Return R
Else
If Result.사용면적.W = 0 Then
Return 0
Else
Return Me.급탕요구량 / Result.사용면적.W
End If
End If
End Get
End Property
#End Region
End Class

View File

@@ -0,0 +1,264 @@
Public Class C최대냉난방부하
Private DSETR As DSR
Public Sub New(ByRef pdsetr As DSR) '//존은초기화값을 가지고 생성한다.
DSETR = pdsetr
End Sub
Public Function Item(Optional ByVal ZoneCode As String = "00") As Citem
Return New Citem(DSETR, ZoneCode)
End Function
Public Sub Calc_Summary()
'//Zone 이 00일떄만 계산된다
Dim a1, a2, a3, a4, a5, a6, a7, a8, a9, a10 As Decimal
a1 = 0 : a2 = 0 : a3 = 0 : a4 = 0 : a5 = 0 : a6 = 0
a7 = 0 : a8 = 0 : a9 = 0 : a10 = 0
Dim Exist As Boolean = False
For Each Dr As DSR.최대냉난방부하Row In DSETR.최대냉난방부하.Select("Zone <> '00'", "Zone")
If Exist = False Then Exist = True
' Dr.최대냉난방부하 = Dr.최대난방기기부하 + Dr.최대냉방기기부하
a1 += Dr.최대난방기기부하
a2 += Dr.최대난방실내부하
'a3 += Dr.난방최대가동시간
a4 += Dr.최대가열성능
a5 += Dr.최대냉방기기부하
a6 += Dr.최대냉방실내부하
'a7 += Dr.냉방최대가동시간
a8 += Dr.최대냉각성능
a9 += Dr.최대가습성능
a10 += Dr.공조풍량
Next
If Exist = False Then
MsgBox("각존별 계산이 되어있지않아서 값을 계산할 수 없습니다", MsgBoxStyle.Critical, "확인")
Return
End If
Me.Item("00").최대난방기기부하 = a1
Me.Item("00").최대난방실내부하 = a2
Me.Item("00").일일난방최대가동시간 = a3
Me.Item("00").최대가열성능 = a4
Me.Item("00").최대냉방기기부하 = a5
Me.Item("00").최대냉방실내부하 = a6
Me.Item("00").일일냉방최대가동시간 = a7
Me.Item("00").최대냉각성능 = a8
Me.Item("00").최대가습성능 = a9
Me.Item("00").공조풍량 = a10
End Sub
Public Class Citem
Private Zone As String
Dim ErrMsg As String = "최대냉난방부하가 계산되지 않았습니다"
Private DSETR As DSR
Public Sub New(ByRef pdsetr As DSR, Optional ByVal pZone As String = "00") '//존은초기화값을 가지고 생성한다.
DSETR = pdsetr
Zone = pZone
End Sub
ReadOnly Property 최대냉난방부하() As Decimal
Get
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Return 0
Else
Return TOSG(Me.최대난방기기부하 + Me.최대냉방기기부하)
End If
End Get
End Property
Property 최대난방기기부하() As Decimal
Get
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Return 0
Else
Return TOSG(DR(0)("최대난방기기부하"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Else
DR(0)("최대난방기기부하") = value
End If
End Set
End Property
Property 최대난방실내부하() As Decimal
Get
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Return 0
Else
Return TOSG(DR(0)("최대난방실내부하"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Else
DR(0)("최대난방실내부하") = value
End If
End Set
End Property
Property 일일난방최대가동시간() As Decimal
Get
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Return 0
Else
Return TOSG(DR(0)("난방최대가동시간"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Else
DR(0)("난방최대가동시간") = value
End If
End Set
End Property
Property 최대가열성능() As Decimal
Get
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Return 0
Else
Return TOSG(DR(0)("최대가열성능"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Else
DR(0)("최대가열성능") = value
End If
End Set
End Property
Property 최대냉방기기부하() As Decimal
Get
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Return 0
Else
Return TOSG(DR(0)("최대냉방기기부하"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Else
DR(0)("최대냉방기기부하") = value
End If
End Set
End Property
Property 최대냉방실내부하() As Decimal
Get
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Return 0
Else
Return TOSG(DR(0)("최대냉방실내부하"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Else
DR(0)("최대냉방실내부하") = value
End If
End Set
End Property
Property 일일냉방최대가동시간() As Decimal
Get
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Return 0
Else
Return TOSG(DR(0)("냉방최대가동시간"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Else
DR(0)("냉방최대가동시간") = value
End If
End Set
End Property
Property 최대냉각성능() As Decimal
Get
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Return 0
Else
Return TOSG(DR(0)("최대냉각성능"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Else
DR(0)("최대냉각성능") = value
End If
End Set
End Property
Property 최대가습성능() As Decimal
Get
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Return 0
Else
Return TOSG(DR(0)("최대가습성능"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Else
DR(0)("최대가습성능") = value
End If
End Set
End Property
Property 공조풍량() As Decimal
Get
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Return 0
Else
Return TOSG(DR(0)("공조풍량"))
End If
End Get
Set(ByVal value As Decimal)
Dim DR() As DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & Zone & "'"), DSR.최대냉난방부하Row())
If DR.GetUpperBound(0) = -1 Then
MsgBox(ErrMsg)
Else
DR(0)("공조풍량") = value
End If
End Set
End Property
End Class
End Class

View File

@@ -0,0 +1,899 @@
Public Class CSummary
Public Sub New()
End Sub
''' <summary>
''' 모든 집계데이터를 갱신합니다.
''' </summary>
''' <remarks></remarks>
Public Sub All()
''TMon()
'///
Work_msg("최종데이터 집계중...")
Frm_Work.ProgressBar1.Maximum = 12
Frm_Work.ProgressBar1.Minimum = 0
Frm_Work.ProgressBar1.Value = 0
Frm_Work.ProgressBar1.Visible = False
Frm_Work.TopMost = True
Frm_Work.Show()
For Each Dr As C에너지분석 In Result.E분석 '//12달치의 각존들의 데이터를 가지고 합계내역을 추린다. '//LoadOfZone 에서 계산완료한다.
Dr.Calc()
Next
Result.최대부하.Calc_Summary() '//최대냉난방부하(합계-zone='00') 계산
'Result.생산E(0).Calc_Summary() '//합계필드(M00)에데이터를 누적합니다.
Result.일차E소요량(0).Calc_Summary() '//1차소요량의 합계데이터를 계산
Result.E소요량(0).Calc_Summary() '//1차소요량의 합계데이터를 계산
'TReqUse_M01M12() '//이것들은 현재 사용하지 않고있다.
'TReqUse_M00() '//현재 사용하지않고있따.
Me.Make_ResultSheet() '//최종결과를 보여주는 시트를 작성한다.
DSETR.AcceptChanges() '//변경된모든내용을 적용함
End Sub
#Region "미사용개체"
''' <summary>
''' 1월부터 10월까지 집계데이터를 계산한다.
''' </summary>
''' <remarks></remarks>
Public Sub TReqUse_M01M12()
Dim MOn As String
For i As Short = 1 To 12
'MOn = "M" & Format(i, "00")
'Dim DR() As DSR.TReqUseRow = CType(DSETR.TReqUse.Select("", "code"), DSR.TReqUseRow())
''////////////////////////////////////
'' 연간 Co2 배출량
''////////////////////////////////////
''조명/환기에너지소요량
'DR(56 - 1)(MOn) = CType(DSETR.월별에너지분석.Select("월='" & MOn & "' and 존='00'")(0), DSR.월별에너지분석Row).조명요구량
'DR(57 - 1)(MOn) = CType(DSETR.월별에너지분석.Select("월='" & MOn & "' and 존='00'")(0), DSR.월별에너지분석Row).환기요구량
''//SUMProduct 계산
'Dim Acc1 as decimal = 0
'Dim Acc2 as decimal = 0
'For j As Short = 41 To 57
' Acc1 += Ru(j, MOn) * Ru(j, "sign")
'Next
'For j As Short = 58 To 59
' Acc2 += Ru(j, MOn) * Ru(j, "sign")
'Next
'Ru(ResultRow.CO2_연간배출량, MOn) = Acc1 - Acc2 '//최상단 합계(연가Co2배출량
''//Excel 67번줄데이터가 필요하므로 먼저계산한다..해당데이터는 마지막(64번줄에 할당함)
''//(I95+I96)/(I76+I82+I88+I90+I92)*$C$76
'Ru(64, MOn) = (Ru(58, MOn) + Ru(59, MOn)) / (Ru(45, MOn) + Ru(50, MOn) + Ru(55, MOn) + Ru(56, MOn) + Ru(57, MOn)) * Ru(45, "sign")
''//난방에너지소요량(계수(sign)* Sumproduct)
'Dim ACc_Nan as decimal = 0
'For j As Short = 41 To 45
' ACc_Nan += CSng(DR(j - 1)(MOn)) * CSng(DR(j - 1)("sign"))
'Next
'Dim ACc_Naeng as decimal = 0
'For j As Short = 46 To 50
' ACc_Naeng += CSng(DR(j - 1)(MOn)) * CSng(DR(j - 1)("sign"))
'Next
'Dim ACc_KUb as decimal = 0
'For j As Short = 51 To 55
' ACc_KUb += CSng(DR(j - 1)(MOn)) * CSng(DR(j - 1)("sign"))
'Next
''//67>64
''IF(csng(ru(7,"00"))=0,0,(ACc_Nan-ru(45,mon)*ru(64,mon))/$H$15)+IF($H$20=0,0,(SUMPRODUCT($C$78:$C$82,I78:I82)-I82*I67)/$H$20)+IF($H$26=0,0,(SUMPRODUCT($C$84:$C$88,I84:I88)-I88*I67)/$H$26)+IF($H$23=0,0,($C$90*I90-I90*I67)/$H$23)+IF($H$27=0,0,($C$92*I92-I92*I67)/$H$27)
''IF(csng(ru(7))=0,0,(ACc_Nan-ru(45,mon)*ru(64,mon))/ru(7))+IF(ru(12)=0,0,(acc_naeng-ru(50,mon)*ru(64,mon))/ru(12))+IF(ru(18)=0,0,(acc_kub-ru(55,mon)*ru(64,mon))/ru(18))+IF(ru(15)=0,0,(ru(56,"sign")*ru(56,mon)-ru(56,mon)*ru(64,mon))/ru(15))+IF(ru(19)=0,0,(ru(57,"sign")*ru(57,mon)-ru(57,mon)*ru(64,mon))/ru(19))
''//단위면적당Co2배출량)
'If Ru(ResultRow.요구량_난방_사용면적) = 0 Then
' Ru(ResultRow.CO2_단위면적당배출량, MOn) = 0
'Else
' '(ACc_Nan-ru(45,mon)*ru(64,mon))/ru(7))+IF(ru(12)=0,0,(acc_naeng-ru(50,mon)*ru(64,mon))/ru(12))+IF(ru(18)=0,0,(acc_kub-ru(55,mon)*ru(64,mon))/ru(18))+IF(ru(15)=0,0,(ru(56,"sign")*ru(56,mon)-ru(56,mon)*ru(64,mon))/ru(15))+IF(ru(19)=0,0,(ru(57,"sign")*ru(57,mon)-ru(57,mon)*ru(64,mon))/ru(19)
' Ru(ResultRow.CO2_단위면적당배출량, MOn) = (ACc_Nan - Ru(45, MOn) * Ru(64, MOn)) / Ru(7) + CSng(IIf(Ru(12) = 0, 0, (ACc_Naeng - Ru(50, MOn) * Ru(64, MOn)) / Ru(12))) + CSng(IIf(Ru(18) = 0, 0, (ACc_KUb - Ru(55, MOn) * Ru(64, MOn)) / Ru(18))) + CSng(IIf(Ru(15) = 0, 0, (Ru(56, "sign") * Ru(56, MOn) - Ru(56, MOn) * Ru(64, MOn)) / Ru(15))) + CSng(IIf(Ru(19) = 0, 0, (Ru(57, "sign") * Ru(57, MOn) - Ru(57, MOn) * Ru(64, MOn)) / Ru(19)))
'End If
Next
End Sub
''' <summary>
''' 에너지요구량및소요량 테이블의 M00(합계)를 누적(M01~M12)로 채웁니다. 그렇지않은건 이후에 합계프로시져별도로 생성함
''' </summary>
''' <remarks></remarks>
Public Sub TReqUse_M00()
''//LT(LineType 이 SL Sum Line 인경우가져와서 m00 = m01~m12 한다
'Dim DR() As DSR.TReqUseRow = CType(DSETR.TReqUse.Select("", "code"), DSR.TReqUseRow())
'For Each Drs As DSR.TReqUseRow In DSETR.TReqUse.Select("lt='SL'")
' Drs.M00 = Drs.M01 + Drs.M02 + Drs.M03 + Drs.M04 + Drs.M05 + Drs.M06 + Drs.M07 + Drs.M08 + Drs.M09 + Drs.M10 + Drs.M11 + Drs.M12
'Next
''//커스텀 합계필드 계산
''자주사용되는 SUM(1~12)를 미리 계산해둔다
'Dim L45, L50, L55, L56, L57, L22, L27, L31, L33, L37 as decimal : Dim Drow As DSR.TReqUseRow
'Drow = CType(DSETR.TReqUse.Rows(45 - 1), DSR.TReqUseRow)
'L45 = Drow.M01 + Drow.M02 + Drow.M03 + Drow.M04 + Drow.M05 + Drow.M06 + Drow.M07 + Drow.M08 + Drow.M09 + Drow.M10 + Drow.M11 + Drow.M12
'Drow = CType(DSETR.TReqUse.Rows(50 - 1), DSR.TReqUseRow)
'L50 = Drow.M01 + Drow.M02 + Drow.M03 + Drow.M04 + Drow.M05 + Drow.M06 + Drow.M07 + Drow.M08 + Drow.M09 + Drow.M10 + Drow.M11 + Drow.M12
'Drow = CType(DSETR.TReqUse.Rows(55 - 1), DSR.TReqUseRow)
'L55 = Drow.M01 + Drow.M02 + Drow.M03 + Drow.M04 + Drow.M05 + Drow.M06 + Drow.M07 + Drow.M08 + Drow.M09 + Drow.M10 + Drow.M11 + Drow.M12
'Drow = CType(DSETR.TReqUse.Rows(56 - 1), DSR.TReqUseRow)
'L56 = Drow.M01 + Drow.M02 + Drow.M03 + Drow.M04 + Drow.M05 + Drow.M06 + Drow.M07 + Drow.M08 + Drow.M09 + Drow.M10 + Drow.M11 + Drow.M12
'Drow = CType(DSETR.TReqUse.Rows(57 - 1), DSR.TReqUseRow)
'L57 = Drow.M01 + Drow.M02 + Drow.M03 + Drow.M04 + Drow.M05 + Drow.M06 + Drow.M07 + Drow.M08 + Drow.M09 + Drow.M10 + Drow.M11 + Drow.M12
'Drow = CType(DSETR.TReqUse.Rows(22 - 1), DSR.TReqUseRow)
'L22 = Drow.M01 + Drow.M02 + Drow.M03 + Drow.M04 + Drow.M05 + Drow.M06 + Drow.M07 + Drow.M08 + Drow.M09 + Drow.M10 + Drow.M11 + Drow.M12
'Drow = CType(DSETR.TReqUse.Rows(27 - 1), DSR.TReqUseRow)
'L27 = Drow.M01 + Drow.M02 + Drow.M03 + Drow.M04 + Drow.M05 + Drow.M06 + Drow.M07 + Drow.M08 + Drow.M09 + Drow.M10 + Drow.M11 + Drow.M12
'Drow = CType(DSETR.TReqUse.Rows(31 - 1), DSR.TReqUseRow)
'L31 = Drow.M01 + Drow.M02 + Drow.M03 + Drow.M04 + Drow.M05 + Drow.M06 + Drow.M07 + Drow.M08 + Drow.M09 + Drow.M10 + Drow.M11 + Drow.M12
'Drow = CType(DSETR.TReqUse.Rows(33 - 1), DSR.TReqUseRow)
'L33 = Drow.M01 + Drow.M02 + Drow.M03 + Drow.M04 + Drow.M05 + Drow.M06 + Drow.M07 + Drow.M08 + Drow.M09 + Drow.M10 + Drow.M11 + Drow.M12
'Drow = CType(DSETR.TReqUse.Rows(37 - 1), DSR.TReqUseRow)
'L37 = Drow.M01 + Drow.M02 + Drow.M03 + Drow.M04 + Drow.M05 + Drow.M06 + Drow.M07 + Drow.M08 + Drow.M09 + Drow.M10 + Drow.M11 + Drow.M12
''//실제 데이터 집계
'Drow = CType(DSETR.TReqUse.Rows(45 - 1), DSR.TReqUseRow)
'Drow.M00 = L45 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L45
''If (L45 + L50 + L55 + L56 + L57) <> 0 Then Drow.M00 = L45 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L45
'Drow = CType(DSETR.TReqUse.Rows(50 - 1), DSR.TReqUseRow)
'Drow.M00 = L50 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L50 '
''If (L45 + L50 + L55 + L56 + L57) <> 0 Then Drow.M00 = L50 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L50
'Drow = CType(DSETR.TReqUse.Rows(55 - 1), DSR.TReqUseRow)
'Drow.M00 = L55 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L55
''If (L45 + L50 + L55 + L56 + L57) <> 0 Then Drow.M00 = L55 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L55
'Drow = CType(DSETR.TReqUse.Rows(56 - 1), DSR.TReqUseRow)
'Drow.M00 = L56 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L56
''If (L45 + L50 + L55 + L56 + L57) <> 0 Then Drow.M00 = L56 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L56
'Drow = CType(DSETR.TReqUse.Rows(57 - 1), DSR.TReqUseRow)
'Drow.M00 = L57 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L57
''If (L45 + L50 + L55 + L56 + L57) <> 0 Then Drow.M00 = L57 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L57
''//
'Drow = CType(DSETR.TReqUse.Rows(22 - 1), DSR.TReqUseRow)
'' If (L45 + L50 + L55 + L56 + L57) <> 0 Then
'Drow.M00 = L22 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L45
'Drow.COLG = L22 - (DR(58 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L45
'' End If
'Drow = CType(DSETR.TReqUse.Rows(27 - 1), DSR.TReqUseRow)
'' If (L45 + L50 + L55 + L56 + L57) <> 0 Then
'Drow.M00 = L27 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L50
'Drow.COLG = L27 - (DR(58 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L50
'' End If
'Drow = CType(DSETR.TReqUse.Rows(31 - 1), DSR.TReqUseRow)
'' If (L45 + L50 + L55 + L56 + L57) <> 0 Then
'Drow.M00 = L31 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L56
'Drow.COLG = L31 - (DR(58 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L56
'' End If
'Drow = CType(DSETR.TReqUse.Rows(33 - 1), DSR.TReqUseRow)
''If (L45 + L50 + L55 + L56 + L57) <> 0 Then
'Drow.M00 = L33 - (DR(58 - 1).M00 + DR(59 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L55
'Drow.COLG = L33 - (DR(58 - 1).M00) / (L45 + L50 + L55 + L56 + L57) * L55
'' End If
''//
'Drow = CType(DSETR.TReqUse.Rows(20 - 1), DSR.TReqUseRow)
'Drow.M00 = DR(22 - 1).M00 + DR(27 - 1).M00 + DR(31 - 1).M00 + DR(33 - 1).M00 + DR(37 - 1).M00
''//
'Drow = CType(DSETR.TReqUse.Rows(26 - 1), DSR.TReqUseRow)
'Drow.M00 = CSng(IIf(DR(7 - 1).M00 = 0, 0, DR(22 - 1).M00 / DR(7 - 1).M00))
'Drow = CType(DSETR.TReqUse.Rows(30 - 1), DSR.TReqUseRow)
'Drow.M00 = CSng(IIf(DR(12 - 1).M00 = 0, 0, DR(27 - 1).M00 / DR(12 - 1).M00))
'Drow = CType(DSETR.TReqUse.Rows(32 - 1), DSR.TReqUseRow)
'Drow.M00 = CSng(IIf(DR(15 - 1).M00 = 0, 0, DR(31 - 1).M00 / DR(15 - 1).M00))
'Drow = CType(DSETR.TReqUse.Rows(36 - 1), DSR.TReqUseRow)
'Drow.M00 = CSng(IIf(DR(18 - 1).M00 = 0, 0, DR(33 - 1).M00 / DR(18 - 1).M00))
''=SUM(I58:T58)-(H95+H96)/(SUM(I76:T76)+SUM(I82:T82)+SUM(I88:T88)+SUM(I90:T90)+SUM(I92:T92))*SUM(I92:T92)
''=L37-(ru(58)+ru(59))/(L45+L50+L55+L56+L57)*L57
'Drow = CType(DSETR.TReqUse.Rows(37 - 1), DSR.TReqUseRow) '//환기에너지소요량(X)
'' If (L45 + L50 + L55 + L56 + L57) <> 0 Then
'Drow.M00 = L37 - (Ru(58) + Ru(59)) / (L45 + L50 + L55 + L56 + L57) * L57
'Drow.COLG = L37 - (Ru(58)) / (L45 + L50 + L55 + L56 + L57) * L57
'' End If
'Drow = CType(DSETR.TReqUse.Rows(38 - 1), DSR.TReqUseRow) '//환기에너지 단위면적당 소요량
'Drow.M00 = CSng(IIf(Ru(19) = 0, 0, Ru(37) / Ru(19)))
''//
'Drow = CType(DSETR.TReqUse.Rows(21 - 1), DSR.TReqUseRow)
'Drow.M00 = DR(26 - 1).M00 + DR(30 - 1).M00 + DR(32 - 1).M00 + DR(36 - 1).M00 + DR(38 - 1).M00
End Sub
#End Region
Public Sub Make_ResultSheet()
'//에너지요구량
DSETR.TReqUse.Clear()
DSETR.TReqUse.AcceptChanges()
Dim Array As New ArrayList
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E요구량(i).요구량)
Next
Set_ReqUseRow("100", "에너지요구량", "[kWh]", "Qb", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E요구량(i).면적당요구량)
Next
Set_ReqUseRow("100", "단위면적당 에너지 요구량", "[kWh/m²]", "Σ(Qb / Ab)", "=", Array, "N1")
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E요구량(i).난방요구량)
Next
Set_ReqUseRow("110", "난방에너지 요구량", "[kWh]", "QH,b", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E요구량(i).난방열)
Next
Set_ReqUseRow("110", "난방에너지 요구량(열)", "[kWh]", "Qh,b", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E요구량(i).난방공조)
Next
Set_ReqUseRow("110", "난방에너지 요구량(공조,환기)", "[kWh]", "Qh*,b", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E요구량(i).난방면적)
Next
Set_ReqUseRow("110", "단위면적당 요구량", "[kWh/m²]", "QH,b / AH", "=", Array, "N1")
Set_ReqUseRow("110", "사용면적(난방)", "[m²]", "AH", "=", Result.사용면적.H, "N1")
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E요구량(i).냉방요구량)
Next
Set_ReqUseRow("110", "냉방에너지 요구량", "[kWh]", "QC,b", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E요구량(i).냉방열)
Next
Set_ReqUseRow("110", "냉방에너지 요구량(열)", "[kWh]", "Qc,b", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E요구량(i).냉방공조)
Next
Set_ReqUseRow("110", "냉방에너지 요구량(공조,환기)", "[kWh]", "Qc*,b", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E요구량(i).냉방면적)
Next
Set_ReqUseRow("110", "단위면적당 요구량", "[kWh/m²]", "QC,b / AC", "=", Array, "N1")
Set_ReqUseRow("110", "사용면적(냉방)", "[m²]", "AC", "=", Result.사용면적.C, "N1")
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E요구량(i).조명요구량)
Next
Set_ReqUseRow("110", "조명에너지 요구량", "[kWh]", "QL,b", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E요구량(i).조명면적)
Next
Set_ReqUseRow("110", "단위면적당 요구량", "[kWh/m²]", "QL,b / AL", "=", Array, "N1")
Set_ReqUseRow("110", "사용면적(조명)", "[m²]", "AL", "=", Result.사용면적.L, "N1")
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E요구량(i).급탕요구량)
Next
Set_ReqUseRow("110", "급탕에너지 요구량", "[kWh]", "QW,b", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E요구량(i).급탕면적)
Next
Set_ReqUseRow("110", "단위면적당 요구량", "[kWh/m²]", "QW,b / AW", "=", Array, "N1")
Set_ReqUseRow("110", "사용면적(급탕)", "[m²]", "AW", "=", Result.사용면적.W, "N1")
Set_ReqUseRow("110", "사용면적(환기)", "[m²]", "AV", "=", Result.사용면적.V, "N1")
'//에너지소요량
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E소요량(i).소요량)
Next
Set_ReqUseRow("200", "에너지소요량", "[kWh]", "Qf", "", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E소요량(i).면적소요량)
Next
Set_ReqUseRow("200", "단위면적당 에너지 소요량", "[kWh/m²]", "Σ(Qf / Ab)", "", Array, "N1")
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E소요량(i).난방S)
Next
Set_ReqUseRow("210", "난방에너지 소요량", "[kWh]", "QH,f", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E소요량(i).난방)
Next
Set_ReqUseRow("210", "난방에너지 소요량", "[kWh]", "Qh,f", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E소요량(i).난방보조)
Next
Set_ReqUseRow("210", "난방보조에너지 소요량", "[kWh]", "Qh,aux", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E소요량(i).난방면적)
Next
Set_ReqUseRow("210", "단위면적당 소요량", "[kWh/m²]", "QH,f / AH", "=", Array, "N1")
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E소요량(i).냉방S)
Next
Set_ReqUseRow("210", "냉방에너지 소요량", "[kWh]", "QC,f", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E소요량(i).냉방)
Next
Set_ReqUseRow("210", "냉방에너지 소요량", "[kWh]", "Qc,f", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E소요량(i).냉방보조)
Next
Set_ReqUseRow("210", "냉방보조에너지 소요량", "[kWh]", "Qc,aux", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E소요량(i).냉방면적)
Next
Set_ReqUseRow("210", "단위면적당 소요량", "[kWh/m²]", "QC,f / AC", "=", Array, "N1")
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E소요량(i).조명S)
Next
Set_ReqUseRow("210", "조명에너지 소요량", "[kWh]", "QL,f", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E소요량(i).조명면적)
Next
Set_ReqUseRow("210", "단위면적당 소요량", "[kWh/m²]", "QL,f / AL", "=", Array, "N1")
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E소요량(i).급탕S)
Next
Set_ReqUseRow("210", "급탕에너지 소요량", "[kWh]", "QW,f", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E소요량(i).급탕)
Next
Set_ReqUseRow("210", "급탕에너지 소요량", "[kWh]", "Qw,f", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E소요량(i).급탕보조)
Next
Set_ReqUseRow("210", "급탕보조에너지 소요량", "[kWh]", "Qw,aux", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E소요량(i).급탕면적)
Next
Set_ReqUseRow("210", "단위면적당 소요량", "[kWh/m²]", "QW,f / AW", "=", Array, "N1")
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E소요량(i).환기S)
Next
Set_ReqUseRow("210", "환기에너지 소요량", "[kWh]", "QV,aux", "=", Array) '//36
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.E소요량(i).환기면적)
Next
Set_ReqUseRow("210", "단위면적당 소요량", "[kWh/m²]", "QV.aux / AV", "=", Array, "N1")
'//1차에너지 소요량(10-02 추가)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).소요량)
Next
Set_ReqUseRow("300", "1차에너지 소요량", "[kWh]", "", "", Array) '//38
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).단위면적)
Next
Set_ReqUseRow("300", "단위면적당 1차에너지 소요량", "[kWh/m²]", "", "", Array, "N1") '//39
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).난방소요량)
Next
Set_ReqUseRow("310", "난방 1차에너지 소요량", "", "", "", Array) '//40
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).난방등유)
Next
Set_ReqUseRow("310", "난방유(등유) 소요량", "[kWh]", "1.1", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).난방LNG)
Next
Set_ReqUseRow("310", "천연가스(LNG) 소요량", "[kWh]", "1.1", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).난방LPG)
Next
Set_ReqUseRow("310", "액화가스(LPG) 소요량", "[kWh]", "1.1", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).난방지역)
Next
Set_ReqUseRow("310", "지역난방열 소요량", "[kWh]", "0.614", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).난방전력)
Next
Set_ReqUseRow("310", "전력 소요량", "[kWh]", "2.75", "=", Array) '//45
'Array.Clear() '//--펠렛 100727
'For i As Integer = 0 To 12
' Array.Add(Result.일차E소요량(i).난방펠렛)
'Next
'Set_ReqUseRow("310", "펠렛보일러 소요량", "[kWh]", "1.1", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).난방면적)
Next
Set_ReqUseRow("310", "단위면적당 1차에너지 소요량", "[kWh/m2]", "", "=", Array, "N1") '//46
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).냉방소요량)
Next
Set_ReqUseRow("310", "냉방 1차에너지 소요량", "", "", "", Array) '//47
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).냉방등유)
Next
Set_ReqUseRow("310", "난방유(등유) 소요량", "[kWh]", "1.1", "=", Array) '//48
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).냉방LNG)
Next
Set_ReqUseRow("310", "천연가스(LNG) 소요량", "[kWh]", "1.1", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).냉방LPG)
Next
Set_ReqUseRow("310", "액화가스(LPG) 소요량", "[kWh]", "1.1", "=", Array) '//50
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).냉방지역난방열)
Next
Set_ReqUseRow("310", "지역난방열 소요량", "[kWh]", "0.614", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).냉방지역냉방열)
Next
Set_ReqUseRow("310", "지역냉방열 소요량", "[kWh]", Pub.Result.E변환계수.지역냉방.ToString("N3"), "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).냉방전력)
Next
Set_ReqUseRow("310", "전력 소요량", "[kWh]", "2.75", "=", Array) '//52
'Array.Clear() '//--펠렛 100727
'For i As Integer = 0 To 12
' Array.Add(Result.일차E소요량(i).냉방펠렛)
'Next
'Set_ReqUseRow("310", "펠렛보일러 소요량", "[kWh]", "1.1", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).냉방면적)
Next
Set_ReqUseRow("310", "단위면적당 1차에너지 소요량", "[kWh/m2]", "", "=", Array, "N1") '//53
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).급탕소요량)
Next
Set_ReqUseRow("310", "급탕 1차에너지 소요량", "", "", "", Array) '//54
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).급탕등유)
Next
Set_ReqUseRow("310", "난방유(등유) 소요량", "[kWh]", "1.1", "=", Array) '//55
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).급탕LNG)
Next
Set_ReqUseRow("310", "천연가스(LNG) 소요량", "[kWh]", "1.1", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).급탕LPG)
Next
Set_ReqUseRow("310", "액화가스(LPG) 소요량", "[kWh]", "1.1", "=", Array) '//57
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).급탕지역)
Next
Set_ReqUseRow("310", "지역난방열 소요량", "[kWh]", "0.614", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).급탕전력)
Next
Set_ReqUseRow("310", "전력 소요량", "[kWh]", "2.75", "=", Array) '//59
'Array.Clear() '//--펠렛 100727
'For i As Integer = 0 To 12
' Array.Add(Result.일차E소요량(i).급탕펠렛)
'Next
'Set_ReqUseRow("310", "펠렛보일러 소요량", "[kWh]", "1.1", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).급탕면적)
Next
Set_ReqUseRow("310", "단위면적당 1차에너지 소요량", "[kWh/m2]", "", "=", Array, "N1") '//60
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).조명소요량)
Next
Set_ReqUseRow("310", "조명 1차에너지 소요량", "", "", "", Array) '//61
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).조명전력)
Next
Set_ReqUseRow("310", "전력 소요량", "[kWh]", "2.75", "=", Array) '//62
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).조명면적)
Next
Set_ReqUseRow("310", "단위면적당 1차에너지 소요량", "[kWh/m2]", "", "=", Array, "N1") '//63
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).환기소요량)
Next
Set_ReqUseRow("310", "환기 1차에너지 소요량", "", "", "", Array) '//64
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).환기전력)
Next
Set_ReqUseRow("310", "전력 소요량", "[kWh]", "2.75", "=", Array) '//65
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.일차E소요량(i).환기면적)
Next
Set_ReqUseRow("310", "단위면적당 1차에너지 소요량", "[kWh/m2]", "", "=", Array, "N1") '//66
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.생산E(i).태양광전력생산량)
Next
Set_ReqUseRow("310", "전기에너지 생산량(태양광)", "[kWh]", CStr(Result.E변환계수.전력), "=", Array) '//67
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.생산E(i).열병합전력생산량)
Next
Set_ReqUseRow("310", "전기에너지 생산량(열병합)", "[kWh]", CStr(Result.E변환계수.전력), "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.생산E(i).태양열생산량)
Next
Set_ReqUseRow("310", "열에너지 생산량(태양열)", "[kWh]", "", "=", Array) '//69
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.생산E(i).지열생산량)
Next
Set_ReqUseRow("310", "열에너지 생산량(지열)", "[kWh]", "", "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.생산E(i).면적당생산량태양열)
Next
Set_ReqUseRow("310", "단위면적당 생산량(태양열)", "[kWh]", "", "=", Array, "N1") '//71
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.생산E(i).면적당생산량지열)
Next
Set_ReqUseRow("310", "단위면적당 생산량(지열)", "[kWh]", "", "=", Array, "N1") '//72
'//CO2배출량
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).발생량)
Next
Set_ReqUseRow("400", "연간 CO2 배출량", "[kg CO2]", "", "", Array) '//73
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).단위면적)
Next
Set_ReqUseRow("400", "단위면적당 CO2 배출량", "[kg CO2/m²]", "", "", Array, "N1") '//74
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).난방발생량)
Next
Set_ReqUseRow("410", "난방 CO2 발생량", "", "", "", Array) '//75
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).난방등유)
Next
Set_ReqUseRow("410", "난방유(등유) CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.등유), "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).난방LNG)
Next
Set_ReqUseRow("410", "천연가스(LNG) CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.LNG), "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).난방LPG)
Next
Set_ReqUseRow("410", "액화가스(LPG) CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.LPG), "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).난방지역)
Next
Set_ReqUseRow("410", "지역난방열 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.지역난방), "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).난방전력)
Next
Set_ReqUseRow("410", "전력 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.지역냉방), "=", Array)
'Array.Clear() '//펠렛
'For i As Integer = 0 To 12
' Array.Add(Result.Co2발생량(i).난방펠렛)
'Next
'Set_ReqUseRow("410", "펠렛 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.펠렛), "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).난방면적)
Next
Set_ReqUseRow("410", "단위면적당 CO2 발생량", "[kg CO2]", "", "=", Array, "N1")
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).냉방발생량)
Next
Set_ReqUseRow("410", "냉방 CO2 발생량", "", "", "", Array) '//82
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).냉방등유)
Next
Set_ReqUseRow("410", "난방유(등유) CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.등유), "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).냉방LNG)
Next
Set_ReqUseRow("410", "천연가스(LNG) CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.LNG), "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).냉방LPG)
Next
Set_ReqUseRow("410", "액화가스(LPG) CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.LPG), "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).냉방지역난방열)
Next
Set_ReqUseRow("410", "지역난방열 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.지역난방), "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).냉방지역냉방열)
Next
Set_ReqUseRow("410", "지역냉방열 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.지역냉방), "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).냉방전력)
Next
Set_ReqUseRow("410", "전력 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.전력), "=", Array)
'Array.Clear() '//낸ㅇ방펠렛
'For i As Integer = 0 To 12
' Array.Add(Result.Co2발생량(i).냉방펠렛)
'Next
'Set_ReqUseRow("410", "전력 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.펠렛), "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).냉방면적)
Next
Set_ReqUseRow("410", "단위면적당 CO2 발생량", "[kg CO2]", "", "=", Array, "N1")
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).급탕발생량)
Next
Set_ReqUseRow("410", "급탕 CO2 발생량", "", "", "", Array) '//89
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).급탕등유)
Next
Set_ReqUseRow("410", "난방유(등유) CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.등유), "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).급탕LNG)
Next
Set_ReqUseRow("410", "천연가스(LNG) CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.LNG), "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).급탕LPG)
Next
Set_ReqUseRow("410", "액화가스(LPG) CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.LPG), "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).급탕지역)
Next
Set_ReqUseRow("410", "지역난방열 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.지역난방), "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).급탕전력)
Next
Set_ReqUseRow("410", "전력 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.전력), "=", Array)
'Array.Clear() '//급탕펠렛
'For i As Integer = 0 To 12
' Array.Add(Result.Co2발생량(i).급탕펠렛)
'Next
'Set_ReqUseRow("410", "전력 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.펠렛), "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).급탕면적)
Next
Set_ReqUseRow("410", "단위면적당 CO2 발생량", "[kg CO2]", "", "=", Array, "N1")
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).조명발생량)
Next
Set_ReqUseRow("410", "조명 CO2 발생량", "", "", "", Array) '//96
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).조명전력)
Next
Set_ReqUseRow("410", "전력 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.전력), "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).조명면적)
Next
Set_ReqUseRow("410", "단위면적당 CO2 발생량", "[kg CO2]", "", "=", Array, "N1")
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).환기발생량)
Next
Set_ReqUseRow("410", "환기 CO2 발생량", "", "", "", Array) '//99
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).환기전력)
Next
Set_ReqUseRow("410", "전력 CO2 발생량", "[kg CO2]", CStr(Result.Co2배출계수.전력), "=", Array)
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).환기면적)
Next
Set_ReqUseRow("410", "단위면적당 CO2 발생량", "[kg CO2]", "", "=", Array, "N1")
'//CO2저감량
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).저감량태양광)
Next
Set_ReqUseRow("410", "전력 CO2 저감량(태양광)", "[kg CO2]", CStr(Result.Co2배출계수.전력), "=", Array) '//102
Array.Clear()
For i As Integer = 0 To 12
Array.Add(Result.Co2발생량(i).저감량열병합)
Next
Set_ReqUseRow("410", "전력 CO2 저감량(열병합)", "[kg CO2]", CStr(Result.Co2배출계수.전력), "=", Array) '//103
DSETR.AcceptChanges()
End Sub
Private Sub Set_ReqUseRow(ByVal GRP As String, ByVal desc As String, ByVal unit As String, ByVal sign As String, ByVal eq As String, ByVal Value As ArrayList, Optional ByVal F As String = "N0")
Dim DR As DSR.TReqUseRow : DR = DSETR.TReqUse.NewTReqUseRow
DR.Code = Format(DSETR.TReqUse.Rows.Count + 1, "000")
DR.GRP = GRP '//그룹 출력할떄 그룹으로 뽑는다.
DR.Desc = desc '//설명
DR.UNIT = unit '//단위
DR.SIGN = sign '//기호
DR.EQ = eq '//등호 =
DR.M00 = TOSG(Value.Item(0))
DR.M01 = TOSG(Value.Item(1))
DR.M02 = TOSG(Value.Item(2))
DR.M03 = TOSG(Value.Item(3))
DR.M04 = TOSG(Value.Item(4))
DR.M05 = TOSG(Value.Item(5))
DR.M06 = TOSG(Value.Item(6))
DR.M07 = TOSG(Value.Item(7))
DR.M08 = TOSG(Value.Item(8))
DR.M09 = TOSG(Value.Item(9))
DR.M10 = TOSG(Value.Item(10))
DR.M11 = TOSG(Value.Item(11))
DR.M12 = TOSG(Value.Item(12))
DR.F = F
DSETR.TReqUse.AddTReqUseRow(DR)
End Sub
Private Sub Set_ReqUseRow(ByVal GRP As String, ByVal desc As String, ByVal unit As String, ByVal sign As String, ByVal eq As String, ByVal Value As Decimal, Optional ByVal F As String = "N0")
Dim DR As DSR.TReqUseRow : DR = DSETR.TReqUse.NewTReqUseRow
DR.Code = Format(DSETR.TReqUse.Rows.Count + 1, "000")
DR.GRP = GRP '//그룹 출력할떄 그룹으로 뽑는다.
DR.Desc = desc '//설명
DR.UNIT = unit '//단위
DR.SIGN = sign '//기호
DR.EQ = eq '//등호 =
DR.M00 = Value
DR.F = F
'DR.M01 = CSng(Value.Item(1))
'DR.M02 = CSng(Value.Item(2))
'DR.M03 = CSng(Value.Item(3))
'DR.M04 = CSng(Value.Item(4))
'DR.M05 = CSng(Value.Item(5))
'DR.M06 = CSng(Value.Item(6))
'DR.M07 = CSng(Value.Item(7))
'DR.M08 = CSng(Value.Item(8))
'DR.M09 = CSng(Value.Item(9))
'DR.M10 = CSng(Value.Item(10))
'DR.M11 = CSng(Value.Item(11))
'DR.M12 = CSng(Value.Item(12))
DSETR.TReqUse.AddTReqUseRow(DR)
End Sub
End Class

View File

@@ -0,0 +1,822 @@
Public Class CZone
Public Event PBarSet(ByVal min As Integer, ByVal max As Integer) '//프로그레시브바 초기화
Public Event Message(ByVal Msg As String) '//메세지표시
Public Event PBarVal(ByVal Value As Integer) '//프로그레시브 값설정
''' <summary>
''' (main)에너지요구량 계산
''' </summary>
''' <param name="Calc_Use">에너지소요량을 추가로 계산하려면 True 를 입력</param>
''' <param name="Log">로그가 입력될 스트링빌더</param>
''' <remarks></remarks>
Public Overridable Function Calc_LoadOfZones() As Boolean
Dim Title As String = "에너지요구량을 계산합니다"
RaiseEvent Message(Title & vbCrLf & "잠시만 기다려주세요")
RaiseEvent PBarSet(0, 100)
RaiseEvent Message(Title & vbCrLf & "데이터저장소를 확보하는중.")
'i_count_OpWe As Integer, d_we_month As Integer, Q_h_b_we as decimal, ==================================2010.2.21 삭제
Dim t_24 As Integer, f_wind As Integer, t_NA As Integer, t_h_op_d As Integer, i_count_Is As Integer
Dim Delta_theta_er As Decimal, Delta_theta_i_NA As Decimal, Delta_theta_i_WE As Decimal, theta_i As Decimal, theta_i_h As Decimal, theta_i_c As Decimal, F_f As Decimal, F__F As Decimal, F_W As Decimal, F_S As Decimal, F_V As Decimal, h_r As Decimal, c_p_arhoa As Decimal, e_wind As Decimal, n_50 As Decimal, n_ue As Decimal, n_mech As Decimal, n_inf As Decimal, A_B As Decimal, A_u As Decimal, h_u As Decimal, V As Decimal, V_ue As Decimal
Dim H_V_inf As Decimal, H_V_mech As Decimal, H_V_ue As Decimal, H_V_z As Decimal, theta_z As Decimal, theta_u As Decimal, H_T_D As Decimal, H_T_iu As Decimal, H_T_iz As Decimal, H_T_s As Decimal, Delta_U_WB As Decimal, H_V_mech_theta As Decimal, theta_i_h_soll As Decimal, theta_i_c_soll As Decimal, theta_V_mech As Decimal ', theta_e_min as decimal, theta_e_max as decimal
Dim C_wirk As Decimal, tau As Decimal, a As Decimal, a_tb As Decimal, A_beheizt As Decimal, f_we As Decimal, f_NA As Decimal, f_tb As Decimal, Q_h_max As Decimal, theta_i_NA As Decimal, eta_V_mech As Decimal, theta_V_mech_RLT As Decimal
Dim Q_V_inf_sink As Decimal, Q_V_mech_sink As Decimal, Q_V_z_sink As Decimal, Q_V_sink As Decimal, Q_T_e_sink As Decimal, Q_T_u_sink As Decimal, Q_T_z_sink As Decimal, Q_T_s_sink As Decimal, Q_T_sink As Decimal, Q_S_sink As Decimal, R_se As Decimal, Q_source As Decimal, Q_sink As Decimal, Q_I_source As Decimal
Dim Q_V_inf_source As Decimal, Q_V_mech_source As Decimal, Q_V_z_source As Decimal, Q_V_source As Decimal, Q_T_e_source As Decimal, Q_T_u_source As Decimal, Q_T_z_source As Decimal, Q_T_s_source As Decimal, Q_T_source As Decimal, Q_S_source As Decimal
Dim Q_I_source_p As Decimal, Q_I_source_fac As Decimal, Q_I_L As Decimal, Q_l_b As Decimal, Q_w_b As Decimal, gamma As Decimal, eta As Decimal, Q_h_b As Decimal, Q_h_b_op As Decimal, g_TI As Decimal
Dim V_mech As Decimal
'Dim d_op_month As Integer, theta_e_month as decimal
'Dim A_H as decimal, A_C as decimal, A_L as decimal, A_W as decimal, A_V as decimal
Dim Q_vh_b_op As Decimal
Dim g_blinds As Decimal, tau_e_B As Decimal, rho_e_B As Decimal, U_blinds As Decimal, tau_e_B_corr As Decimal, rho_e_B_corr As Decimal 'EN 13363-1 적용
Dim g As Decimal, alpa As Decimal
'Dim i_sub_wall As Integer
Dim V_mech_outdoor As Decimal
'//2010.02.04추가
Dim i_count_AHU As Integer
Dim Phi As Decimal
'//2010.02.21추가
Dim d_op_mth As Integer
Dim d_full_mth As Integer
'//2011.04.04 추가
Dim Q_V_win_sink As Decimal, Q_V_win_source As Decimal, H_V_win As Decimal, n_win As Decimal
Dim zone_count As Decimal '//2012.07.08 추가
Dim priod_value As Single = 0
Dim age As Single '//준공연도에 의한 경년변화값
For Each DRpriod As DS.tbl_DescRow In DSET.tbl_Desc.Select("cname<>'0'", "cname")
priod_value = CSng(DRpriod.priod)
Next
If priod_value = 0 Then
age = 1
Else
age = 1 / (1 - priod_value * 0.0012)
End If
RaiseEvent Message(Title & vbCrLf & "저장소 기본값을 설정하는중.")
t_24 = 24
F_f = 0.5 '구조체와 하늘과의 형태계수
F__F = 0.7 '창 프레임 감소계수 __필요
F_W = 0.9 '수직입사가 아닌경우에 대한 감소계수
F_S = 1 '주변환경에 의한 그늘짐
F_V = 1 '0.9 '우선 먼지팩터는 없는 것으로 가정
h_r = 5 * 0.9 '= 5*e(모를경우 e=0.9)
Delta_theta_er = 10
Delta_theta_i_NA = 4 '(용도별조건)
'theta_i = 21
'theta_i_h = 21
theta_i_h_soll = 20
theta_i_c = 24
theta_i_c_soll = 26
theta_V_mech_RLT = 27
'theta_e_min = -11.3
'theta_e_max = 31.5
c_p_arhoa = 0.34 '//먼지모름
'n_50 = 1.5
n_ue = 0.6
e_wind = 0.07
f_wind = 15
R_se = 0.043 '외기에 직접 열전달저항 확인요망
g_TI = 0.35 '(2-113)
alpa = 0.4 '우선 0.4으로 설정 표면흡수율 도표 2-6 참조
n_mech = 1 '임시
A_u = 1
h_u = 1 '임시
RaiseEvent Message(Title & vbCrLf & "결과저장소 초기화")
Work_msg("요구량계산중...")
Frm_Work.ProgressBar1.Maximum = 26
Frm_Work.ProgressBar1.Minimum = 0
Frm_Work.ProgressBar1.Value = 0
Frm_Work.TopMost = True
Frm_Work.Show()
'/////////////////////////////////////////////////////
For i_count_HeatCool As Integer = 1 To 2 '(1) 루프회전 난방/냉방 구분해서 회전한다. 둘의 산식이 거의 비슷하므로 루프를 이용해서 계산
For i_count_month As Short = 0 To 12 '(2) --월전체의 루프?
Work_msg("요구량계산중..." & CStr(IIf(i_count_HeatCool = 1, "난방", "냉방")) & "(" & i_count_month & "/12)") : Work_plus()
Dim Mon As String = "M" & Format(i_count_month, "00") '//저장소의 필드명이 M00 식으로되어있다.
If i_count_month = 0 Then '//난방이라면? '//최소외기온도 난방기(theta_e_min)
Calc.Pub.theta_e(i_count_month) = TOSG(IIf(i_count_HeatCool = 1, Calc.Pub.theta_e_min, Calc.Pub.theta_e_max))
End If
'//존 루프
For Each DR존 As DS.tbl_zoneRow In DSET.tbl_zone.Select("code<>'0'", "code") ' DSET.tbl_zone.Rows.Count '(3)
'//방식이나 공조는 ZZ는 사용안함이다 V=환기 외기부하처리여부의경우 0001 은 예이다.
zone_count = TOSG(DR존.입력존의수)
If DR존.냉난방방식 <> "기능없음" Or (DR존.냉난방공조 <> "기능없음" And (DR존.냉난방공조 <> "환기" Or DR존.외기부하처리여부 = "")) Then
Q_vh_b_op = 0
'//i_count_OpWe 1은 평일 2는 주말이다ㅡㅡ/
'======================================2010.2.21 삭제
'For i_count_OpWe = 1 To 2
'======================================2010.2.21 삭제
Q_V_inf_sink = 0
Q_V_inf_source = 0
Q_V_mech_sink = 0
Q_V_mech_source = 0
Q_V_z_sink = 0
Q_V_z_source = 0
Q_V_win_sink = 0 '//2011.04.04 추가
Q_V_win_source = 0 '//2011.04.04 추가
Q_T_e_sink = 0
Q_T_e_source = 0
Q_T_u_sink = 0
Q_T_u_source = 0
Q_T_z_sink = 0
Q_T_z_source = 0
Q_T_s_sink = 0
Q_T_s_source = 0
A_B = TOSG(DR존.면적) * zone_count ' Worksheets("입력존").Range("전용면적1").Offset(0, i_count_zone - 1)
V = TOSG(DR존.순실체적) * zone_count ' Worksheets("입력존").Range("체적1").Offset(0, i_count_zone - 1)
V_ue = A_u * h_u
'Log.AppendLine(" >> V_ue = A_u * h_u = // au와 hu 는 선언부에서 1값으로 고정되어있음 v_ue는 항상 1")
'//존의 프로필설정에대한 실제 프로필의 데이터를 가져옴
Dim DR프로필() As DS.tbl_profileRow = CType(DSET.tbl_profile.Select("code='" & DR존.프로필 & "' and code <> '0'"), DS.tbl_profileRow())
If DR프로필.GetUpperBound(0) = -1 Then
MsgBox("존=" & DR존.code & " 의 프로필=" & DR존.프로필 & " 의 데이터가 존재하지않습니다", MsgBoxStyle.Critical, "확인")
Else
'Log.AppendLine(" >> 존의 프로필코드(" & DR존.프로필 & ") 에 해당하는 프로필정보를 가져옵니다")
t_h_op_d = TOIT(DR프로필(0).운전시간난방) ' Worksheets("설정조건").Range("사용시작시간1").Offset(5, i_count_profile)
'===================================================================================2010.2.21 추가
If i_count_month = 0 Then
d_op_mth = 0
Else
d_op_mth = CInt(TOSG(DR프로필(0)("day" & Format(i_count_month, "00"))))
End If
'===================================================================================2010.2.21 추가
theta_i_h_soll = TOSG(DR프로필(0).난방설정온도) ' Worksheets("설정조건").Range("난방설정온도1").Offset(0, i_count_profile)
theta_i_c_soll = TOSG(DR프로필(0).냉방설정온도) ' Worksheets("설정조건").Range("냉방설정온도1").Offset(0, i_count_profile)
Delta_theta_i_NA = TOSG(DR프로필(0).야간최저허용온도) ' Worksheets("설정조건").Range("야간최저허용온도1").Offset(0, i_count_profile)
Delta_theta_i_WE = TOSG(DR프로필(0).주말최저허용온도) ' Worksheets("설정조건").Range("주말최저허용온도1").Offset(0, i_count_profile)
' If i_count_OpWe = 1 Then=============================================================2010.2.21 삭제
'Log.AppendLine(" >> i_count_OpWe = 1 >> Q_I_source_p/Q_I_source_fac/V_mech 계산됨")
Q_I_source_p = TOSG(DR프로필(0).사람) * A_B ' Worksheets("설정조건").Range("사람1").Offset(0, i_count_profile) * A_B '(2-118)
Q_I_source_fac = TOSG(DR프로필(0).작업보조기기) * A_B ' Worksheets("설정조건").Range("작업보조기기1").Offset(0, i_count_profile) * A_B '(2-119)
V_mech = TOSG(DR프로필(0).최소도입외기량) * A_B ' Worksheets("설정조건").Range("최소도입외기량1").Offset(0, i_count_profile) * A_B
' Else '=============================================================2010.2.21 삭제
' Log.AppendLine(" >> i_count_OpWe <> 1 >> Q_I_source_p/Q_I_source_fac 는 0입니다")
' Q_I_source_p = 0 '주말 사람없음
' Q_I_source_fac = 0 '주말 기기발열 없음
'End If
'Q_I_L = 0 'mu_L*Q_I_L_elektr (2-123)추후 추가
End If
V_mech_outdoor = 1 '외기처리 관련 (ZZ=사용안함 Y=예)
If DR존.냉난방방식 <> "기능없음" And DR존.냉난방공조 <> "기능없음" And DR존.외기부하처리여부 = "" Then
If i_count_HeatCool = 1 Then '//난방이라면
If DR존.냉난방공조 <> "난방" AndAlso DR존.냉난방공조 <> "냉난방" Then '난방/냉난방 이 아니면!
If theta_i_h_soll > Calc.Pub.theta_e(i_count_month) Then '//난방설정온도 > 외기온도(난방기)
Q_vh_b_op = V_mech * (theta_i_h_soll - Calc.Pub.theta_e(i_count_month)) * t_h_op_d * c_p_arhoa * d_op_mth '===============d_op(i_count_month) 2010.2.21 수정
V_mech_outdoor = 0 ' 외기처리된 상태인 경우
'Log.AppendLine(" >> 외기처리됨")
End If
End If
Else
If DR존.냉난방공조 <> "냉방" AndAlso DR존.냉난방공조 <> "냉난방" Then '냉방/냉난방이 아닐경우
If theta_i_c_soll < Calc.Pub.theta_e(i_count_month) Then
Q_vh_b_op = V_mech * (Calc.Pub.theta_e(i_count_month) - theta_i_c_soll) * t_h_op_d * c_p_arhoa * d_op_mth '===============d_op(i_count_month) 2010.2.21 수정
V_mech_outdoor = 0 ' 외기처리된 상태인 경우
'Log.AppendLine(" >> 외기처리됨")
End If
End If
End If
End If
n_50 = TOSG(DR존.침기율) '//tosg 는 빈값일경우 0을 반환
n_inf = n_50 * e_wind '(2-59) 환기기기 없는 경우
'n_inf = n_50 * e_wind * (1 + f_V_mech * t_V_mech / 24) '(2-60) 급기 및 배기에 대한 환기회수 필요
'///////////////////////////////////////////////////////////////////////////////////////////////////////2011.04.04 추가
'If n_nutz < 1.2 Then
' Delta_n_win = n_nutz - (n_nutz - 0.2) * n_inf - 0.1
'Else
' Delta_n_win = n_nutz - n_inf - 0.1
'End If
'If Delta_n_win < 0 Then
' Delta_n_win = 0
'End If
'n_win = 0.1 + Delta_n_win * t_h_op_d / 24
n_win = 0.1 ' 최소외기 도입량은 환기기기 유무와 상관없이 적용되는 것으로 평가하기 때문에 자연환기 기본값만 적용
'///////////////////////////////////////////////////////////////////////////////////////////////////////2011.04.04 추가
H_T_D = 0
H_T_iu = 0
H_T_iz = 0
Dim Drow프로필 As DS.tbl_profileRow = CType(DSET.tbl_profile.Select("code='" & DR존.프로필 & "' and code <> '0'")(0), DS.tbl_profileRow)
If DR존.조명부하산출방법 = "계산치" Then
Q_I_L = TOSG(DR존.조명에너지부하율계산치) * TOSG(Drow프로필.일일사용시간) * A_B
Else
Q_I_L = TOSG(DR존.조명에너지부하율입력치) * TOSG(Drow프로필.일일사용시간) * A_B
End If
'Q_I_L = TOSG(IIf(DR존.조명부하산출방법 = "계산치", TOSG(DR존.조명에너지부하율계산치), TOSG(DR존.조명에너지부하율입력치))) * TOSG(Drow프로필.일일사용시간) * A_B
Q_w_b = TOSG(Drow프로필.일일급탕요구량) * A_B * d_op_mth
'===================================2010.2.21 삭제
'If DR존.조명부하산출방법 = "CALC" Then '//OpWe의 2번은 주말인거 같다.
' '//부하율계산치?입력치구분
' Q_w_b = TOSG(DR존.급탕요구량) * A_B * Calc.Pub.d_op_mth(i_count_month)
'Else
' Q_I_L = 0 '주말 소등으로 설정
' Q_w_b = 0 '주말은 급탕사용안함
'End If
'===================================2010.2.21 삭제
'Log.AppendLine(" >> 현재존을 사용하는 각 입력면(" & DSET.tbl_myoun.Select("존분류='" & DR존.code & "'").GetUpperBound(0) & ")으로부터 데이터를 누적")
For Each Dr입력면 As DS.tbl_myounRow In DSET.tbl_myoun.Select("존분류='" & DR존.code & "'")
If Dr입력면.code <> "0" Then
If DR존.열교가산치 = "내단열" Then
Delta_U_WB = 0.15 '내단열(=0001) Worksheets("입력존").Range("열교1").Offset(0, i_count_zone - 1) = "내단열" Then
Else
Delta_U_WB = 0.1 '내단열(=0001) Worksheets("입력존").Range("열교1").Offset(0, i_count_zone - 1) = "내단열" Then
End If
Select Case Dr입력면.건축부위방식.Trim ' Case Worksheets("입력면").Range("입력부위" & i_sub_wall & "").Offset(0, i_count_wall)
Case "외벽" '"외벽"
'Dr입력면.열관류율 >> Calc.Get_열관류율(Dr입력면)
H_T_D = H_T_D + Calc.Get_열관류율(Dr입력면) * age * TOSG(Dr입력면.건축부위면적) * zone_count + Delta_U_WB * TOSG(Dr입력면.건축부위면적) * zone_count ' Worksheets("입력면").Range("부위면적" & i_sub_wall & "").Offset(0, i_count_wall) '(2-44) Delta_U_WB는 외단열 0.1, 내단열 0.15
Case "외부창", "내부창" '=================2010.03.20 수정
If Dr입력면.블라인드유무 = "" Then ' '0001(=유) Range("에너지투과율" & i_sub_wall & "").Offset(3, i_count_wall) = "유" Then
If Calc.Get_열관류율(Dr입력면) = 0 Then
MsgBox("블라인드 사용이지만 열관류율 수치가 입력되지 않았습니다", MsgBoxStyle.Critical, "확인")
Else
Select Case Dr입력면.블라인드위치.Trim ' Range("에너지투과율" & i_sub_wall & "").Offset(4, i_count_wall)
Case "내부" '"내부"
U_blinds = TOSG(1 / (1 / (Calc.Get_열관류율(Dr입력면) * age) + 1 / 30))
Case "중간" '중간"
U_blinds = TOSG(1 / (1 / (Calc.Get_열관류율(Dr입력면) * age) + 1 / 3))
Case "외부" ' '외부"
U_blinds = TOSG(1 / (1 / (Calc.Get_열관류율(Dr입력면) * age) + 1 / 5 + 1 / 10))
End Select
End If
Else
U_blinds = Calc.Get_열관류율(Dr입력면) * age 'Worksheets("입력면").Range("열관류율" & i_sub_wall & "").Offset(0, i_count_wall)
End If
'=========================================================================================================2010.03.20 수정
If Dr입력면.건축부위방식.Trim = "외부창" Then
H_T_D = H_T_D + U_blinds * TOSG(Dr입력면.건축부위면적) * zone_count + Delta_U_WB * TOSG(Dr입력면.건축부위면적) * zone_count '(2-44) Delta_U_WB는 외단열 0.1, 내단열 0.15
Else
H_T_iu = H_T_iu + U_blinds * TOSG(Dr입력면.건축부위면적) * zone_count
End If
'=========================================================================================================2010.03.20 수정
Case "내벽" ' "내벽"
H_T_iu = H_T_iu + Calc.Get_열관류율(Dr입력면) * age * TOSG(Dr입력면.건축부위면적) * zone_count '(2-48)
Case "간벽" '"간벽"
H_T_iz = H_T_iz + Calc.Get_열관류율(Dr입력면) * age * TOSG(Dr입력면.건축부위면적) * zone_count '(2-52)
Case Else
MsgBox("입력면 건축부위방식이 없습니다", MsgBoxStyle.Critical, "확인")
Return False
End Select
End If
Next
If H_T_D = 0 Then
H_V_inf = 0
Else
H_V_inf = n_inf * V * c_p_arhoa '(2-58) c_p_arhoa는 0.34 V는 존의 체적
End If
H_V_win = n_win * V * c_p_arhoa '//2011.04.04 추가
H_V_mech = V_mech * c_p_arhoa 'n_mech * V * c_p_arhoa '(2-83)
H_V_ue = n_ue * V_ue * c_p_arhoa '(2-94)
'H_V_z = n_z_d * c_p_arhoa '(2-99)
If DR존.열저장능력 = "" Then
MsgBox(DR존.설명 & "의 열저장능력이 입력되어 있지않습니다", MsgBoxStyle.Critical, "확인")
C_wirk = 0
Else
C_wirk = TOSG(DR존.열저장능력) * A_B ' .Worksheets("입력존").Range("열저장능력1").Offset(0, i_count_zone - 1) * A_B
End If
If i_count_HeatCool = 1 Then
H_V_mech_theta = 0 'H_V_mech * (theta_i_h_soll - theta_V_mech) / 6 '(2-130) 우선 고려안함
Else
H_V_mech_theta = 0 'H_V_mech * (theta_i_c_soll - theta_V_mech) / 6 '(2-130)
End If
tau = C_wirk / ((H_T_D + H_T_iu + H_T_iz) + (H_V_inf + H_V_mech + H_V_ue + H_V_win) + H_V_mech_theta) '(2-22, 129) 추후 H_V_z 추가 '//2011.04.04 H_V_win 추가
If tau < 48 Then tau = 48
a = 1 + tau / 16 '(2-25)
a_tb = 1 ' =A_beheizt / A_B 'A_beheizt는 난방면적, A_B는 전용면적
t_NA = 24 - t_h_op_d
f_tb = TOSG(0.8 * (1 - Math.Exp(-Q_h_max / (A_B * 35))) * a_tb ^ 2) '(2-34)
'================================================2010.2.21 삭제
'If i_count_OpWe = 1 Then
'================================================2010.2.21 삭제
Select Case DR존.야간운전방식.Trim '공통1002 Worksheets("입력존").Range("야간가동1").Offset(0, i_count_zone - 1)
Case "정상가동" '정상가동"
f_NA = 0
Case "감소가동" '감소가동"
f_NA = TOSG(0.13 * t_NA * Math.Exp(-tau / 250) / 24) '(2-28) 감소가동
Case "가동정지" '가동정지"
f_NA = TOSG(0.26 * t_NA * Math.Exp(-tau / 250) / 24) '(2-29) 가동정지
End Select
theta_i_h = theta_i_h_soll - f_NA * (theta_i_h_soll - Calc.Pub.theta_e(i_count_month))
If theta_i_h < theta_i_h_soll - Delta_theta_i_NA * t_NA / 24 Then theta_i_h = theta_i_h_soll - Delta_theta_i_NA * t_NA / 24 '(2-27) 야간감소
'================================================2010.2.21 삭제
'Else
'================================================2010.2.21 삭제
Select Case DR존.주말운전방식.Trim ' Worksheets("입력존").Range("주말가동1").Offset(0, i_count_zone - 1)
Case "정상가동" '정상가동"
f_we = 0
Case "감소가동" '감소가동"
f_we = TOSG(0.2 * (1 - 0.4 * tau / 250)) '(2-31) 난방감소
Case "가동정지" '가동정지"
f_we = TOSG(0.3 * (1 - 0.2 * tau / 250)) '(2-32) 난방정지식
End Select
theta_i_h = theta_i_h_soll - f_we * (theta_i_h_soll - Calc.Pub.theta_e(i_count_month))
If theta_i_h < theta_i_h_soll - Delta_theta_i_WE Then theta_i_h = theta_i_h_soll - Delta_theta_i_WE '(2-30) 주말감소식 변형
'================================================2010.2.21 삭제
'End If
'================================================2010.2.21 삭제
If i_count_HeatCool = 1 Then
theta_i = theta_i_h
theta_z = theta_i_h
theta_u = TOSG(theta_i_h_soll - 0.7 * (theta_i_h_soll - Calc.Pub.theta_e(i_count_month)))
Else
theta_i = theta_i_c_soll '24'에너지 사용량 계산할때 24 사용
theta_z = theta_i_c_soll
theta_u = TOSG(theta_i_c_soll - 0.7 * (theta_i_c_soll - Calc.Pub.theta_e(i_count_month)))
End If
'theta_i_h = theta_i_h_soll - f_tb * (theta_i_h_soll - theta_e(i_count_month)) '(2-33) 공간적제한
'theta_i_h = theta_i_NA - f_tb * (theta_i_NA - theta_e(i_count_month)) '(2-35) 공간적 시간적 제한
'theta_V_mech = theta_e(i_count_month) '(2-90) 공조처리 없는 경우
'theta_V_mech = theta_e(i_count_month) + eta_V_mech * (theta_i - theta_e(i_count_month)) '(2-91) 비제어적 열교환 eta_V_mech은 사용자입력
theta_V_mech_RLT = TOSG(IIf(i_count_HeatCool = 1, 27, 16))
theta_V_mech = Calc.Pub.theta_e(i_count_month) 'theta_V_mech_RLT '(2-92) 공조처리된 급기온도(도표 3-3, 3-4, 7-5) 난방 27, 냉방 16으로 설정
'=======================================================================2010.02.04 추가부분 시작
If DR존.냉난방공조처리시스템 <> "0" And DR존.냉난방공조 = "환기" Then '//냉난방공조처리시스템이 선택되어있고 공조가 환기라면
'//공조처리스템과 일치하는 공조기기(tbl_kongjo) 를 찾아서 계산한다.
Dim DR() As DS.tbl_kongjoRow = CType(DSET.tbl_kongjo.Select("code='" & DR존.냉난방공조처리시스템 & "' and code <> '0'"), DS.tbl_kongjoRow())
If DR.GetUpperBound(0) = 0 Then
Select Case DR(0).열교환기유형.Trim
Case "현열교환", "전열교환" '//현열교환,전열교환
Phi = TOSG(DR(0).열회수율) ' Worksheets("공조처리시스템").Range("열교환기1").Offset(1, i_count_AHU - 1)
Case Else
Phi = 0
End Select
theta_V_mech = Calc.Pub.theta_e(i_count_month) + Phi * (theta_i - Calc.Pub.theta_e(i_count_month))
Else
MsgBox(DR존.설명 & "존의 냉난방공조처리스템(" & DR존.냉난방공조처리시스템 & ") 의값이 일치하지않습니다", MsgBoxStyle.Critical, "확인")
End If
End If
'=======================================================================2010.02.04 추가부분 끝
If theta_i > Calc.Pub.theta_e(i_count_month) Then
Q_V_inf_sink = H_V_inf * (theta_i - Calc.Pub.theta_e(i_count_month)) * t_24 '(2-56)
Q_V_win_sink = H_V_win * (theta_i - Calc.Pub.theta_e(i_count_month)) * t_24 '//2011.04.04 추가
Else
Q_V_inf_source = H_V_inf * (Calc.Pub.theta_e(i_count_month) - theta_i) * t_24 '(2-
Q_V_win_source = H_V_win * (Calc.Pub.theta_e(i_count_month) - theta_i) * t_24 '//2011.04.04 추가
End If
'================================================2010.2.21 삭제
'If i_count_OpWe = 1 Then
'================================================2010.2.21 삭제
If theta_i > theta_V_mech Then
Q_V_mech_sink = H_V_mech * V_mech_outdoor * (theta_i - theta_V_mech) * t_h_op_d '(2-81)
Else
Q_V_mech_source = H_V_mech * V_mech_outdoor * (theta_V_mech - theta_i) * t_h_op_d '(2-
End If
'================================================2010.2.21 삭제
'Else
'If theta_i > theta_V_mech Then
' Q_V_mech_sink = 0
'Else
' Q_V_mech_source = 0
'End If
'End If
'================================================2010.2.21 삭제
If theta_i > theta_z Then
Q_V_z_sink = H_V_z * (theta_i - theta_z) * t_24 '(2-97)
Else
Q_V_z_source = H_V_z * (theta_z - theta_i) * t_24 '(2-
End If
Q_V_sink = Q_V_inf_sink + Q_V_mech_sink + Q_V_z_sink + Q_V_win_sink '(2-13) '//2011.04.04 추가
Q_V_source = Q_V_inf_source + Q_V_mech_source + Q_V_z_source + Q_V_win_source '(2- '//2011.04.04 추가
If theta_i > Calc.Pub.theta_e(i_count_month) Then
Q_T_e_sink = H_T_D * (theta_i - Calc.Pub.theta_e(i_count_month)) * t_24 '(2-42)
Else
Q_T_e_source = H_T_D * (Calc.Pub.theta_e(i_count_month) - theta_i) * t_24 '(2-
End If
If theta_i > theta_u Then
Q_T_u_sink = H_T_iu * (theta_i - theta_u) * t_24 '(2-46)
Else
Q_T_u_source = H_T_iu * (theta_u - theta_i) * t_24 '(2-
End If
If theta_i > theta_z Then
Q_T_z_sink = H_T_iz * (theta_i - theta_z) * t_24 '(2-50)
Else
Q_T_z_source = H_T_iz * (theta_z - theta_i) * t_24 '(2-
End If
If theta_i > Calc.Pub.theta_e(i_count_month) Then
Q_T_s_sink = H_T_s * (theta_i - Calc.Pub.theta_e(i_count_month)) * t_24 '(2-53) 추후수정
Else
Q_T_s_source = H_T_s * (Calc.Pub.theta_e(i_count_month) - theta_i) * t_24 '(2-53) 추후수정
End If
Q_T_sink = Q_T_e_sink + Q_T_u_sink + Q_T_z_sink + Q_T_s_sink '(2-12)
Q_T_source = Q_T_e_source + Q_T_u_source + Q_T_z_source + Q_T_s_source '(2-12)
Q_S_sink = 0
Q_S_source = 0
For Each DRF입력면 As DS.tbl_myounRow In DSET.tbl_myoun.Select("존분류='" & DR존.code & "' and code <> '0'") '//해당존을 사용하는 모든 입력면을 가져옴
Select Case DRF입력면.방위.Trim ' Worksheets("입력면").Range("방위" & i_sub_wall & "").Offset(0, i_count_wall)
Case "수평" '"수평"
i_count_Is = 0
Case "" '"남"
i_count_Is = 1
Case "남동" '"남동"
i_count_Is = 2
Case "남서" '"남서"
i_count_Is = 3
Case "" '"동"
i_count_Is = 4
Case "" '"서"
i_count_Is = 5
Case "북동" '"북동"
i_count_Is = 6
Case "북서" '"북서"
i_count_Is = 7
Case "" '"북"
i_count_Is = 8
'==========================================================2010.03.20 추가
Case Else
i_count_Is = -1
'==========================================================2010.03.20 추가
End Select
If i_count_Is <> -1 Then '=====================================2010.03.20 추가
Select Case DRF입력면.건축부위방식.Trim ' Range("입력부위" & i_sub_wall & "").Offset(0, i_count_wall)
Case "외벽" '외벽
If alpa * Calc.Pub.I_s(i_count_Is, i_count_month) < F_f * h_r * Delta_theta_er Then
Q_S_sink = Q_S_sink + R_se * Calc.Get_열관류율(DRF입력면) * age * TOSG(DRF입력면.건축부위면적) * zone_count * (F_f * h_r * Delta_theta_er - alpa * Calc.Pub.I_s(i_count_Is, i_count_month)) * t_24 '(2-111)
Else
'Log.AppendLine("외벽 if else = " & Q_S_source)
Q_S_source = Q_S_source + R_se * Calc.Get_열관류율(DRF입력면) * age * TOSG(DRF입력면.건축부위면적) * zone_count * (alpa * Calc.Pub.I_s(i_count_Is, i_count_month) - F_f * h_r * Delta_theta_er) * t_24 '(2-
'Log.AppendLine(">>" & Q_S_source)
End If
Case "외부창", "내부창" '=====================================2010.03.20 수정
If TOSG(DRF입력면.수평차양각) < 67.5 Then 'Range("에너지투과율" & i_sub_wall & "").Offset(1, i_count_wall) < 67.5 Then
If DRF입력면.블라인드유무 = "" Then ' Range("에너지투과율" & i_sub_wall & "").Offset(3, i_count_wall) = "유" Then
Select Case DRF입력면.블라인드빛종류.Trim ' Range("에너지투과율" & i_sub_wall & "").Offset(6, i_count_wall)
Case "불투과(t=0.0)" '불투과(t=0.0)"
tau_e_B = 0
Select Case DRF입력면.블라인드색상.Trim ' Range("에너지투과율" & i_sub_wall & "").Offset(7, i_count_wall)
Case "흰색" '흰색"
rho_e_B = 0.7
Case "밝은색" '밝은색"
rho_e_B = 0.5
Case "어두운색" '어두운색"
rho_e_B = 0.3
Case "검은색" '검은색"
rho_e_B = 0.1
Case Else
MsgBox("불투과 블라인드색상이 없습니다", MsgBoxStyle.Critical, "확인")
End Select
Case "약투과(t=0.2)" '약투과(t=0.2)"
tau_e_B = 0.2
Select Case DRF입력면.블라인드색상.Trim 'Range("에너지투과율" & i_sub_wall & "").Offset(7, i_count_wall)
Case "흰색"
rho_e_B = 0.6
Case "밝은색"
rho_e_B = 0.4
Case "어두운색"
rho_e_B = 0.2
Case "검은색"
rho_e_B = 0.1
Case Else
MsgBox("약투과 블라인드색상이 없습니다", MsgBoxStyle.Critical, "확인")
End Select
Case "반투과(t=0.4)" '반투과(t=0.4)"
tau_e_B = 0.4
Select Case DRF입력면.블라인드색상.Trim 'Range("에너지투과율" & i_sub_wall & "").Offset(7, i_count_wall)
Case "흰색"
rho_e_B = 0.4
Case "밝은색"
rho_e_B = 0.3
Case "어두운색"
rho_e_B = 0.2
Case "검은색"
rho_e_B = 0.1
Case Else
MsgBox("반투과 블라인드색상이 없습니다", MsgBoxStyle.Critical, "확인")
End Select
End Select
If DRF입력면.블라인드각도 = "45도" Then ' Range("에너지투과율" & i_sub_wall & "").Offset(5, i_count_wall) = "45도" Then
tau_e_B_corr = TOSG(0.65 * tau_e_B + 0.15 * rho_e_B)
rho_e_B_corr = TOSG(rho_e_B * (0.75 + 0.7 * tau_e_B))
tau_e_B = tau_e_B_corr
rho_e_B = rho_e_B_corr
End If
g = TOSG(DRF입력면.투과율) ' Range("에너지투과율" & i_sub_wall & "").Offset(0, i_count_wall)
If DRF입력면.블라인드위치.Trim <> "" AndAlso Calc.Get_열관류율(DRF입력면) = 0 Then
MsgBox(DRF입력면.설명 & "의 열관류율이 0입니다", MsgBoxStyle.Critical, "확인")
Else
Select Case DRF입력면.블라인드위치.Trim 'Range("에너지투과율" & i_sub_wall & "").Offset(4, i_count_wall)
Case "내부" '내부"
U_blinds = TOSG(1 / (1 / (Calc.Get_열관류율(DRF입력면) * age) + 1 / 30))
g_blinds = g * (1 - g * rho_e_B - (1 - tau_e_B - rho_e_B) * U_blinds / 30)
Case "중간" '중간"
U_blinds = TOSG(1 / (1 / (Calc.Get_열관류율(DRF입력면) * age) + 1 / 3))
g_blinds = g * tau_e_B + g * ((1 - tau_e_B - rho_e_B) + (1 - g) * rho_e_B) * U_blinds / 3
Case "외부" '외부"
U_blinds = TOSG(1 / (1 / (Calc.Get_열관류율(DRF입력면) * age) + 1 / 5 + 1 / 10))
g_blinds = tau_e_B * g + (1 - tau_e_B - rho_e_B) * U_blinds / 10 + tau_e_B * (1 - g) * g / 5
Case Else
MsgBox("블라인드위치가 없습니다", MsgBoxStyle.Critical, "확인")
End Select
End If
'===========================================================================2010.02.27 추가
If i_count_month = 0 Then
If i_count_HeatCool = 1 Then
g_blinds = (1 - Calc.Pub.F_sh_gl(i_count_Is - 1, 1 - 1)) * g + Calc.Pub.F_sh_gl(i_count_Is - 1, 1 - 1) * g_blinds
Else
g_blinds = (1 - Calc.Pub.F_sh_gl(i_count_Is - 1, 7 - 1)) * g + Calc.Pub.F_sh_gl(i_count_Is - 1, 7 - 1) * g_blinds
End If
Else
g_blinds = (1 - Calc.Pub.F_sh_gl(i_count_Is - 1, i_count_month - 1)) * g + Calc.Pub.F_sh_gl(i_count_Is - 1, i_count_month - 1) * g_blinds
End If
'===========================================================================2010.02.27 추가
Else
g_blinds = TOSG(DRF입력면.투과율) ' Range("에너지투과율" & i_sub_wall & "").Offset(0, i_count_wall)
End If
Q_S_source = TOSG(Q_S_source + F__F * TOSG(DRF입력면.건축부위면적) * zone_count * F_S * F_W * F_V * g_blinds * Math.Cos(1.33 * TOSG(DRF입력면.수평차양각) * 3.141592 / 180) * (1 - TOSG(DRF입력면.수직차양각) / 300) * Calc.Pub.I_s(i_count_Is, i_count_month) * t_24) '(2-113)
End If
End Select
End If '==========================================================2010.03.20 추가
Next
Q_I_source = Q_I_source_p + Q_I_source_fac + Q_I_L '(2-20)
Q_source = Q_S_source + Q_T_source + Q_V_source + Q_I_source '(2-16)
If i_count_month = 0 AndAlso i_count_HeatCool = 1 Then Q_source = 0 ' 난방 최대부하 계산
Q_sink = Q_T_sink + Q_V_sink + Q_S_sink '(2-11) Q_I_sink는 현재 고려안함
If Q_sink = 0 Then
eta = 0
Else
gamma = Q_source / Q_sink '(2-21)
'If gamma > 1.1 And a > 100 Then
If gamma ^ a > 1000000 Then
eta = 1 / gamma
Else
If gamma = 1 Then
eta = a / (a + 1) '(2-24)
Else
eta = TOSG((1 - gamma ^ a) / (1 - gamma ^ (a + 1))) '(2-23)
End If
End If
If 1 - (eta * gamma) < 0.01 Then eta = 1 / gamma '(2-137)
If (1 - eta) * gamma < 0.01 Then eta = 1 '(2-138)
'If V_mech >= Q_C_max / (c_p_arhoa * (theta_i - theta_mech)) Then eta = 1 '(2-139) 추후 고민
End If
If i_count_HeatCool = 1 Then
Q_h_b = Q_sink - eta * Q_source '(2-1)
Else
Q_h_b = (1 - eta) * Q_source '(2-7)
End If
If Q_h_b < 0.001 Then Q_h_b = 0 '1W 미만 제거
'========================================================2010.2.21 수정 And i_count_OpWe = 1 삭제
If i_count_month = 0 Then
If t_h_op_d <> 0 Then
Q_h_b_op = Q_h_b / t_h_op_d
Else
Q_h_b_op = Q_h_b
End If
Else
'=================================================2010.2.21 삭제
'If i_count_OpWe = 1 Then
'=================================================2010.2.21 삭제
Q_h_b_op = Q_h_b * d_op_mth
' MsgBox(i_count_month & " " & Q_h_b & " " & d_op(i_count_month) & " " & Q_h_b_op)
'=================================================2010.2.21 삭제
'Else
'Q_h_b_we = Q_h_b * Calc.Pub.d_we(i_count_month)
'=================================================2010.2.21 삭제
Dim DRProf As DS.tbl_profileRow = CType(DSET.tbl_profile.Select("code='" & DR존.프로필 & "' and code <> '0'")(0), DS.tbl_profileRow)
If DR존.조명부하산출방법 = "계산치" Then 'Worksheets("조명").Range("조명부하산출방법1").Offset(0, i_count_zone - 1) = "계산치" Then
Q_l_b = TOSG(DR존.조명에너지부하율계산치) * TOSG(DRProf.일일사용시간) * A_B * d_op_mth
Else
Q_l_b = TOSG(DR존.조명에너지부하율입력치) * TOSG(DRProf.일일사용시간) * A_B * d_op_mth
End If
Q_w_b = TOSG(DRProf.일일급탕요구량) * A_B * d_op_mth 'Worksheets("입력존").Range("일일급탕요구량1").Offset(0, i_count_zone - 1) * A_B * d_op(i_count_month)
'=================================================2010.2.21 삭제
'End If
'=================================================2010.2.21 삭제
End If
'Q_h_b_mth = d_op(i_count_month) * (Q_sink_op - eta_op * Q_source_op) + d_we(i_count_month) * (Q_sink_we - eta_we * Q_source_we) '(2-6)
'======================================2010.2.21 삭제
'Next
'======================================2010.2.21 삭제
Else
A_B = TOSG(DR존.면적) * zone_count ' Worksheets("입력존").Range("전용면적1").Offset(0, i_count_zone - 1)
Q_vh_b_op = 0
Q_h_b_op = 0
'Q_h_b_we = 0
'//조명부하산출방법이 계산치(0001)일경우 계산치로 그렇지않을경우 입력치로 계산함
Dim DRProf As DS.tbl_profileRow = CType(DSET.tbl_profile.Select("code='" & DR존.프로필 & "' and code <> '0'")(0), DS.tbl_profileRow)
If DR존.조명부하산출방법 = "계산치" Then
Q_l_b = TOSG(DR존.조명에너지부하율계산치) * TOSG(DRProf.일일사용시간) * A_B * d_op_mth
Else
Q_l_b = TOSG(DR존.조명에너지부하율입력치) * TOSG(DRProf.일일사용시간) * A_B * d_op_mth
End If
Q_w_b = TOSG(DRProf.일일급탕요구량) * A_B * d_op_mth '===============d_op(i_count_month) 2010.2.21 수정
End If
Dim Dr최대부하 As New C최대냉난방부하.Citem(DR존.code) ' DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & DR존.code & "'")(0), DSR.최대냉난방부하Row)
If i_count_HeatCool = 1 Then
If i_count_month = 0 Then '//0번시트는최대 냉난방부하 시트이다.
Dr최대부하.최대난방기기부하 = TOSG((Q_h_b_op) / 1000) ''=================== Q_h_b_we 2010.2.21 삭제
'Worksheets("" & i_count_month & "").Range("최대난방부하1").Offset(0, i_count_zone - 1) = (Q_h_b_op + Q_h_b_we) / 1000
If DR존.야간운전방식 = "가동정지" Then ' Worksheets("입력존").Range("야간가동1").Offset(0, i_count_zone - 1) = "가동정지" Then
Dr최대부하.일일난방최대가동시간 = t_h_op_d
'Dr최대냉난방부하.난방최대가동시간 = t_h_op_d ' Worksheets("" & i_count_month & "").Range("최대난방부하1").Offset(2, i_count_zone - 1) = t_h_op_d
Else
Dr최대부하.일일난방최대가동시간 = 24
'Dr최대냉난방부하.난방최대가동시간 = 24 ' Worksheets("" & i_count_month & "").Range("최대난방부하1").Offset(2, i_count_zone - 1) = 24
End If
Else
Dim Dr월에너지요구량 As New C에너지분석(i_count_month, DR존.code)
'Dim Dr월에너지요구량 As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & DR존.code & "'")(0), DSR.월별에너지분석Row)
'Dr월에너지요구량 = DSETR.에너지분석및요구량.Rows(i_count_month - 1) '//각 월별 시트에 값을 셋트(에너지분석및요구량 테이블에 들어있다)
If DR존.냉난방방식 = "냉난방" Or DR존.냉난방방식 = "난방" Then '//냉난방,난방
Dr월에너지요구량.난방에너지요구량열 = TOSG((Q_h_b_op) / 1000) '=================== Q_h_b_we 2010.2.21 삭제
Dr월에너지요구량.난방에너지요구량공조환기 = TOSG(Q_vh_b_op / 1000)
' If i_count_month = 1 Then MsgBox("1")
'Log.AppendLine("공조값설정=" & CSng(Q_vh_b_op / 1000))
ElseIf DR존.냉난방공조 = "냉난방" Or DR존.냉난방공조 = "난방" Then '//냉난방,난방
Dr월에너지요구량.난방에너지요구량열 = 0
Dr월에너지요구량.난방에너지요구량공조환기 = TOSG((Q_h_b_op) / 1000) '=================== Q_h_b_we 2010.2.21 삭제
'//오류확인용 존1만 확인한다.
'If DR존.code = "0001" Then MsgBox(DR존.냉난방방식 & vbCrLf & DR존.냉난방공조 & vbCrLf & CSng((Q_h_b_op + Q_h_b_we) / 1000), MsgBoxStyle.Information, DR존.code)
Else
If (DR존.냉난방공조 = "냉방" Or DR존.냉난방공조 = "환기") And DR존.외기부하처리여부 = "" Then '냉방/환기/"예" Then
Dr월에너지요구량.난방에너지요구량열 = 0
' If i_count_month = 1 Then MsgBox("3")
Dr월에너지요구량.난방에너지요구량공조환기 = TOSG(Q_vh_b_op / 1000)
Else
' If i_count_month = 1 Then MsgBox("4")
Dr월에너지요구량.난방에너지요구량열 = 0
Dr월에너지요구량.난방에너지요구량공조환기 = 0
End If
End If
Dr월에너지요구량.조명에너지요구량 = Q_l_b / 1000
' Log.AppendLine("i_count_HeatCool=" & i_count_HeatCool & "i_count_month=" & i_count_month & ",급탕에너지요구량=" & CSng(Q_w_b / 1000))
Dr월에너지요구량.급탕에너지요구량 = Q_w_b / 1000
' MsgBox("난방요구량" & Dr월에너지요구량.난방요구량공조, MsgBoxStyle.Information, i_count_month & "CZONE")
End If
Else
If i_count_month = 0 Then
Dr최대부하.최대냉방기기부하 = TOSG((Q_h_b_op) / 1000) '=================== Q_h_b_we 2010.2.21 삭제
'Worksheets("" & i_count_month & "").Range("최대냉방부하1").Offset(0, i_count_zone - 1) = (Q_h_b_op + Q_h_b_we) / 1000
If DR존.야간운전방식 = "가동정지" Then '//가동정지
Dr최대부하.일일냉방최대가동시간 = t_h_op_d ' Worksheets("" & i_count_month & "").Range("최대냉방부하1").Offset(2, i_count_zone - 1) = t_h_op_d
Else
Dr최대부하.일일냉방최대가동시간 = 24 'Worksheets("" & i_count_month & "").Range("최대냉방부하1").Offset(2, i_count_zone - 1) = 24
End If
Else
Dim Dr월에너지요구량 As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & DR존.code & "'")(0), DSR.월별에너지분석Row)
If DR존.냉난방방식 = "냉난방" Or DR존.냉난방방식 = "냉방" Then '//냉난방/냉방
Dr월에너지요구량.냉방요구량열 = TOSG((Q_h_b_op) / 1000) '=================== Q_h_b_we 2010.2.21 삭제
Dr월에너지요구량.냉방요구량공조 = TOSG(Q_vh_b_op / 1000)
Else
If DR존.냉난방공조 = "냉난방" Or DR존.냉난방공조 = "냉방" Then '//냉난방/냉방
Dr월에너지요구량.냉방요구량열 = 0
Dr월에너지요구량.냉방요구량공조 = TOSG((Q_h_b_op) / 1000) '=================== Q_h_b_we 2010.2.21 삭제
Else
If (DR존.냉난방공조 = "난방" Or DR존.냉난방공조 = "환기") And DR존.냉난방공조 = "" Then '//난방/환기/예
Dr월에너지요구량.냉방요구량열 = 0
Dr월에너지요구량.냉방요구량공조 = TOSG(Q_vh_b_op / 1000)
Else
Dr월에너지요구량.냉방요구량열 = 0
Dr월에너지요구량.냉방요구량공조 = 0
End If
End If
End If
'MsgBox("냉방요구량" & Dr월에너지요구량.냉방요구량공조, MsgBoxStyle.Information, i_count_month & "CZONE")
End If
End If
Next '(3)
Dim CAir As New CAirHandling
If i_count_month = 0 Then
CAir.Calc_Max_Power(i_count_HeatCool) '//AIR HANDLING 모듈 에 존재함..역시 내용이 크다 ㅠ_ㅠ
End If
Next '(2)
Next '(1)
Work_msg("에너지분석데이터 집계중...")
Frm_Work.ProgressBar1.Maximum = 13
Frm_Work.ProgressBar1.Minimum = 0
Frm_Work.ProgressBar1.Value = 0
Frm_Work.TopMost = True
Frm_Work.Show()
'//요구량 계산이 완료되었으므로 Summary 계산한다. (이것이 없어서 소요량이 오류났음)
For Each Dr As C에너지분석 In Result.E분석 '//12달치의 각존들의 데이터를 가지고 합계내역을 추린다.
Work_plus()
Dr.Calc()
Next
DSETR.AcceptChanges()
Return True
End Function
''' <summary>
''' (main2)소요량 계산
''' </summary>
''' <remarks></remarks>
Public Function Calc_Useage() As Boolean
'Dim d_op_month As Integer
Dim theta_e_month As Decimal
Dim d_full_mth As Integer
Work_msg("소요량계산중...")
Frm_Work.ProgressBar1.Maximum = 12
Frm_Work.ProgressBar1.Minimum = 0
Frm_Work.ProgressBar1.Value = 0
Frm_Work.TopMost = True
Frm_Work.Show()
For i_count_month As Short = 1 To 12 '//월별로 난/냉방 소요량을 계산
Work_msg("소요량계산중..." & "(" & i_count_month & "/12)") : Work_plus()
'===============================================2010.2.21 수정
'd_op_month = d_op(i_count_month)
d_full_mth = CInt(Calc.Pub.d_full(i_count_month))
'===============================================2010.2.21 수정
theta_e_month = Calc.Pub.theta_e(i_count_month)
'///난방
Calc.Heating.Calc_WaterheatingSystem(i_count_month, d_full_mth, theta_e_month) '//급탕소요량 '========2010.2.21 수정
Calc.AirHandling.Calc_AirHandling(i_count_month, d_full_mth) '//환기? '========2010.2.21 수정
If Result.E분석(i_count_month).난방에너지요구량 <> 0 Then Calc.Heating.Calc_HeatingSystem(i_count_month, theta_e_month) '//난방소요량
'///냉방
If Result.E분석(i_count_month).냉방에너지요구량 <> 0 Then Calc.Cooling.Calc_CoolingSystem(i_count_month, theta_e_month)
Next
DSETR.AcceptChanges()
Return True
End Function
End Class

29
ArinWarev1/Control/YkCtl.Designer.vb generated Normal file
View File

@@ -0,0 +1,29 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class YkCtl
Inherits System.Windows.Forms.UserControl
'UserControl은 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()
components = New System.ComponentModel.Container()
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
End Sub
End Class

160
ArinWarev1/Control/YkCtl.vb Normal file
View File

@@ -0,0 +1,160 @@
Public Class YkCtl
Structure SM
Private vStyle As Drawing2D.HatchStyle
Private vwidth As Single, vHeight As Single
Private vFColor As Color
Private vBColor As Color
Property Style() As Drawing2D.HatchStyle
Get
Return Me.vStyle
End Get
Set(ByVal value As Drawing2D.HatchStyle)
Me.vStyle = value
End Set
End Property
Property Width() As Single
Get
Return Me.vwidth
End Get
Set(ByVal value As Single)
Me.vwidth = value
End Set
End Property
Property Height() As Single
Get
Return Me.vHeight
End Get
Set(ByVal value As Single)
Me.vHeight = value
End Set
End Property
Property FColor() As Color
Get
Return Me.vFColor
End Get
Set(ByVal value As Color)
Me.vFColor = value
End Set
End Property
Property BColor() As Color
Get
Return Me.vBColor
End Get
Set(ByVal value As Color)
Me.vBColor = value
End Set
End Property
End Structure
Dim vMFilltype(0) As SM
Dim vVertical As Boolean = True
Dim vMaxWidth As Single = Me.Width '//총너비
Property MaxSize() As Single
Get
Return (vMaxWidth)
End Get
Set(ByVal value As Single)
Me.vMaxWidth = value
Me.Refresh()
End Set
End Property
Property Vertical() As Boolean '//그림이 세로형태?
Get
Return (vVertical)
End Get
Set(ByVal value As Boolean)
Me.vVertical = value
Me.Refresh()
' MsgBox(value)
End Set
End Property
Property M1FillType() As SM()
Get
Return (Me.vMFilltype)
End Get
Set(ByVal value As SM())
Me.vMFilltype = value
Me.Refresh()
' MsgBox("sdf")
End Set
End Property
Private Sub UserControl1_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
If Me.vMFilltype Is Nothing OrElse Me.MaxSize <= 0 Then Return
Dim G As Graphics = e.Graphics
Dim Rect As Rectangle
Dim W As Single
' If Me.MaxWidth <> 0 Then
For i As Integer = 0 To Me.M1FillType.GetUpperBound(0) '//갯수만큼 돈다
'//해당 사각형의 Rectangle 을 생성
If i = 0 Then
If Me.Vertical Then
W = Me.Width / Me.MaxSize * Me.M1FillType(i).Width
Rect = New Rectangle(0, 5, W, Me.Height - 10)
Else
W = Me.Height / Me.MaxSize * Me.M1FillType(i).Width
Rect = New Rectangle(5, 0, Me.Width - 10, W)
End If
Else
If Me.Vertical Then
W = Me.Width / Me.MaxSize * Me.M1FillType(i).Width
Rect = New Rectangle(GetWidth(i), 5, W, Me.Height - 10)
Else
W = Me.Height / Me.MaxSize * Me.M1FillType(i).Width
Rect = New Rectangle(5, GetWidth(i), Me.Width - 10, W)
End If
End If
Try
Dim B As New System.Drawing.Drawing2D.HatchBrush(Me.M1FillType(i).Style, Me.M1FillType(i).FColor, Me.M1FillType(i).BColor)
G.FillRectangle(B, Rect)
Catch ex As Exception
End Try
Next
For i As Integer = 0 To Me.M1FillType.GetUpperBound(0) '//갯수만큼 돈다
If Vertical Then
If i = 0 Then
W = Me.Width / Me.MaxSize * Me.M1FillType(i).Width
Rect = New Rectangle(0, 5, W, Me.Height - 10)
Else
W = Me.Width / Me.MaxSize * Me.M1FillType(i).Width
Rect = New Rectangle(GetWidth(i), 5, W, Me.Height - 10)
End If
If i <> 0 Then ' AndAlso i <> Me.M1FillType.GetUpperBound(0) Then
G.DrawLine(New Pen(Color.Black), Rect.X, 5, Rect.X, Me.Height - 5)
End If
Else
If i = 0 Then
W = Me.Height / Me.MaxSize * Me.M1FillType(i).Width
Rect = New Rectangle(5, 0, Me.Width - 10, W)
Else
W = Me.Height / Me.MaxSize * Me.M1FillType(i).Width
Rect = New Rectangle(5, GetWidth(i), Me.Width - 10, W)
End If
If i <> 0 Then 'AndAlso i <> Me.M1FillType.GetUpperBound(0) Then
G.DrawLine(New Pen(Color.Black), 5, Rect.Y, Me.Width - 5, Rect.Y)
End If
End If
Next
G.DrawRectangle(New Pen(Color.Black), New Rectangle(0, 0, Me.Width - 2, Me.Height - 2))
G.Dispose()
End Sub
Private Function GetWidth(ByVal idx As Integer) As Single
Dim Retval As Single = 0
For i As Integer = 0 To idx - 1
Retval += IIf(Me.Vertical = True, Me.Width, Me.Height) / Me.MaxSize * Me.M1FillType(i).Width
Next
Return Retval
End Function
End Class

BIN
ArinWarev1/DataSet.zip Normal file

Binary file not shown.

View File

@@ -0,0 +1,820 @@
'Public Class CZone_ALT
' Public Event PBarSet(ByVal min As Integer, ByVal max As Integer) '//프로그레시브바 초기화
' Public Event Message(ByVal Msg As String) '//메세지표시
' Public Event PBarVal(ByVal Value As Integer) '//프로그레시브 값설정
' ''' <summary>
' ''' (main)에너지요구량 계산
' ''' </summary>
' ''' <param name="Calc_Use">에너지소요량을 추가로 계산하려면 True 를 입력</param>
' ''' <param name="Log">로그가 입력될 스트링빌더</param>
' ''' <remarks></remarks>
' Public Overridable Function Calc_LoadOfZones_ALT() As Boolean
' Dim Title As String = "에너지요구량을 계산합니다"
' RaiseEvent Message(Title & vbCrLf & "잠시만 기다려주세요")
' RaiseEvent PBarSet(0, 100)
' RaiseEvent Message(Title & vbCrLf & "데이터저장소를 확보하는중.")
' 'i_count_OpWe As Integer, d_we_month As Integer, Q_h_b_we as decimal, ==================================2010.2.21 삭제
' Dim t_24 As Integer, f_wind As Integer, t_NA As Integer, t_h_op_d As Integer, i_count_Is As Integer
' Dim Delta_theta_er As Decimal, Delta_theta_i_NA As Decimal, Delta_theta_i_WE As Decimal, theta_i As Decimal, theta_i_h As Decimal, theta_i_c As Decimal, F_f As Decimal, F__F As Decimal, F_W As Decimal, F_S As Decimal, F_V As Decimal, h_r As Decimal, c_p_arhoa As Decimal, e_wind As Decimal, n_50 As Decimal, n_ue As Decimal, n_mech As Decimal, n_inf As Decimal, A_B As Decimal, A_u As Decimal, h_u As Decimal, V As Decimal, V_ue As Decimal
' Dim H_V_inf As Decimal, H_V_mech As Decimal, H_V_ue As Decimal, H_V_z As Decimal, theta_z As Decimal, theta_u As Decimal, H_T_D As Decimal, H_T_iu As Decimal, H_T_iz As Decimal, H_T_s As Decimal, Delta_U_WB As Decimal, H_V_mech_theta As Decimal, theta_i_h_soll As Decimal, theta_i_c_soll As Decimal, theta_V_mech As Decimal ', theta_e_min as decimal, theta_e_max as decimal
' Dim C_wirk As Decimal, tau As Decimal, a As Decimal, a_tb As Decimal, f_we As Decimal, f_NA As Decimal, f_tb As Decimal, Q_h_max As Decimal, theta_V_mech_RLT As Decimal
' Dim Q_V_inf_sink As Decimal, Q_V_mech_sink As Decimal, Q_V_z_sink As Decimal, Q_V_sink As Decimal, Q_T_e_sink As Decimal, Q_T_u_sink As Decimal, Q_T_z_sink As Decimal, Q_T_s_sink As Decimal, Q_T_sink As Decimal, Q_S_sink As Decimal, R_se As Decimal, Q_source As Decimal, Q_sink As Decimal, Q_I_source As Decimal
' Dim Q_V_inf_source As Decimal, Q_V_mech_source As Decimal, Q_V_z_source As Decimal, Q_V_source As Decimal, Q_T_e_source As Decimal, Q_T_u_source As Decimal, Q_T_z_source As Decimal, Q_T_s_source As Decimal, Q_T_source As Decimal, Q_S_source As Decimal
' Dim Q_I_source_p As Decimal, Q_I_source_fac As Decimal, Q_I_L As Decimal, Q_l_b As Decimal, Q_w_b As Decimal, gamma As Decimal, eta As Decimal, Q_h_b As Decimal, Q_h_b_op As Decimal, g_TI As Decimal
' Dim V_mech As Decimal
' 'Dim d_op_month As Integer, theta_e_month as decimal
' 'Dim A_H as decimal, A_C as decimal, A_L as decimal, A_W as decimal, A_V as decimal
' Dim Q_vh_b_op As Decimal
' Dim g_blinds As Decimal, tau_e_B As Decimal, rho_e_B As Decimal, U_blinds As Decimal, tau_e_B_corr As Decimal, rho_e_B_corr As Decimal 'EN 13363-1 적용
' Dim g As Decimal, alpa As Decimal
' 'Dim i_sub_wall As Integer
' Dim V_mech_outdoor As Decimal
' '//2010.02.04추가
' Dim Phi As Decimal
' '//2010.02.21추가
' Dim d_op_mth As Integer
' '//2011.04.04 추가
' Dim Q_V_win_sink As Decimal, Q_V_win_source As Decimal, H_V_win As Decimal, n_win As Decimal
' Dim zone_count As Decimal '//2012.07.08 추가 입력존의 수
' Dim priod_value As Single = 0
' Dim age As Single '//준공연도에 의한 경년변화값
' For Each DRpriod As DS.tbl_DescRow In DSET.tbl_Desc.Select("cname<>'0'", "cname")
' priod_value = CSng(DRpriod.priod)
' Next
' If priod_value = 0 Then
' age = 1
' Else
' age = 1 / (1 - priod_value * 0.0012)
' End If
' RaiseEvent Message(Title & vbCrLf & "저장소 기본값을 설정하는중.")
' t_24 = 24
' F_f = 0.5 '구조체와 하늘과의 형태계수
' F__F = 0.7 '창 프레임 감소계수 __필요
' F_W = 0.9 '수직입사가 아닌경우에 대한 감소계수
' F_S = 1 '주변환경에 의한 그늘짐
' F_V = 1 '0.9 '우선 먼지팩터는 없는 것으로 가정
' h_r = 5 * 0.9 '= 5*e(모를경우 e=0.9)
' Delta_theta_er = 10
' Delta_theta_i_NA = 4 '(용도별조건)
' 'theta_i = 21
' 'theta_i_h = 21
' theta_i_h_soll = 20
' theta_i_c = 24
' theta_i_c_soll = 26
' theta_V_mech_RLT = 27
' 'theta_e_min = -11.3
' 'theta_e_max = 31.5
' c_p_arhoa = 0.34 '//먼지모름
' 'n_50 = 1.5
' n_ue = 0.6
' e_wind = 0.07
' f_wind = 15
' R_se = 0.043 '외기에 직접 열전달저항 확인요망
' g_TI = 0.35 '(2-113)
' alpa = 0.4 '우선 0.4으로 설정 표면흡수율 도표 2-6 참조
' n_mech = 1 '임시
' A_u = 1
' h_u = 1 '임시
' RaiseEvent Message(Title & vbCrLf & "결과저장소 초기화")
' Work_msg("요구량계산중...")
' Frm_Work.ProgressBar1.Maximum = 26
' Frm_Work.ProgressBar1.Minimum = 0
' Frm_Work.ProgressBar1.Value = 0
' Frm_Work.TopMost = True
' Frm_Work.Show()
' '/////////////////////////////////////////////////////
' For i_count_HeatCool As Integer = 1 To 2 '(1) 루프회전 난방/냉방 구분해서 회전한다. 둘의 산식이 거의 비슷하므로 루프를 이용해서 계산
' For i_count_month As Short = 0 To 12 '(2) --월전체의 루프?
' Work_msg("요구량계산중..." & CStr(IIf(i_count_HeatCool = 1, "난방", "냉방")) & "(" & i_count_month & "/12)") : Work_plus()
' Dim Mon As String = "M" & Format(i_count_month, "00") '//저장소의 필드명이 M00 식으로되어있다.
' If i_count_month = 0 Then '//난방이라면? '//최소외기온도 난방기(theta_e_min)
' Calc.Pub.theta_e(i_count_month) = TOSG(IIf(i_count_HeatCool = 1, Calc.Pub.theta_e_min, Calc.Pub.theta_e_max))
' End If
' '//존 루프
' For Each DR존 As DS.tbl_zoneRow In DSET.tbl_zone.Select("code<>'0'", "code") ' DSET.tbl_zone.Rows.Count '(3)
' '//방식이나 공조는 ZZ는 사용안함이다 V=환기 외기부하처리여부의경우 0001 은 예이다.
' zone_count = TOSG(DR존.입력존의수)
' If DR존.냉난방방식 <> "기능없음" Or (DR존.냉난방공조 <> "기능없음" And (DR존.냉난방공조 <> "환기" Or DR존.외기부하처리여부 = "예")) Then
' Q_vh_b_op = 0
' '//i_count_OpWe 1은 평일 2는 주말이다ㅡㅡ/
' '======================================2010.2.21 삭제
' 'For i_count_OpWe = 1 To 2
' '======================================2010.2.21 삭제
' Q_V_inf_sink = 0
' Q_V_inf_source = 0
' Q_V_mech_sink = 0
' Q_V_mech_source = 0
' Q_V_z_sink = 0
' Q_V_z_source = 0
' Q_V_win_sink = 0 '//2011.04.04 추가
' Q_V_win_source = 0 '//2011.04.04 추가
' Q_T_e_sink = 0
' Q_T_e_source = 0
' Q_T_u_sink = 0
' Q_T_u_source = 0
' Q_T_z_sink = 0
' Q_T_z_source = 0
' Q_T_s_sink = 0
' Q_T_s_source = 0
' A_B = TOSG(DR존.면적) ' Worksheets("입력존").Range("전용면적1").Offset(0, i_count_zone - 1)
' V = TOSG(DR존.순실체적) ' Worksheets("입력존").Range("체적1").Offset(0, i_count_zone - 1)
' V_ue = A_u * h_u
' 'Log.AppendLine(" >> V_ue = A_u * h_u = // au와 hu 는 선언부에서 1값으로 고정되어있음 v_ue는 항상 1")
' '//존의 프로필설정에대한 실제 프로필의 데이터를 가져옴
' Dim DR프로필() As DS.tbl_profileRow = CType(DSET.tbl_profile.Select("code='" & DR존.프로필 & "' and code <> '0'"), DS.tbl_profileRow())
' If DR프로필.GetUpperBound(0) = -1 Then
' MsgBox("존=" & DR존.code & " 의 프로필=" & DR존.프로필 & " 의 데이터가 존재하지않습니다", MsgBoxStyle.Critical, "확인")
' Else
' 'Log.AppendLine(" >> 존의 프로필코드(" & DR존.프로필 & ") 에 해당하는 프로필정보를 가져옵니다")
' t_h_op_d = TOIT(DR프로필(0).운전시간난방) ' Worksheets("설정조건").Range("사용시작시간1").Offset(5, i_count_profile)
' '===================================================================================2010.2.21 추가
' If i_count_month = 0 Then
' d_op_mth = 0
' Else
' d_op_mth = CInt(TOSG(DR프로필(0)("day" & Format(i_count_month, "00"))))
' End If
' '===================================================================================2010.2.21 추가
' theta_i_h_soll = TOSG(DR프로필(0).난방설정온도) ' Worksheets("설정조건").Range("난방설정온도1").Offset(0, i_count_profile)
' theta_i_c_soll = TOSG(DR프로필(0).냉방설정온도) ' Worksheets("설정조건").Range("냉방설정온도1").Offset(0, i_count_profile)
' Delta_theta_i_NA = TOSG(DR프로필(0).야간최저허용온도) ' Worksheets("설정조건").Range("야간최저허용온도1").Offset(0, i_count_profile)
' Delta_theta_i_WE = TOSG(DR프로필(0).주말최저허용온도) ' Worksheets("설정조건").Range("주말최저허용온도1").Offset(0, i_count_profile)
' ' If i_count_OpWe = 1 Then=============================================================2010.2.21 삭제
' 'Log.AppendLine(" >> i_count_OpWe = 1 >> Q_I_source_p/Q_I_source_fac/V_mech 계산됨")
' Q_I_source_p = TOSG(DR프로필(0).사람) * A_B ' Worksheets("설정조건").Range("사람1").Offset(0, i_count_profile) * A_B '(2-118)
' Q_I_source_fac = TOSG(DR프로필(0).작업보조기기) * A_B ' Worksheets("설정조건").Range("작업보조기기1").Offset(0, i_count_profile) * A_B '(2-119)
' V_mech = TOSG(DR프로필(0).최소도입외기량) * A_B ' Worksheets("설정조건").Range("최소도입외기량1").Offset(0, i_count_profile) * A_B
' ' Else '=============================================================2010.2.21 삭제
' ' Log.AppendLine(" >> i_count_OpWe <> 1 >> Q_I_source_p/Q_I_source_fac 는 0입니다")
' ' Q_I_source_p = 0 '주말 사람없음
' ' Q_I_source_fac = 0 '주말 기기발열 없음
' 'End If
' 'Q_I_L = 0 'mu_L*Q_I_L_elektr (2-123)추후 추가
' End If
' V_mech_outdoor = 1 '외기처리 관련 (ZZ=사용안함 Y=예)
' If DR존.냉난방방식 <> "기능없음" And DR존.냉난방공조 <> "기능없음" And DR존.외기부하처리여부 = "예" Then
' If i_count_HeatCool = 1 Then '//난방이라면
' If DR존.냉난방공조 <> "난방" AndAlso DR존.냉난방공조 <> "냉난방" Then '난방/냉난방 이 아니면!
' If theta_i_h_soll > Calc.Pub.theta_e(i_count_month) Then '//난방설정온도 > 외기온도(난방기)
' Q_vh_b_op = V_mech * (theta_i_h_soll - Calc.Pub.theta_e(i_count_month)) * t_h_op_d * c_p_arhoa * d_op_mth * zone_count '===============d_op(i_count_month) 2010.2.21 수정
' V_mech_outdoor = 0 ' 외기처리된 상태인 경우
' 'Log.AppendLine(" >> 외기처리됨")
' End If
' End If
' Else
' If DR존.냉난방공조 <> "냉방" AndAlso DR존.냉난방공조 <> "냉난방" Then '냉방/냉난방이 아닐경우
' If theta_i_c_soll < Calc.Pub.theta_e(i_count_month) Then
' Q_vh_b_op = V_mech * (Calc.Pub.theta_e(i_count_month) - theta_i_c_soll) * t_h_op_d * c_p_arhoa * d_op_mth * zone_count '===============d_op(i_count_month) 2010.2.21 수정
' V_mech_outdoor = 0 ' 외기처리된 상태인 경우
' 'Log.AppendLine(" >> 외기처리됨")
' End If
' End If
' End If
' End If
' n_50 = TOSG(DR존.침기율) '//tosg 는 빈값일경우 0을 반환
' n_inf = n_50 * e_wind '(2-59) 환기기기 없는 경우
' 'n_inf = n_50 * e_wind * (1 + f_V_mech * t_V_mech / 24) '(2-60) 급기 및 배기에 대한 환기회수 필요
' '///////////////////////////////////////////////////////////////////////////////////////////////////////2011.04.04 추가
' 'If n_nutz < 1.2 Then
' ' Delta_n_win = n_nutz - (n_nutz - 0.2) * n_inf - 0.1
' 'Else
' ' Delta_n_win = n_nutz - n_inf - 0.1
' 'End If
' 'If Delta_n_win < 0 Then
' ' Delta_n_win = 0
' 'End If
' 'n_win = 0.1 + Delta_n_win * t_h_op_d / 24
' n_win = 0.1 ' 최소외기 도입량은 환기기기 유무와 상관없이 적용되는 것으로 평가하기 때문에 자연환기 기본값만 적용
' '///////////////////////////////////////////////////////////////////////////////////////////////////////2011.04.04 추가
' H_T_D = 0
' H_T_iu = 0
' H_T_iz = 0
' Dim Drow프로필 As DS.tbl_profileRow = CType(DSET.tbl_profile.Select("code='" & DR존.프로필 & "' and code <> '0'")(0), DS.tbl_profileRow)
' If DR존.조명부하산출방법 = "계산치" Then
' Q_I_L = TOSG(DR존.조명에너지부하율계산치) * TOSG(Drow프로필.일일사용시간) * A_B
' Else
' Q_I_L = TOSG(DR존.조명에너지부하율입력치) * TOSG(Drow프로필.일일사용시간) * A_B
' End If
' 'Q_I_L = TOSG(IIf(DR존.조명부하산출방법 = "계산치", TOSG(DR존.조명에너지부하율계산치), TOSG(DR존.조명에너지부하율입력치))) * TOSG(Drow프로필.일일사용시간) * A_B
' Q_w_b = TOSG(Drow프로필.일일급탕요구량) * A_B * d_op_mth
' '===================================2010.2.21 삭제
' 'If DR존.조명부하산출방법 = "CALC" Then '//OpWe의 2번은 주말인거 같다.
' ' '//부하율계산치?입력치구분
' ' Q_w_b = TOSG(DR존.급탕요구량) * A_B * Calc.Pub.d_op_mth(i_count_month)
' 'Else
' ' Q_I_L = 0 '주말 소등으로 설정
' ' Q_w_b = 0 '주말은 급탕사용안함
' 'End If
' '===================================2010.2.21 삭제
' 'Log.AppendLine(" >> 현재존을 사용하는 각 입력면(" & DSET.tbl_myoun.Select("존분류='" & DR존.code & "'").GetUpperBound(0) & ")으로부터 데이터를 누적")
' For Each Dr입력면 As DS.tbl_myounRow In DSET.tbl_myoun.Select("존분류='" & DR존.code & "'")
' If Dr입력면.code <> "0" Then
' If DR존.열교가산치 = "내단열" Then
' Delta_U_WB = 0.15 '내단열(=0001) Worksheets("입력존").Range("열교1").Offset(0, i_count_zone - 1) = "내단열" Then
' Else
' Delta_U_WB = 0.1 '내단열(=0001) Worksheets("입력존").Range("열교1").Offset(0, i_count_zone - 1) = "내단열" Then
' End If
' Select Case Dr입력면.건축부위방식.Trim ' Case Worksheets("입력면").Range("입력부위" & i_sub_wall & "").Offset(0, i_count_wall)
' Case "외벽" '"외벽"
' 'Dr입력면.열관류율 >> Calc.Get_열관류율(Dr입력면)
' H_T_D = H_T_D + Calc.Get_열관류율(Dr입력면) * age * TOSG(Dr입력면.건축부위면적) + Delta_U_WB * TOSG(Dr입력면.건축부위면적) ' Worksheets("입력면").Range("부위면적" & i_sub_wall & "").Offset(0, i_count_wall) '(2-44) Delta_U_WB는 외단열 0.1, 내단열 0.15
' Case "외부창", "내부창" '=================2010.03.20 수정
' If Dr입력면.블라인드유무 = "유" Then ' '0001(=유) Range("에너지투과율" & i_sub_wall & "").Offset(3, i_count_wall) = "유" Then
' If Calc.Get_열관류율(Dr입력면) = 0 Then
' MsgBox("블라인드 사용이지만 열관류율 수치가 입력되지 않았습니다", MsgBoxStyle.Critical, "확인")
' Else
' Select Case Dr입력면.블라인드위치.Trim ' Range("에너지투과율" & i_sub_wall & "").Offset(4, i_count_wall)
' Case "내부" '"내부"
' U_blinds = TOSG(1 / (1 / (Calc.Get_열관류율(Dr입력면) * age) + 1 / 30))
' Case "중간" '중간"
' U_blinds = TOSG(1 / (1 / (Calc.Get_열관류율(Dr입력면) * age) + 1 / 3))
' Case "외부" ' '외부"
' U_blinds = TOSG(1 / (1 / (Calc.Get_열관류율(Dr입력면) * age) + 1 / 5 + 1 / 10))
' End Select
' End If
' Else
' U_blinds = Calc.Get_열관류율(Dr입력면) * age 'Worksheets("입력면").Range("열관류율" & i_sub_wall & "").Offset(0, i_count_wall)
' End If
' '=========================================================================================================2010.03.20 수정
' If Dr입력면.건축부위방식.Trim = "외부창" Then
' H_T_D = H_T_D + U_blinds * TOSG(Dr입력면.건축부위면적) + Delta_U_WB * TOSG(Dr입력면.건축부위면적) '(2-44) Delta_U_WB는 외단열 0.1, 내단열 0.15
' Else
' H_T_iu = H_T_iu + U_blinds * TOSG(Dr입력면.건축부위면적)
' End If
' '=========================================================================================================2010.03.20 수정
' Case "내벽" ' "내벽"
' H_T_iu = H_T_iu + Calc.Get_열관류율(Dr입력면) * age * TOSG(Dr입력면.건축부위면적) '(2-48)
' Case "간벽" '"간벽"
' H_T_iz = H_T_iz + Calc.Get_열관류율(Dr입력면) * age * TOSG(Dr입력면.건축부위면적) '(2-52)
' Case Else
' MsgBox("입력면 건축부위방식이 없습니다", MsgBoxStyle.Critical, "확인")
' Return False
' End Select
' End If
' Next
' If H_T_D = 0 Then
' H_V_inf = 0
' Else
' H_V_inf = n_inf * V * c_p_arhoa '(2-58) c_p_arhoa는 0.34 V는 존의 체적
' End If
' H_V_win = n_win * V * c_p_arhoa '//2011.04.04 추가
' H_V_mech = V_mech * c_p_arhoa 'n_mech * V * c_p_arhoa '(2-83)
' H_V_ue = n_ue * V_ue * c_p_arhoa '(2-94)
' 'H_V_z = n_z_d * c_p_arhoa '(2-99)
' If DR존.열저장능력 = "" Then
' MsgBox(DR존.설명 & "의 열저장능력이 입력되어 있지않습니다", MsgBoxStyle.Critical, "확인")
' C_wirk = 0
' Else
' C_wirk = TOSG(DR존.열저장능력) * A_B ' .Worksheets("입력존").Range("열저장능력1").Offset(0, i_count_zone - 1) * A_B
' End If
' If i_count_HeatCool = 1 Then
' H_V_mech_theta = 0 'H_V_mech * (theta_i_h_soll - theta_V_mech) / 6 '(2-130) 우선 고려안함
' Else
' H_V_mech_theta = 0 'H_V_mech * (theta_i_c_soll - theta_V_mech) / 6 '(2-130)
' End If
' tau = C_wirk / ((H_T_D + H_T_iu + H_T_iz) + (H_V_inf + H_V_mech + H_V_ue + H_V_win) + H_V_mech_theta) '(2-22, 129) 추후 H_V_z 추가 '//2011.04.04 H_V_win 추가
' If tau < 48 Then tau = 48
' a = 1 + tau / 16 '(2-25)
' a_tb = 1 ' =A_beheizt / A_B 'A_beheizt는 난방면적, A_B는 전용면적
' t_NA = 24 - t_h_op_d
' f_tb = TOSG(0.8 * (1 - Math.Exp(-Q_h_max / (A_B * 35))) * a_tb ^ 2) '(2-34)
' '================================================2010.2.21 삭제
' 'If i_count_OpWe = 1 Then
' '================================================2010.2.21 삭제
' Select Case DR존.야간운전방식.Trim '공통1002 Worksheets("입력존").Range("야간가동1").Offset(0, i_count_zone - 1)
' Case "정상가동" '정상가동"
' f_NA = 0
' Case "감소가동" '감소가동"
' f_NA = TOSG(0.13 * t_NA * Math.Exp(-tau / 250) / 24) '(2-28) 감소가동
' Case "가동정지" '가동정지"
' f_NA = TOSG(0.26 * t_NA * Math.Exp(-tau / 250) / 24) '(2-29) 가동정지
' End Select
' theta_i_h = theta_i_h_soll - f_NA * (theta_i_h_soll - Calc.Pub.theta_e(i_count_month))
' If theta_i_h < theta_i_h_soll - Delta_theta_i_NA * t_NA / 24 Then theta_i_h = theta_i_h_soll - Delta_theta_i_NA * t_NA / 24 '(2-27) 야간감소
' '================================================2010.2.21 삭제
' 'Else
' '================================================2010.2.21 삭제
' Select Case DR존.주말운전방식.Trim ' Worksheets("입력존").Range("주말가동1").Offset(0, i_count_zone - 1)
' Case "정상가동" '정상가동"
' f_we = 0
' Case "감소가동" '감소가동"
' f_we = TOSG(0.2 * (1 - 0.4 * tau / 250)) '(2-31) 난방감소
' Case "가동정지" '가동정지"
' f_we = TOSG(0.3 * (1 - 0.2 * tau / 250)) '(2-32) 난방정지식
' End Select
' theta_i_h = theta_i_h_soll - f_we * (theta_i_h_soll - Calc.Pub.theta_e(i_count_month))
' If theta_i_h < theta_i_h_soll - Delta_theta_i_WE Then theta_i_h = theta_i_h_soll - Delta_theta_i_WE '(2-30) 주말감소식 변형
' '================================================2010.2.21 삭제
' 'End If
' '================================================2010.2.21 삭제
' If i_count_HeatCool = 1 Then
' theta_i = theta_i_h
' theta_z = theta_i_h
' theta_u = TOSG(theta_i_h_soll - 0.7 * (theta_i_h_soll - Calc.Pub.theta_e(i_count_month)))
' Else
' theta_i = theta_i_c_soll '24'에너지 사용량 계산할때 24 사용
' theta_z = theta_i_c_soll
' theta_u = TOSG(theta_i_c_soll - 0.7 * (theta_i_c_soll - Calc.Pub.theta_e(i_count_month)))
' End If
' 'theta_i_h = theta_i_h_soll - f_tb * (theta_i_h_soll - theta_e(i_count_month)) '(2-33) 공간적제한
' 'theta_i_h = theta_i_NA - f_tb * (theta_i_NA - theta_e(i_count_month)) '(2-35) 공간적 시간적 제한
' 'theta_V_mech = theta_e(i_count_month) '(2-90) 공조처리 없는 경우
' 'theta_V_mech = theta_e(i_count_month) + eta_V_mech * (theta_i - theta_e(i_count_month)) '(2-91) 비제어적 열교환 eta_V_mech은 사용자입력
' theta_V_mech_RLT = TOSG(IIf(i_count_HeatCool = 1, 27, 16))
' theta_V_mech = Calc.Pub.theta_e(i_count_month) 'theta_V_mech_RLT '(2-92) 공조처리된 급기온도(도표 3-3, 3-4, 7-5) 난방 27, 냉방 16으로 설정
' '=======================================================================2010.02.04 추가부분 시작
' If DR존.냉난방공조처리시스템 <> "0" And DR존.냉난방공조 = "환기" Then '//냉난방공조처리시스템이 선택되어있고 공조가 환기라면
' '//공조처리스템과 일치하는 공조기기(tbl_kongjo) 를 찾아서 계산한다.
' Dim DR() As DS.tbl_kongjoRow = CType(DSET.tbl_kongjo.Select("code='" & DR존.냉난방공조처리시스템 & "' and code <> '0'"), DS.tbl_kongjoRow())
' If DR.GetUpperBound(0) = 0 Then
' Select Case DR(0).열교환기유형.Trim
' Case "현열교환", "전열교환" '//현열교환,전열교환
' Phi = TOSG(DR(0).열회수율) ' Worksheets("공조처리시스템").Range("열교환기1").Offset(1, i_count_AHU - 1)
' Case Else
' Phi = 0
' End Select
' theta_V_mech = Calc.Pub.theta_e(i_count_month) + Phi * (theta_i - Calc.Pub.theta_e(i_count_month))
' Else
' MsgBox(DR존.설명 & "존의 냉난방공조처리스템(" & DR존.냉난방공조처리시스템 & ") 의값이 일치하지않습니다", MsgBoxStyle.Critical, "확인")
' End If
' End If
' '=======================================================================2010.02.04 추가부분 끝
' If theta_i > Calc.Pub.theta_e(i_count_month) Then
' Q_V_inf_sink = H_V_inf * (theta_i - Calc.Pub.theta_e(i_count_month)) * t_24 '(2-56)
' Q_V_win_sink = H_V_win * (theta_i - Calc.Pub.theta_e(i_count_month)) * t_24 '//2011.04.04 추가
' Else
' Q_V_inf_source = H_V_inf * (Calc.Pub.theta_e(i_count_month) - theta_i) * t_24 '(2-
' Q_V_win_source = H_V_win * (Calc.Pub.theta_e(i_count_month) - theta_i) * t_24 '//2011.04.04 추가
' End If
' '================================================2010.2.21 삭제
' 'If i_count_OpWe = 1 Then
' '================================================2010.2.21 삭제
' If theta_i > theta_V_mech Then
' Q_V_mech_sink = H_V_mech * V_mech_outdoor * (theta_i - theta_V_mech) * t_h_op_d '(2-81)
' Else
' Q_V_mech_source = H_V_mech * V_mech_outdoor * (theta_V_mech - theta_i) * t_h_op_d '(2-
' End If
' '================================================2010.2.21 삭제
' 'Else
' 'If theta_i > theta_V_mech Then
' ' Q_V_mech_sink = 0
' 'Else
' ' Q_V_mech_source = 0
' 'End If
' 'End If
' '================================================2010.2.21 삭제
' If theta_i > theta_z Then
' Q_V_z_sink = H_V_z * (theta_i - theta_z) * t_24 '(2-97)
' Else
' Q_V_z_source = H_V_z * (theta_z - theta_i) * t_24 '(2-
' End If
' Q_V_sink = Q_V_inf_sink + Q_V_mech_sink + Q_V_z_sink + Q_V_win_sink '(2-13) '//2011.04.04 추가
' Q_V_source = Q_V_inf_source + Q_V_mech_source + Q_V_z_source + Q_V_win_source '(2- '//2011.04.04 추가
' If theta_i > Calc.Pub.theta_e(i_count_month) Then
' Q_T_e_sink = H_T_D * (theta_i - Calc.Pub.theta_e(i_count_month)) * t_24 '(2-42)
' Else
' Q_T_e_source = H_T_D * (Calc.Pub.theta_e(i_count_month) - theta_i) * t_24 '(2-
' End If
' If theta_i > theta_u Then
' Q_T_u_sink = H_T_iu * (theta_i - theta_u) * t_24 '(2-46)
' Else
' Q_T_u_source = H_T_iu * (theta_u - theta_i) * t_24 '(2-
' End If
' If theta_i > theta_z Then
' Q_T_z_sink = H_T_iz * (theta_i - theta_z) * t_24 '(2-50)
' Else
' Q_T_z_source = H_T_iz * (theta_z - theta_i) * t_24 '(2-
' End If
' If theta_i > Calc.Pub.theta_e(i_count_month) Then
' Q_T_s_sink = H_T_s * (theta_i - Calc.Pub.theta_e(i_count_month)) * t_24 '(2-53) 추후수정
' Else
' Q_T_s_source = H_T_s * (Calc.Pub.theta_e(i_count_month) - theta_i) * t_24 '(2-53) 추후수정
' End If
' Q_T_sink = Q_T_e_sink + Q_T_u_sink + Q_T_z_sink + Q_T_s_sink '(2-12)
' Q_T_source = Q_T_e_source + Q_T_u_source + Q_T_z_source + Q_T_s_source '(2-12)
' Q_S_sink = 0
' Q_S_source = 0
' For Each DRF입력면 As DS.tbl_myounRow In DSET.tbl_myoun.Select("존분류='" & DR존.code & "' and code <> '0'") '//해당존을 사용하는 모든 입력면을 가져옴
' Select Case DRF입력면.방위.Trim ' Worksheets("입력면").Range("방위" & i_sub_wall & "").Offset(0, i_count_wall)
' Case "수평" '"수평"
' i_count_Is = 0
' Case "남" '"남"
' i_count_Is = 1
' Case "남동" '"남동"
' i_count_Is = 2
' Case "남서" '"남서"
' i_count_Is = 3
' Case "동" '"동"
' i_count_Is = 4
' Case "서" '"서"
' i_count_Is = 5
' Case "북동" '"북동"
' i_count_Is = 6
' Case "북서" '"북서"
' i_count_Is = 7
' Case "북" '"북"
' i_count_Is = 8
' '==========================================================2010.03.20 추가
' Case Else
' i_count_Is = -1
' '==========================================================2010.03.20 추가
' End Select
' If i_count_Is <> -1 Then '=====================================2010.03.20 추가
' Select Case DRF입력면.건축부위방식.Trim ' Range("입력부위" & i_sub_wall & "").Offset(0, i_count_wall)
' Case "외벽" '외벽
' If alpa * Calc.Pub.I_s(i_count_Is, i_count_month) < F_f * h_r * Delta_theta_er Then
' Q_S_sink = Q_S_sink + R_se * Calc.Get_열관류율(DRF입력면) * age * TOSG(DRF입력면.건축부위면적) * (F_f * h_r * Delta_theta_er - alpa * Calc.Pub.I_s(i_count_Is, i_count_month)) * t_24 '(2-111)
' Else
' 'Log.AppendLine("외벽 if else = " & Q_S_source)
' Q_S_source = Q_S_source + R_se * Calc.Get_열관류율(DRF입력면) * age * TOSG(DRF입력면.건축부위면적) * (alpa * Calc.Pub.I_s(i_count_Is, i_count_month) - F_f * h_r * Delta_theta_er) * t_24 '(2-
' 'Log.AppendLine(">>" & Q_S_source)
' End If
' Case "외부창", "내부창" '=====================================2010.03.20 수정
' If TOSG(DRF입력면.수평차양각) < 67.5 Then 'Range("에너지투과율" & i_sub_wall & "").Offset(1, i_count_wall) < 67.5 Then
' If DRF입력면.블라인드유무 = "유" Then ' Range("에너지투과율" & i_sub_wall & "").Offset(3, i_count_wall) = "유" Then
' Select Case DRF입력면.블라인드빛종류.Trim ' Range("에너지투과율" & i_sub_wall & "").Offset(6, i_count_wall)
' Case "불투과(t=0.0)" '불투과(t=0.0)"
' tau_e_B = 0
' Select Case DRF입력면.블라인드색상.Trim ' Range("에너지투과율" & i_sub_wall & "").Offset(7, i_count_wall)
' Case "흰색" '흰색"
' rho_e_B = 0.7
' Case "밝은색" '밝은색"
' rho_e_B = 0.5
' Case "어두운색" '어두운색"
' rho_e_B = 0.3
' Case "검은색" '검은색"
' rho_e_B = 0.1
' Case Else
' MsgBox("불투과 블라인드색상이 없습니다", MsgBoxStyle.Critical, "확인")
' End Select
' Case "약투과(t=0.2)" '약투과(t=0.2)"
' tau_e_B = 0.2
' Select Case DRF입력면.블라인드색상.Trim 'Range("에너지투과율" & i_sub_wall & "").Offset(7, i_count_wall)
' Case "흰색"
' rho_e_B = 0.6
' Case "밝은색"
' rho_e_B = 0.4
' Case "어두운색"
' rho_e_B = 0.2
' Case "검은색"
' rho_e_B = 0.1
' Case Else
' MsgBox("약투과 블라인드색상이 없습니다", MsgBoxStyle.Critical, "확인")
' End Select
' Case "반투과(t=0.4)" '반투과(t=0.4)"
' tau_e_B = 0.4
' Select Case DRF입력면.블라인드색상.Trim 'Range("에너지투과율" & i_sub_wall & "").Offset(7, i_count_wall)
' Case "흰색"
' rho_e_B = 0.4
' Case "밝은색"
' rho_e_B = 0.3
' Case "어두운색"
' rho_e_B = 0.2
' Case "검은색"
' rho_e_B = 0.1
' Case Else
' MsgBox("반투과 블라인드색상이 없습니다", MsgBoxStyle.Critical, "확인")
' End Select
' End Select
' If DRF입력면.블라인드각도 = "45도" Then ' Range("에너지투과율" & i_sub_wall & "").Offset(5, i_count_wall) = "45도" Then
' tau_e_B_corr = TOSG(0.65 * tau_e_B + 0.15 * rho_e_B)
' rho_e_B_corr = TOSG(rho_e_B * (0.75 + 0.7 * tau_e_B))
' tau_e_B = tau_e_B_corr
' rho_e_B = rho_e_B_corr
' End If
' g = TOSG(DRF입력면.투과율) ' Range("에너지투과율" & i_sub_wall & "").Offset(0, i_count_wall)
' If DRF입력면.블라인드위치.Trim <> "" AndAlso Calc.Get_열관류율(DRF입력면) = 0 Then
' MsgBox(DRF입력면.설명 & "의 열관류율이 0입니다", MsgBoxStyle.Critical, "확인")
' Else
' Select Case DRF입력면.블라인드위치.Trim 'Range("에너지투과율" & i_sub_wall & "").Offset(4, i_count_wall)
' Case "내부" '내부"
' U_blinds = TOSG(1 / (1 / (Calc.Get_열관류율(DRF입력면) * age) + 1 / 30))
' g_blinds = g * (1 - g * rho_e_B - (1 - tau_e_B - rho_e_B) * U_blinds / 30)
' Case "중간" '중간"
' U_blinds = TOSG(1 / (1 / (Calc.Get_열관류율(DRF입력면) * age) + 1 / 3))
' g_blinds = g * tau_e_B + g * ((1 - tau_e_B - rho_e_B) + (1 - g) * rho_e_B) * U_blinds / 3
' Case "외부" '외부"
' U_blinds = TOSG(1 / (1 / (Calc.Get_열관류율(DRF입력면) * age) + 1 / 5 + 1 / 10))
' g_blinds = tau_e_B * g + (1 - tau_e_B - rho_e_B) * U_blinds / 10 + tau_e_B * (1 - g) * g / 5
' Case Else
' MsgBox("블라인드위치가 없습니다", MsgBoxStyle.Critical, "확인")
' End Select
' End If
' '===========================================================================2010.02.27 추가
' If i_count_month = 0 Then
' If i_count_HeatCool = 1 Then
' g_blinds = (1 - Calc.Pub.F_sh_gl(i_count_Is - 1, 1 - 1)) * g + Calc.Pub.F_sh_gl(i_count_Is - 1, 1 - 1) * g_blinds
' Else
' g_blinds = (1 - Calc.Pub.F_sh_gl(i_count_Is - 1, 7 - 1)) * g + Calc.Pub.F_sh_gl(i_count_Is - 1, 7 - 1) * g_blinds
' End If
' Else
' g_blinds = (1 - Calc.Pub.F_sh_gl(i_count_Is - 1, i_count_month - 1)) * g + Calc.Pub.F_sh_gl(i_count_Is - 1, i_count_month - 1) * g_blinds
' End If
' '===========================================================================2010.02.27 추가
' Else
' g_blinds = TOSG(DRF입력면.투과율) ' Range("에너지투과율" & i_sub_wall & "").Offset(0, i_count_wall)
' End If
' Q_S_source = TOSG(Q_S_source + F__F * TOSG(DRF입력면.건축부위면적) * F_S * F_W * F_V * g_blinds * Math.Cos(1.33 * TOSG(DRF입력면.수평차양각) * 3.141592 / 180) * (1 - TOSG(DRF입력면.수직차양각) / 300) * Calc.Pub.I_s(i_count_Is, i_count_month) * t_24) '(2-113)
' End If
' End Select
' End If '==========================================================2010.03.20 추가
' Next
' Q_I_source = Q_I_source_p + Q_I_source_fac + Q_I_L '(2-20)
' Q_source = Q_S_source + Q_T_source + Q_V_source + Q_I_source '(2-16)
' If i_count_month = 0 AndAlso i_count_HeatCool = 1 Then Q_source = 0 ' 난방 최대부하 계산
' Q_sink = Q_T_sink + Q_V_sink + Q_S_sink '(2-11) Q_I_sink는 현재 고려안함
' If Q_sink = 0 Then
' eta = 0
' Else
' gamma = Q_source / Q_sink '(2-21)
' 'If gamma > 1.1 And a > 100 Then
' If gamma ^ a > 1000000 Then
' eta = 1 / gamma
' Else
' If gamma = 1 Then
' eta = a / (a + 1) '(2-24)
' Else
' eta = TOSG((1 - gamma ^ a) / (1 - gamma ^ (a + 1))) '(2-23)
' End If
' End If
' If 1 - (eta * gamma) < 0.01 Then eta = 1 / gamma '(2-137)
' If (1 - eta) * gamma < 0.01 Then eta = 1 '(2-138)
' 'If V_mech >= Q_C_max / (c_p_arhoa * (theta_i - theta_mech)) Then eta = 1 '(2-139) 추후 고민
' End If
' If i_count_HeatCool = 1 Then
' Q_h_b = Q_sink - eta * Q_source '(2-1)
' Else
' Q_h_b = (1 - eta) * Q_source '(2-7)
' End If
' If Q_h_b < 0.001 Then Q_h_b = 0 '1W 미만 제거
' '========================================================2010.2.21 수정 And i_count_OpWe = 1 삭제
' If i_count_month = 0 Then
' If t_h_op_d <> 0 Then
' Q_h_b_op = Q_h_b / t_h_op_d * zone_count
' Else
' Q_h_b_op = Q_h_b * zone_count
' End If
' Else
' '=================================================2010.2.21 삭제
' 'If i_count_OpWe = 1 Then
' '=================================================2010.2.21 삭제
' Q_h_b_op = Q_h_b * d_op_mth * zone_count
' ' MsgBox(i_count_month & " " & Q_h_b & " " & d_op(i_count_month) & " " & Q_h_b_op)
' '=================================================2010.2.21 삭제
' 'Else
' 'Q_h_b_we = Q_h_b * Calc.Pub.d_we(i_count_month)
' '=================================================2010.2.21 삭제
' Dim DRProf As DS.tbl_profileRow = CType(DSET.tbl_profile.Select("code='" & DR존.프로필 & "' and code <> '0'")(0), DS.tbl_profileRow)
' If DR존.조명부하산출방법 = "계산치" Then 'Worksheets("조명").Range("조명부하산출방법1").Offset(0, i_count_zone - 1) = "계산치" Then
' Q_l_b = TOSG(DR존.조명에너지부하율계산치) * TOSG(DRProf.일일사용시간) * A_B * d_op_mth * zone_count
' Else
' Q_l_b = TOSG(DR존.조명에너지부하율입력치) * TOSG(DRProf.일일사용시간) * A_B * d_op_mth * zone_count
' End If
' Q_w_b = TOSG(DRProf.일일급탕요구량) * A_B * d_op_mth * zone_count 'Worksheets("입력존").Range("일일급탕요구량1").Offset(0, i_count_zone - 1) * A_B * d_op(i_count_month)
' '=================================================2010.2.21 삭제
' 'End If
' '=================================================2010.2.21 삭제
' End If
' 'Q_h_b_mth = d_op(i_count_month) * (Q_sink_op - eta_op * Q_source_op) + d_we(i_count_month) * (Q_sink_we - eta_we * Q_source_we) '(2-6)
' '======================================2010.2.21 삭제
' 'Next
' '======================================2010.2.21 삭제
' Else
' A_B = TOSG(DR존.면적) ' Worksheets("입력존").Range("전용면적1").Offset(0, i_count_zone - 1)
' Q_vh_b_op = 0
' Q_h_b_op = 0
' 'Q_h_b_we = 0
' '//조명부하산출방법이 계산치(0001)일경우 계산치로 그렇지않을경우 입력치로 계산함
' Dim DRProf As DS.tbl_profileRow = CType(DSET.tbl_profile.Select("code='" & DR존.프로필 & "' and code <> '0'")(0), DS.tbl_profileRow)
' If DR존.조명부하산출방법 = "계산치" Then
' Q_l_b = TOSG(DR존.조명에너지부하율계산치) * TOSG(DRProf.일일사용시간) * A_B * d_op_mth * zone_count
' Else
' Q_l_b = TOSG(DR존.조명에너지부하율입력치) * TOSG(DRProf.일일사용시간) * A_B * d_op_mth * zone_count
' End If
' Q_w_b = TOSG(DRProf.일일급탕요구량) * A_B * d_op_mth * zone_count '===============d_op(i_count_month) 2010.2.21 수정
' End If
' Dim Dr최대부하 As New C최대냉난방부하.Citem(DSETR1, DR존.code) ' DSR.최대냉난방부하Row = CType(DSETR.최대냉난방부하.Select("zone='" & DR존.code & "'")(0), DSR.최대냉난방부하Row)
' If i_count_HeatCool = 1 Then
' If i_count_month = 0 Then '//0번시트는최대 냉난방부하 시트이다.
' Dr최대부하.최대난방기기부하 = TOSG((Q_h_b_op) / 1000) ''=================== Q_h_b_we 2010.2.21 삭제
' 'Worksheets("" & i_count_month & "").Range("최대난방부하1").Offset(0, i_count_zone - 1) = (Q_h_b_op + Q_h_b_we) / 1000
' If DR존.야간운전방식 = "가동정지" Then ' Worksheets("입력존").Range("야간가동1").Offset(0, i_count_zone - 1) = "가동정지" Then
' Dr최대부하.일일난방최대가동시간 = t_h_op_d
' 'Dr최대냉난방부하.난방최대가동시간 = t_h_op_d ' Worksheets("" & i_count_month & "").Range("최대난방부하1").Offset(2, i_count_zone - 1) = t_h_op_d
' Else
' Dr최대부하.일일난방최대가동시간 = 24
' 'Dr최대냉난방부하.난방최대가동시간 = 24 ' Worksheets("" & i_count_month & "").Range("최대난방부하1").Offset(2, i_count_zone - 1) = 24
' End If
' Else
' Dim Dr월에너지요구량 As New C에너지분석(i_count_month, DR존.code)
' 'Dim Dr월에너지요구량 As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & DR존.code & "'")(0), DSR.월별에너지분석Row)
' 'Dr월에너지요구량 = DSETR.에너지분석및요구량.Rows(i_count_month - 1) '//각 월별 시트에 값을 셋트(에너지분석및요구량 테이블에 들어있다)
' If DR존.냉난방방식 = "냉난방" Or DR존.냉난방방식 = "난방" Then '//냉난방,난방
' Dr월에너지요구량.난방에너지요구량열 = TOSG((Q_h_b_op) / 1000) '=================== Q_h_b_we 2010.2.21 삭제
' Dr월에너지요구량.난방에너지요구량공조환기 = TOSG(Q_vh_b_op / 1000)
' ' If i_count_month = 1 Then MsgBox("1")
' 'Log.AppendLine("공조값설정=" & CSng(Q_vh_b_op / 1000))
' ElseIf DR존.냉난방공조 = "냉난방" Or DR존.냉난방공조 = "난방" Then '//냉난방,난방
' Dr월에너지요구량.난방에너지요구량열 = 0
' Dr월에너지요구량.난방에너지요구량공조환기 = TOSG((Q_h_b_op) / 1000) '=================== Q_h_b_we 2010.2.21 삭제
' '//오류확인용 존1만 확인한다.
' 'If DR존.code = "0001" Then MsgBox(DR존.냉난방방식 & vbCrLf & DR존.냉난방공조 & vbCrLf & CSng((Q_h_b_op + Q_h_b_we) / 1000), MsgBoxStyle.Information, DR존.code)
' Else
' If (DR존.냉난방공조 = "냉방" Or DR존.냉난방공조 = "환기") And DR존.외기부하처리여부 = "예" Then '냉방/환기/"예" Then
' Dr월에너지요구량.난방에너지요구량열 = 0
' ' If i_count_month = 1 Then MsgBox("3")
' Dr월에너지요구량.난방에너지요구량공조환기 = TOSG(Q_vh_b_op / 1000)
' Else
' ' If i_count_month = 1 Then MsgBox("4")
' Dr월에너지요구량.난방에너지요구량열 = 0
' Dr월에너지요구량.난방에너지요구량공조환기 = 0
' End If
' End If
' Dr월에너지요구량.조명에너지요구량 = Q_l_b / 1000
' ' Log.AppendLine("i_count_HeatCool=" & i_count_HeatCool & "i_count_month=" & i_count_month & ",급탕에너지요구량=" & CSng(Q_w_b / 1000))
' Dr월에너지요구량.급탕에너지요구량 = Q_w_b / 1000
' ' MsgBox("난방요구량" & Dr월에너지요구량.난방요구량공조, MsgBoxStyle.Information, i_count_month & "CZONE")
' End If
' Else
' If i_count_month = 0 Then
' Dr최대부하.최대냉방기기부하 = TOSG((Q_h_b_op) / 1000) '=================== Q_h_b_we 2010.2.21 삭제
' 'Worksheets("" & i_count_month & "").Range("최대냉방부하1").Offset(0, i_count_zone - 1) = (Q_h_b_op + Q_h_b_we) / 1000
' If DR존.야간운전방식 = "가동정지" Then '//가동정지
' Dr최대부하.일일냉방최대가동시간 = t_h_op_d ' Worksheets("" & i_count_month & "").Range("최대냉방부하1").Offset(2, i_count_zone - 1) = t_h_op_d
' Else
' Dr최대부하.일일냉방최대가동시간 = 24 'Worksheets("" & i_count_month & "").Range("최대냉방부하1").Offset(2, i_count_zone - 1) = 24
' End If
' Else
' Dim Dr월에너지요구량 As DSR.월별에너지분석Row = CType(DSETR.월별에너지분석.Select("월='" & Mon & "' and 존='" & DR존.code & "'")(0), DSR.월별에너지분석Row)
' If DR존.냉난방방식 = "냉난방" Or DR존.냉난방방식 = "냉방" Then '//냉난방/냉방
' Dr월에너지요구량.냉방요구량열 = TOSG((Q_h_b_op) / 1000) '=================== Q_h_b_we 2010.2.21 삭제
' Dr월에너지요구량.냉방요구량공조 = TOSG(Q_vh_b_op / 1000)
' Else
' If DR존.냉난방공조 = "냉난방" Or DR존.냉난방공조 = "냉방" Then '//냉난방/냉방
' Dr월에너지요구량.냉방요구량열 = 0
' Dr월에너지요구량.냉방요구량공조 = TOSG((Q_h_b_op) / 1000) '=================== Q_h_b_we 2010.2.21 삭제
' Else
' If (DR존.냉난방공조 = "난방" Or DR존.냉난방공조 = "환기") And DR존.냉난방공조 = "예" Then '//난방/환기/예
' Dr월에너지요구량.냉방요구량열 = 0
' Dr월에너지요구량.냉방요구량공조 = TOSG(Q_vh_b_op / 1000)
' Else
' Dr월에너지요구량.냉방요구량열 = 0
' Dr월에너지요구량.냉방요구량공조 = 0
' End If
' End If
' End If
' 'MsgBox("냉방요구량" & Dr월에너지요구량.냉방요구량공조, MsgBoxStyle.Information, i_count_month & "CZONE")
' End If
' End If
' Next '(3)
' Dim CAir As New CAirHandling
' If i_count_month = 0 Then
' CAir.Calc_Max_Power(i_count_HeatCool) '//AIR HANDLING 모듈 에 존재함..역시 내용이 크다 ㅠ_ㅠ
' End If
' Next '(2)
' Next '(1)
' Work_msg("에너지분석데이터 집계중...")
' Frm_Work.ProgressBar1.Maximum = 13
' Frm_Work.ProgressBar1.Minimum = 0
' Frm_Work.ProgressBar1.Value = 0
' Frm_Work.TopMost = True
' Frm_Work.Show()
' '//요구량 계산이 완료되었으므로 Summary 계산한다. (이것이 없어서 소요량이 오류났음)
' For Each Dr As C에너지분석 In Result.E분석 '//12달치의 각존들의 데이터를 가지고 합계내역을 추린다.
' Work_plus()
' Dr.Calc()
' Next
' DSETR.AcceptChanges()
' Return True
' End Function
' ''' <summary>
' ''' (main2)소요량 계산
' ''' </summary>
' ''' <remarks></remarks>
' Public Function Calc_Useage_ALT() As Boolean
' 'Dim d_op_month As Integer
' Dim theta_e_month As Decimal
' Dim d_full_mth As Integer
' Work_msg("소요량계산중...")
' Frm_Work.ProgressBar1.Maximum = 12
' Frm_Work.ProgressBar1.Minimum = 0
' Frm_Work.ProgressBar1.Value = 0
' Frm_Work.TopMost = True
' Frm_Work.Show()
' For i_count_month As Short = 1 To 12 '//월별로 난/냉방 소요량을 계산
' Work_msg("소요량계산중..." & "(" & i_count_month & "/12)") : Work_plus()
' '===============================================2010.2.21 수정
' 'd_op_month = d_op(i_count_month)
' d_full_mth = CInt(Calc.Pub.d_full(i_count_month))
' '===============================================2010.2.21 수정
' theta_e_month = Calc.Pub.theta_e(i_count_month)
' '///난방
' Calc.Heating.Calc_WaterheatingSystem(i_count_month, d_full_mth, theta_e_month) '//급탕소요량 '========2010.2.21 수정
' Calc.AirHandling.Calc_AirHandling(i_count_month, d_full_mth) '//환기? '========2010.2.21 수정
' If Result.E분석(i_count_month).난방에너지요구량 <> 0 Then Calc.Heating.Calc_HeatingSystem(i_count_month, theta_e_month) '//난방소요량
' '///냉방
' If Result.E분석(i_count_month).냉방에너지요구량 <> 0 Then Calc.Cooling.Calc_CoolingSystem(i_count_month, theta_e_month)
' Next
' DSETR.AcceptChanges()
' Return True
' End Function
'End Class

35429
ArinWarev1/DataSet/DS.Designer.vb generated Normal file

File diff suppressed because it is too large Load Diff

14
ArinWarev1/DataSet/DS.vb Normal file
View File

@@ -0,0 +1,14 @@
Partial Class DS
Partial Class weather_chaDataTable
Private Sub weather_chaDataTable_weather_chaRowChanging(sender As System.Object, e As weather_chaRowChangeEvent) Handles Me.weather_chaRowChanging
End Sub
End Class
End Class
Namespace DSTableAdapters
End Namespace

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!--<autogenerated>
This code was generated by a tool.
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
</autogenerated>-->
<DataSetUISetting Version="1.00" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TableUISettings />
</DataSetUISetting>

3259
ArinWarev1/DataSet/DS.xsd Normal file

File diff suppressed because one or more lines are too long

33
ArinWarev1/DataSet/DS.xss Normal file
View File

@@ -0,0 +1,33 @@
<?xml version="1.0" encoding="utf-8"?>
<!--<autogenerated>
This code was generated by a tool to store the dataset designer's layout information.
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
</autogenerated>-->
<DiagramLayout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ex:showrelationlabel="False" ViewPortX="-10" ViewPortY="-10" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
<Shapes>
<Shape ID="DesignTable:weather_cha" ZOrder="15" X="120" Y="245" Height="305" Width="217" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:weather_temp" ZOrder="12" X="162" Y="330" Height="305" Width="228" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="254" />
<Shape ID="DesignTable:tbl_weather" ZOrder="19" X="562" Y="474" Height="376" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="308" />
<Shape ID="DesignTable:weather_ilsa" ZOrder="18" X="192" Y="676" Height="153" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="102" />
<Shape ID="DesignTable:weather_supdo" ZOrder="16" X="25" Y="665" Height="149" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="59" />
<Shape ID="DesignTable:tbl_profile" ZOrder="1" X="784" Y="474" Height="187" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="97" />
<Shape ID="DesignTable:tbl_common" ZOrder="5" X="371" Y="417" Height="168" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="78" />
<Shape ID="DesignTable:tbl_pic" ZOrder="4" X="588" Y="45" Height="67" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="63" />
<Shape ID="DesignTable:tbl_nanbangkiki" ZOrder="22" X="14" Y="81" Height="257" Width="159" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="253" />
<Shape ID="DesignTable:tbl_nangbangkiki" ZOrder="21" X="182" Y="81" Height="257" Width="166" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="253" />
<Shape ID="DesignTable:tbl_bunbae" ZOrder="13" X="252" Y="98" Height="257" Width="153" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="253" />
<Shape ID="DesignTable:tbl_new" ZOrder="9" X="524" Y="124" Height="257" Width="153" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="253" />
<Shape ID="DesignTable:tbl_myoun" ZOrder="3" X="1590" Y="60" Height="828" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="824" />
<Shape ID="DesignTable:tbl_buha" ZOrder="20" X="854" Y="81" Height="257" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="253" />
<Shape ID="DesignTable:tbl_nbunbae" ZOrder="7" X="1022" Y="81" Height="257" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="253" />
<Shape ID="DesignTable:tbl_kongjo" ZOrder="6" X="373" Y="266" Height="257" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="253" />
<Shape ID="DesignTable:tbl_kongkub" ZOrder="8" X="202" Y="185" Height="257" Width="165" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="253" />
<Shape ID="DesignTable:tbl_yk" ZOrder="10" X="412" Y="382" Height="238" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="234" />
<Shape ID="DesignTable:tbl_ykdetail" ZOrder="14" X="573" Y="385" Height="219" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="215" />
<Shape ID="DesignTable:tbl_zone" ZOrder="2" X="1414" Y="58" Height="847" Width="177" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="843" />
<Shape ID="DesignTable:tbl_monuse" ZOrder="17" X="481" Y="21" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="86" />
<Shape ID="DesignTable:tbl_Desc" ZOrder="11" X="392" Y="357" Height="466" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="462" />
</Shapes>
<Connectors />
</DiagramLayout>

841
ArinWarev1/DataSet/DS2.Designer.vb generated Normal file
View File

@@ -0,0 +1,841 @@
'------------------------------------------------------------------------------
' <auto-generated>
' 이 코드는 도구를 사용하여 생성되었습니다.
' 런타임 버전:4.0.30319.42000
'
' 파일 내용을 변경하면 잘못된 동작이 발생할 수 있으며, 코드를 다시 생성하면
' 이러한 변경 내용이 손실됩니다.
' </auto-generated>
'------------------------------------------------------------------------------
Option Strict Off
Option Explicit On
'''<summary>
'''Represents a strongly typed in-memory cache of data.
'''</summary>
<Global.System.Serializable(), _
Global.System.ComponentModel.DesignerCategoryAttribute("code"), _
Global.System.ComponentModel.ToolboxItem(true), _
Global.System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedDataSetSchema"), _
Global.System.Xml.Serialization.XmlRootAttribute("DS2"), _
Global.System.ComponentModel.Design.HelpKeywordAttribute("vs.data.DataSet")> _
Partial Public Class DS2
Inherits Global.System.Data.DataSet
Private tablehistory As historyDataTable
Private _schemaSerializationMode As Global.System.Data.SchemaSerializationMode = Global.System.Data.SchemaSerializationMode.IncludeSchema
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Sub New()
MyBase.New
Me.BeginInit
Me.InitClass
Dim schemaChangedHandler As Global.System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged
AddHandler MyBase.Tables.CollectionChanged, schemaChangedHandler
AddHandler MyBase.Relations.CollectionChanged, schemaChangedHandler
Me.EndInit
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Protected Sub New(ByVal info As Global.System.Runtime.Serialization.SerializationInfo, ByVal context As Global.System.Runtime.Serialization.StreamingContext)
MyBase.New(info, context, false)
If (Me.IsBinarySerialized(info, context) = true) Then
Me.InitVars(false)
Dim schemaChangedHandler1 As Global.System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged
AddHandler Me.Tables.CollectionChanged, schemaChangedHandler1
AddHandler Me.Relations.CollectionChanged, schemaChangedHandler1
Return
End If
Dim strSchema As String = CType(info.GetValue("XmlSchema", GetType(String)),String)
If (Me.DetermineSchemaSerializationMode(info, context) = Global.System.Data.SchemaSerializationMode.IncludeSchema) Then
Dim ds As Global.System.Data.DataSet = New Global.System.Data.DataSet()
ds.ReadXmlSchema(New Global.System.Xml.XmlTextReader(New Global.System.IO.StringReader(strSchema)))
If (Not (ds.Tables("history")) Is Nothing) Then
MyBase.Tables.Add(New historyDataTable(ds.Tables("history")))
End If
Me.DataSetName = ds.DataSetName
Me.Prefix = ds.Prefix
Me.Namespace = ds.Namespace
Me.Locale = ds.Locale
Me.CaseSensitive = ds.CaseSensitive
Me.EnforceConstraints = ds.EnforceConstraints
Me.Merge(ds, false, Global.System.Data.MissingSchemaAction.Add)
Me.InitVars
Else
Me.ReadXmlSchema(New Global.System.Xml.XmlTextReader(New Global.System.IO.StringReader(strSchema)))
End If
Me.GetSerializationData(info, context)
Dim schemaChangedHandler As Global.System.ComponentModel.CollectionChangeEventHandler = AddressOf Me.SchemaChanged
AddHandler MyBase.Tables.CollectionChanged, schemaChangedHandler
AddHandler Me.Relations.CollectionChanged, schemaChangedHandler
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0"), _
Global.System.ComponentModel.Browsable(false), _
Global.System.ComponentModel.DesignerSerializationVisibility(Global.System.ComponentModel.DesignerSerializationVisibility.Content)> _
Public ReadOnly Property history() As historyDataTable
Get
Return Me.tablehistory
End Get
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0"), _
Global.System.ComponentModel.BrowsableAttribute(true), _
Global.System.ComponentModel.DesignerSerializationVisibilityAttribute(Global.System.ComponentModel.DesignerSerializationVisibility.Visible)> _
Public Overrides Property SchemaSerializationMode() As Global.System.Data.SchemaSerializationMode
Get
Return Me._schemaSerializationMode
End Get
Set
Me._schemaSerializationMode = value
End Set
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0"), _
Global.System.ComponentModel.DesignerSerializationVisibilityAttribute(Global.System.ComponentModel.DesignerSerializationVisibility.Hidden)> _
Public Shadows ReadOnly Property Tables() As Global.System.Data.DataTableCollection
Get
Return MyBase.Tables
End Get
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0"), _
Global.System.ComponentModel.DesignerSerializationVisibilityAttribute(Global.System.ComponentModel.DesignerSerializationVisibility.Hidden)> _
Public Shadows ReadOnly Property Relations() As Global.System.Data.DataRelationCollection
Get
Return MyBase.Relations
End Get
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Protected Overrides Sub InitializeDerivedDataSet()
Me.BeginInit
Me.InitClass
Me.EndInit
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Overrides Function Clone() As Global.System.Data.DataSet
Dim cln As DS2 = CType(MyBase.Clone,DS2)
cln.InitVars
cln.SchemaSerializationMode = Me.SchemaSerializationMode
Return cln
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Protected Overrides Function ShouldSerializeTables() As Boolean
Return false
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Protected Overrides Function ShouldSerializeRelations() As Boolean
Return false
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Protected Overrides Sub ReadXmlSerializable(ByVal reader As Global.System.Xml.XmlReader)
If (Me.DetermineSchemaSerializationMode(reader) = Global.System.Data.SchemaSerializationMode.IncludeSchema) Then
Me.Reset
Dim ds As Global.System.Data.DataSet = New Global.System.Data.DataSet()
ds.ReadXml(reader)
If (Not (ds.Tables("history")) Is Nothing) Then
MyBase.Tables.Add(New historyDataTable(ds.Tables("history")))
End If
Me.DataSetName = ds.DataSetName
Me.Prefix = ds.Prefix
Me.Namespace = ds.Namespace
Me.Locale = ds.Locale
Me.CaseSensitive = ds.CaseSensitive
Me.EnforceConstraints = ds.EnforceConstraints
Me.Merge(ds, false, Global.System.Data.MissingSchemaAction.Add)
Me.InitVars
Else
Me.ReadXml(reader)
Me.InitVars
End If
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Protected Overrides Function GetSchemaSerializable() As Global.System.Xml.Schema.XmlSchema
Dim stream As Global.System.IO.MemoryStream = New Global.System.IO.MemoryStream()
Me.WriteXmlSchema(New Global.System.Xml.XmlTextWriter(stream, Nothing))
stream.Position = 0
Return Global.System.Xml.Schema.XmlSchema.Read(New Global.System.Xml.XmlTextReader(stream), Nothing)
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Friend Overloads Sub InitVars()
Me.InitVars(true)
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Friend Overloads Sub InitVars(ByVal initTable As Boolean)
Me.tablehistory = CType(MyBase.Tables("history"),historyDataTable)
If (initTable = true) Then
If (Not (Me.tablehistory) Is Nothing) Then
Me.tablehistory.InitVars
End If
End If
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Private Sub InitClass()
Me.DataSetName = "DS2"
Me.Prefix = ""
Me.Namespace = "http://tempuri.org/DS2.xsd"
Me.EnforceConstraints = true
Me.SchemaSerializationMode = Global.System.Data.SchemaSerializationMode.IncludeSchema
Me.tablehistory = New historyDataTable()
MyBase.Tables.Add(Me.tablehistory)
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Private Function ShouldSerializehistory() As Boolean
Return false
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Private Sub SchemaChanged(ByVal sender As Object, ByVal e As Global.System.ComponentModel.CollectionChangeEventArgs)
If (e.Action = Global.System.ComponentModel.CollectionChangeAction.Remove) Then
Me.InitVars
End If
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Shared Function GetTypedDataSetSchema(ByVal xs As Global.System.Xml.Schema.XmlSchemaSet) As Global.System.Xml.Schema.XmlSchemaComplexType
Dim ds As DS2 = New DS2()
Dim type As Global.System.Xml.Schema.XmlSchemaComplexType = New Global.System.Xml.Schema.XmlSchemaComplexType()
Dim sequence As Global.System.Xml.Schema.XmlSchemaSequence = New Global.System.Xml.Schema.XmlSchemaSequence()
Dim any As Global.System.Xml.Schema.XmlSchemaAny = New Global.System.Xml.Schema.XmlSchemaAny()
any.Namespace = ds.Namespace
sequence.Items.Add(any)
type.Particle = sequence
Dim dsSchema As Global.System.Xml.Schema.XmlSchema = ds.GetSchemaSerializable
If xs.Contains(dsSchema.TargetNamespace) Then
Dim s1 As Global.System.IO.MemoryStream = New Global.System.IO.MemoryStream()
Dim s2 As Global.System.IO.MemoryStream = New Global.System.IO.MemoryStream()
Try
Dim schema As Global.System.Xml.Schema.XmlSchema = Nothing
dsSchema.Write(s1)
Dim schemas As Global.System.Collections.IEnumerator = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator
Do While schemas.MoveNext
schema = CType(schemas.Current,Global.System.Xml.Schema.XmlSchema)
s2.SetLength(0)
schema.Write(s2)
If (s1.Length = s2.Length) Then
s1.Position = 0
s2.Position = 0
Do While ((s1.Position <> s1.Length) _
AndAlso (s1.ReadByte = s2.ReadByte))
Loop
If (s1.Position = s1.Length) Then
Return type
End If
End If
Loop
Finally
If (Not (s1) Is Nothing) Then
s1.Close
End If
If (Not (s2) Is Nothing) Then
s2.Close
End If
End Try
End If
xs.Add(dsSchema)
Return type
End Function
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Delegate Sub historyRowChangeEventHandler(ByVal sender As Object, ByVal e As historyRowChangeEvent)
'''<summary>
'''Represents the strongly named DataTable class.
'''</summary>
<Global.System.Serializable(), _
Global.System.Xml.Serialization.XmlSchemaProviderAttribute("GetTypedTableSchema")> _
Partial Public Class historyDataTable
Inherits Global.System.Data.TypedTableBase(Of historyRow)
Private columntime As Global.System.Data.DataColumn
Private columntablename As Global.System.Data.DataColumn
Private columnFieldcolumn As Global.System.Data.DataColumn
Private columnovalue As Global.System.Data.DataColumn
Private columnnvalue As Global.System.Data.DataColumn
Private columnidx As Global.System.Data.DataColumn
Private columncode As Global.System.Data.DataColumn
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Sub New()
MyBase.New
Me.TableName = "history"
Me.BeginInit
Me.InitClass
Me.EndInit
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Friend Sub New(ByVal table As Global.System.Data.DataTable)
MyBase.New
Me.TableName = table.TableName
If (table.CaseSensitive <> table.DataSet.CaseSensitive) Then
Me.CaseSensitive = table.CaseSensitive
End If
If (table.Locale.ToString <> table.DataSet.Locale.ToString) Then
Me.Locale = table.Locale
End If
If (table.Namespace <> table.DataSet.Namespace) Then
Me.Namespace = table.Namespace
End If
Me.Prefix = table.Prefix
Me.MinimumCapacity = table.MinimumCapacity
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Protected Sub New(ByVal info As Global.System.Runtime.Serialization.SerializationInfo, ByVal context As Global.System.Runtime.Serialization.StreamingContext)
MyBase.New(info, context)
Me.InitVars
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public ReadOnly Property timeColumn() As Global.System.Data.DataColumn
Get
Return Me.columntime
End Get
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public ReadOnly Property tablenameColumn() As Global.System.Data.DataColumn
Get
Return Me.columntablename
End Get
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public ReadOnly Property columnColumn() As Global.System.Data.DataColumn
Get
Return Me.columnFieldcolumn
End Get
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public ReadOnly Property ovalueColumn() As Global.System.Data.DataColumn
Get
Return Me.columnovalue
End Get
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public ReadOnly Property nvalueColumn() As Global.System.Data.DataColumn
Get
Return Me.columnnvalue
End Get
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public ReadOnly Property idxColumn() As Global.System.Data.DataColumn
Get
Return Me.columnidx
End Get
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public ReadOnly Property codeColumn() As Global.System.Data.DataColumn
Get
Return Me.columncode
End Get
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0"), _
Global.System.ComponentModel.Browsable(false)> _
Public ReadOnly Property Count() As Integer
Get
Return Me.Rows.Count
End Get
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Default ReadOnly Property Item(ByVal index As Integer) As historyRow
Get
Return CType(Me.Rows(index),historyRow)
End Get
End Property
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Event historyRowChanging As historyRowChangeEventHandler
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Event historyRowChanged As historyRowChangeEventHandler
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Event historyRowDeleting As historyRowChangeEventHandler
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Event historyRowDeleted As historyRowChangeEventHandler
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Overloads Sub AddhistoryRow(ByVal row As historyRow)
Me.Rows.Add(row)
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Overloads Function AddhistoryRow(ByVal time As String, ByVal tablename As String, ByVal column As String, ByVal ovalue As String, ByVal nvalue As String, ByVal code As String) As historyRow
Dim rowhistoryRow As historyRow = CType(Me.NewRow,historyRow)
Dim columnValuesArray() As Object = New Object() {time, tablename, column, ovalue, nvalue, Nothing, code}
rowhistoryRow.ItemArray = columnValuesArray
Me.Rows.Add(rowhistoryRow)
Return rowhistoryRow
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Overrides Function Clone() As Global.System.Data.DataTable
Dim cln As historyDataTable = CType(MyBase.Clone,historyDataTable)
cln.InitVars
Return cln
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Protected Overrides Function CreateInstance() As Global.System.Data.DataTable
Return New historyDataTable()
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Friend Sub InitVars()
Me.columntime = MyBase.Columns("time")
Me.columntablename = MyBase.Columns("tablename")
Me.columnFieldcolumn = MyBase.Columns("column")
Me.columnovalue = MyBase.Columns("ovalue")
Me.columnnvalue = MyBase.Columns("nvalue")
Me.columnidx = MyBase.Columns("idx")
Me.columncode = MyBase.Columns("code")
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Private Sub InitClass()
Me.columntime = New Global.System.Data.DataColumn("time", GetType(String), Nothing, Global.System.Data.MappingType.Element)
MyBase.Columns.Add(Me.columntime)
Me.columntablename = New Global.System.Data.DataColumn("tablename", GetType(String), Nothing, Global.System.Data.MappingType.Element)
MyBase.Columns.Add(Me.columntablename)
Me.columnFieldcolumn = New Global.System.Data.DataColumn("column", GetType(String), Nothing, Global.System.Data.MappingType.Element)
MyBase.Columns.Add(Me.columnFieldcolumn)
Me.columnovalue = New Global.System.Data.DataColumn("ovalue", GetType(String), Nothing, Global.System.Data.MappingType.Element)
MyBase.Columns.Add(Me.columnovalue)
Me.columnnvalue = New Global.System.Data.DataColumn("nvalue", GetType(String), Nothing, Global.System.Data.MappingType.Element)
MyBase.Columns.Add(Me.columnnvalue)
Me.columnidx = New Global.System.Data.DataColumn("idx", GetType(Integer), Nothing, Global.System.Data.MappingType.Element)
MyBase.Columns.Add(Me.columnidx)
Me.columncode = New Global.System.Data.DataColumn("code", GetType(String), Nothing, Global.System.Data.MappingType.Element)
MyBase.Columns.Add(Me.columncode)
Me.columntime.DefaultValue = CType("",String)
Me.columntablename.DefaultValue = CType("",String)
Me.columnFieldcolumn.DefaultValue = CType("",String)
Me.columnovalue.DefaultValue = CType("",String)
Me.columnnvalue.DefaultValue = CType("",String)
Me.columnidx.AutoIncrement = true
Me.columnidx.AutoIncrementSeed = 1
Me.columnidx.AllowDBNull = false
Me.columncode.DefaultValue = CType("",String)
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Function NewhistoryRow() As historyRow
Return CType(Me.NewRow,historyRow)
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Protected Overrides Function NewRowFromBuilder(ByVal builder As Global.System.Data.DataRowBuilder) As Global.System.Data.DataRow
Return New historyRow(builder)
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Protected Overrides Function GetRowType() As Global.System.Type
Return GetType(historyRow)
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Protected Overrides Sub OnRowChanged(ByVal e As Global.System.Data.DataRowChangeEventArgs)
MyBase.OnRowChanged(e)
If (Not (Me.historyRowChangedEvent) Is Nothing) Then
RaiseEvent historyRowChanged(Me, New historyRowChangeEvent(CType(e.Row,historyRow), e.Action))
End If
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Protected Overrides Sub OnRowChanging(ByVal e As Global.System.Data.DataRowChangeEventArgs)
MyBase.OnRowChanging(e)
If (Not (Me.historyRowChangingEvent) Is Nothing) Then
RaiseEvent historyRowChanging(Me, New historyRowChangeEvent(CType(e.Row,historyRow), e.Action))
End If
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Protected Overrides Sub OnRowDeleted(ByVal e As Global.System.Data.DataRowChangeEventArgs)
MyBase.OnRowDeleted(e)
If (Not (Me.historyRowDeletedEvent) Is Nothing) Then
RaiseEvent historyRowDeleted(Me, New historyRowChangeEvent(CType(e.Row,historyRow), e.Action))
End If
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Protected Overrides Sub OnRowDeleting(ByVal e As Global.System.Data.DataRowChangeEventArgs)
MyBase.OnRowDeleting(e)
If (Not (Me.historyRowDeletingEvent) Is Nothing) Then
RaiseEvent historyRowDeleting(Me, New historyRowChangeEvent(CType(e.Row,historyRow), e.Action))
End If
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Sub RemovehistoryRow(ByVal row As historyRow)
Me.Rows.Remove(row)
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Shared Function GetTypedTableSchema(ByVal xs As Global.System.Xml.Schema.XmlSchemaSet) As Global.System.Xml.Schema.XmlSchemaComplexType
Dim type As Global.System.Xml.Schema.XmlSchemaComplexType = New Global.System.Xml.Schema.XmlSchemaComplexType()
Dim sequence As Global.System.Xml.Schema.XmlSchemaSequence = New Global.System.Xml.Schema.XmlSchemaSequence()
Dim ds As DS2 = New DS2()
Dim any1 As Global.System.Xml.Schema.XmlSchemaAny = New Global.System.Xml.Schema.XmlSchemaAny()
any1.Namespace = "http://www.w3.org/2001/XMLSchema"
any1.MinOccurs = New Decimal(0)
any1.MaxOccurs = Decimal.MaxValue
any1.ProcessContents = Global.System.Xml.Schema.XmlSchemaContentProcessing.Lax
sequence.Items.Add(any1)
Dim any2 As Global.System.Xml.Schema.XmlSchemaAny = New Global.System.Xml.Schema.XmlSchemaAny()
any2.Namespace = "urn:schemas-microsoft-com:xml-diffgram-v1"
any2.MinOccurs = New Decimal(1)
any2.ProcessContents = Global.System.Xml.Schema.XmlSchemaContentProcessing.Lax
sequence.Items.Add(any2)
Dim attribute1 As Global.System.Xml.Schema.XmlSchemaAttribute = New Global.System.Xml.Schema.XmlSchemaAttribute()
attribute1.Name = "namespace"
attribute1.FixedValue = ds.Namespace
type.Attributes.Add(attribute1)
Dim attribute2 As Global.System.Xml.Schema.XmlSchemaAttribute = New Global.System.Xml.Schema.XmlSchemaAttribute()
attribute2.Name = "tableTypeName"
attribute2.FixedValue = "historyDataTable"
type.Attributes.Add(attribute2)
type.Particle = sequence
Dim dsSchema As Global.System.Xml.Schema.XmlSchema = ds.GetSchemaSerializable
If xs.Contains(dsSchema.TargetNamespace) Then
Dim s1 As Global.System.IO.MemoryStream = New Global.System.IO.MemoryStream()
Dim s2 As Global.System.IO.MemoryStream = New Global.System.IO.MemoryStream()
Try
Dim schema As Global.System.Xml.Schema.XmlSchema = Nothing
dsSchema.Write(s1)
Dim schemas As Global.System.Collections.IEnumerator = xs.Schemas(dsSchema.TargetNamespace).GetEnumerator
Do While schemas.MoveNext
schema = CType(schemas.Current,Global.System.Xml.Schema.XmlSchema)
s2.SetLength(0)
schema.Write(s2)
If (s1.Length = s2.Length) Then
s1.Position = 0
s2.Position = 0
Do While ((s1.Position <> s1.Length) _
AndAlso (s1.ReadByte = s2.ReadByte))
Loop
If (s1.Position = s1.Length) Then
Return type
End If
End If
Loop
Finally
If (Not (s1) Is Nothing) Then
s1.Close
End If
If (Not (s2) Is Nothing) Then
s2.Close
End If
End Try
End If
xs.Add(dsSchema)
Return type
End Function
End Class
'''<summary>
'''Represents strongly named DataRow class.
'''</summary>
Partial Public Class historyRow
Inherits Global.System.Data.DataRow
Private tablehistory As historyDataTable
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Friend Sub New(ByVal rb As Global.System.Data.DataRowBuilder)
MyBase.New(rb)
Me.tablehistory = CType(Me.Table,historyDataTable)
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Property time() As String
Get
If Me.IstimeNull Then
Return ""
Else
Return CType(Me(Me.tablehistory.timeColumn),String)
End If
End Get
Set
Me(Me.tablehistory.timeColumn) = value
End Set
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Property tablename() As String
Get
If Me.IstablenameNull Then
Return ""
Else
Return CType(Me(Me.tablehistory.tablenameColumn),String)
End If
End Get
Set
Me(Me.tablehistory.tablenameColumn) = value
End Set
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Property column() As String
Get
If Me.IscolumnNull Then
Return ""
Else
Return CType(Me(Me.tablehistory.columnColumn),String)
End If
End Get
Set
Me(Me.tablehistory.columnColumn) = value
End Set
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Property ovalue() As String
Get
If Me.IsovalueNull Then
Return ""
Else
Return CType(Me(Me.tablehistory.ovalueColumn),String)
End If
End Get
Set
Me(Me.tablehistory.ovalueColumn) = value
End Set
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Property nvalue() As String
Get
If Me.IsnvalueNull Then
Return ""
Else
Return CType(Me(Me.tablehistory.nvalueColumn),String)
End If
End Get
Set
Me(Me.tablehistory.nvalueColumn) = value
End Set
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Property idx() As Integer
Get
Return CType(Me(Me.tablehistory.idxColumn),Integer)
End Get
Set
Me(Me.tablehistory.idxColumn) = value
End Set
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Property code() As String
Get
If Me.IscodeNull Then
Return ""
Else
Return CType(Me(Me.tablehistory.codeColumn),String)
End If
End Get
Set
Me(Me.tablehistory.codeColumn) = value
End Set
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Function IstimeNull() As Boolean
Return Me.IsNull(Me.tablehistory.timeColumn)
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Sub SettimeNull()
Me(Me.tablehistory.timeColumn) = Global.System.Convert.DBNull
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Function IstablenameNull() As Boolean
Return Me.IsNull(Me.tablehistory.tablenameColumn)
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Sub SettablenameNull()
Me(Me.tablehistory.tablenameColumn) = Global.System.Convert.DBNull
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Function IscolumnNull() As Boolean
Return Me.IsNull(Me.tablehistory.columnColumn)
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Sub SetcolumnNull()
Me(Me.tablehistory.columnColumn) = Global.System.Convert.DBNull
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Function IsovalueNull() As Boolean
Return Me.IsNull(Me.tablehistory.ovalueColumn)
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Sub SetovalueNull()
Me(Me.tablehistory.ovalueColumn) = Global.System.Convert.DBNull
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Function IsnvalueNull() As Boolean
Return Me.IsNull(Me.tablehistory.nvalueColumn)
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Sub SetnvalueNull()
Me(Me.tablehistory.nvalueColumn) = Global.System.Convert.DBNull
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Function IscodeNull() As Boolean
Return Me.IsNull(Me.tablehistory.codeColumn)
End Function
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Sub SetcodeNull()
Me(Me.tablehistory.codeColumn) = Global.System.Convert.DBNull
End Sub
End Class
'''<summary>
'''Row event argument class
'''</summary>
<Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Class historyRowChangeEvent
Inherits Global.System.EventArgs
Private eventRow As historyRow
Private eventAction As Global.System.Data.DataRowAction
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public Sub New(ByVal row As historyRow, ByVal action As Global.System.Data.DataRowAction)
MyBase.New
Me.eventRow = row
Me.eventAction = action
End Sub
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public ReadOnly Property Row() As historyRow
Get
Return Me.eventRow
End Get
End Property
<Global.System.Diagnostics.DebuggerNonUserCodeAttribute(), _
Global.System.CodeDom.Compiler.GeneratedCodeAttribute("System.Data.Design.TypedDataSetGenerator", "4.0.0.0")> _
Public ReadOnly Property Action() As Global.System.Data.DataRowAction
Get
Return Me.eventAction
End Get
End Property
End Class
End Class

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!--<autogenerated>
This code was generated by a tool.
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
</autogenerated>-->
<DataSetUISetting Version="1.00" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TableUISettings />
</DataSetUISetting>

View File

@@ -0,0 +1,31 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="DS2" targetNamespace="http://tempuri.org/DS2.xsd" xmlns:mstns="http://tempuri.org/DS2.xsd" xmlns="http://tempuri.org/DS2.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:msprop="urn:schemas-microsoft-com:xml-msprop" attributeFormDefault="qualified" elementFormDefault="qualified">
<xs:annotation>
<xs:appinfo source="urn:schemas-microsoft-com:xml-msdatasource">
<DataSource DefaultConnectionIndex="0" FunctionsComponentName="QueriesTableAdapter" Modifier="AutoLayout, AnsiClass, Class, Public" SchemaSerializationMode="IncludeSchema" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<Connections />
<Tables />
<Sources />
</DataSource>
</xs:appinfo>
</xs:annotation>
<xs:element name="DS2" msdata:IsDataSet="true" msdata:UseCurrentLocale="true" msprop:EnableTableAdapterManager="true" msprop:Generator_DataSetName="DS2" msprop:Generator_UserDSName="DS2">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="history" msprop:Generator_TableClassName="historyDataTable" msprop:Generator_TableVarName="tablehistory" msprop:Generator_TablePropName="history" msprop:Generator_RowDeletingName="historyRowDeleting" msprop:Generator_RowChangingName="historyRowChanging" msprop:Generator_RowEvHandlerName="historyRowChangeEventHandler" msprop:Generator_RowDeletedName="historyRowDeleted" msprop:Generator_UserTableName="history" msprop:Generator_RowChangedName="historyRowChanged" msprop:Generator_RowEvArgName="historyRowChangeEvent" msprop:Generator_RowClassName="historyRow">
<xs:complexType>
<xs:sequence>
<xs:element name="time" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="time" msprop:Generator_ColumnVarNameInTable="columntime" msprop:Generator_ColumnPropNameInTable="timeColumn" msprop:Generator_UserColumnName="time" type="xs:string" default="" minOccurs="0" />
<xs:element name="tablename" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="tablename" msprop:Generator_ColumnVarNameInTable="columntablename" msprop:Generator_ColumnPropNameInTable="tablenameColumn" msprop:Generator_UserColumnName="tablename" type="xs:string" default="" minOccurs="0" />
<xs:element name="column" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="column" msprop:Generator_ColumnVarNameInTable="columnFieldcolumn" msprop:Generator_ColumnPropNameInTable="columnColumn" msprop:Generator_UserColumnName="column" type="xs:string" default="" minOccurs="0" />
<xs:element name="ovalue" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="ovalue" msprop:Generator_ColumnVarNameInTable="columnovalue" msprop:Generator_ColumnPropNameInTable="ovalueColumn" msprop:Generator_UserColumnName="ovalue" type="xs:string" default="" minOccurs="0" />
<xs:element name="nvalue" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="nvalue" msprop:Generator_ColumnVarNameInTable="columnnvalue" msprop:Generator_ColumnPropNameInTable="nvalueColumn" msprop:Generator_UserColumnName="nvalue" type="xs:string" default="" minOccurs="0" />
<xs:element name="idx" msdata:AutoIncrement="true" msdata:AutoIncrementSeed="1" msprop:Generator_ColumnVarNameInTable="columnidx" msprop:Generator_ColumnPropNameInRow="idx" msprop:Generator_ColumnPropNameInTable="idxColumn" msprop:Generator_UserColumnName="idx" type="xs:int" />
<xs:element name="code" msprop:Generator_ColumnVarNameInTable="columncode" msprop:Generator_ColumnPropNameInRow="code" msprop:nullValue="" msprop:Generator_ColumnPropNameInTable="codeColumn" msprop:Generator_UserColumnName="code" type="xs:string" default="" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
</xs:element>
</xs:schema>

View File

@@ -0,0 +1,12 @@
<?xml version="1.0" encoding="utf-8"?>
<!--<autogenerated>
This code was generated by a tool to store the dataset designer's layout information.
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
</autogenerated>-->
<DiagramLayout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ex:showrelationlabel="False" ViewPortX="0" ViewPortY="0" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
<Shapes>
<Shape ID="DesignTable:history" ZOrder="1" X="69" Y="91" Height="162" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="158" />
</Shapes>
<Connectors />
</DiagramLayout>

14001
ArinWarev1/DataSet/DSR.Designer.vb generated Normal file

File diff suppressed because it is too large Load Diff

15
ArinWarev1/DataSet/DSR.vb Normal file
View File

@@ -0,0 +1,15 @@
Partial Public Class DSR
Partial Class 사용면적DataTable
End Class
Partial Class Pyonga_YKDataTable
End Class
End Class

View File

@@ -0,0 +1,9 @@
<?xml version="1.0" encoding="utf-8"?>
<!--<autogenerated>
This code was generated by a tool.
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
</autogenerated>-->
<DataSetUISetting Version="1.00" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<TableUISettings />
</DataSetUISetting>

336
ArinWarev1/DataSet/DSR.xsd Normal file
View File

@@ -0,0 +1,336 @@
<?xml version="1.0" encoding="utf-8"?>
<xs:schema id="DSR" targetNamespace="http://tempuri.org/DSR.xsd" xmlns:mstns="http://tempuri.org/DSR.xsd" xmlns="http://tempuri.org/DSR.xsd" xmlns:xs="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata" xmlns:msprop="urn:schemas-microsoft-com:xml-msprop" attributeFormDefault="qualified" elementFormDefault="qualified">
<xs:annotation>
<xs:appinfo source="urn:schemas-microsoft-com:xml-msdatasource">
<DataSource DefaultConnectionIndex="0" FunctionsComponentName="QueriesTableAdapter" Modifier="AutoLayout, AnsiClass, Class, Public" SchemaSerializationMode="IncludeSchema" xmlns="urn:schemas-microsoft-com:xml-msdatasource">
<Connections />
<Tables />
<Sources />
</DataSource>
</xs:appinfo>
</xs:annotation>
<xs:element name="DSR" msdata:IsDataSet="true" msdata:UseCurrentLocale="true" msprop:Generator_DataSetName="DSR" msprop:Generator_UserDSName="DSR">
<xs:complexType>
<xs:choice minOccurs="0" maxOccurs="unbounded">
<xs:element name="최대냉난방부하" msprop:Generator_UserTableName="최대냉난방부하" msprop:Generator_RowEvArgName="최대냉난방부하RowChangeEvent" msprop:Generator_TableVarName="table최대냉난방부하" msprop:Generator_TablePropName="최대냉난방부하" msprop:Generator_RowDeletingName="최대냉난방부하RowDeleting" msprop:Generator_RowChangingName="최대냉난방부하RowChanging" msprop:Generator_RowDeletedName="최대냉난방부하RowDeleted" msprop:Generator_RowEvHandlerName="최대냉난방부하RowChangeEventHandler" msprop:Generator_TableClassName="최대냉난방부하DataTable" msprop:Generator_RowChangedName="최대냉난방부하RowChanged" msprop:Generator_RowClassName="최대냉난방부하Row">
<xs:complexType>
<xs:sequence>
<xs:element name="Zone" msprop:Generator_ColumnVarNameInTable="columnZone" msprop:Generator_ColumnPropNameInRow="Zone" msprop:Generator_ColumnPropNameInTable="ZoneColumn" msprop:Generator_UserColumnName="Zone" type="xs:string" minOccurs="0" />
<xs:element name="최대난방기기부하" msprop:Generator_ColumnVarNameInTable="column최대난방기기부하" msprop:Generator_ColumnPropNameInRow="최대난방기기부하" msprop:Generator_ColumnPropNameInTable="최대난방기기부하Column" msprop:Generator_UserColumnName="최대난방기기부하" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="최대난방실내부하" msprop:Generator_ColumnVarNameInTable="column최대난방실내부하" msprop:Generator_ColumnPropNameInRow="최대난방실내부하" msprop:Generator_ColumnPropNameInTable="최대난방실내부하Column" msprop:Generator_UserColumnName="최대난방실내부하" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="난방최대가동시간" msprop:Generator_ColumnVarNameInTable="column난방최대가동시간" msprop:Generator_ColumnPropNameInRow="난방최대가동시간" msprop:Generator_ColumnPropNameInTable="난방최대가동시간Column" msprop:Generator_UserColumnName="난방최대가동시간" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="최대가열성능" msprop:Generator_ColumnVarNameInTable="column최대가열성능" msprop:Generator_ColumnPropNameInRow="최대가열성능" msprop:Generator_ColumnPropNameInTable="최대가열성능Column" msprop:Generator_UserColumnName="최대가열성능" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="최대냉방기기부하" msprop:Generator_ColumnVarNameInTable="column최대냉방기기부하" msprop:Generator_ColumnPropNameInRow="최대냉방기기부하" msprop:Generator_ColumnPropNameInTable="최대냉방기기부하Column" msprop:Generator_UserColumnName="최대냉방기기부하" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="최대냉방실내부하" msprop:Generator_ColumnVarNameInTable="column최대냉방실내부하" msprop:Generator_ColumnPropNameInRow="최대냉방실내부하" msprop:Generator_ColumnPropNameInTable="최대냉방실내부하Column" msprop:Generator_UserColumnName="최대냉방실내부하" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="냉방최대가동시간" msprop:Generator_ColumnVarNameInTable="column냉방최대가동시간" msprop:Generator_ColumnPropNameInRow="냉방최대가동시간" msprop:Generator_ColumnPropNameInTable="냉방최대가동시간Column" msprop:Generator_UserColumnName="냉방최대가동시간" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="최대냉각성능" msprop:Generator_ColumnVarNameInTable="column최대냉각성능" msprop:Generator_ColumnPropNameInRow="최대냉각성능" msprop:Generator_ColumnPropNameInTable="최대냉각성능Column" msprop:Generator_UserColumnName="최대냉각성능" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="최대가습성능" msprop:Generator_ColumnVarNameInTable="column최대가습성능" msprop:Generator_ColumnPropNameInRow="최대가습성능" msprop:Generator_ColumnPropNameInTable="최대가습성능Column" msprop:Generator_UserColumnName="최대가습성능" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="공조풍량" msprop:Generator_ColumnVarNameInTable="column공조풍량" msprop:Generator_ColumnPropNameInRow="공조풍량" msprop:Generator_ColumnPropNameInTable="공조풍량Column" msprop:Generator_UserColumnName="공조풍량" type="xs:decimal" default="0" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="월별에너지분석" msprop:Generator_UserTableName="월별에너지분석" msprop:Generator_RowEvArgName="월별에너지분석RowChangeEvent" msprop:Generator_TableVarName="table월별에너지분석" msprop:Generator_TablePropName="월별에너지분석" msprop:Generator_RowDeletingName="월별에너지분석RowDeleting" msprop:Generator_RowChangingName="월별에너지분석RowChanging" msprop:Generator_RowDeletedName="월별에너지분석RowDeleted" msprop:Generator_RowEvHandlerName="월별에너지분석RowChangeEventHandler" msprop:Generator_TableClassName="월별에너지분석DataTable" msprop:Generator_RowChangedName="월별에너지분석RowChanged" msprop:Generator_RowClassName="월별에너지분석Row">
<xs:complexType>
<xs:sequence>
<xs:element name="월" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="월" msprop:Generator_ColumnVarNameInTable="column월" msprop:Generator_ColumnPropNameInTable="월Column" msprop:Generator_UserColumnName="월" type="xs:string" default="" />
<xs:element name="존" msprop:nullValue="_empty" msprop:Generator_ColumnPropNameInRow="존" msprop:Generator_ColumnVarNameInTable="column존" msprop:Generator_ColumnPropNameInTable="존Column" msprop:Generator_UserColumnName="존" type="xs:string" default="" />
<xs:element name="난방요구량열" msprop:Generator_ColumnVarNameInTable="column난방요구량열" msprop:Generator_ColumnPropNameInRow="난방요구량열" msprop:Generator_ColumnPropNameInTable="난방요구량열Column" msprop:Generator_UserColumnName="난방요구량열" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="난방요구량공조" msprop:Generator_ColumnVarNameInTable="column난방요구량공조" msprop:Generator_ColumnPropNameInRow="난방요구량공조" msprop:Generator_ColumnPropNameInTable="난방요구량공조Column" msprop:Generator_UserColumnName="난방요구량공조" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="냉방요구량열" msprop:Generator_ColumnVarNameInTable="column냉방요구량열" msprop:Generator_ColumnPropNameInRow="냉방요구량열" msprop:Generator_ColumnPropNameInTable="냉방요구량열Column" msprop:Generator_UserColumnName="냉방요구량열" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="냉방요구량공조" msprop:Generator_ColumnVarNameInTable="column냉방요구량공조" msprop:Generator_ColumnPropNameInRow="냉방요구량공조" msprop:Generator_ColumnPropNameInTable="냉방요구량공조Column" msprop:Generator_UserColumnName="냉방요구량공조" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="조명요구량" msprop:Generator_ColumnVarNameInTable="column조명요구량" msprop:Generator_ColumnPropNameInRow="조명요구량" msprop:Generator_ColumnPropNameInTable="조명요구량Column" msprop:Generator_UserColumnName="조명요구량" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="급탕요구량" msprop:Generator_ColumnVarNameInTable="column급탕요구량" msprop:Generator_ColumnPropNameInRow="급탕요구량" msprop:Generator_ColumnPropNameInTable="급탕요구량Column" msprop:Generator_UserColumnName="급탕요구량" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="공조풍량" msprop:Generator_ColumnVarNameInTable="column공조풍량" msprop:Generator_ColumnPropNameInRow="공조풍량" msprop:Generator_ColumnPropNameInTable="공조풍량Column" msprop:Generator_UserColumnName="공조풍량" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="공조요구량난방" msprop:Generator_ColumnVarNameInTable="column공조요구량난방" msprop:Generator_ColumnPropNameInRow="공조요구량난방" msprop:Generator_ColumnPropNameInTable="공조요구량난방Column" msprop:Generator_UserColumnName="공조요구량난방" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="공조요구량냉방" msprop:Generator_ColumnVarNameInTable="column공조요구량냉방" msprop:Generator_ColumnPropNameInRow="공조요구량냉방" msprop:Generator_ColumnPropNameInTable="공조요구량냉방Column" msprop:Generator_UserColumnName="공조요구량냉방" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="공조요구량가습" msprop:Generator_ColumnVarNameInTable="column공조요구량가습" msprop:Generator_ColumnPropNameInRow="공조요구량가습" msprop:Generator_ColumnPropNameInTable="공조요구량가습Column" msprop:Generator_UserColumnName="공조요구량가습" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="환기요구량" msprop:Generator_ColumnVarNameInTable="column환기요구량" msprop:Generator_ColumnPropNameInRow="환기요구량" msprop:Generator_ColumnPropNameInTable="환기요구량Column" msprop:Generator_UserColumnName="환기요구량" type="xs:decimal" default="0" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="TReqUse" msprop:Generator_UserTableName="TReqUse" msprop:Generator_RowEvArgName="TReqUseRowChangeEvent" msprop:Generator_TableVarName="tableTReqUse" msprop:Generator_TablePropName="TReqUse" msprop:Generator_RowDeletingName="TReqUseRowDeleting" msprop:Generator_RowChangingName="TReqUseRowChanging" msprop:Generator_RowDeletedName="TReqUseRowDeleted" msprop:Generator_RowEvHandlerName="TReqUseRowChangeEventHandler" msprop:Generator_TableClassName="TReqUseDataTable" msprop:Generator_RowChangedName="TReqUseRowChanged" msprop:Generator_RowClassName="TReqUseRow">
<xs:complexType>
<xs:sequence>
<xs:element name="Code" msprop:Generator_ColumnVarNameInTable="columnCode" msprop:Generator_ColumnPropNameInRow="Code" msprop:Generator_ColumnPropNameInTable="CodeColumn" msprop:Generator_UserColumnName="Code" type="xs:string" />
<xs:element name="Desc" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="Desc" msprop:Generator_ColumnVarNameInTable="columnDesc" msprop:Generator_ColumnPropNameInTable="DescColumn" msprop:Generator_UserColumnName="Desc" type="xs:string" default="" minOccurs="0" />
<xs:element name="GRP" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="GRP" msprop:Generator_ColumnVarNameInTable="columnGRP" msprop:Generator_ColumnPropNameInTable="GRPColumn" msprop:Generator_UserColumnName="GRP" type="xs:string" default="" minOccurs="0" />
<xs:element name="UNIT" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="UNIT" msprop:Generator_ColumnVarNameInTable="columnUNIT" msprop:Generator_ColumnPropNameInTable="UNITColumn" msprop:Generator_UserColumnName="UNIT" type="xs:string" default="" minOccurs="0" />
<xs:element name="SIGN" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="SIGN" msprop:Generator_ColumnVarNameInTable="columnSIGN" msprop:Generator_ColumnPropNameInTable="SIGNColumn" msprop:Generator_UserColumnName="SIGN" type="xs:string" default="" minOccurs="0" />
<xs:element name="EQ" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="EQ" msprop:Generator_ColumnVarNameInTable="columnEQ" msprop:Generator_ColumnPropNameInTable="EQColumn" msprop:Generator_UserColumnName="EQ" type="xs:string" default="" minOccurs="0" />
<xs:element name="M00" msprop:Generator_ColumnVarNameInTable="columnM00" msprop:Generator_ColumnPropNameInRow="M00" msprop:Generator_ColumnPropNameInTable="M00Column" msprop:Generator_UserColumnName="M00" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="M01" msprop:Generator_ColumnVarNameInTable="columnM01" msprop:Generator_ColumnPropNameInRow="M01" msprop:Generator_ColumnPropNameInTable="M01Column" msprop:Generator_UserColumnName="M01" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="M02" msprop:Generator_ColumnVarNameInTable="columnM02" msprop:Generator_ColumnPropNameInRow="M02" msprop:Generator_ColumnPropNameInTable="M02Column" msprop:Generator_UserColumnName="M02" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="M03" msprop:Generator_ColumnVarNameInTable="columnM03" msprop:Generator_ColumnPropNameInRow="M03" msprop:Generator_ColumnPropNameInTable="M03Column" msprop:Generator_UserColumnName="M03" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="M04" msprop:Generator_ColumnVarNameInTable="columnM04" msprop:Generator_ColumnPropNameInRow="M04" msprop:Generator_ColumnPropNameInTable="M04Column" msprop:Generator_UserColumnName="M04" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="M05" msprop:Generator_ColumnVarNameInTable="columnM05" msprop:Generator_ColumnPropNameInRow="M05" msprop:Generator_ColumnPropNameInTable="M05Column" msprop:Generator_UserColumnName="M05" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="M06" msprop:Generator_ColumnVarNameInTable="columnM06" msprop:Generator_ColumnPropNameInRow="M06" msprop:Generator_ColumnPropNameInTable="M06Column" msprop:Generator_UserColumnName="M06" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="M07" msprop:Generator_ColumnVarNameInTable="columnM07" msprop:Generator_ColumnPropNameInRow="M07" msprop:Generator_ColumnPropNameInTable="M07Column" msprop:Generator_UserColumnName="M07" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="M08" msprop:Generator_ColumnVarNameInTable="columnM08" msprop:Generator_ColumnPropNameInRow="M08" msprop:Generator_ColumnPropNameInTable="M08Column" msprop:Generator_UserColumnName="M08" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="M09" msprop:Generator_ColumnVarNameInTable="columnM09" msprop:Generator_ColumnPropNameInRow="M09" msprop:Generator_ColumnPropNameInTable="M09Column" msprop:Generator_UserColumnName="M09" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="M10" msprop:Generator_ColumnVarNameInTable="columnM10" msprop:Generator_ColumnPropNameInRow="M10" msprop:Generator_ColumnPropNameInTable="M10Column" msprop:Generator_UserColumnName="M10" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="M11" msprop:Generator_ColumnVarNameInTable="columnM11" msprop:Generator_ColumnPropNameInRow="M11" msprop:Generator_ColumnPropNameInTable="M11Column" msprop:Generator_UserColumnName="M11" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="M12" msprop:Generator_ColumnVarNameInTable="columnM12" msprop:Generator_ColumnPropNameInRow="M12" msprop:Generator_ColumnPropNameInTable="M12Column" msprop:Generator_UserColumnName="M12" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="F" msprop:nullValue="N0" msprop:Generator_ColumnPropNameInRow="F" msprop:Generator_ColumnVarNameInTable="columnF" msprop:Generator_ColumnPropNameInTable="FColumn" msprop:Generator_UserColumnName="F" type="xs:string" default="" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Graph_Req" msprop:Generator_UserTableName="Graph_Req" msprop:Generator_RowEvArgName="Graph_ReqRowChangeEvent" msprop:Generator_TableVarName="tableGraph_Req" msprop:Generator_TablePropName="Graph_Req" msprop:Generator_RowDeletingName="Graph_ReqRowDeleting" msprop:Generator_RowChangingName="Graph_ReqRowChanging" msprop:Generator_RowDeletedName="Graph_ReqRowDeleted" msprop:Generator_RowEvHandlerName="Graph_ReqRowChangeEventHandler" msprop:Generator_TableClassName="Graph_ReqDataTable" msprop:Generator_RowChangedName="Graph_ReqRowChanged" msprop:Generator_RowClassName="Graph_ReqRow">
<xs:complexType>
<xs:sequence>
<xs:element name="Gubun" msprop:Generator_ColumnVarNameInTable="columnGubun" msprop:Generator_ColumnPropNameInRow="Gubun" msprop:Generator_ColumnPropNameInTable="GubunColumn" msprop:Generator_UserColumnName="Gubun" type="xs:string" minOccurs="0" />
<xs:element name="Mon" msprop:Generator_ColumnVarNameInTable="columnMon" msprop:Generator_ColumnPropNameInRow="Mon" msprop:Generator_ColumnPropNameInTable="MonColumn" msprop:Generator_UserColumnName="Mon" type="xs:string" minOccurs="0" />
<xs:element name="Req" msprop:Generator_ColumnVarNameInTable="columnReq" msprop:Generator_ColumnPropNameInRow="Req" msprop:Generator_ColumnPropNameInTable="ReqColumn" msprop:Generator_UserColumnName="Req" type="xs:decimal" default="0" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Graph_ReqUse" msprop:Generator_UserTableName="Graph_ReqUse" msprop:Generator_RowEvArgName="Graph_ReqUseRowChangeEvent" msprop:Generator_TableVarName="tableGraph_ReqUse" msprop:Generator_TablePropName="Graph_ReqUse" msprop:Generator_RowDeletingName="Graph_ReqUseRowDeleting" msprop:Generator_RowChangingName="Graph_ReqUseRowChanging" msprop:Generator_RowDeletedName="Graph_ReqUseRowDeleted" msprop:Generator_RowEvHandlerName="Graph_ReqUseRowChangeEventHandler" msprop:Generator_TableClassName="Graph_ReqUseDataTable" msprop:Generator_RowChangedName="Graph_ReqUseRowChanged" msprop:Generator_RowClassName="Graph_ReqUseRow">
<xs:complexType>
<xs:sequence>
<xs:element name="Gubun" msprop:Generator_ColumnVarNameInTable="columnGubun" msprop:Generator_ColumnPropNameInRow="Gubun" msprop:Generator_ColumnPropNameInTable="GubunColumn" msprop:Generator_UserColumnName="Gubun" type="xs:string" minOccurs="0" />
<xs:element name="type" msdata:Caption="Mon" msprop:Generator_ColumnVarNameInTable="columntype" msprop:Generator_ColumnPropNameInRow="type" msprop:Generator_ColumnPropNameInTable="typeColumn" msprop:Generator_UserColumnName="type" type="xs:string" minOccurs="0" />
<xs:element name="Req" msprop:Generator_ColumnVarNameInTable="columnReq" msprop:Generator_ColumnPropNameInRow="Req" msprop:Generator_ColumnPropNameInTable="ReqColumn" msprop:Generator_UserColumnName="Req" type="xs:decimal" default="0" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Graph_Info" msprop:Generator_UserTableName="Graph_Info" msprop:Generator_RowEvArgName="Graph_InfoRowChangeEvent" msprop:Generator_TableVarName="tableGraph_Info" msprop:Generator_TablePropName="Graph_Info" msprop:Generator_RowDeletingName="Graph_InfoRowDeleting" msprop:Generator_RowChangingName="Graph_InfoRowChanging" msprop:Generator_RowDeletedName="Graph_InfoRowDeleted" msprop:Generator_RowEvHandlerName="Graph_InfoRowChangeEventHandler" msprop:Generator_TableClassName="Graph_InfoDataTable" msprop:Generator_RowChangedName="Graph_InfoRowChanged" msprop:Generator_RowClassName="Graph_InfoRow">
<xs:complexType>
<xs:sequence>
<xs:element name="name" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="name" msprop:Generator_ColumnVarNameInTable="columnname" msprop:Generator_ColumnPropNameInTable="nameColumn" msprop:Generator_UserColumnName="name" type="xs:string" default="" minOccurs="0" />
<xs:element name="year" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="year" msprop:Generator_ColumnVarNameInTable="columnyear" msprop:Generator_ColumnPropNameInTable="yearColumn" msprop:Generator_UserColumnName="year" type="xs:string" default="" minOccurs="0" />
<xs:element name="juso" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="juso" msprop:Generator_ColumnVarNameInTable="columnjuso" msprop:Generator_ColumnPropNameInTable="jusoColumn" msprop:Generator_UserColumnName="juso" type="xs:string" default="" minOccurs="0" />
<xs:element name="chung" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="chung" msprop:Generator_ColumnVarNameInTable="columnchung" msprop:Generator_ColumnPropNameInTable="chungColumn" msprop:Generator_UserColumnName="chung" type="xs:string" default="" minOccurs="0" />
<xs:element name="myoun" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="myoun" msprop:Generator_ColumnVarNameInTable="columnmyoun" msprop:Generator_ColumnPropNameInTable="myounColumn" msprop:Generator_UserColumnName="myoun" type="xs:string" default="" minOccurs="0" />
<xs:element name="ydo" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="ydo" msprop:Generator_ColumnVarNameInTable="columnydo" msprop:Generator_ColumnPropNameInTable="ydoColumn" msprop:Generator_UserColumnName="ydo" type="xs:string" default="" minOccurs="0" />
<xs:element name="i1" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="i1" msprop:Generator_ColumnVarNameInTable="columni1" msprop:Generator_ColumnPropNameInTable="i1Column" msprop:Generator_UserColumnName="i1" type="xs:string" default="" minOccurs="0" />
<xs:element name="i2" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="i2" msprop:Generator_ColumnVarNameInTable="columni2" msprop:Generator_ColumnPropNameInTable="i2Column" msprop:Generator_UserColumnName="i2" type="xs:string" default="" minOccurs="0" />
<xs:element name="i3" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="i3" msprop:Generator_ColumnVarNameInTable="columni3" msprop:Generator_ColumnPropNameInTable="i3Column" msprop:Generator_UserColumnName="i3" type="xs:string" default="" minOccurs="0" />
<xs:element name="grade" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="grade" msprop:Generator_ColumnVarNameInTable="columngrade" msprop:Generator_ColumnPropNameInTable="gradeColumn" msprop:Generator_UserColumnName="grade" type="xs:string" default="" minOccurs="0" />
<xs:element name="co2" msprop:Generator_ColumnVarNameInTable="columnco2" msprop:Generator_ColumnPropNameInRow="co2" msprop:Generator_ColumnPropNameInTable="co2Column" msprop:Generator_UserColumnName="co2" type="xs:short" default="0" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="사용면적" msprop:Generator_UserTableName="사용면적" msprop:Generator_RowEvArgName="사용면적RowChangeEvent" msprop:Generator_TableVarName="table사용면적" msprop:Generator_TablePropName="사용면적" msprop:Generator_RowDeletingName="사용면적RowDeleting" msprop:Generator_RowChangingName="사용면적RowChanging" msprop:Generator_RowDeletedName="사용면적RowDeleted" msprop:Generator_RowEvHandlerName="사용면적RowChangeEventHandler" msprop:Generator_TableClassName="사용면적DataTable" msprop:Generator_RowChangedName="사용면적RowChanged" msprop:Generator_RowClassName="사용면적Row">
<xs:complexType>
<xs:sequence>
<xs:element name="H" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="H" msprop:Generator_ColumnVarNameInTable="columnH" msprop:Generator_ColumnPropNameInTable="HColumn" msprop:Generator_UserColumnName="H" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="C" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="C" msprop:Generator_ColumnVarNameInTable="columnC" msprop:Generator_ColumnPropNameInTable="CColumn" msprop:Generator_UserColumnName="C" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="L" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="L" msprop:Generator_ColumnVarNameInTable="columnL" msprop:Generator_ColumnPropNameInTable="LColumn" msprop:Generator_UserColumnName="L" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="W" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="W" msprop:Generator_ColumnVarNameInTable="columnW" msprop:Generator_ColumnPropNameInTable="WColumn" msprop:Generator_UserColumnName="W" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="V" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="V" msprop:Generator_ColumnVarNameInTable="columnV" msprop:Generator_ColumnPropNameInTable="VColumn" msprop:Generator_UserColumnName="V" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="H_WF" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="H_WF" msprop:Generator_ColumnVarNameInTable="columnH_WF" msprop:Generator_ColumnPropNameInTable="H_WFColumn" msprop:Generator_UserColumnName="H_WF" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="C_WF" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="C_WF" msprop:Generator_ColumnVarNameInTable="columnC_WF" msprop:Generator_ColumnPropNameInTable="C_WFColumn" msprop:Generator_UserColumnName="C_WF" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="L_WF" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="L_WF" msprop:Generator_ColumnVarNameInTable="columnL_WF" msprop:Generator_ColumnPropNameInTable="L_WFColumn" msprop:Generator_UserColumnName="L_WF" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="W_WF" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="W_WF" msprop:Generator_ColumnVarNameInTable="columnW_WF" msprop:Generator_ColumnPropNameInTable="W_WFColumn" msprop:Generator_UserColumnName="W_WF" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="V_WF" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="V_WF" msprop:Generator_ColumnVarNameInTable="columnV_WF" msprop:Generator_ColumnPropNameInTable="V_WFColumn" msprop:Generator_UserColumnName="V_WF" type="xs:decimal" default="0" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="에너지소요량" msprop:Generator_UserTableName="에너지소요량" msprop:Generator_RowEvArgName="에너지소요량RowChangeEvent" msprop:Generator_TableVarName="table에너지소요량" msprop:Generator_TablePropName="에너지소요량" msprop:Generator_RowDeletingName="에너지소요량RowDeleting" msprop:Generator_RowChangingName="에너지소요량RowChanging" msprop:Generator_RowDeletedName="에너지소요량RowDeleted" msprop:Generator_RowEvHandlerName="에너지소요량RowChangeEventHandler" msprop:Generator_TableClassName="에너지소요량DataTable" msprop:Generator_RowChangedName="에너지소요량RowChanged" msprop:Generator_RowClassName="에너지소요량Row">
<xs:complexType>
<xs:sequence>
<xs:element name="mon" msprop:Generator_ColumnVarNameInTable="columnmon" msprop:Generator_ColumnPropNameInRow="mon" msprop:Generator_ColumnPropNameInTable="monColumn" msprop:Generator_UserColumnName="mon" type="xs:string" minOccurs="0" />
<xs:element name="난방에너지소요량" msdata:Caption="난방에너지요구량열" msprop:Generator_ColumnVarNameInTable="column난방에너지소요량" msprop:Generator_ColumnPropNameInRow="난방에너지소요량" msprop:Generator_ColumnPropNameInTable="난방에너지소요량Column" msprop:Generator_UserColumnName="난방에너지소요량" type="xs:string" default="0" minOccurs="0" />
<xs:element name="난방보조에너지소요량" msdata:Caption="난방에너지요구량공조" msprop:Generator_ColumnVarNameInTable="column난방보조에너지소요량" msprop:Generator_ColumnPropNameInRow="난방보조에너지소요량" msprop:Generator_ColumnPropNameInTable="난방보조에너지소요량Column" msprop:Generator_UserColumnName="난방보조에너지소요량" type="xs:string" default="0" minOccurs="0" />
<xs:element name="냉방에너지소요량" msdata:Caption="냉방에너지요구량" msprop:Generator_ColumnVarNameInTable="column냉방에너지소요량" msprop:Generator_ColumnPropNameInRow="냉방에너지소요량" msprop:Generator_ColumnPropNameInTable="냉방에너지소요량Column" msprop:Generator_UserColumnName="냉방에너지소요량" type="xs:string" default="0" minOccurs="0" />
<xs:element name="냉방보조에너지소요량" msdata:Caption="냉방에너지요구량공조" msprop:Generator_ColumnVarNameInTable="column냉방보조에너지소요량" msprop:Generator_ColumnPropNameInRow="냉방보조에너지소요량" msprop:Generator_ColumnPropNameInTable="냉방보조에너지소요량Column" msprop:Generator_UserColumnName="냉방보조에너지소요량" type="xs:string" default="0" minOccurs="0" />
<xs:element name="급탕에너지소요량" msdata:Caption="급탕단위면적당요구량" msprop:Generator_ColumnVarNameInTable="column급탕에너지소요량" msprop:Generator_ColumnPropNameInRow="급탕에너지소요량" msprop:Generator_ColumnPropNameInTable="급탕에너지소요량Column" msprop:Generator_UserColumnName="급탕에너지소요량" type="xs:string" default="0" minOccurs="0" />
<xs:element name="급탕보조에너지소요량" msprop:Generator_ColumnVarNameInTable="column급탕보조에너지소요량" msprop:Generator_ColumnPropNameInRow="급탕보조에너지소요량" msprop:Generator_ColumnPropNameInTable="급탕보조에너지소요량Column" msprop:Generator_UserColumnName="급탕보조에너지소요량" type="xs:string" default="0" minOccurs="0" />
<xs:element name="난방" msprop:Generator_ColumnVarNameInTable="column난방" msprop:Generator_ColumnPropNameInRow="난방" msprop:Generator_ColumnPropNameInTable="난방Column" msprop:Generator_UserColumnName="난방" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="냉방" msprop:Generator_ColumnVarNameInTable="column냉방" msprop:Generator_ColumnPropNameInRow="냉방" msprop:Generator_ColumnPropNameInTable="냉방Column" msprop:Generator_UserColumnName="냉방" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="조명" msprop:Generator_ColumnVarNameInTable="column조명" msprop:Generator_ColumnPropNameInRow="조명" msprop:Generator_ColumnPropNameInTable="조명Column" msprop:Generator_UserColumnName="조명" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="급탕" msprop:Generator_ColumnVarNameInTable="column급탕" msprop:Generator_ColumnPropNameInRow="급탕" msprop:Generator_ColumnPropNameInTable="급탕Column" msprop:Generator_UserColumnName="급탕" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="환기" msprop:Generator_ColumnVarNameInTable="column환기" msprop:Generator_ColumnPropNameInRow="환기" msprop:Generator_ColumnPropNameInTable="환기Column" msprop:Generator_UserColumnName="환기" type="xs:decimal" default="0" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="에너지소요량1" msprop:Generator_UserTableName="에너지소요량1" msprop:Generator_RowEvArgName="에너지소요량1RowChangeEvent" msprop:Generator_TableVarName="table에너지소요량1" msprop:Generator_TablePropName="에너지소요량1" msprop:Generator_RowDeletingName="에너지소요량1RowDeleting" msprop:Generator_RowChangingName="에너지소요량1RowChanging" msprop:Generator_RowDeletedName="에너지소요량1RowDeleted" msprop:Generator_RowEvHandlerName="에너지소요량1RowChangeEventHandler" msprop:Generator_TableClassName="에너지소요량1DataTable" msprop:Generator_RowChangedName="에너지소요량1RowChanged" msprop:Generator_RowClassName="에너지소요량1Row">
<xs:complexType>
<xs:sequence>
<xs:element name="mon" msprop:Generator_ColumnVarNameInTable="columnmon" msprop:Generator_ColumnPropNameInRow="mon" msprop:Generator_ColumnPropNameInTable="monColumn" msprop:Generator_UserColumnName="mon" type="xs:string" minOccurs="0" />
<xs:element name="난방등유" msdata:Caption="난방에너지요구량공조" msprop:Generator_ColumnVarNameInTable="column난방등유" msprop:Generator_ColumnPropNameInRow="난방등유" msprop:Generator_ColumnPropNameInTable="난방등유Column" msprop:Generator_UserColumnName="난방등유" type="xs:string" default="0" minOccurs="0" />
<xs:element name="난방LNG" msdata:Caption="난방단위면적당요구량" msprop:Generator_ColumnVarNameInTable="column난방LNG" msprop:Generator_ColumnPropNameInRow="난방LNG" msprop:Generator_ColumnPropNameInTable="난방LNGColumn" msprop:Generator_UserColumnName="난방LNG" type="xs:string" default="0" minOccurs="0" />
<xs:element name="난방LPG" msdata:Caption="냉방에너지요구량" msprop:Generator_ColumnVarNameInTable="column난방LPG" msprop:Generator_ColumnPropNameInRow="난방LPG" msprop:Generator_ColumnPropNameInTable="난방LPGColumn" msprop:Generator_UserColumnName="난방LPG" type="xs:string" default="0" minOccurs="0" />
<xs:element name="난방지역" msdata:Caption="냉방에너지요구량열" msprop:Generator_ColumnVarNameInTable="column난방지역" msprop:Generator_ColumnPropNameInRow="난방지역" msprop:Generator_ColumnPropNameInTable="난방지역Column" msprop:Generator_UserColumnName="난방지역" type="xs:string" default="0" minOccurs="0" />
<xs:element name="난방전력" msdata:Caption="냉방에너지요구량공조" msprop:Generator_ColumnVarNameInTable="column난방전력" msprop:Generator_ColumnPropNameInRow="난방전력" msprop:Generator_ColumnPropNameInTable="난방전력Column" msprop:Generator_UserColumnName="난방전력" type="xs:string" default="0" minOccurs="0" />
<xs:element name="난방펠렛" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="난방펠렛" msprop:Generator_ColumnVarNameInTable="column난방펠렛" msprop:Generator_ColumnPropNameInTable="난방펠렛Column" msprop:Generator_UserColumnName="난방펠렛" type="xs:string" default="0" minOccurs="0" />
<xs:element name="냉방등유" msdata:Caption="조명단위면적당요구량" msprop:Generator_ColumnVarNameInTable="column냉방등유" msprop:Generator_ColumnPropNameInRow="냉방등유" msprop:Generator_ColumnPropNameInTable="냉방등유Column" msprop:Generator_UserColumnName="냉방등유" type="xs:string" default="0" minOccurs="0" />
<xs:element name="냉방LNG" msdata:Caption="급탕에너지요구량" msprop:Generator_ColumnVarNameInTable="column냉방LNG" msprop:Generator_ColumnPropNameInRow="냉방LNG" msprop:Generator_ColumnPropNameInTable="냉방LNGColumn" msprop:Generator_UserColumnName="냉방LNG" type="xs:string" default="0" minOccurs="0" />
<xs:element name="냉방LPG" msdata:Caption="급탕단위면적당요구량" msprop:Generator_ColumnVarNameInTable="column냉방LPG" msprop:Generator_ColumnPropNameInRow="냉방LPG" msprop:Generator_ColumnPropNameInTable="냉방LPGColumn" msprop:Generator_UserColumnName="냉방LPG" type="xs:string" default="0" minOccurs="0" />
<xs:element name="냉방지역" msdata:Caption="급탕보조에너지소요량" msprop:Generator_ColumnVarNameInTable="column냉방지역" msprop:Generator_ColumnPropNameInRow="냉방지역" msprop:Generator_ColumnPropNameInTable="냉방지역Column" msprop:Generator_UserColumnName="냉방지역" type="xs:string" default="0" minOccurs="0" />
<xs:element name="냉방지역2" msprop:Generator_ColumnVarNameInTable="column냉방지역2" msprop:Generator_ColumnPropNameInRow="냉방지역2" msprop:Generator_ColumnPropNameInTable="냉방지역2Column" msprop:Generator_UserColumnName="냉방지역2" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="냉방전력" msdata:Caption="급탕단위면적당소요량" msprop:Generator_ColumnVarNameInTable="column냉방전력" msprop:Generator_ColumnPropNameInRow="냉방전력" msprop:Generator_ColumnPropNameInTable="냉방전력Column" msprop:Generator_UserColumnName="냉방전력" type="xs:string" default="0" minOccurs="0" />
<xs:element name="냉방펠렛" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="냉방펠렛" msprop:Generator_ColumnVarNameInTable="column냉방펠렛" msprop:Generator_ColumnPropNameInTable="냉방펠렛Column" msprop:Generator_UserColumnName="냉방펠렛" type="xs:string" default="0" minOccurs="0" />
<xs:element name="급탕등유" msprop:Generator_ColumnVarNameInTable="column급탕등유" msprop:Generator_ColumnPropNameInRow="급탕등유" msprop:Generator_ColumnPropNameInTable="급탕등유Column" msprop:Generator_UserColumnName="급탕등유" type="xs:string" default="0" minOccurs="0" />
<xs:element name="급탕LNG" msprop:Generator_ColumnVarNameInTable="column급탕LNG" msprop:Generator_ColumnPropNameInRow="급탕LNG" msprop:Generator_ColumnPropNameInTable="급탕LNGColumn" msprop:Generator_UserColumnName="급탕LNG" type="xs:string" default="0" minOccurs="0" />
<xs:element name="급탕LPG" msprop:Generator_ColumnVarNameInTable="column급탕LPG" msprop:Generator_ColumnPropNameInRow="급탕LPG" msprop:Generator_ColumnPropNameInTable="급탕LPGColumn" msprop:Generator_UserColumnName="급탕LPG" type="xs:string" default="0" minOccurs="0" />
<xs:element name="급탕지역" msprop:Generator_ColumnVarNameInTable="column급탕지역" msprop:Generator_ColumnPropNameInRow="급탕지역" msprop:Generator_ColumnPropNameInTable="급탕지역Column" msprop:Generator_UserColumnName="급탕지역" type="xs:string" default="0" minOccurs="0" />
<xs:element name="급탕전력" msprop:Generator_ColumnVarNameInTable="column급탕전력" msprop:Generator_ColumnPropNameInRow="급탕전력" msprop:Generator_ColumnPropNameInTable="급탕전력Column" msprop:Generator_UserColumnName="급탕전력" type="xs:string" default="0" minOccurs="0" />
<xs:element name="급탕펠렛" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="급탕펠렛" msprop:Generator_ColumnVarNameInTable="column급탕펠렛" msprop:Generator_ColumnPropNameInTable="급탕펠렛Column" msprop:Generator_UserColumnName="급탕펠렛" type="xs:string" default="0" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="생산에너지" msprop:Generator_UserTableName="생산에너지" msprop:Generator_RowEvArgName="생산에너지RowChangeEvent" msprop:Generator_TableVarName="table생산에너지" msprop:Generator_TablePropName="생산에너지" msprop:Generator_RowDeletingName="생산에너지RowDeleting" msprop:Generator_RowChangingName="생산에너지RowChanging" msprop:Generator_RowDeletedName="생산에너지RowDeleted" msprop:Generator_RowEvHandlerName="생산에너지RowChangeEventHandler" msprop:Generator_TableClassName="생산에너지DataTable" msprop:Generator_RowChangedName="생산에너지RowChanged" msprop:Generator_RowClassName="생산에너지Row">
<xs:complexType>
<xs:sequence>
<xs:element name="mon" msprop:Generator_ColumnVarNameInTable="columnmon" msprop:Generator_ColumnPropNameInRow="mon" msprop:Generator_ColumnPropNameInTable="monColumn" msprop:Generator_UserColumnName="mon" type="xs:string" minOccurs="0" />
<xs:element name="전력태양광" msdata:Caption="에너지요구량" msprop:Generator_ColumnVarNameInTable="column전력태양광" msprop:Generator_ColumnPropNameInRow="전력태양광" msprop:Generator_ColumnPropNameInTable="전력태양광Column" msprop:Generator_UserColumnName="전력태양광" type="xs:string" default="0" minOccurs="0" />
<xs:element name="전력열병합" msdata:Caption="단위면적당요구량" msprop:Generator_ColumnVarNameInTable="column전력열병합" msprop:Generator_ColumnPropNameInRow="전력열병합" msprop:Generator_ColumnPropNameInTable="전력열병합Column" msprop:Generator_UserColumnName="전력열병합" type="xs:string" default="0" minOccurs="0" />
<xs:element name="생산량태양열" msdata:Caption="난방에너지요구량열" msprop:Generator_ColumnVarNameInTable="column생산량태양열" msprop:Generator_ColumnPropNameInRow="생산량태양열" msprop:Generator_ColumnPropNameInTable="생산량태양열Column" msprop:Generator_UserColumnName="생산량태양열" type="xs:string" default="0" minOccurs="0" />
<xs:element name="생산량지열" msdata:Caption="난방에너지요구량공조" msprop:Generator_ColumnVarNameInTable="column생산량지열" msprop:Generator_ColumnPropNameInRow="생산량지열" msprop:Generator_ColumnPropNameInTable="생산량지열Column" msprop:Generator_UserColumnName="생산량지열" type="xs:string" default="0" minOccurs="0" />
<xs:element name="면적당생산량태양열" msprop:Generator_ColumnVarNameInTable="column면적당생산량태양열" msprop:Generator_ColumnPropNameInRow="면적당생산량태양열" msprop:Generator_ColumnPropNameInTable="면적당생산량태양열Column" msprop:Generator_UserColumnName="면적당생산량태양열" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="면적당생산량지열" msprop:Generator_ColumnVarNameInTable="column면적당생산량지열" msprop:Generator_ColumnPropNameInRow="면적당생산량지열" msprop:Generator_ColumnPropNameInTable="면적당생산량지열Column" msprop:Generator_UserColumnName="면적당생산량지열" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="신재생열병합전력생산량" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="신재생열병합전력생산량" msprop:Generator_ColumnVarNameInTable="column신재생열병합전력생산량" msprop:Generator_ColumnPropNameInTable="신재생열병합전력생산량Column" msprop:Generator_UserColumnName="신재생열병합전력생산량" type="xs:string" default="0" minOccurs="0" />
<xs:element name="신재생면적당열생산량" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="신재생면적당열생산량" msprop:Generator_ColumnVarNameInTable="column신재생면적당열생산량" msprop:Generator_ColumnPropNameInTable="신재생면적당열생산량Column" msprop:Generator_UserColumnName="신재생면적당열생산량" type="xs:string" default="0" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Graph_Info_data" msprop:Generator_UserTableName="Graph_Info_data" msprop:Generator_RowEvArgName="Graph_Info_dataRowChangeEvent" msprop:Generator_TableVarName="tableGraph_Info_data" msprop:Generator_TablePropName="Graph_Info_data" msprop:Generator_RowDeletingName="Graph_Info_dataRowDeleting" msprop:Generator_RowChangingName="Graph_Info_dataRowChanging" msprop:Generator_RowDeletedName="Graph_Info_dataRowDeleted" msprop:Generator_RowEvHandlerName="Graph_Info_dataRowChangeEventHandler" msprop:Generator_TableClassName="Graph_Info_dataDataTable" msprop:Generator_RowChangedName="Graph_Info_dataRowChanged" msprop:Generator_RowClassName="Graph_Info_dataRow">
<xs:complexType>
<xs:sequence>
<xs:element name="난방소요" msprop:Generator_ColumnVarNameInTable="column난방소요" msprop:Generator_ColumnPropNameInRow="난방소요" msprop:Generator_ColumnPropNameInTable="난방소요Column" msprop:Generator_UserColumnName="난방소요" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="급탕소요" msprop:Generator_ColumnVarNameInTable="column급탕소요" msprop:Generator_ColumnPropNameInRow="급탕소요" msprop:Generator_ColumnPropNameInTable="급탕소요Column" msprop:Generator_UserColumnName="급탕소요" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="냉방소요" msprop:Generator_ColumnVarNameInTable="column냉방소요" msprop:Generator_ColumnPropNameInRow="냉방소요" msprop:Generator_ColumnPropNameInTable="냉방소요Column" msprop:Generator_UserColumnName="냉방소요" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="조명소요" msprop:Generator_ColumnVarNameInTable="column조명소요" msprop:Generator_ColumnPropNameInRow="조명소요" msprop:Generator_ColumnPropNameInTable="조명소요Column" msprop:Generator_UserColumnName="조명소요" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="환기소요" msprop:Generator_ColumnVarNameInTable="column환기소요" msprop:Generator_ColumnPropNameInRow="환기소요" msprop:Generator_ColumnPropNameInTable="환기소요Column" msprop:Generator_UserColumnName="환기소요" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="난방소요1" msprop:Generator_ColumnVarNameInTable="column난방소요1" msprop:Generator_ColumnPropNameInRow="난방소요1" msprop:Generator_ColumnPropNameInTable="난방소요1Column" msprop:Generator_UserColumnName="난방소요1" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="급탕소요1" msprop:Generator_ColumnVarNameInTable="column급탕소요1" msprop:Generator_ColumnPropNameInRow="급탕소요1" msprop:Generator_ColumnPropNameInTable="급탕소요1Column" msprop:Generator_UserColumnName="급탕소요1" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="냉방소요1" msprop:Generator_ColumnVarNameInTable="column냉방소요1" msprop:Generator_ColumnPropNameInRow="냉방소요1" msprop:Generator_ColumnPropNameInTable="냉방소요1Column" msprop:Generator_UserColumnName="냉방소요1" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="조명소요1" msprop:Generator_ColumnVarNameInTable="column조명소요1" msprop:Generator_ColumnPropNameInRow="조명소요1" msprop:Generator_ColumnPropNameInTable="조명소요1Column" msprop:Generator_UserColumnName="조명소요1" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="환기소요1" msprop:Generator_ColumnVarNameInTable="column환기소요1" msprop:Generator_ColumnPropNameInRow="환기소요1" msprop:Generator_ColumnPropNameInTable="환기소요1Column" msprop:Generator_UserColumnName="환기소요1" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="난방co2" msprop:Generator_ColumnVarNameInTable="column난방co2" msprop:Generator_ColumnPropNameInRow="난방co2" msprop:Generator_ColumnPropNameInTable="난방co2Column" msprop:Generator_UserColumnName="난방co2" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="급탕co2" msprop:Generator_ColumnVarNameInTable="column급탕co2" msprop:Generator_ColumnPropNameInRow="급탕co2" msprop:Generator_ColumnPropNameInTable="급탕co2Column" msprop:Generator_UserColumnName="급탕co2" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="냉방co2" msprop:Generator_ColumnVarNameInTable="column냉방co2" msprop:Generator_ColumnPropNameInRow="냉방co2" msprop:Generator_ColumnPropNameInTable="냉방co2Column" msprop:Generator_UserColumnName="냉방co2" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="조명co2" msprop:Generator_ColumnVarNameInTable="column조명co2" msprop:Generator_ColumnPropNameInRow="조명co2" msprop:Generator_ColumnPropNameInTable="조명co2Column" msprop:Generator_UserColumnName="조명co2" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="환기co2" msprop:Generator_ColumnVarNameInTable="column환기co2" msprop:Generator_ColumnPropNameInRow="환기co2" msprop:Generator_ColumnPropNameInTable="환기co2Column" msprop:Generator_UserColumnName="환기co2" type="xs:decimal" default="0" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Pyonga_REQ" msprop:Generator_TableClassName="Pyonga_REQDataTable" msprop:Generator_TableVarName="tablePyonga_REQ" msprop:Generator_TablePropName="Pyonga_REQ" msprop:Generator_RowDeletingName="Pyonga_REQRowDeleting" msprop:Generator_RowChangingName="Pyonga_REQRowChanging" msprop:Generator_RowEvHandlerName="Pyonga_REQRowChangeEventHandler" msprop:Generator_RowDeletedName="Pyonga_REQRowDeleted" msprop:Generator_UserTableName="Pyonga_REQ" msprop:Generator_RowChangedName="Pyonga_REQRowChanged" msprop:Generator_RowEvArgName="Pyonga_REQRowChangeEvent" msprop:Generator_RowClassName="Pyonga_REQRow">
<xs:complexType>
<xs:sequence>
<xs:element name="종류" msdata:Caption="Mon" msprop:Generator_ColumnVarNameInTable="column종류" msprop:Generator_ColumnPropNameInRow="종류" msprop:Generator_ColumnPropNameInTable="종류Column" msprop:Generator_UserColumnName="종류" type="xs:string" minOccurs="0" />
<xs:element name="값" msprop:Generator_ColumnVarNameInTable="column값" msprop:Generator_ColumnPropNameInRow="값" msprop:Generator_ColumnPropNameInTable="값Column" msprop:Generator_UserColumnName="값" type="xs:decimal" default="0" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Pyonga_USE" msprop:Generator_TableClassName="Pyonga_USEDataTable" msprop:Generator_TableVarName="tablePyonga_USE" msprop:Generator_TablePropName="Pyonga_USE" msprop:Generator_RowDeletingName="Pyonga_USERowDeleting" msprop:Generator_RowChangingName="Pyonga_USERowChanging" msprop:Generator_RowEvHandlerName="Pyonga_USERowChangeEventHandler" msprop:Generator_RowDeletedName="Pyonga_USERowDeleted" msprop:Generator_UserTableName="Pyonga_USE" msprop:Generator_RowChangedName="Pyonga_USERowChanged" msprop:Generator_RowEvArgName="Pyonga_USERowChangeEvent" msprop:Generator_RowClassName="Pyonga_USERow">
<xs:complexType>
<xs:sequence>
<xs:element name="종류" msdata:Caption="Mon" msprop:Generator_ColumnVarNameInTable="column종류" msprop:Generator_ColumnPropNameInRow="종류" msprop:Generator_ColumnPropNameInTable="종류Column" msprop:Generator_UserColumnName="종류" type="xs:string" minOccurs="0" />
<xs:element name="값" msprop:Generator_ColumnVarNameInTable="column값" msprop:Generator_ColumnPropNameInRow="값" msprop:Generator_ColumnPropNameInTable="값Column" msprop:Generator_UserColumnName="값" type="xs:decimal" default="0" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Pyonga_1USE" msprop:Generator_TableClassName="Pyonga_1USEDataTable" msprop:Generator_TableVarName="tablePyonga_1USE" msprop:Generator_TablePropName="Pyonga_1USE" msprop:Generator_RowDeletingName="Pyonga_1USERowDeleting" msprop:Generator_RowChangingName="Pyonga_1USERowChanging" msprop:Generator_RowEvHandlerName="Pyonga_1USERowChangeEventHandler" msprop:Generator_RowDeletedName="Pyonga_1USERowDeleted" msprop:Generator_UserTableName="Pyonga_1USE" msprop:Generator_RowChangedName="Pyonga_1USERowChanged" msprop:Generator_RowEvArgName="Pyonga_1USERowChangeEvent" msprop:Generator_RowClassName="Pyonga_1USERow">
<xs:complexType>
<xs:sequence>
<xs:element name="종류" msdata:Caption="Mon" msprop:Generator_ColumnVarNameInTable="column종류" msprop:Generator_ColumnPropNameInRow="종류" msprop:Generator_ColumnPropNameInTable="종류Column" msprop:Generator_UserColumnName="종류" type="xs:string" minOccurs="0" />
<xs:element name="값" msprop:Generator_ColumnVarNameInTable="column값" msprop:Generator_ColumnPropNameInRow="값" msprop:Generator_ColumnPropNameInTable="값Column" msprop:Generator_UserColumnName="값" type="xs:decimal" default="0" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="Pyonga_YK" msprop:Generator_TableClassName="Pyonga_YKDataTable" msprop:Generator_TableVarName="tablePyonga_YK" msprop:Generator_TablePropName="Pyonga_YK" msprop:Generator_RowDeletingName="Pyonga_YKRowDeleting" msprop:Generator_RowChangingName="Pyonga_YKRowChanging" msprop:Generator_RowEvHandlerName="Pyonga_YKRowChangeEventHandler" msprop:Generator_RowDeletedName="Pyonga_YKRowDeleted" msprop:Generator_UserTableName="Pyonga_YK" msprop:Generator_RowChangedName="Pyonga_YKRowChanged" msprop:Generator_RowEvArgName="Pyonga_YKRowChangeEvent" msprop:Generator_RowClassName="Pyonga_YKRow">
<xs:complexType>
<xs:sequence>
<xs:element name="벽체종류" msdata:Caption="Mon" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="벽체종류" msprop:Generator_ColumnVarNameInTable="column벽체종류" msprop:Generator_ColumnPropNameInTable="벽체종류Column" msprop:Generator_UserColumnName="벽체종류" type="xs:string" default="" minOccurs="0" />
<xs:element name="지붕종류" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="지붕종류" msprop:Generator_ColumnVarNameInTable="column지붕종류" msprop:Generator_ColumnPropNameInTable="지붕종류Column" msprop:Generator_UserColumnName="지붕종류" type="xs:string" default="" minOccurs="0" />
<xs:element name="바닥종류" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="바닥종류" msprop:Generator_ColumnVarNameInTable="column바닥종류" msprop:Generator_ColumnPropNameInTable="바닥종류Column" msprop:Generator_UserColumnName="바닥종류" type="xs:string" default="" minOccurs="0" />
<xs:element name="벽체값" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="벽체값" msprop:Generator_ColumnVarNameInTable="column벽체값" msprop:Generator_ColumnPropNameInTable="벽체값Column" msprop:Generator_UserColumnName="벽체값" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="지붕값" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="지붕값" msprop:Generator_ColumnVarNameInTable="column지붕값" msprop:Generator_ColumnPropNameInTable="지붕값Column" msprop:Generator_UserColumnName="지붕값" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="바닥값" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="바닥값" msprop:Generator_ColumnVarNameInTable="column바닥값" msprop:Generator_ColumnPropNameInTable="바닥값Column" msprop:Generator_UserColumnName="바닥값" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="창호종류" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="창호종류" msprop:Generator_ColumnVarNameInTable="column창호종류" msprop:Generator_ColumnPropNameInTable="창호종류Column" msprop:Generator_UserColumnName="창호종류" type="xs:string" default="" minOccurs="0" />
<xs:element name="창호값" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="창호값" msprop:Generator_ColumnVarNameInTable="column창호값" msprop:Generator_ColumnPropNameInTable="창호값Column" msprop:Generator_UserColumnName="창호값" type="xs:decimal" default="0" minOccurs="0" />
<xs:element name="주거실조명전력" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="주거실조명전력" msprop:Generator_ColumnVarNameInTable="column주거실조명전력" msprop:Generator_ColumnPropNameInTable="주거실조명전력Column" msprop:Generator_UserColumnName="주거실조명전력" type="xs:string" default="" minOccurs="0" />
<xs:element name="주조명광원" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="주조명광원" msprop:Generator_ColumnVarNameInTable="column주조명광원" msprop:Generator_ColumnPropNameInTable="주조명광원Column" msprop:Generator_UserColumnName="주조명광원" type="xs:string" default="" minOccurs="0" />
<xs:element name="지열히트펌프용량" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="지열히트펌프용량" msprop:Generator_ColumnVarNameInTable="column지열히트펌프용량" msprop:Generator_ColumnPropNameInTable="지열히트펌프용량Column" msprop:Generator_UserColumnName="지열히트펌프용량" type="xs:string" default="" minOccurs="0" />
<xs:element name="지열난방COP" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="지열난방COP" msprop:Generator_ColumnVarNameInTable="column지열난방COP" msprop:Generator_ColumnPropNameInTable="지열난방COPColumn" msprop:Generator_UserColumnName="지열난방COP" type="xs:string" default="" minOccurs="0" />
<xs:element name="지열냉방COP" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="지열냉방COP" msprop:Generator_ColumnVarNameInTable="column지열냉방COP" msprop:Generator_ColumnPropNameInTable="지열냉방COPColumn" msprop:Generator_UserColumnName="지열냉방COP" type="xs:string" default="" minOccurs="0" />
<xs:element name="지열비고" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="지열비고" msprop:Generator_ColumnVarNameInTable="column지열비고" msprop:Generator_ColumnPropNameInTable="지열비고Column" msprop:Generator_UserColumnName="지열비고" type="xs:string" default="" minOccurs="0" />
<xs:element name="온열원설비방식" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="온열원설비방식" msprop:Generator_ColumnVarNameInTable="column온열원설비방식" msprop:Generator_ColumnPropNameInTable="온열원설비방식Column" msprop:Generator_UserColumnName="온열원설비방식" type="xs:string" default="" minOccurs="0" />
<xs:element name="급탕설비방식" msdata:Caption="온열원설비방식" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="급탕설비방식" msprop:Generator_ColumnVarNameInTable="column급탕설비방식" msprop:Generator_ColumnPropNameInTable="급탕설비방식Column" msprop:Generator_UserColumnName="급탕설비방식" type="xs:string" default="" minOccurs="0" />
<xs:element name="급탕설비연료" msdata:Caption="온열원설비연료" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="급탕설비연료" msprop:Generator_ColumnVarNameInTable="column급탕설비연료" msprop:Generator_ColumnPropNameInTable="급탕설비연료Column" msprop:Generator_UserColumnName="급탕설비연료" type="xs:string" default="" minOccurs="0" />
<xs:element name="냉열원설비방식" msdata:Caption="온열원설비방식" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="냉열원설비방식" msprop:Generator_ColumnVarNameInTable="column냉열원설비방식" msprop:Generator_ColumnPropNameInTable="냉열원설비방식Column" msprop:Generator_UserColumnName="냉열원설비방식" type="xs:string" default="" minOccurs="0" />
<xs:element name="냉열원설비연료" msdata:Caption="온열원설비연료" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="냉열원설비연료" msprop:Generator_ColumnVarNameInTable="column냉열원설비연료" msprop:Generator_ColumnPropNameInTable="냉열원설비연료Column" msprop:Generator_UserColumnName="냉열원설비연료" type="xs:string" default="" minOccurs="0" />
<xs:element name="온열원설비연료" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="온열원설비연료" msprop:Generator_ColumnVarNameInTable="column온열원설비연료" msprop:Generator_ColumnPropNameInTable="온열원설비연료Column" msprop:Generator_UserColumnName="온열원설비연료" type="xs:string" default="" minOccurs="0" />
<xs:element name="온열원용량" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="온열원용량" msprop:Generator_ColumnVarNameInTable="column온열원용량" msprop:Generator_ColumnPropNameInTable="온열원용량Column" msprop:Generator_UserColumnName="온열원용량" type="xs:string" default="" minOccurs="0" />
<xs:element name="온열원효율" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="온열원효율" msprop:Generator_ColumnVarNameInTable="column온열원효율" msprop:Generator_ColumnPropNameInTable="온열원효율Column" msprop:Generator_UserColumnName="온열원효율" type="xs:string" default="" minOccurs="0" />
<xs:element name="냉열원용량" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="냉열원용량" msprop:Generator_ColumnVarNameInTable="column냉열원용량" msprop:Generator_ColumnPropNameInTable="냉열원용량Column" msprop:Generator_UserColumnName="냉열원용량" type="xs:string" default="" minOccurs="0" />
<xs:element name="냉열원효율" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="냉열원효율" msprop:Generator_ColumnVarNameInTable="column냉열원효율" msprop:Generator_ColumnPropNameInTable="냉열원효율Column" msprop:Generator_UserColumnName="냉열원효율" type="xs:string" default="" minOccurs="0" />
<xs:element name="급탕효율" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="급탕효율" msprop:Generator_ColumnVarNameInTable="column급탕효율" msprop:Generator_ColumnPropNameInTable="급탕효율Column" msprop:Generator_UserColumnName="급탕효율" type="xs:string" default="" minOccurs="0" />
<xs:element name="급탕용량" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="급탕용량" msprop:Generator_ColumnVarNameInTable="column급탕용량" msprop:Generator_ColumnPropNameInTable="급탕용량Column" msprop:Generator_UserColumnName="급탕용량" type="xs:string" default="" minOccurs="0" />
<xs:element name="태양열집열판면적" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="태양열집열판면적" msprop:Generator_ColumnVarNameInTable="column태양열집열판면적" msprop:Generator_ColumnPropNameInTable="태양열집열판면적Column" msprop:Generator_UserColumnName="태양열집열판면적" type="xs:string" default="" minOccurs="0" />
<xs:element name="태양열집열기유형" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="태양열집열기유형" msprop:Generator_ColumnVarNameInTable="column태양열집열기유형" msprop:Generator_ColumnPropNameInTable="태양열집열기유형Column" msprop:Generator_UserColumnName="태양열집열기유형" type="xs:string" default="" minOccurs="0" />
<xs:element name="태양열집열판방위" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="태양열집열판방위" msprop:Generator_ColumnVarNameInTable="column태양열집열판방위" msprop:Generator_ColumnPropNameInTable="태양열집열판방위Column" msprop:Generator_UserColumnName="태양열집열판방위" type="xs:string" default="" minOccurs="0" />
<xs:element name="태양광모듈면적" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="태양광모듈면적" msprop:Generator_ColumnVarNameInTable="column태양광모듈면적" msprop:Generator_ColumnPropNameInTable="태양광모듈면적Column" msprop:Generator_UserColumnName="태양광모듈면적" type="xs:string" default="" minOccurs="0" />
<xs:element name="태양광모듈종류" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="태양광모듈종류" msprop:Generator_ColumnVarNameInTable="column태양광모듈종류" msprop:Generator_ColumnPropNameInTable="태양광모듈종류Column" msprop:Generator_UserColumnName="태양광모듈종류" type="xs:string" default="" minOccurs="0" />
<xs:element name="태양광모듈방위" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="태양광모듈방위" msprop:Generator_ColumnVarNameInTable="column태양광모듈방위" msprop:Generator_ColumnPropNameInTable="태양광모듈방위Column" msprop:Generator_UserColumnName="태양광모듈방위" type="xs:string" default="" minOccurs="0" />
<xs:element name="태양광모듈기울기" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="태양광모듈기울기" msprop:Generator_ColumnVarNameInTable="column태양광모듈기울기" msprop:Generator_ColumnPropNameInTable="태양광모듈기울기Column" msprop:Generator_UserColumnName="태양광모듈기울기" type="xs:string" default="" minOccurs="0" />
<xs:element name="태양광모듈적용타입" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="태양광모듈적용타입" msprop:Generator_ColumnVarNameInTable="column태양광모듈적용타입" msprop:Generator_ColumnPropNameInTable="태양광모듈적용타입Column" msprop:Generator_UserColumnName="태양광모듈적용타입" type="xs:string" default="" minOccurs="0" />
<xs:element name="열병합열생산능력" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="열병합열생산능력" msprop:Generator_ColumnVarNameInTable="column열병합열생산능력" msprop:Generator_ColumnPropNameInTable="열병합열생산능력Column" msprop:Generator_UserColumnName="열병합열생산능력" type="xs:string" default="" minOccurs="0" />
<xs:element name="열병합열생산효율" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="열병합열생산효율" msprop:Generator_ColumnVarNameInTable="column열병합열생산효율" msprop:Generator_ColumnPropNameInTable="열병합열생산효율Column" msprop:Generator_UserColumnName="열병합열생산효율" type="xs:string" default="" minOccurs="0" />
<xs:element name="열병합발전효율" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="열병합발전효율" msprop:Generator_ColumnVarNameInTable="column열병합발전효율" msprop:Generator_ColumnPropNameInTable="열병합발전효율Column" msprop:Generator_UserColumnName="열병합발전효율" type="xs:string" default="" minOccurs="0" />
<xs:element name="지열히트펌프용량냉방" msprop:Generator_ColumnVarNameInTable="column지열히트펌프용량냉방" msprop:Generator_ColumnPropNameInRow="지열히트펌프용량냉방" msprop:Generator_ColumnPropNameInTable="지열히트펌프용량냉방Column" msprop:Generator_UserColumnName="지열히트펌프용량냉방" type="xs:string" minOccurs="0" />
<xs:element name="열병합가동연료" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="열병합가동연료" msprop:Generator_ColumnVarNameInTable="column열병합가동연료" msprop:Generator_ColumnPropNameInTable="열병합가동연료Column" msprop:Generator_UserColumnName="열병합가동연료" type="xs:string" default="" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="월별1차에너지사용량" msprop:Generator_TableClassName="월별1차에너지사용량DataTable" msprop:Generator_TableVarName="table월별1차에너지사용량" msprop:Generator_TablePropName="월별1차에너지사용량" msprop:Generator_RowDeletingName="월별1차에너지사용량RowDeleting" msprop:Generator_RowChangingName="월별1차에너지사용량RowChanging" msprop:Generator_RowEvHandlerName="월별1차에너지사용량RowChangeEventHandler" msprop:Generator_RowDeletedName="월별1차에너지사용량RowDeleted" msprop:Generator_UserTableName="월별1차에너지사용량" msprop:Generator_RowChangedName="월별1차에너지사용량RowChanged" msprop:Generator_RowEvArgName="월별1차에너지사용량RowChangeEvent" msprop:Generator_RowClassName="월별1차에너지사용량Row">
<xs:complexType>
<xs:sequence>
<xs:element name="년" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="년" msprop:Generator_ColumnVarNameInTable="column년" msprop:Generator_ColumnPropNameInTable="년Column" msprop:Generator_UserColumnName="년" type="xs:string" default="" />
<xs:element name="월" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="월" msprop:Generator_ColumnVarNameInTable="column월" msprop:Generator_ColumnPropNameInTable="월Column" msprop:Generator_UserColumnName="월" type="xs:string" default="" />
<xs:element name="도시가스" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="도시가스" msprop:Generator_ColumnVarNameInTable="column도시가스" msprop:Generator_ColumnPropNameInTable="도시가스Column" msprop:Generator_UserColumnName="도시가스" type="xs:string" default="" minOccurs="0" />
<xs:element name="전력" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="전력" msprop:Generator_ColumnVarNameInTable="column전력" msprop:Generator_ColumnPropNameInTable="전력Column" msprop:Generator_UserColumnName="전력" type="xs:string" default="" minOccurs="0" />
<xs:element name="지역난방" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="지역난방" msprop:Generator_ColumnVarNameInTable="column지역난방" msprop:Generator_ColumnPropNameInTable="지역난방Column" msprop:Generator_UserColumnName="지역난방" type="xs:string" default="" minOccurs="0" />
<xs:element name="code" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="code" msprop:Generator_ColumnVarNameInTable="columncode" msprop:Generator_ColumnPropNameInTable="codeColumn" msprop:Generator_UserColumnName="code" type="xs:string" default="" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="설계계산결과" msprop:Generator_TableClassName="설계계산결과DataTable" msprop:Generator_TableVarName="table설계계산결과" msprop:Generator_TablePropName="설계계산결과" msprop:Generator_RowDeletingName="설계계산결과RowDeleting" msprop:Generator_RowChangingName="설계계산결과RowChanging" msprop:Generator_RowEvHandlerName="설계계산결과RowChangeEventHandler" msprop:Generator_RowDeletedName="설계계산결과RowDeleted" msprop:Generator_UserTableName="설계계산결과" msprop:Generator_RowChangedName="설계계산결과RowChanged" msprop:Generator_RowEvArgName="설계계산결과RowChangeEvent" msprop:Generator_RowClassName="설계계산결과Row">
<xs:complexType>
<xs:sequence>
<xs:element name="월" msprop:nullValue="" msprop:Generator_ColumnPropNameInRow="월" msprop:Generator_ColumnVarNameInTable="column월" msprop:Generator_ColumnPropNameInTable="월Column" msprop:Generator_UserColumnName="월" type="xs:string" default="" />
<xs:element name="급탕" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="급탕" msprop:Generator_ColumnVarNameInTable="column급탕" msprop:Generator_ColumnPropNameInTable="급탕Column" msprop:Generator_UserColumnName="급탕" type="xs:string" default="0" minOccurs="0" />
<xs:element name="냉방" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="냉방" msprop:Generator_ColumnVarNameInTable="column냉방" msprop:Generator_ColumnPropNameInTable="냉방Column" msprop:Generator_UserColumnName="냉방" type="xs:string" default="0" minOccurs="0" />
<xs:element name="난방" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="난방" msprop:Generator_ColumnVarNameInTable="column난방" msprop:Generator_ColumnPropNameInTable="난방Column" msprop:Generator_UserColumnName="난방" type="xs:string" default="0" minOccurs="0" />
<xs:element name="조명" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="조명" msprop:Generator_ColumnVarNameInTable="column조명" msprop:Generator_ColumnPropNameInTable="조명Column" msprop:Generator_UserColumnName="조명" type="xs:string" default="0" minOccurs="0" />
<xs:element name="환기" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="환기" msprop:Generator_ColumnVarNameInTable="column환기" msprop:Generator_ColumnPropNameInTable="환기Column" msprop:Generator_UserColumnName="환기" type="xs:string" default="0" minOccurs="0" />
<xs:element name="급탕전" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="급탕전" msprop:Generator_ColumnVarNameInTable="column급탕전" msprop:Generator_ColumnPropNameInTable="급탕전Column" msprop:Generator_UserColumnName="급탕전" type="xs:string" default="0" minOccurs="0" />
<xs:element name="냉방전" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="냉방전" msprop:Generator_ColumnVarNameInTable="column냉방전" msprop:Generator_ColumnPropNameInTable="냉방전Column" msprop:Generator_UserColumnName="냉방전" type="xs:string" default="0" minOccurs="0" />
<xs:element name="난방전" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="난방전" msprop:Generator_ColumnVarNameInTable="column난방전" msprop:Generator_ColumnPropNameInTable="난방전Column" msprop:Generator_UserColumnName="난방전" type="xs:string" default="0" minOccurs="0" />
<xs:element name="조명전" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="조명전" msprop:Generator_ColumnVarNameInTable="column조명전" msprop:Generator_ColumnPropNameInTable="조명전Column" msprop:Generator_UserColumnName="조명전" type="xs:string" default="0" minOccurs="0" />
<xs:element name="환기전" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="환기전" msprop:Generator_ColumnVarNameInTable="column환기전" msprop:Generator_ColumnPropNameInTable="환기전Column" msprop:Generator_UserColumnName="환기전" type="xs:string" default="0" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
<xs:element name="설계계산파라미터" msprop:Generator_TableClassName="설계계산파라미터DataTable" msprop:Generator_TableVarName="table설계계산파라미터" msprop:Generator_TablePropName="설계계산파라미터" msprop:Generator_RowDeletingName="설계계산파라미터RowDeleting" msprop:Generator_RowChangingName="설계계산파라미터RowChanging" msprop:Generator_RowEvHandlerName="설계계산파라미터RowChangeEventHandler" msprop:Generator_RowDeletedName="설계계산파라미터RowDeleted" msprop:Generator_UserTableName="설계계산파라미터" msprop:Generator_RowChangedName="설계계산파라미터RowChanged" msprop:Generator_RowEvArgName="설계계산파라미터RowChangeEvent" msprop:Generator_RowClassName="설계계산파라미터Row">
<xs:complexType>
<xs:sequence>
<xs:element name="난방" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="난방" msprop:Generator_ColumnVarNameInTable="column난방" msprop:Generator_ColumnPropNameInTable="난방Column" msprop:Generator_UserColumnName="난방" type="xs:string" default="0" minOccurs="0" />
<xs:element name="냉방" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="냉방" msprop:Generator_ColumnVarNameInTable="column냉방" msprop:Generator_ColumnPropNameInTable="냉방Column" msprop:Generator_UserColumnName="냉방" type="xs:string" default="0" minOccurs="0" />
<xs:element name="기저비율" msprop:nullValue="0" msprop:Generator_ColumnPropNameInRow="기저비율" msprop:Generator_ColumnVarNameInTable="column기저비율" msprop:Generator_ColumnPropNameInTable="기저비율Column" msprop:Generator_UserColumnName="기저비율" type="xs:string" default="0" minOccurs="0" />
</xs:sequence>
</xs:complexType>
</xs:element>
</xs:choice>
</xs:complexType>
<xs:unique name="Constraint1" msdata:PrimaryKey="true">
<xs:selector xpath=".//mstns:월별에너지분석" />
<xs:field xpath="mstns:월" />
<xs:field xpath="mstns:존" />
</xs:unique>
<xs:unique name="TReqUse_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
<xs:selector xpath=".//mstns:TReqUse" />
<xs:field xpath="mstns:Code" />
</xs:unique>
<xs:unique name="월별1차에너지사용량_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
<xs:selector xpath=".//mstns:월별1차에너지사용량" />
<xs:field xpath="mstns:code" />
<xs:field xpath="mstns:월" />
</xs:unique>
<xs:unique name="설계계산결과_Constraint1" msdata:ConstraintName="Constraint1" msdata:PrimaryKey="true">
<xs:selector xpath=".//mstns:설계계산결과" />
<xs:field xpath="mstns:월" />
</xs:unique>
</xs:element>
</xs:schema>

View File

@@ -0,0 +1,29 @@
<?xml version="1.0" encoding="utf-8"?>
<!--<autogenerated>
This code was generated by a tool to store the dataset designer's layout information.
Changes to this file may cause incorrect behavior and will be lost if
the code is regenerated.
</autogenerated>-->
<DiagramLayout xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema" ex:showrelationlabel="False" ViewPortX="9" ViewPortY="226" xmlns:ex="urn:schemas-microsoft-com:xml-msdatasource-layout-extended" xmlns="urn:schemas-microsoft-com:xml-msdatasource-layout">
<Shapes>
<Shape ID="DesignTable:최대냉난방부하" ZOrder="14" X="1088" Y="435" Height="257" Width="152" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="253" />
<Shape ID="DesignTable:월별에너지분석" ZOrder="18" X="891" Y="316" Height="562" Width="156" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="558" />
<Shape ID="DesignTable:TReqUse" ZOrder="8" X="725" Y="64" Height="428" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="424" />
<Shape ID="DesignTable:Graph_Req" ZOrder="17" X="1079" Y="347" Height="86" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="82" />
<Shape ID="DesignTable:Graph_ReqUse" ZOrder="16" X="1078" Y="19" Height="86" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="82" />
<Shape ID="DesignTable:Graph_Info" ZOrder="15" X="1079" Y="108" Height="238" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="234" />
<Shape ID="DesignTable:사용면적" ZOrder="13" X="872" Y="174" Height="124" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="120" />
<Shape ID="DesignTable:에너지소요량" ZOrder="10" X="187" Y="58" Height="410" Width="187" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="406" />
<Shape ID="DesignTable:에너지소요량1" ZOrder="12" X="376" Y="56" Height="695" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="691" />
<Shape ID="DesignTable:생산에너지" ZOrder="11" X="536" Y="58" Height="162" Width="153" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="158" />
<Shape ID="DesignTable:Graph_Info_data" ZOrder="9" X="20" Y="52" Height="410" Width="161" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="406" />
<Shape ID="DesignTable:Pyonga_REQ" ZOrder="7" X="551" Y="230" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="86" />
<Shape ID="DesignTable:Pyonga_USE" ZOrder="5" X="547" Y="419" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="86" />
<Shape ID="DesignTable:Pyonga_1USE" ZOrder="6" X="547" Y="330" Height="90" Width="158" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="86" />
<Shape ID="DesignTable:Pyonga_YK" ZOrder="1" X="69" Y="476" Height="543" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="539" />
<Shape ID="DesignTable:월별1차에너지사용량" ZOrder="4" X="877" Y="14" Height="143" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="139" />
<Shape ID="DesignTable:설계계산결과" ZOrder="2" X="613" Y="530" Height="238" Width="150" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="234" />
<Shape ID="DesignTable:설계계산파라미터" ZOrder="3" X="561" Y="696" Height="86" Width="164" AdapterExpanded="true" DataTableExpanded="true" OldAdapterHeight="0" OldDataTableHeight="0" SplitterPosition="82" />
</Shapes>
<Connectors />
</DiagramLayout>

BIN
ArinWarev1/ECO2.png Normal file

Binary file not shown.

After

Width:  |  Height:  |  Size: 64 KiB

814
ArinWarev1/ECO2_2016.vbproj Normal file
View File

@@ -0,0 +1,814 @@
<?xml version="1.0" encoding="utf-8"?>
<Project DefaultTargets="Build" xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup>
<Configuration Condition=" '$(Configuration)' == '' ">Debug</Configuration>
<Platform Condition=" '$(Platform)' == '' ">AnyCPU</Platform>
<ProductVersion>9.0.30729</ProductVersion>
<SchemaVersion>2.0</SchemaVersion>
<ProjectGuid>{D5C51BDE-68E5-42BC-B648-DB9CCF044703}</ProjectGuid>
<OutputType>WinExe</OutputType>
<StartupObject>Eco2Ar.My.MyApplication</StartupObject>
<RootNamespace>Eco2Ar</RootNamespace>
<AssemblyName>Eco2Ar</AssemblyName>
<MyType>WindowsForms</MyType>
<TargetZone>LocalIntranet</TargetZone>
<GenerateManifests>false</GenerateManifests>
<SignManifests>false</SignManifests>
<SignAssembly>false</SignAssembly>
<AssemblyOriginatorKeyFile>
</AssemblyOriginatorKeyFile>
<ManifestCertificateThumbprint>283B51AD9210178E1628176E6D96B5102FED9775</ManifestCertificateThumbprint>
<ManifestKeyFile>ArinWareT4_1_TemporaryKey.pfx</ManifestKeyFile>
<DelaySign>false</DelaySign>
<IsWebBootstrapper>true</IsWebBootstrapper>
<OptionStrict>Off</OptionStrict>
<FileUpgradeFlags>
</FileUpgradeFlags>
<UpgradeBackupLocation>
</UpgradeBackupLocation>
<OldToolsVersion>3.5</OldToolsVersion>
<ApplicationManifest>My Project\app.manifest</ApplicationManifest>
<ApplicationIcon>002.ico</ApplicationIcon>
<TargetFrameworkVersion>v4.0</TargetFrameworkVersion>
<TargetFrameworkProfile />
<PublishUrl>ftp://tindevil.com/www/mynetapp/t4/</PublishUrl>
<Install>true</Install>
<InstallFrom>Web</InstallFrom>
<UpdateEnabled>true</UpdateEnabled>
<UpdateMode>Foreground</UpdateMode>
<UpdateInterval>7</UpdateInterval>
<UpdateIntervalUnits>Days</UpdateIntervalUnits>
<UpdatePeriodically>false</UpdatePeriodically>
<UpdateRequired>false</UpdateRequired>
<MapFileExtensions>true</MapFileExtensions>
<InstallUrl>http://tindevil.com/mynetapp/t4/</InstallUrl>
<SupportUrl>http://tindevil.com</SupportUrl>
<ProductName>Energy%28Test Version%29</ProductName>
<PublisherName>Arinware</PublisherName>
<CreateWebPageOnPublish>true</CreateWebPageOnPublish>
<WebPage>index.htm</WebPage>
<ApplicationRevision>33</ApplicationRevision>
<ApplicationVersion>1.0.0.%2a</ApplicationVersion>
<UseApplicationTrust>false</UseApplicationTrust>
<BootstrapperEnabled>true</BootstrapperEnabled>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<DebugSymbols>true</DebugSymbols>
<DebugType>full</DebugType>
<DefineDebug>true</DefineDebug>
<DefineTrace>true</DefineTrace>
<OutputPath>c:\eco2\debug_2016\</OutputPath>
<DocumentationFile>
</DocumentationFile>
<NoWarn>41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42353,42354,42355</NoWarn>
<PlatformTarget>x86</PlatformTarget>
<WarningsAsErrors>
</WarningsAsErrors>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<DebugType>Full</DebugType>
<DefineDebug>false</DefineDebug>
<DefineTrace>true</DefineTrace>
<Optimize>true</Optimize>
<OutputPath>c:\eco2\debug_2016\</OutputPath>
<DocumentationFile>
</DocumentationFile>
<NoWarn>41999,42016,42017,42018,42019,42020,42021,42022,42032,42036,42353,42354,42355</NoWarn>
<DebugSymbols>true</DebugSymbols>
<PlatformTarget>x86</PlatformTarget>
<WarningsAsErrors>
</WarningsAsErrors>
<DefineConstants>MDI=true</DefineConstants>
</PropertyGroup>
<ItemGroup>
<Reference Include="FarPoint.CalcEngine, Version=5.0.3505.2008, Culture=neutral, PublicKeyToken=327c3516b1b18457">
<Private>True</Private>
</Reference>
<Reference Include="FarPoint.Excel, Version=5.0.3505.2008, Culture=neutral, PublicKeyToken=327c3516b1b18457">
<Private>True</Private>
</Reference>
<Reference Include="FarPoint.PDF, Version=5.0.3505.2008, Culture=neutral, PublicKeyToken=327c3516b1b18457">
<Private>True</Private>
</Reference>
<Reference Include="FarPoint.PluginCalendar.WinForms, Version=5.0.3505.2008, Culture=neutral, PublicKeyToken=327c3516b1b18457">
<Private>True</Private>
</Reference>
<Reference Include="FarPoint.Win, Version=5.0.3505.2008, Culture=neutral, PublicKeyToken=327c3516b1b18457">
<Private>True</Private>
</Reference>
<Reference Include="FarPoint.Win.Chart, Version=5.0.3505.2008, Culture=neutral, PublicKeyToken=327c3516b1b18457">
<Private>True</Private>
</Reference>
<Reference Include="FarPoint.Win.Spread, Version=5.0.3505.2008, Culture=neutral, PublicKeyToken=327c3516b1b18457, processorArchitecture=MSIL">
<Private>True</Private>
</Reference>
<Reference Include="Interop.Excel, Version=1.5.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\Interop.Excel.dll</HintPath>
</Reference>
<Reference Include="Interop.VBIDE, Version=5.3.0.0, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\Interop.VBIDE.dll</HintPath>
</Reference>
<Reference Include="Microsoft.ReportViewer.Common, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<Reference Include="Microsoft.ReportViewer.WinForms, Version=10.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" />
<Reference Include="System" />
<Reference Include="System.Data" />
<Reference Include="System.Data.DataSetExtensions" />
<Reference Include="System.Drawing" />
<Reference Include="System.Windows.Forms" />
<Reference Include="System.Xml" />
</ItemGroup>
<ItemGroup>
<Import Include="ArinNet" />
<Import Include="CEnergy" />
<Import Include="Microsoft.VisualBasic" />
<Import Include="System" />
<Import Include="System.Collections" />
<Import Include="System.Collections.Generic" />
<Import Include="System.Data" />
<Import Include="System.Drawing" />
<Import Include="System.Diagnostics" />
<Import Include="System.Windows.Forms" />
</ItemGroup>
<ItemGroup>
<Compile Include="ApplicationEvents.vb" />
<Compile Include="Calculator\Result\C1차소요량.vb" />
<Compile Include="Calculator\Result\CCo2발생량.vb" />
<Compile Include="Calculator\Result\C범용.vb" />
<Compile Include="Calculator\Result\CResult.vb" />
<Compile Include="Calculator\CShared.vb" />
<Compile Include="Calculator\Result\C사용면적.vb" />
<Compile Include="Calculator\Result\CZones.vb" />
<Compile Include="Calculator\Result\C생산에너지.vb" />
<Compile Include="Calculator\Result\C에너지소요량.vb" />
<Compile Include="Calculator\Result\C에너지분석.vb" />
<Compile Include="Calculator\Result\C에너지요구량.vb" />
<Compile Include="Calculator\CSummary.vb" />
<Compile Include="Calculator\Result\C최대냉난방부하.vb" />
<Compile Include="DataSet\Calculator_ALT\CZone_ALT.vb" />
<Compile Include="DataSet\DS.Designer.vb">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>DS.xsd</DependentUpon>
</Compile>
<Compile Include="DataSet\DS.vb">
<DependentUpon>DS.xsd</DependentUpon>
</Compile>
<Compile Include="DataSet\DS2.Designer.vb">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>DS2.xsd</DependentUpon>
</Compile>
<Compile Include="Forms_Basic\Frm_import.Designer.vb">
<DependentUpon>Frm_import.vb</DependentUpon>
</Compile>
<Compile Include="Forms_Basic\Frm_import.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms_Input\frm_monuse.Designer.vb">
<DependentUpon>frm_monuse.vb</DependentUpon>
</Compile>
<Compile Include="Forms_Input\frm_monuse.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms_Report\Frm_Export.Designer.vb">
<DependentUpon>Frm_Export.vb</DependentUpon>
</Compile>
<Compile Include="Forms_Report\Frm_Export.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms_Report\Frm_Upload.Designer.vb">
<DependentUpon>Frm_Upload.vb</DependentUpon>
</Compile>
<Compile Include="Forms_Report\Frm_Upload.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms_Report\Report_설계개선.Designer.vb">
<DependentUpon>Report_설계개선.vb</DependentUpon>
</Compile>
<Compile Include="Forms_Report\Report_설계개선.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Frm_History.Designer.vb">
<DependentUpon>Frm_History.vb</DependentUpon>
</Compile>
<Compile Include="Frm_History.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Module\CMenu.vb" />
<Compile Include="UserControls\YkCtl.Designer.vb">
<DependentUpon>YkCtl.vb</DependentUpon>
</Compile>
<Compile Include="UserControls\YkCtl.vb">
<SubType>UserControl</SubType>
</Compile>
<Compile Include="Forms_Basic\Frm_DisplayGubun.Designer.vb">
<DependentUpon>Frm_DisplayGubun.vb</DependentUpon>
</Compile>
<Compile Include="Forms_Basic\Frm_DisplayGubun.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms_Basic\Frm_Filter.Designer.vb">
<DependentUpon>Frm_Filter.vb</DependentUpon>
</Compile>
<Compile Include="Forms_Basic\Frm_Filter.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms_Basic\Frm_Work.Designer.vb">
<DependentUpon>Frm_Work.vb</DependentUpon>
</Compile>
<Compile Include="Forms_Basic\Frm_Work.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms_Report\Report_Total.Designer.vb">
<DependentUpon>Report_Total.vb</DependentUpon>
</Compile>
<Compile Include="Forms_Report\Report_Total.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms_Input\Frm_v20091231_ResultMon.Designer.vb">
<DependentUpon>Frm_v20091231_ResultMon.vb</DependentUpon>
</Compile>
<Compile Include="Forms_Input\Frm_v20091231_ResultMon.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms_Input\Frm_v20091231_ResultMax.Designer.vb">
<DependentUpon>Frm_v20091231_ResultMax.vb</DependentUpon>
</Compile>
<Compile Include="Forms_Input\Frm_v20091231_ResultMax.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms_Input\Frm_v20091231_buha.Designer.vb">
<DependentUpon>Frm_v20091231_buha.vb</DependentUpon>
</Compile>
<Compile Include="Forms_Input\Frm_v20091231_buha.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms_Basic\Frm_RepResult_Admin.Designer.vb">
<DependentUpon>Frm_RepResult_Admin.vb</DependentUpon>
</Compile>
<Compile Include="Forms_Basic\Frm_RepResult_Admin.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms_Report\Report_그래프.Designer.vb">
<DependentUpon>Report_그래프.vb</DependentUpon>
</Compile>
<Compile Include="Forms_Report\Report_그래프.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms_Input\Frm_Desc.Designer.vb">
<DependentUpon>Frm_Desc.vb</DependentUpon>
</Compile>
<Compile Include="Forms_Input\Frm_Desc.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms_Report\Report_Graph_auth.Designer.vb">
<DependentUpon>Report_Graph_auth.vb</DependentUpon>
</Compile>
<Compile Include="Forms_Report\Report_Graph_auth.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms_Input\Frm_nBunbae.Designer.vb">
<DependentUpon>Frm_nBunbae.vb</DependentUpon>
</Compile>
<Compile Include="Forms_Input\Frm_nBunbae.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms_Basic\Frm_Warning.Designer.vb">
<DependentUpon>Frm_Warning.vb</DependentUpon>
</Compile>
<Compile Include="Forms_Basic\Frm_Warning.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms_Basic\Frm_Calc.Designer.vb">
<DependentUpon>Frm_Calc.vb</DependentUpon>
</Compile>
<Compile Include="Forms_Basic\Frm_Calc.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms_Input\Frm_YK.Designer.vb">
<DependentUpon>Frm_YK.vb</DependentUpon>
</Compile>
<Compile Include="Forms_Input\Frm_YK.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms_Report\Report_pyonga.Designer.vb">
<DependentUpon>Report_pyonga.vb</DependentUpon>
</Compile>
<Compile Include="Forms_Report\Report_pyonga.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Module\CLang.vb" />
<Compile Include="DataSet\DSR.Designer.vb">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>DSR.xsd</DependentUpon>
</Compile>
<Compile Include="DataSet\DSR.vb">
<DependentUpon>DSR.xsd</DependentUpon>
</Compile>
<Compile Include="Calculator\CCooling.vb" />
<Compile Include="Calculator\CHeating.vb" />
<Compile Include="Calculator\CAirHandling.vb" />
<Compile Include="Calculator\Calculator.vb" />
<Compile Include="Module\Enum.vb" />
<Compile Include="Calculator\CRenewable.vb" />
<Compile Include="Calculator\CZone.vb" />
<Compile Include="Forms_Basic\Frm_Intro.Designer.vb">
<DependentUpon>Frm_Intro.vb</DependentUpon>
</Compile>
<Compile Include="Forms_Basic\Frm_Intro.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Module\CForm.Designer.vb">
<DependentUpon>CForm.vb</DependentUpon>
</Compile>
<Compile Include="Module\CForm.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Module\Pub.vb" />
<Compile Include="MdiMain.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="MdiMain.Designer.vb">
<DependentUpon>MdiMain.vb</DependentUpon>
<SubType>Form</SubType>
</Compile>
<Compile Include="My Project\AssemblyInfo.vb" />
<Compile Include="My Project\Application.Designer.vb">
<AutoGen>True</AutoGen>
<DependentUpon>Application.myapp</DependentUpon>
</Compile>
<Compile Include="My Project\Resources.Designer.vb">
<AutoGen>True</AutoGen>
<DesignTime>True</DesignTime>
<DependentUpon>Resources.resx</DependentUpon>
</Compile>
<Compile Include="My Project\Settings.Designer.vb">
<AutoGen>True</AutoGen>
<DependentUpon>Settings.settings</DependentUpon>
<DesignTimeSharedInput>True</DesignTimeSharedInput>
</Compile>
<Compile Include="Forms_Input\Frm_v20091231_profile.Designer.vb">
<DependentUpon>Frm_v20091231_profile.vb</DependentUpon>
</Compile>
<Compile Include="Forms_Input\Frm_v20091231_profile.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms_Input\Frm_Zone.Designer.vb">
<DependentUpon>Frm_Zone.vb</DependentUpon>
</Compile>
<Compile Include="Forms_Input\Frm_Zone.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms_Input\Frm_kongjo.Designer.vb">
<DependentUpon>Frm_kongjo.vb</DependentUpon>
</Compile>
<Compile Include="Forms_Input\Frm_kongjo.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms_Input\Frm_kongkub.Designer.vb">
<DependentUpon>Frm_kongkub.vb</DependentUpon>
</Compile>
<Compile Include="Forms_Input\Frm_kongkub.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms_Input\Frm_Nanbang.Designer.vb">
<DependentUpon>Frm_Nanbang.vb</DependentUpon>
</Compile>
<Compile Include="Forms_Input\Frm_Nanbang.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms_Input\Frm_NaengBang.Designer.vb">
<DependentUpon>Frm_NaengBang.vb</DependentUpon>
</Compile>
<Compile Include="Forms_Input\Frm_NaengBang.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms_Input\Frm_Bunbae.Designer.vb">
<DependentUpon>Frm_Bunbae.vb</DependentUpon>
</Compile>
<Compile Include="Forms_Input\Frm_Bunbae.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms_Input\Frm_New.Designer.vb">
<DependentUpon>Frm_New.vb</DependentUpon>
</Compile>
<Compile Include="Forms_Input\Frm_New.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms_Input\Frm_v20091231_Myoun.Designer.vb">
<DependentUpon>Frm_v20091231_Myoun.vb</DependentUpon>
</Compile>
<Compile Include="Forms_Input\Frm_v20091231_Myoun.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms_Basic\Frm_Common.Designer.vb">
<DependentUpon>Frm_Common.vb</DependentUpon>
</Compile>
<Compile Include="Forms_Basic\Frm_Common.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms_Input\Frm_v20091231_Weather.Designer.vb">
<DependentUpon>Frm_v20091231_Weather.vb</DependentUpon>
</Compile>
<Compile Include="Forms_Input\Frm_v20091231_Weather.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="Forms_Basic\Frm_About.Designer.vb">
<DependentUpon>Frm_About.vb</DependentUpon>
</Compile>
<Compile Include="Forms_Basic\Frm_About.vb">
<SubType>Form</SubType>
</Compile>
<Compile Include="UserControls\ArinDv.Designer.vb">
<DependentUpon>ArinDv.vb</DependentUpon>
</Compile>
<Compile Include="UserControls\ArinDv.vb">
<SubType>Component</SubType>
</Compile>
<Compile Include="UserControls\MyCmb.Designer.vb">
<DependentUpon>MyCmb.vb</DependentUpon>
</Compile>
<Compile Include="UserControls\MyCmb.vb">
<SubType>Component</SubType>
</Compile>
<Compile Include="UserControls\MyTb.Designer.vb">
<DependentUpon>MyTb.vb</DependentUpon>
</Compile>
<Compile Include="UserControls\MyTb.vb">
<SubType>Component</SubType>
</Compile>
<Compile Include="Forms_Basic\Frm_FileInfo.Designer.vb">
<DependentUpon>Frm_FileInfo.vb</DependentUpon>
</Compile>
<Compile Include="Forms_Basic\Frm_FileInfo.vb">
<SubType>Form</SubType>
</Compile>
</ItemGroup>
<ItemGroup>
<EmbeddedResource Include="Forms_Basic\Frm_DisplayGubun.resx">
<DependentUpon>Frm_DisplayGubun.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms_Basic\Frm_Filter.resx">
<DependentUpon>Frm_Filter.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms_Basic\Frm_import.resx">
<DependentUpon>Frm_import.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms_Basic\Frm_Work.resx">
<DependentUpon>Frm_Work.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Forms_Input\frm_monuse.resx">
<DependentUpon>frm_monuse.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Forms_Report\Frm_Export.resx">
<DependentUpon>Frm_Export.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms_Report\Frm_Upload.resx">
<DependentUpon>Frm_Upload.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms_Report\평가서.rdlc" />
<EmbeddedResource Include="Forms_Report\Report_Total.resx">
<SubType>Designer</SubType>
<DependentUpon>Report_Total.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms_Input\Frm_v20091231_ResultMon.resx">
<DependentUpon>Frm_v20091231_ResultMon.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Forms_Input\Frm_v20091231_ResultMax.resx">
<DependentUpon>Frm_v20091231_ResultMax.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Forms_Input\Frm_v20091231_buha.resx">
<DependentUpon>Frm_v20091231_buha.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Forms_Basic\Frm_RepResult_Admin.resx">
<DependentUpon>Frm_RepResult_Admin.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Forms_Report\Report_그래프.resx">
<DependentUpon>Report_그래프.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Forms_Report\그래프.rdlc" />
<EmbeddedResource Include="Forms_Input\Frm_Desc.resx">
<DependentUpon>Frm_Desc.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Forms_Report\Report_total.rdlc" />
<EmbeddedResource Include="Forms_Basic\Frm_Intro.resx">
<SubType>Designer</SubType>
<DependentUpon>Frm_Intro.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms_Report\Report_Graph_auth.resx">
<DependentUpon>Report_Graph_auth.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Forms_Report\Report_Graph_auth.rdlc" />
<EmbeddedResource Include="Forms_Input\Frm_nBunbae.resx">
<DependentUpon>Frm_nBunbae.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Forms_Basic\Frm_Warning.resx">
<DependentUpon>Frm_Warning.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Forms_Basic\Frm_Calc.resx">
<DependentUpon>Frm_Calc.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Forms_Input\Frm_YK.resx">
<DependentUpon>Frm_YK.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Forms_Report\Report_pyonga.resx">
<DependentUpon>Report_pyonga.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Forms_Report\Report_설계개선.resx">
<DependentUpon>Report_설계개선.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Forms_Report\Report_설계개선.rdlc" />
<EmbeddedResource Include="Frm_History.resx">
<DependentUpon>Frm_History.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Module\CForm.resx">
<DependentUpon>CForm.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="My Project\licenses.licx" />
<EmbeddedResource Include="MdiMain.resx">
<SubType>Designer</SubType>
<DependentUpon>MdiMain.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="My Project\Resources.resx">
<Generator>VbMyResourcesResXFileCodeGenerator</Generator>
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
<CustomToolNamespace>My.Resources</CustomToolNamespace>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Forms_Input\Frm_v20091231_profile.resx">
<DependentUpon>Frm_v20091231_profile.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Forms_Input\Frm_Zone.resx">
<DependentUpon>Frm_Zone.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Forms_Input\Frm_kongjo.resx">
<DependentUpon>Frm_kongjo.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Forms_Input\Frm_kongkub.resx">
<DependentUpon>Frm_kongkub.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Forms_Input\Frm_Nanbang.resx">
<DependentUpon>Frm_Nanbang.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Forms_Input\Frm_NaengBang.resx">
<DependentUpon>Frm_NaengBang.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Forms_Input\Frm_Bunbae.resx">
<DependentUpon>Frm_Bunbae.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Forms_Input\Frm_New.resx">
<DependentUpon>Frm_New.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Forms_Input\Frm_v20091231_Myoun.resx">
<DependentUpon>Frm_v20091231_Myoun.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Forms_Basic\Frm_Common.resx">
<DependentUpon>Frm_Common.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Forms_Input\Frm_v20091231_Weather.resx">
<DependentUpon>Frm_v20091231_Weather.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
<EmbeddedResource Include="Forms_Basic\Frm_About.resx">
<SubType>Designer</SubType>
<DependentUpon>Frm_About.vb</DependentUpon>
</EmbeddedResource>
<EmbeddedResource Include="Forms_Basic\Frm_FileInfo.resx">
<DependentUpon>Frm_FileInfo.vb</DependentUpon>
<SubType>Designer</SubType>
</EmbeddedResource>
</ItemGroup>
<ItemGroup>
<None Include="app.config" />
<None Include="DataSet\DS.xsc">
<DependentUpon>DS.xsd</DependentUpon>
</None>
<None Include="DataSet\DS.xsd">
<SubType>Designer</SubType>
<Generator>MSDataSetGenerator</Generator>
<LastGenOutput>DS.Designer.vb</LastGenOutput>
</None>
<None Include="DataSet\DS.xss">
<DependentUpon>DS.xsd</DependentUpon>
</None>
<None Include="DataSet\DS2.xsc">
<DependentUpon>DS2.xsd</DependentUpon>
</None>
<None Include="DataSet\DS2.xsd">
<SubType>Designer</SubType>
<Generator>MSDataSetGenerator</Generator>
<LastGenOutput>DS2.Designer.vb</LastGenOutput>
</None>
<None Include="DataSet\DS2.xss">
<DependentUpon>DS2.xsd</DependentUpon>
</None>
<None Include="login.dat">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="My Project\Application.myapp">
<Generator>MyApplicationCodeGenerator</Generator>
<LastGenOutput>Application.Designer.vb</LastGenOutput>
</None>
<None Include="My Project\Settings.settings">
<Generator>SettingsSingleFileGenerator</Generator>
<CustomToolNamespace>My</CustomToolNamespace>
<LastGenOutput>Settings.Designer.vb</LastGenOutput>
</None>
</ItemGroup>
<ItemGroup>
<None Include="new">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="new1">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="Resources\user_24.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\ref_24.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\user_16.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\group_24.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\adfav_16.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\addbk_24.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\addbk_16.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\wiz_16.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\paste_16.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\del_16.png" />
</ItemGroup>
<ItemGroup>
<None Include="Resources\edit_16.png" />
</ItemGroup>
<ItemGroup>
<Content Include="002.ico" />
<Content Include="Template\Sample.tpl">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<BaseApplicationManifest Include="My Project\app.manifest" />
<None Include="DataSet\DSR.xsc">
<DependentUpon>DSR.xsd</DependentUpon>
</None>
<None Include="DataSet\DSR.xsd">
<SubType>Designer</SubType>
<Generator>MSDataSetGenerator</Generator>
<LastGenOutput>DSR.Designer.vb</LastGenOutput>
</None>
<None Include="DataSet\DSR.xss">
<DependentUpon>DSR.xsd</DependentUpon>
</None>
<None Include="Resources\save_16.png" />
</ItemGroup>
<ItemGroup>
<BootstrapperPackage Include="Microsoft.Net.Client.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1 Client Profile</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.2.0">
<Visible>False</Visible>
<ProductName>.NET Framework 2.0%28x86%29</ProductName>
<Install>true</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.0">
<Visible>False</Visible>
<ProductName>.NET Framework 3.0%28x86%29</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5</ProductName>
<Install>false</Install>
</BootstrapperPackage>
<BootstrapperPackage Include="Microsoft.Net.Framework.3.5.SP1">
<Visible>False</Visible>
<ProductName>.NET Framework 3.5 SP1</ProductName>
<Install>false</Install>
</BootstrapperPackage>
</ItemGroup>
<ItemGroup>
<Content Include="001_B.ico" />
<Content Include="9-8.ico" />
<None Include="Resources\폼배경.jpg" />
<None Include="Resources\건물개요.jpg" />
<None Include="ECO2.png" />
<Content Include="icon5.ico" />
<None Include="Resources\select_by_difference.png" />
<None Include="Resources\page_copy.png" />
<Content Include="단축키.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="ReadMe.txt" />
<None Include="Calculator\CD.cd" />
<None Include="Calculator\CD_RESULT.cd" />
<None Include="Resources\default.png" />
<None Include="Resources\apps_32.png" />
<None Include="Resources\new_32.png" />
<None Include="Resources\remov_32.png" />
<None Include="Resources\cancl_32.png" />
<Content Include="Template\ReadMe.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<Content Include="UpdateList.txt" />
<Content Include="Forms_Input\ReadMe.txt">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</Content>
<None Include="upload.xlsx">
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
</None>
<None Include="방위2.png" />
<None Include="방위.png" />
<None Include="방위.jpg" />
</ItemGroup>
<ItemGroup>
<PublishFile Include="ADODB">
<Visible>False</Visible>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
<PublishFile Include="Microsoft.ReportViewer.ProcessingObjectModel">
<Visible>False</Visible>
<Group>
</Group>
<TargetPath>
</TargetPath>
<PublishState>Include</PublishState>
<IncludeHash>True</IncludeHash>
<FileType>Assembly</FileType>
</PublishFile>
</ItemGroup>
<ItemGroup>
<ProjectReference Include="..\ArinLogin\ArinLogin.vbproj">
<Project>{8B6E4D7F-B484-471A-A419-2FE3451D26A3}</Project>
<Name>ArinLogin</Name>
</ProjectReference>
<ProjectReference Include="..\ArinLog\ArinLog.vbproj">
<Project>{e9e16a98-8f8d-4848-a27e-4571c184fb1a}</Project>
<Name>ArinLog</Name>
</ProjectReference>
<ProjectReference Include="..\ArinNet\ArinNet.vbproj">
<Project>{F0FB4304-F995-446A-99B7-0896A5E07A72}</Project>
<Name>ArinNet</Name>
</ProjectReference>
<ProjectReference Include="..\CEnergy\ArinClassV2\CEnergy.vbproj">
<Project>{2AF28E8C-84F1-4D56-9592-3B0EBDE8DF14}</Project>
<Name>CEnergy</Name>
</ProjectReference>
</ItemGroup>
<ItemGroup />
<Import Project="$(MSBuildBinPath)\Microsoft.VisualBasic.targets" />
<!-- To modify your build process, add your task inside one of the targets below and uncomment it.
Other similar extension points exist, see Microsoft.Common.targets.
<Target Name="BeforeBuild">
</Target>
<Target Name="AfterBuild">
</Target>
-->
</Project>

View File

@@ -0,0 +1,25 @@
<?xml version="1.0" encoding="utf-8"?>
<Project xmlns="http://schemas.microsoft.com/developer/msbuild/2003" ToolsVersion="4.0">
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Release|AnyCPU' ">
<StartArguments>
</StartArguments>
</PropertyGroup>
<PropertyGroup>
<PublishUrlHistory>ftp://tindevil.com/www/mynetapp/t4/|ftp://tindevil.com/public_html/mynetapp/t4/|ftp://tindevil.com/public_html/mynetapp/|publish\</PublishUrlHistory>
<InstallUrlHistory>http://tindevil.com/mynetapp/t4/|http://tindevil.com/mynetapp/</InstallUrlHistory>
<SupportUrlHistory>http://tindevil.com</SupportUrlHistory>
<UpdateUrlHistory>
</UpdateUrlHistory>
<BootstrapperUrlHistory>
</BootstrapperUrlHistory>
<FallbackCulture>ko-KR</FallbackCulture>
<VerifyUploadedFiles>false</VerifyUploadedFiles>
<ErrorReportUrlHistory>
</ErrorReportUrlHistory>
<ProjectView>ProjectFiles</ProjectView>
</PropertyGroup>
<PropertyGroup Condition=" '$(Configuration)|$(Platform)' == 'Debug|AnyCPU' ">
<StartArguments>
</StartArguments>
</PropertyGroup>
</Project>

133
ArinWarev1/Forms/Frm_About.Designer.vb generated Normal file
View File

@@ -0,0 +1,133 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class Frm_About
Inherits CForm
'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()
Me.Label6 = New System.Windows.Forms.Label()
Me.Label1 = New System.Windows.Forms.Label()
Me.Label2 = New System.Windows.Forms.Label()
Me.Label3 = New System.Windows.Forms.Label()
Me.Label5 = New System.Windows.Forms.Label()
Me.PictureBox1 = New System.Windows.Forms.PictureBox()
CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'Label6
'
Me.Label6.AutoSize = True
Me.Label6.Font = New System.Drawing.Font("나눔고딕", 10.0!, System.Drawing.FontStyle.Bold)
Me.Label6.ForeColor = System.Drawing.SystemColors.ControlDarkDark
Me.Label6.Location = New System.Drawing.Point(16, 19)
Me.Label6.Name = "Label6"
Me.Label6.Size = New System.Drawing.Size(101, 16)
Me.Label6.TabIndex = 3
Me.Label6.Text = "[ECO2 만든 이]"
'
'Label1
'
Me.Label1.AutoSize = True
Me.Label1.BackColor = System.Drawing.Color.Transparent
Me.Label1.Font = New System.Drawing.Font("나눔고딕", 8.999999!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
Me.Label1.Location = New System.Drawing.Point(16, 53)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(113, 14)
Me.Label1.TabIndex = 0
Me.Label1.Text = "Main Coder(Y.K.H)"
'
'Label2
'
Me.Label2.AutoSize = True
Me.Label2.BackColor = System.Drawing.Color.Transparent
Me.Label2.Font = New System.Drawing.Font("나눔고딕", 8.999999!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
Me.Label2.Location = New System.Drawing.Point(16, 74)
Me.Label2.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size(95, 14)
Me.Label2.TabIndex = 1
Me.Label2.Text = "Sub Coder(Arin)"
'
'Label3
'
Me.Label3.AutoSize = True
Me.Label3.BackColor = System.Drawing.Color.Transparent
Me.Label3.Font = New System.Drawing.Font("나눔고딕", 8.999999!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
Me.Label3.Location = New System.Drawing.Point(16, 94)
Me.Label3.Name = "Label3"
Me.Label3.Size = New System.Drawing.Size(104, 14)
Me.Label3.TabIndex = 1
Me.Label3.Text = "UI Design(Yoojm)"
'
'Label5
'
Me.Label5.AutoSize = True
Me.Label5.BackColor = System.Drawing.Color.Transparent
Me.Label5.Font = New System.Drawing.Font("나눔고딕", 8.249999!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
Me.Label5.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(0, Byte), Integer), CType(CType(192, Byte), Integer))
Me.Label5.Location = New System.Drawing.Point(8, 120)
Me.Label5.Name = "Label5"
Me.Label5.Size = New System.Drawing.Size(229, 13)
Me.Label5.TabIndex = 1
Me.Label5.Text = "* 이 프로그램은 나눔고딕에 최적화 되어있습니다"
'
'PictureBox1
'
Me.PictureBox1.BackColor = System.Drawing.Color.Transparent
Me.PictureBox1.BackgroundImage = Global.Eco2Ar.My.Resources.Resources.ECO2
Me.PictureBox1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch
Me.PictureBox1.Location = New System.Drawing.Point(252, 7)
Me.PictureBox1.Name = "PictureBox1"
Me.PictureBox1.Size = New System.Drawing.Size(131, 130)
Me.PictureBox1.TabIndex = 2
Me.PictureBox1.TabStop = False
'
'Frm_About
'
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None
Me.ClientSize = New System.Drawing.Size(389, 140)
Me.Controls.Add(Me.Label6)
Me.Controls.Add(Me.Label1)
Me.Controls.Add(Me.Label2)
Me.Controls.Add(Me.PictureBox1)
Me.Controls.Add(Me.Label3)
Me.Controls.Add(Me.Label5)
Me.Font = New System.Drawing.Font("나눔고딕", 8.999999!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
Me.MaximizeBox = False
Me.MinimizeBox = False
Me.Name = "Frm_About"
Me.ShowInTaskbar = False
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "프로그램정보"
CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
Friend WithEvents Label6 As System.Windows.Forms.Label
Friend WithEvents Label1 As System.Windows.Forms.Label
Friend WithEvents Label2 As System.Windows.Forms.Label
Friend WithEvents Label3 As System.Windows.Forms.Label
Friend WithEvents Label5 As System.Windows.Forms.Label
Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox
Private Sub Frm_About_Activated(sender As Object, e As System.EventArgs) Handles Me.Activated
End Sub
End Class

View File

@@ -0,0 +1,120 @@
<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@@ -0,0 +1,21 @@
Public NotInheritable Class Frm_About
'TODO: 프로젝트 디자이너에서 "프로젝트" 메뉴의 "속성"을 선택하여 표시된 "응용 프로그램" 탭에서
' 이 폼을 응용 프로그램의 시작 화면으로 쉽게 설정할 수 있습니다.
Public Overrides Function AcceptChanged() As Boolean
End Function
Public Overrides Function RejectChanged() As Boolean
End Function
Public Overrides Function HasChanged() As Boolean
End Function
Private Sub Frm_About_Load(sender As Object, e As System.EventArgs) Handles Me.Load
End Sub
Private Sub Panel2_Paint(sender As System.Object, e As System.Windows.Forms.PaintEventArgs)
End Sub
End Class

126
ArinWarev1/Forms/Frm_Calc.Designer.vb generated Normal file
View File

@@ -0,0 +1,126 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class Frm_Calc
Inherits CForm
'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()
Me.Button1 = New System.Windows.Forms.Button
Me.Button2 = New System.Windows.Forms.Button
Me.Button3 = New System.Windows.Forms.Button
Me.Label1 = New System.Windows.Forms.Label
Me.Panel1 = New System.Windows.Forms.Panel
Me.Button4 = New System.Windows.Forms.Button
Me.Panel1.SuspendLayout()
Me.SuspendLayout()
'
'Button1
'
Me.Button1.Location = New System.Drawing.Point(21, 75)
Me.Button1.Name = "Button1"
Me.Button1.Size = New System.Drawing.Size(137, 31)
Me.Button1.TabIndex = 3
Me.Button1.Text = "요구량"
Me.Button1.UseVisualStyleBackColor = True
'
'Button2
'
Me.Button2.Location = New System.Drawing.Point(21, 115)
Me.Button2.Name = "Button2"
Me.Button2.Size = New System.Drawing.Size(137, 31)
Me.Button2.TabIndex = 4
Me.Button2.Text = "소요량"
Me.Button2.UseVisualStyleBackColor = True
'
'Button3
'
Me.Button3.Location = New System.Drawing.Point(21, 155)
Me.Button3.Name = "Button3"
Me.Button3.Size = New System.Drawing.Size(137, 31)
Me.Button3.TabIndex = 5
Me.Button3.Text = "요구량+소요량"
Me.Button3.UseVisualStyleBackColor = True
'
'Label1
'
Me.Label1.AutoSize = True
Me.Label1.Location = New System.Drawing.Point(58, 35)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(64, 17)
Me.Label1.TabIndex = 6
Me.Label1.Text = "계산방법"
'
'Panel1
'
Me.Panel1.BackColor = System.Drawing.Color.White
Me.Panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.Panel1.Controls.Add(Me.Button4)
Me.Panel1.Controls.Add(Me.Button1)
Me.Panel1.Controls.Add(Me.Label1)
Me.Panel1.Controls.Add(Me.Button2)
Me.Panel1.Controls.Add(Me.Button3)
Me.Panel1.Dock = System.Windows.Forms.DockStyle.Fill
Me.Panel1.Location = New System.Drawing.Point(0, 0)
Me.Panel1.Name = "Panel1"
Me.Panel1.Size = New System.Drawing.Size(181, 210)
Me.Panel1.TabIndex = 7
'
'Button4
'
Me.Button4.BackColor = System.Drawing.Color.Transparent
Me.Button4.Font = New System.Drawing.Font("Arial", 11.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
Me.Button4.ForeColor = System.Drawing.Color.Red
Me.Button4.ImageAlign = System.Drawing.ContentAlignment.TopLeft
Me.Button4.Location = New System.Drawing.Point(148, 8)
Me.Button4.Margin = New System.Windows.Forms.Padding(0)
Me.Button4.Name = "Button4"
Me.Button4.Size = New System.Drawing.Size(23, 28)
Me.Button4.TabIndex = 7
Me.Button4.Text = "x"
Me.Button4.TextAlign = System.Drawing.ContentAlignment.TopLeft
Me.Button4.UseVisualStyleBackColor = True
'
'Frm_Calc
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(9.0!, 17.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.BackColor = System.Drawing.SystemColors.AppWorkspace
Me.ClientSize = New System.Drawing.Size(181, 210)
Me.Controls.Add(Me.Panel1)
Me.Font = New System.Drawing.Font("나눔고딕", 11.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
Me.KeyPreview = True
Me.Margin = New System.Windows.Forms.Padding(4)
Me.Name = "Frm_Calc"
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "Frm_Work"
Me.TransparencyKey = System.Drawing.SystemColors.AppWorkspace
Me.Controls.SetChildIndex(Me.Panel1, 0)
Me.Panel1.ResumeLayout(False)
Me.Panel1.PerformLayout()
Me.ResumeLayout(False)
End Sub
Friend WithEvents Button1 As System.Windows.Forms.Button
Friend WithEvents Button2 As System.Windows.Forms.Button
Friend WithEvents Button3 As System.Windows.Forms.Button
Friend WithEvents Label1 As System.Windows.Forms.Label
Friend WithEvents Panel1 As System.Windows.Forms.Panel
Friend WithEvents Button4 As System.Windows.Forms.Button
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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="bsmain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
</root>

View File

@@ -0,0 +1,36 @@
Public Class Frm_Calc
Public Type As Calculator.ECalc
Public Overrides Function AcceptChanged() As Boolean
End Function
Public Overrides Function RejectChanged() As Boolean
End Function
Public Overrides Function HasChanged() As Boolean
End Function
Private Sub Frm_Calc_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.KeyCode = Keys.Escape Then
Me.DialogResult = Windows.Forms.DialogResult.Cancel
End If
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Type = Calculator.ECalc.REq
Me.DialogResult = Windows.Forms.DialogResult.OK
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
Type = Calculator.ECalc.Use
Me.DialogResult = Windows.Forms.DialogResult.OK
End Sub
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
Type = Calculator.ECalc.All
Me.DialogResult = Windows.Forms.DialogResult.OK
End Sub
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
Me.Close()
End Sub
End Class

274
ArinWarev1/Forms/Frm_Common.Designer.vb generated Normal file
View File

@@ -0,0 +1,274 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class Frm_Common
Inherits CForm
'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()
Me.components = New System.ComponentModel.Container
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Frm_Common))
Me.DS = New Eco2Ar.DS
Me.Tbl_commonBindingSource = New System.Windows.Forms.BindingSource(Me.components)
Me.Tbl_commonTableAdapter = New Eco2Ar.DSTableAdapters.tbl_commonTableAdapter
Me.Tbl_commonBindingNavigator = New System.Windows.Forms.BindingNavigator(Me.components)
Me.BindingNavigatorMoveFirstItem = New System.Windows.Forms.ToolStripButton
Me.BindingNavigatorMovePreviousItem = New System.Windows.Forms.ToolStripButton
Me.BindingNavigatorSeparator = New System.Windows.Forms.ToolStripSeparator
Me.BindingNavigatorPositionItem = New System.Windows.Forms.ToolStripTextBox
Me.BindingNavigatorCountItem = New System.Windows.Forms.ToolStripLabel
Me.BindingNavigatorSeparator1 = New System.Windows.Forms.ToolStripSeparator
Me.BindingNavigatorMoveNextItem = New System.Windows.Forms.ToolStripButton
Me.BindingNavigatorMoveLastItem = New System.Windows.Forms.ToolStripButton
Me.BindingNavigatorSeparator2 = New System.Windows.Forms.ToolStripSeparator
Me.BindingNavigatorAddNewItem = New System.Windows.Forms.ToolStripButton
Me.BindingNavigatorDeleteItem = New System.Windows.Forms.ToolStripButton
Me.Tbl_commonBindingNavigatorSaveItem = New System.Windows.Forms.ToolStripButton
Me.Tbl_commonDataGridView = New System.Windows.Forms.DataGridView
Me.DataGridViewTextBoxColumn1 = New System.Windows.Forms.DataGridViewTextBoxColumn
Me.DataGridViewTextBoxColumn2 = New System.Windows.Forms.DataGridViewTextBoxColumn
Me.DataGridViewTextBoxColumn3 = New System.Windows.Forms.DataGridViewTextBoxColumn
Me.DataGridViewTextBoxColumn4 = New System.Windows.Forms.DataGridViewTextBoxColumn
Me.DataGridViewTextBoxColumn5 = New System.Windows.Forms.DataGridViewTextBoxColumn
CType(Me.DS, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.Tbl_commonBindingSource, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.Tbl_commonBindingNavigator, System.ComponentModel.ISupportInitialize).BeginInit()
Me.Tbl_commonBindingNavigator.SuspendLayout()
CType(Me.Tbl_commonDataGridView, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'DS
'
Me.DS.DataSetName = "DS"
Me.DS.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema
'
'Tbl_commonBindingSource
'
Me.Tbl_commonBindingSource.DataMember = "tbl_common"
Me.Tbl_commonBindingSource.DataSource = Me.DS
'
'Tbl_commonTableAdapter
'
Me.Tbl_commonTableAdapter.ClearBeforeFill = True
'
'Tbl_commonBindingNavigator
'
Me.Tbl_commonBindingNavigator.AddNewItem = Me.BindingNavigatorAddNewItem
Me.Tbl_commonBindingNavigator.BindingSource = Me.Tbl_commonBindingSource
Me.Tbl_commonBindingNavigator.CountItem = Me.BindingNavigatorCountItem
Me.Tbl_commonBindingNavigator.DeleteItem = Me.BindingNavigatorDeleteItem
Me.Tbl_commonBindingNavigator.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.BindingNavigatorMoveFirstItem, Me.BindingNavigatorMovePreviousItem, Me.BindingNavigatorSeparator, Me.BindingNavigatorPositionItem, Me.BindingNavigatorCountItem, Me.BindingNavigatorSeparator1, Me.BindingNavigatorMoveNextItem, Me.BindingNavigatorMoveLastItem, Me.BindingNavigatorSeparator2, Me.BindingNavigatorAddNewItem, Me.BindingNavigatorDeleteItem, Me.Tbl_commonBindingNavigatorSaveItem})
Me.Tbl_commonBindingNavigator.Location = New System.Drawing.Point(0, 0)
Me.Tbl_commonBindingNavigator.MoveFirstItem = Me.BindingNavigatorMoveFirstItem
Me.Tbl_commonBindingNavigator.MoveLastItem = Me.BindingNavigatorMoveLastItem
Me.Tbl_commonBindingNavigator.MoveNextItem = Me.BindingNavigatorMoveNextItem
Me.Tbl_commonBindingNavigator.MovePreviousItem = Me.BindingNavigatorMovePreviousItem
Me.Tbl_commonBindingNavigator.Name = "Tbl_commonBindingNavigator"
Me.Tbl_commonBindingNavigator.PositionItem = Me.BindingNavigatorPositionItem
Me.Tbl_commonBindingNavigator.Size = New System.Drawing.Size(791, 25)
Me.Tbl_commonBindingNavigator.TabIndex = 3
Me.Tbl_commonBindingNavigator.Text = "BindingNavigator1"
'
'BindingNavigatorMoveFirstItem
'
Me.BindingNavigatorMoveFirstItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
Me.BindingNavigatorMoveFirstItem.Image = CType(resources.GetObject("BindingNavigatorMoveFirstItem.Image"), System.Drawing.Image)
Me.BindingNavigatorMoveFirstItem.Name = "BindingNavigatorMoveFirstItem"
Me.BindingNavigatorMoveFirstItem.RightToLeftAutoMirrorImage = True
Me.BindingNavigatorMoveFirstItem.Size = New System.Drawing.Size(23, 22)
Me.BindingNavigatorMoveFirstItem.Text = "처음으로 이동"
'
'BindingNavigatorMovePreviousItem
'
Me.BindingNavigatorMovePreviousItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
Me.BindingNavigatorMovePreviousItem.Image = CType(resources.GetObject("BindingNavigatorMovePreviousItem.Image"), System.Drawing.Image)
Me.BindingNavigatorMovePreviousItem.Name = "BindingNavigatorMovePreviousItem"
Me.BindingNavigatorMovePreviousItem.RightToLeftAutoMirrorImage = True
Me.BindingNavigatorMovePreviousItem.Size = New System.Drawing.Size(23, 22)
Me.BindingNavigatorMovePreviousItem.Text = "이전으로 이동"
'
'BindingNavigatorSeparator
'
Me.BindingNavigatorSeparator.Name = "BindingNavigatorSeparator"
Me.BindingNavigatorSeparator.Size = New System.Drawing.Size(6, 25)
'
'BindingNavigatorPositionItem
'
Me.BindingNavigatorPositionItem.AccessibleName = "위치"
Me.BindingNavigatorPositionItem.AutoSize = False
Me.BindingNavigatorPositionItem.Name = "BindingNavigatorPositionItem"
Me.BindingNavigatorPositionItem.Size = New System.Drawing.Size(50, 23)
Me.BindingNavigatorPositionItem.Text = "0"
Me.BindingNavigatorPositionItem.ToolTipText = "현재 위치"
'
'BindingNavigatorCountItem
'
Me.BindingNavigatorCountItem.Name = "BindingNavigatorCountItem"
Me.BindingNavigatorCountItem.Size = New System.Drawing.Size(27, 15)
Me.BindingNavigatorCountItem.Text = "/{0}"
Me.BindingNavigatorCountItem.ToolTipText = "전체 항목 수"
'
'BindingNavigatorSeparator1
'
Me.BindingNavigatorSeparator1.Name = "BindingNavigatorSeparator"
Me.BindingNavigatorSeparator1.Size = New System.Drawing.Size(6, 6)
'
'BindingNavigatorMoveNextItem
'
Me.BindingNavigatorMoveNextItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
Me.BindingNavigatorMoveNextItem.Image = CType(resources.GetObject("BindingNavigatorMoveNextItem.Image"), System.Drawing.Image)
Me.BindingNavigatorMoveNextItem.Name = "BindingNavigatorMoveNextItem"
Me.BindingNavigatorMoveNextItem.RightToLeftAutoMirrorImage = True
Me.BindingNavigatorMoveNextItem.Size = New System.Drawing.Size(23, 20)
Me.BindingNavigatorMoveNextItem.Text = "다음으로 이동"
'
'BindingNavigatorMoveLastItem
'
Me.BindingNavigatorMoveLastItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
Me.BindingNavigatorMoveLastItem.Image = CType(resources.GetObject("BindingNavigatorMoveLastItem.Image"), System.Drawing.Image)
Me.BindingNavigatorMoveLastItem.Name = "BindingNavigatorMoveLastItem"
Me.BindingNavigatorMoveLastItem.RightToLeftAutoMirrorImage = True
Me.BindingNavigatorMoveLastItem.Size = New System.Drawing.Size(23, 20)
Me.BindingNavigatorMoveLastItem.Text = "마지막으로 이동"
'
'BindingNavigatorSeparator2
'
Me.BindingNavigatorSeparator2.Name = "BindingNavigatorSeparator"
Me.BindingNavigatorSeparator2.Size = New System.Drawing.Size(6, 6)
'
'BindingNavigatorAddNewItem
'
Me.BindingNavigatorAddNewItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
Me.BindingNavigatorAddNewItem.Image = CType(resources.GetObject("BindingNavigatorAddNewItem.Image"), System.Drawing.Image)
Me.BindingNavigatorAddNewItem.Name = "BindingNavigatorAddNewItem"
Me.BindingNavigatorAddNewItem.RightToLeftAutoMirrorImage = True
Me.BindingNavigatorAddNewItem.Size = New System.Drawing.Size(23, 22)
Me.BindingNavigatorAddNewItem.Text = "새로 추가"
'
'BindingNavigatorDeleteItem
'
Me.BindingNavigatorDeleteItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
Me.BindingNavigatorDeleteItem.Image = CType(resources.GetObject("BindingNavigatorDeleteItem.Image"), System.Drawing.Image)
Me.BindingNavigatorDeleteItem.Name = "BindingNavigatorDeleteItem"
Me.BindingNavigatorDeleteItem.RightToLeftAutoMirrorImage = True
Me.BindingNavigatorDeleteItem.Size = New System.Drawing.Size(23, 20)
Me.BindingNavigatorDeleteItem.Text = "삭제"
'
'Tbl_commonBindingNavigatorSaveItem
'
Me.Tbl_commonBindingNavigatorSaveItem.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
Me.Tbl_commonBindingNavigatorSaveItem.Image = CType(resources.GetObject("Tbl_commonBindingNavigatorSaveItem.Image"), System.Drawing.Image)
Me.Tbl_commonBindingNavigatorSaveItem.Name = "Tbl_commonBindingNavigatorSaveItem"
Me.Tbl_commonBindingNavigatorSaveItem.Size = New System.Drawing.Size(23, 23)
Me.Tbl_commonBindingNavigatorSaveItem.Text = "데이터 저장"
'
'Tbl_commonDataGridView
'
Me.Tbl_commonDataGridView.AutoGenerateColumns = False
Me.Tbl_commonDataGridView.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.AutoSize
Me.Tbl_commonDataGridView.Columns.AddRange(New System.Windows.Forms.DataGridViewColumn() {Me.DataGridViewTextBoxColumn1, Me.DataGridViewTextBoxColumn2, Me.DataGridViewTextBoxColumn3, Me.DataGridViewTextBoxColumn4, Me.DataGridViewTextBoxColumn5})
Me.Tbl_commonDataGridView.DataSource = Me.Tbl_commonBindingSource
Me.Tbl_commonDataGridView.Dock = System.Windows.Forms.DockStyle.Fill
Me.Tbl_commonDataGridView.Location = New System.Drawing.Point(0, 25)
Me.Tbl_commonDataGridView.Name = "Tbl_commonDataGridView"
Me.Tbl_commonDataGridView.RowTemplate.Height = 23
Me.Tbl_commonDataGridView.Size = New System.Drawing.Size(791, 455)
Me.Tbl_commonDataGridView.TabIndex = 3
'
'DataGridViewTextBoxColumn1
'
Me.DataGridViewTextBoxColumn1.DataPropertyName = "gubun"
Me.DataGridViewTextBoxColumn1.HeaderText = "gubun"
Me.DataGridViewTextBoxColumn1.Name = "DataGridViewTextBoxColumn1"
'
'DataGridViewTextBoxColumn2
'
Me.DataGridViewTextBoxColumn2.DataPropertyName = "code"
Me.DataGridViewTextBoxColumn2.HeaderText = "code"
Me.DataGridViewTextBoxColumn2.Name = "DataGridViewTextBoxColumn2"
'
'DataGridViewTextBoxColumn3
'
Me.DataGridViewTextBoxColumn3.DataPropertyName = "name"
Me.DataGridViewTextBoxColumn3.HeaderText = "name"
Me.DataGridViewTextBoxColumn3.Name = "DataGridViewTextBoxColumn3"
'
'DataGridViewTextBoxColumn4
'
Me.DataGridViewTextBoxColumn4.DataPropertyName = "valn1"
Me.DataGridViewTextBoxColumn4.HeaderText = "valn1"
Me.DataGridViewTextBoxColumn4.Name = "DataGridViewTextBoxColumn4"
'
'DataGridViewTextBoxColumn5
'
Me.DataGridViewTextBoxColumn5.DataPropertyName = "codename"
Me.DataGridViewTextBoxColumn5.HeaderText = "codename"
Me.DataGridViewTextBoxColumn5.Name = "DataGridViewTextBoxColumn5"
Me.DataGridViewTextBoxColumn5.ReadOnly = True
'
'Frm_Common
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(7.0!, 14.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(791, 480)
Me.Controls.Add(Me.Tbl_commonDataGridView)
Me.Controls.Add(Me.Tbl_commonBindingNavigator)
Me.Font = New System.Drawing.Font("나눔고딕", 8.999999!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.SizableToolWindow
Me.KeyPreview = True
Me.Margin = New System.Windows.Forms.Padding(3, 4, 3, 4)
Me.Name = "Frm_Common"
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "공용코드관리"
Me.Controls.SetChildIndex(Me.Tbl_commonBindingNavigator, 0)
Me.Controls.SetChildIndex(Me.Tbl_commonDataGridView, 0)
CType(Me.DS, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.Tbl_commonBindingSource, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.Tbl_commonBindingNavigator, System.ComponentModel.ISupportInitialize).EndInit()
Me.Tbl_commonBindingNavigator.ResumeLayout(False)
Me.Tbl_commonBindingNavigator.PerformLayout()
CType(Me.Tbl_commonDataGridView, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
Friend WithEvents CidDataGridViewTextBoxColumn As System.Windows.Forms.DataGridViewTextBoxColumn
Friend WithEvents DS As Eco2Ar.DS
Friend WithEvents Tbl_commonBindingSource As System.Windows.Forms.BindingSource
Friend WithEvents Tbl_commonTableAdapter As Eco2Ar.DSTableAdapters.tbl_commonTableAdapter
Friend WithEvents Tbl_commonBindingNavigator As System.Windows.Forms.BindingNavigator
Friend WithEvents BindingNavigatorAddNewItem As System.Windows.Forms.ToolStripButton
Friend WithEvents BindingNavigatorCountItem As System.Windows.Forms.ToolStripLabel
Friend WithEvents BindingNavigatorDeleteItem As System.Windows.Forms.ToolStripButton
Friend WithEvents BindingNavigatorMoveFirstItem As System.Windows.Forms.ToolStripButton
Friend WithEvents BindingNavigatorMovePreviousItem As System.Windows.Forms.ToolStripButton
Friend WithEvents BindingNavigatorSeparator As System.Windows.Forms.ToolStripSeparator
Friend WithEvents BindingNavigatorPositionItem As System.Windows.Forms.ToolStripTextBox
Friend WithEvents BindingNavigatorSeparator1 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents BindingNavigatorMoveNextItem As System.Windows.Forms.ToolStripButton
Friend WithEvents BindingNavigatorMoveLastItem As System.Windows.Forms.ToolStripButton
Friend WithEvents BindingNavigatorSeparator2 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents Tbl_commonBindingNavigatorSaveItem As System.Windows.Forms.ToolStripButton
Friend WithEvents Tbl_commonDataGridView As System.Windows.Forms.DataGridView
Friend WithEvents DataGridViewTextBoxColumn1 As System.Windows.Forms.DataGridViewTextBoxColumn
Friend WithEvents DataGridViewTextBoxColumn2 As System.Windows.Forms.DataGridViewTextBoxColumn
Friend WithEvents DataGridViewTextBoxColumn3 As System.Windows.Forms.DataGridViewTextBoxColumn
Friend WithEvents DataGridViewTextBoxColumn4 As System.Windows.Forms.DataGridViewTextBoxColumn
Friend WithEvents DataGridViewTextBoxColumn5 As System.Windows.Forms.DataGridViewTextBoxColumn
End Class

View File

@@ -0,0 +1,212 @@
<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="DS.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="Tbl_commonBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>84, 17</value>
</metadata>
<metadata name="Tbl_commonTableAdapter.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>288, 17</value>
</metadata>
<metadata name="Tbl_commonBindingNavigator.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>486, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="BindingNavigatorAddNewItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAFNSURBVDhPY2AYtODuAvb/t+Zx/r86h+v/xRm8/0l26HWg
xj+PGv//edjw/+RkAdINOD+dF27AwR4R0g04PkkQaHvd/z8Pqv7vaBcnbMClmTz/z07l+38SqPFIv9D/
fd0iQM3l///eK/q/vkHm/6oauf9LKxX/zy9V/j+rSBXTwFNAf/55WA/UVAvElf//3CsB4rz/f+9m/v97
J/n/39tx///djADikP+TcjQxDTjUKwx27t/7pUCNBUCN2UCNqUCNCf//3YoGagz7/+9G0P9/1/3+d6Xp
Yhqws13i/5Zmqf/rwM6V/7+kQvH/31sxQI3h/6fmafyfkKX1vztD9397qv7/5kRDwmEyG+hPkHP/3Qj4
35OhQ1gDekIB+fPfDX8g9vvfmqxPugHd6bpg/4JwfZwR6Qa0JBn8b4g3/F8Ta/y/MtqEdANITvvkagAA
JCPYnqPoI1MAAAAASUVORK5CYII=
</value>
</data>
<data name="BindingNavigatorDeleteItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAFvSURBVDhPrZJNKMNxGMd3Vd5KubigVg4j0/ISEjIkLDIh
MkPagYNIaBcHB1Iu5ICL5EBSUk60OM3b5q01tf5Lk9Iu+Mfl9zEWpf3xJ7/Lc/h9n8/zfL89Gs1/PDxu
sJnA6eBPPNYWEd1VCIsRdja/hXDtg5W5zxo2lqDPjOgwIjorYGFKEfK6obCUwVhv5D+nzjCk3oBoyof+
5k8iMdKFMOfAtP17myzPIirT3kCMdoH3DCYGw9BQVZURPg+0FIUtmbIQDbkw0Kqu+X0CB3uhlXMR1elQ
q/9lc0CCpgLITkDWx3Ovj4U6gzoIAT+Y86AwiaC1Gi6O38K91YUgq/M/BHh3C20lPBQn4y1NJ7i/+9HA
eD8ubQyy+1AZwvMTDFuhJIUTXSLBrfUI4U15BlJ7DfK1X+EO9raRcxJxpUYh9TSC/Kg4yaGNQ3Y5FQAz
Y0hp0XiNmSBdfelVttvg/EgBcOmCySE42leXtqqLUiF6AYojAxxFb0PyAAAAAElFTkSuQmCC
</value>
</data>
<data name="BindingNavigatorMoveFirstItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAErSURBVDhPY2AYNKBw1vP/TQue/8+c+Pg/LkeFtz/AKceQ
O/PZ/1VH3v/HpSi++8H/4IZruA3ImPL0/8J9H7Aqiu95+H/p/v///asv4DYgoefJ/2lb3mMoimi/D9ac
Oev/f6/SE7gNiOx69L939QcURaGt98CaW9cBbe/8+98l/wBuAwKbH/6vm/8Orii45e7/RXv//+8Aas6Y
8/O/Xd3P//YZ23Eb4FF1/3/+tDcoiuyKb/9Pn/P7v3/Xt/86he/+WySsx22Afend/9mTX2Mo0k85/9+k
6MV/laxP/40jl+E2wCLvzv/U/tdYFRkknfgvm/b1v27wPNwGGGbd/h/W8hKnIv3Uy/81fKfhNkAn7cZ/
v+qHeBWpeEzAbYBT7pX/IAV4FQ2ajIfsEADwdsCrEsAoJgAAAABJRU5ErkJggg==
</value>
</data>
<data name="BindingNavigatorMovePreviousItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAC9SURBVDhPY2AYMiC8/cF/sh0b3/3gf3DDNfIMiO95+H/p
/v///asvkG5ARPt9sObMWf//e5WeIM2A0NZ7YM2t64C2d/7975J/gHgDglvu/l+09///DqDmjDk//9vV
/fxvn7GdeANAoW1XfPt/+pzf//27vv3XKXz33yJhPWkGgAzRTzn/36ToxX+VrE//jSOXkW4AyBCDpBP/
ZdO+/tcNnkeeAWCXpF7+r+E7jXwDQIaoeEygzACykzHNNQIA0BRgmJLkyxEAAAAASUVORK5CYII=
</value>
</data>
<data name="BindingNavigatorMoveNextItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACrSURBVDhPY2AYdKBw1vP/FDkqd+az/wnd98g3JGPK0//z
9v/+n9B1hzxDEnqe/J+979f/zq1//7uVXibdkMiuR/+nbPv1v2Tp3/8J0//+t8k9S5ohgc0P/7eufQ/W
bFzy5b909LX/xpHLiDfEo+r+/5K57+CaFV16iNcMij770rv/A1uegW0mWTPIAIu8O/9tCq6QpxlkgGHW
bfI1gwzQSbtBmp8pSraDQjMAoH5foAtinnYAAAAASUVORK5CYII=
</value>
</data>
<data name="BindingNavigatorMoveLastItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEwSURBVDhPY2AYVKBw1vP/uBwEkmta8Px/5sTHONUw5M58
9j+h+x5WBSC5VUfe/w9vf4DbgIwpT//P2//7f0LXHQxFILmF+z78D264htuAhJ4n/2fv+/W/c+vf/26l
l1EUguSmbXn/37/6Am4DIrse/Z+y7df/kqV//ydM//vfJvcsXDFIrnf1h/9epSdwGxDY/PB/69r3YM3G
JV/+S0df+28cuQysASRXN//df5f8A7gN8Ki6/79k7ju4ZkWXHrhikFz+tDf/7TO24zbAvvTu/8CWZ2Cb
kTWDXACSy578+r9FwnrcBljk3flvU3AFQzPIAJBcav9ruJewphfDrNtYNYMUg+TCWl7+1w2eh9sFOmk3
cEqC5PyqH/7X8J2G2wB8+cop98p/FY8JYDyo8h8DAL7Rv7NFZsfDAAAAAElFTkSuQmCC
</value>
</data>
<data name="Tbl_commonBindingNavigatorSaveItem.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAIpSURBVDhPrZPdS5NxFMf3L3TfTdBFtzU1hmuxGjzlHMqq
YVgRvT2RL+XSZZqoWJlGLV8gW+HSScvpJJxU+AamSI2hTCVLM1e0xKGm2EQw+PY7v+j5tTJv6gfn8vM5
zznn+6hU/+M9exoFla99GW3eJTx2L6CxIYL7jhnU1nyC/XYIN8qnUFoygcKC18jLHcWF80EovQns7QFq
qlex0VtZXYMxrReH057wUgTe1kUuqKz48lee4MjCCnabn0OtlmE55BEC96N5Ligt+byu4Cf8PryIOJMP
BZenccDcJATO+lkuuGR794fgV3hkMoJtkhfWnHGkpjiFoO5umAuys0ZjBL/Dg8EwNuvdkOUATCaHEFRX
feQC+UxAEawH9/g/YFNiA44cfYGkpFohuFk5je4usFMCx0++guXYAN82LYxmps+mzj/gPhy0dEKS7EJw
tWwSHT6wDABNrm/s7l9Rfn2OL5UWRjNnZgQVODm1HQZDhRBcKRyHpxl46FxjwYnCmJ4TU+YTNqSfK+Kd
k1MYvN8Dvb5MCGx5YwwGqu5EeWcSUEjitBKG3s5ibGoOcu417DW2cVi7xwWdrkgIKJaOe1A+mwQEn82/
hTeheYRmlnCx2I54vYvBjYjf9QDaxHwhyMwYZnMv85m3GjzYskNCS0c/fF2D6O7zY+DlEPaZLFDr6pHA
4O2aOmg01ljB6VP9PJ6UMAoJ3ZlORdumhdHM1JWK4J0J2ULwL3/0d2xoOmtKzOuNAAAAAElFTkSuQmCC
</value>
</data>
</root>

View File

@@ -0,0 +1,24 @@
Public Class Frm_Common
Dim viewTag As String = "common"
Dim ViewFile As String = "\View_Config\Common_"
Dim ViewOutFile As String = "\ExcelOut\공용코드.xls"
Public Overrides Function AcceptChanged() As Boolean
End Function
Public Overrides Function RejectChanged() As Boolean
End Function
Public Overrides Function HasChanged() As Boolean
End Function
Private Sub Tbl_commonBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Tbl_commonBindingNavigatorSaveItem.Click
Me.Validate()
Me.Tbl_commonBindingSource.EndEdit()
Me.Tbl_commonTableAdapter.Update(Me.DS.tbl_common)
End Sub
Private Sub Frm_Common_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'TODO: 이 코드는 데이터를 'DS.tbl_common' 테이블에 로드합니다. 필요한 경우 이 코드를 이동하거나 제거할 수 있습니다.
Me.Tbl_commonTableAdapter.Fill(Me.DS.tbl_common)
End Sub
End Class

View File

@@ -0,0 +1,37 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class Frm_DisplayGubun
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()
Me.SuspendLayout()
'
'Frm_DisplayGubun
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(7.0!, 12.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(604, 427)
Me.Name = "Frm_DisplayGubun"
Me.Text = "구분표시"
Me.ResumeLayout(False)
End Sub
End Class

View File

@@ -0,0 +1,120 @@
<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@@ -0,0 +1,60 @@
Public Class Frm_DisplayGubun
Dim Fc As Color = Color.Black
Dim Bc As Color = Color.White
Public Sub New()
' 이 호출은 Windows Form 디자이너에 필요합니다.
InitializeComponent()
' InitializeComponent() 호출 뒤에 초기화 코드를 추가하십시오.
End Sub
Public Sub New(ByVal vfc As String, ByVal vfb As String)
InitializeComponent()
Try
Me.Fc = Color.FromArgb(vfc)
Catch ex As Exception
Me.Fc = Color.Black
End Try
Try
Me.Bc = Color.FromArgb(vfb)
Catch ex As Exception
Me.Bc = Color.White
End Try
End Sub
Private Sub Frm_DisplayGubun_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Me.Width = 555
Me.Height = 362
End Sub
Private Sub Frm_DisplayGubun_Paint(ByVal sender As Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Me.Paint
Dim x, y As Decimal
x = 0
y = 0
Dim G As Graphics = e.Graphics
For i As Integer = 0 To 100
If i <> 0 AndAlso i Mod 10 = 0 Then
x = 0
y += 55
ElseIf i <> 0 Then
x += 55
End If
Try
Dim B As New System.Drawing.Drawing2D.HatchBrush(i, Me.Fc, Me.Bc)
G.FillRectangle(B, New Rectangle(x, y, 50, 50))
G.DrawString(i.ToString, Me.Font, New SolidBrush(Color.White), x, y)
Catch ex As Exception
End Try
Next
G.Dispose()
End Sub
End Class

276
ArinWarev1/Forms/Frm_FileInfo.Designer.vb generated Normal file
View File

@@ -0,0 +1,276 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class Frm_FileInfo
Inherits CForm
'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()
Me.Panel1 = New System.Windows.Forms.Panel
Me.Button1 = New System.Windows.Forms.Button
Me.Label10 = New System.Windows.Forms.Label
Me.Label9 = New System.Windows.Forms.Label
Me.tb_password = New System.Windows.Forms.TextBox
Me.Label8 = New System.Windows.Forms.Label
Me.tb_Edittime = New System.Windows.Forms.TextBox
Me.Label7 = New System.Windows.Forms.Label
Me.cmb_ft = New System.Windows.Forms.ComboBox
Me.Label6 = New System.Windows.Forms.Label
Me.tb_ui = New System.Windows.Forms.TextBox
Me.Label5 = New System.Windows.Forms.Label
Me.tb_lg = New System.Windows.Forms.TextBox
Me.Label4 = New System.Windows.Forms.Label
Me.tb_maketime = New System.Windows.Forms.TextBox
Me.Label3 = New System.Windows.Forms.Label
Me.tb_desc = New System.Windows.Forms.TextBox
Me.Label2 = New System.Windows.Forms.Label
Me.tb_name = New System.Windows.Forms.TextBox
Me.Label1 = New System.Windows.Forms.Label
Me.Panel1.SuspendLayout()
Me.SuspendLayout()
'
'Panel1
'
Me.Panel1.BackColor = System.Drawing.Color.White
Me.Panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.Panel1.Controls.Add(Me.Button1)
Me.Panel1.Controls.Add(Me.Label10)
Me.Panel1.Controls.Add(Me.Label9)
Me.Panel1.Controls.Add(Me.tb_password)
Me.Panel1.Controls.Add(Me.Label8)
Me.Panel1.Controls.Add(Me.tb_Edittime)
Me.Panel1.Controls.Add(Me.Label7)
Me.Panel1.Controls.Add(Me.cmb_ft)
Me.Panel1.Controls.Add(Me.Label6)
Me.Panel1.Controls.Add(Me.tb_ui)
Me.Panel1.Controls.Add(Me.Label5)
Me.Panel1.Controls.Add(Me.tb_lg)
Me.Panel1.Controls.Add(Me.Label4)
Me.Panel1.Controls.Add(Me.tb_maketime)
Me.Panel1.Controls.Add(Me.Label3)
Me.Panel1.Controls.Add(Me.tb_desc)
Me.Panel1.Controls.Add(Me.Label2)
Me.Panel1.Controls.Add(Me.tb_name)
Me.Panel1.Controls.Add(Me.Label1)
Me.Panel1.Dock = System.Windows.Forms.DockStyle.Fill
Me.Panel1.Location = New System.Drawing.Point(0, 0)
Me.Panel1.Name = "Panel1"
Me.Panel1.Size = New System.Drawing.Size(398, 362)
Me.Panel1.TabIndex = 0
'
'Button1
'
Me.Button1.Location = New System.Drawing.Point(102, 263)
Me.Button1.Name = "Button1"
Me.Button1.Size = New System.Drawing.Size(278, 36)
Me.Button1.TabIndex = 17
Me.Button1.Text = "변경완료"
Me.Button1.UseVisualStyleBackColor = True
'
'Label10
'
Me.Label10.AutoSize = True
Me.Label10.Location = New System.Drawing.Point(17, 312)
Me.Label10.Name = "Label10"
Me.Label10.Size = New System.Drawing.Size(252, 14)
Me.Label10.TabIndex = 16
Me.Label10.Text = "* 암호는 저장파일형태가 01 이상이 되어야합니다"
'
'Label9
'
Me.Label9.AutoSize = True
Me.Label9.Location = New System.Drawing.Point(17, 329)
Me.Label9.Name = "Label9"
Me.Label9.Size = New System.Drawing.Size(194, 14)
Me.Label9.TabIndex = 16
Me.Label9.Text = "* 버젼 변경은 현재 허용되지 않습니다"
'
'tb_password
'
Me.tb_password.Location = New System.Drawing.Point(102, 207)
Me.tb_password.Name = "tb_password"
Me.tb_password.PasswordChar = Global.Microsoft.VisualBasic.ChrW(42)
Me.tb_password.Size = New System.Drawing.Size(279, 21)
Me.tb_password.TabIndex = 15
'
'Label8
'
Me.Label8.AutoSize = True
Me.Label8.ForeColor = System.Drawing.Color.Blue
Me.Label8.Location = New System.Drawing.Point(17, 199)
Me.Label8.Name = "Label8"
Me.Label8.Size = New System.Drawing.Size(29, 14)
Me.Label8.TabIndex = 14
Me.Label8.Text = "암호"
'
'tb_Edittime
'
Me.tb_Edittime.Location = New System.Drawing.Point(102, 126)
Me.tb_Edittime.Name = "tb_Edittime"
Me.tb_Edittime.ReadOnly = True
Me.tb_Edittime.Size = New System.Drawing.Size(279, 21)
Me.tb_Edittime.TabIndex = 13
'
'Label7
'
Me.Label7.AutoSize = True
Me.Label7.Location = New System.Drawing.Point(17, 129)
Me.Label7.Name = "Label7"
Me.Label7.Size = New System.Drawing.Size(73, 14)
Me.Label7.TabIndex = 12
Me.Label7.Text = "최종수정시간"
'
'cmb_ft
'
Me.cmb_ft.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.cmb_ft.FormattingEnabled = True
Me.cmb_ft.Items.AddRange(New Object() {"00 [기본파일형태]", "01 [암호설정가능]"})
Me.cmb_ft.Location = New System.Drawing.Point(102, 234)
Me.cmb_ft.Name = "cmb_ft"
Me.cmb_ft.Size = New System.Drawing.Size(279, 22)
Me.cmb_ft.TabIndex = 11
'
'Label6
'
Me.Label6.AutoSize = True
Me.Label6.Location = New System.Drawing.Point(17, 237)
Me.Label6.Name = "Label6"
Me.Label6.Size = New System.Drawing.Size(73, 14)
Me.Label6.TabIndex = 10
Me.Label6.Text = "저장파일형태"
'
'tb_ui
'
Me.tb_ui.Location = New System.Drawing.Point(102, 180)
Me.tb_ui.Name = "tb_ui"
Me.tb_ui.ReadOnly = True
Me.tb_ui.Size = New System.Drawing.Size(279, 21)
Me.tb_ui.TabIndex = 9
'
'Label5
'
Me.Label5.AutoSize = True
Me.Label5.Location = New System.Drawing.Point(11, 158)
Me.Label5.Name = "Label5"
Me.Label5.Size = New System.Drawing.Size(19, 14)
Me.Label5.TabIndex = 8
Me.Label5.Text = "UI"
'
'tb_lg
'
Me.tb_lg.Location = New System.Drawing.Point(102, 153)
Me.tb_lg.Name = "tb_lg"
Me.tb_lg.ReadOnly = True
Me.tb_lg.Size = New System.Drawing.Size(279, 21)
Me.tb_lg.TabIndex = 7
'
'Label4
'
Me.Label4.AutoSize = True
Me.Label4.Location = New System.Drawing.Point(17, 145)
Me.Label4.Name = "Label4"
Me.Label4.Size = New System.Drawing.Size(23, 14)
Me.Label4.TabIndex = 6
Me.Label4.Text = "LG"
'
'tb_maketime
'
Me.tb_maketime.Location = New System.Drawing.Point(102, 99)
Me.tb_maketime.Name = "tb_maketime"
Me.tb_maketime.ReadOnly = True
Me.tb_maketime.Size = New System.Drawing.Size(279, 21)
Me.tb_maketime.TabIndex = 5
'
'Label3
'
Me.Label3.AutoSize = True
Me.Label3.Location = New System.Drawing.Point(17, 102)
Me.Label3.Name = "Label3"
Me.Label3.Size = New System.Drawing.Size(51, 14)
Me.Label3.TabIndex = 4
Me.Label3.Text = "생성시간"
'
'tb_desc
'
Me.tb_desc.Location = New System.Drawing.Point(102, 72)
Me.tb_desc.Name = "tb_desc"
Me.tb_desc.Size = New System.Drawing.Size(279, 21)
Me.tb_desc.TabIndex = 3
'
'Label2
'
Me.Label2.AutoSize = True
Me.Label2.Location = New System.Drawing.Point(17, 75)
Me.Label2.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size(65, 14)
Me.Label2.TabIndex = 2
Me.Label2.Text = "템플릿 설명"
'
'tb_name
'
Me.tb_name.Location = New System.Drawing.Point(102, 45)
Me.tb_name.Name = "tb_name"
Me.tb_name.Size = New System.Drawing.Size(279, 21)
Me.tb_name.TabIndex = 1
'
'Label1
'
Me.Label1.AutoSize = True
Me.Label1.Location = New System.Drawing.Point(17, 48)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(65, 14)
Me.Label1.TabIndex = 0
Me.Label1.Text = "템플릿 이름"
'
'Frm_FileInfo
'
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None
Me.ClientSize = New System.Drawing.Size(398, 362)
Me.Controls.Add(Me.Panel1)
Me.Font = New System.Drawing.Font("나눔고딕", 8.999999!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
Me.Name = "Frm_FileInfo"
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "템플릿 정보"
Me.Controls.SetChildIndex(Me.Panel1, 0)
Me.Panel1.ResumeLayout(False)
Me.Panel1.PerformLayout()
Me.ResumeLayout(False)
End Sub
Friend WithEvents Panel1 As System.Windows.Forms.Panel
Friend WithEvents Label1 As System.Windows.Forms.Label
Friend WithEvents tb_name As System.Windows.Forms.TextBox
Friend WithEvents tb_desc As System.Windows.Forms.TextBox
Friend WithEvents Label2 As System.Windows.Forms.Label
Friend WithEvents tb_ui As System.Windows.Forms.TextBox
Friend WithEvents Label5 As System.Windows.Forms.Label
Friend WithEvents tb_lg As System.Windows.Forms.TextBox
Friend WithEvents Label4 As System.Windows.Forms.Label
Friend WithEvents tb_maketime As System.Windows.Forms.TextBox
Friend WithEvents Label3 As System.Windows.Forms.Label
Friend WithEvents Label6 As System.Windows.Forms.Label
Friend WithEvents cmb_ft As System.Windows.Forms.ComboBox
Friend WithEvents tb_Edittime As System.Windows.Forms.TextBox
Friend WithEvents Label7 As System.Windows.Forms.Label
Friend WithEvents tb_password As System.Windows.Forms.TextBox
Friend WithEvents Label8 As System.Windows.Forms.Label
Friend WithEvents Label10 As System.Windows.Forms.Label
Friend WithEvents Label9 As System.Windows.Forms.Label
Friend WithEvents Button1 As System.Windows.Forms.Button
End Class

View File

@@ -0,0 +1,120 @@
<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@@ -0,0 +1,45 @@
Public Class Frm_FileInfo
Private Sub Frm_FileInfo_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Me.tb_name.Text = Prj.Name
Me.tb_desc.Text = Prj.Desc
Me.tb_maketime.Text = Prj.MakeTime
Me.tb_Edittime.Text = Prj.EditTime
Me.tb_lg.Text = Prj.LGVersino
Me.tb_ui.Text = Prj.UIVersion
Me.cmb_ft.SelectedIndex = CInt(Prj.SFType)
Select Case Me.cmb_ft.SelectedIndex
Case 1
Me.tb_password.Text = Prj.Password
Case Else
Me.tb_password.Text = ""
End Select
If Me.cmb_ft.SelectedIndex = -1 Then Me.cmb_ft.SelectedIndex = 1
End Sub
Private Sub cmb_ft_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmb_ft.SelectedIndexChanged
Select Case Me.cmb_ft.SelectedIndex
Case 0
Me.tb_password.Text = ""
Me.tb_password.Enabled = False
Case 1
Me.cmb_ft.Enabled = True
Case Else
Me.tb_password.Text = ""
Me.tb_password.Enabled = False
End Select
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Prj.Name = Me.tb_name.Text
Prj.Desc = Me.tb_desc.Text
Prj.MakeTime = Me.tb_maketime.Text
Prj.EditTime = Me.tb_Edittime.Text
Prj.LGVersino = Me.tb_lg.Text
Prj.UIVersion = Me.tb_ui.Text
Prj.SFType = Format(Me.cmb_ft.SelectedIndex, "00")
Me.DialogResult = Windows.Forms.DialogResult.OK
End Sub
End Class

386
ArinWarev1/Forms/Frm_Filter.Designer.vb generated Normal file
View File

@@ -0,0 +1,386 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class Frm_Filter
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()
Me.TableLayoutPanel1 = New System.Windows.Forms.TableLayoutPanel
Me.OK_Button = New System.Windows.Forms.Button
Me.Cancel_Button = New System.Windows.Forms.Button
Me.tb_filter = New System.Windows.Forms.TextBox
Me.cmb_field1 = New System.Windows.Forms.ComboBox
Me.cmb_field2 = New System.Windows.Forms.ComboBox
Me.cmb_field3 = New System.Windows.Forms.ComboBox
Me.cmb_field4 = New System.Windows.Forms.ComboBox
Me.cmb_j1 = New System.Windows.Forms.ComboBox
Me.cmb_j2 = New System.Windows.Forms.ComboBox
Me.cmb_j3 = New System.Windows.Forms.ComboBox
Me.cmb_cond1 = New System.Windows.Forms.ComboBox
Me.cmb_cond2 = New System.Windows.Forms.ComboBox
Me.cmb_cond3 = New System.Windows.Forms.ComboBox
Me.cmb_cond4 = New System.Windows.Forms.ComboBox
Me.tb_s1 = New System.Windows.Forms.TextBox
Me.tb_s2 = New System.Windows.Forms.TextBox
Me.tb_s3 = New System.Windows.Forms.TextBox
Me.tb_s4 = New System.Windows.Forms.TextBox
Me.GroupBox1 = New System.Windows.Forms.GroupBox
Me.GroupBox2 = New System.Windows.Forms.GroupBox
Me.Label1 = New System.Windows.Forms.Label
Me.Label2 = New System.Windows.Forms.Label
Me.GroupBox3 = New System.Windows.Forms.GroupBox
Me.Label4 = New System.Windows.Forms.Label
Me.tb_valuec = New System.Windows.Forms.TextBox
Me.cmb_fieldc = New System.Windows.Forms.ComboBox
Me.Label3 = New System.Windows.Forms.Label
Me.TableLayoutPanel1.SuspendLayout()
Me.GroupBox1.SuspendLayout()
Me.GroupBox2.SuspendLayout()
Me.GroupBox3.SuspendLayout()
Me.SuspendLayout()
'
'TableLayoutPanel1
'
Me.TableLayoutPanel1.ColumnCount = 2
Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!))
Me.TableLayoutPanel1.ColumnStyles.Add(New System.Windows.Forms.ColumnStyle(System.Windows.Forms.SizeType.Percent, 50.0!))
Me.TableLayoutPanel1.Controls.Add(Me.OK_Button, 0, 0)
Me.TableLayoutPanel1.Controls.Add(Me.Cancel_Button, 1, 0)
Me.TableLayoutPanel1.Location = New System.Drawing.Point(229, 252)
Me.TableLayoutPanel1.Name = "TableLayoutPanel1"
Me.TableLayoutPanel1.RowCount = 1
Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Percent, 50.0!))
Me.TableLayoutPanel1.RowStyles.Add(New System.Windows.Forms.RowStyle(System.Windows.Forms.SizeType.Absolute, 27.0!))
Me.TableLayoutPanel1.Size = New System.Drawing.Size(170, 27)
Me.TableLayoutPanel1.TabIndex = 0
'
'OK_Button
'
Me.OK_Button.Anchor = System.Windows.Forms.AnchorStyles.None
Me.OK_Button.Location = New System.Drawing.Point(3, 3)
Me.OK_Button.Name = "OK_Button"
Me.OK_Button.Size = New System.Drawing.Size(78, 21)
Me.OK_Button.TabIndex = 0
Me.OK_Button.Text = "확인"
'
'Cancel_Button
'
Me.Cancel_Button.Anchor = System.Windows.Forms.AnchorStyles.None
Me.Cancel_Button.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.Cancel_Button.Location = New System.Drawing.Point(88, 3)
Me.Cancel_Button.Name = "Cancel_Button"
Me.Cancel_Button.Size = New System.Drawing.Size(78, 21)
Me.Cancel_Button.TabIndex = 1
Me.Cancel_Button.Text = "취소"
'
'tb_filter
'
Me.tb_filter.Location = New System.Drawing.Point(22, 20)
Me.tb_filter.Multiline = True
Me.tb_filter.Name = "tb_filter"
Me.tb_filter.Size = New System.Drawing.Size(361, 60)
Me.tb_filter.TabIndex = 1
'
'cmb_field1
'
Me.cmb_field1.FormattingEnabled = True
Me.cmb_field1.Location = New System.Drawing.Point(73, 23)
Me.cmb_field1.Name = "cmb_field1"
Me.cmb_field1.Size = New System.Drawing.Size(138, 20)
Me.cmb_field1.TabIndex = 3
'
'cmb_field2
'
Me.cmb_field2.FormattingEnabled = True
Me.cmb_field2.Location = New System.Drawing.Point(73, 49)
Me.cmb_field2.Name = "cmb_field2"
Me.cmb_field2.Size = New System.Drawing.Size(138, 20)
Me.cmb_field2.TabIndex = 4
'
'cmb_field3
'
Me.cmb_field3.FormattingEnabled = True
Me.cmb_field3.Location = New System.Drawing.Point(73, 75)
Me.cmb_field3.Name = "cmb_field3"
Me.cmb_field3.Size = New System.Drawing.Size(138, 20)
Me.cmb_field3.TabIndex = 5
'
'cmb_field4
'
Me.cmb_field4.FormattingEnabled = True
Me.cmb_field4.Location = New System.Drawing.Point(73, 101)
Me.cmb_field4.Name = "cmb_field4"
Me.cmb_field4.Size = New System.Drawing.Size(138, 20)
Me.cmb_field4.TabIndex = 6
'
'cmb_j1
'
Me.cmb_j1.FormattingEnabled = True
Me.cmb_j1.Items.AddRange(New Object() {"AND", "OR"})
Me.cmb_j1.Location = New System.Drawing.Point(6, 49)
Me.cmb_j1.Name = "cmb_j1"
Me.cmb_j1.Size = New System.Drawing.Size(61, 20)
Me.cmb_j1.TabIndex = 7
'
'cmb_j2
'
Me.cmb_j2.FormattingEnabled = True
Me.cmb_j2.Items.AddRange(New Object() {"AND", "OR"})
Me.cmb_j2.Location = New System.Drawing.Point(6, 75)
Me.cmb_j2.Name = "cmb_j2"
Me.cmb_j2.Size = New System.Drawing.Size(61, 20)
Me.cmb_j2.TabIndex = 8
'
'cmb_j3
'
Me.cmb_j3.FormattingEnabled = True
Me.cmb_j3.Items.AddRange(New Object() {"AND", "OR"})
Me.cmb_j3.Location = New System.Drawing.Point(6, 101)
Me.cmb_j3.Name = "cmb_j3"
Me.cmb_j3.Size = New System.Drawing.Size(61, 20)
Me.cmb_j3.TabIndex = 9
'
'cmb_cond1
'
Me.cmb_cond1.FormattingEnabled = True
Me.cmb_cond1.Items.AddRange(New Object() {"Like", "<>", "=", "<=", ">="})
Me.cmb_cond1.Location = New System.Drawing.Point(217, 23)
Me.cmb_cond1.Name = "cmb_cond1"
Me.cmb_cond1.Size = New System.Drawing.Size(51, 20)
Me.cmb_cond1.TabIndex = 11
'
'cmb_cond2
'
Me.cmb_cond2.FormattingEnabled = True
Me.cmb_cond2.Items.AddRange(New Object() {"Like", "<>", "=", "<=", ">="})
Me.cmb_cond2.Location = New System.Drawing.Point(217, 49)
Me.cmb_cond2.Name = "cmb_cond2"
Me.cmb_cond2.Size = New System.Drawing.Size(51, 20)
Me.cmb_cond2.TabIndex = 12
'
'cmb_cond3
'
Me.cmb_cond3.FormattingEnabled = True
Me.cmb_cond3.Items.AddRange(New Object() {"Like", "<>", "=", "<=", ">="})
Me.cmb_cond3.Location = New System.Drawing.Point(217, 75)
Me.cmb_cond3.Name = "cmb_cond3"
Me.cmb_cond3.Size = New System.Drawing.Size(51, 20)
Me.cmb_cond3.TabIndex = 13
'
'cmb_cond4
'
Me.cmb_cond4.FormattingEnabled = True
Me.cmb_cond4.Items.AddRange(New Object() {"Like", "<>", "=", "<=", ">="})
Me.cmb_cond4.Location = New System.Drawing.Point(217, 101)
Me.cmb_cond4.Name = "cmb_cond4"
Me.cmb_cond4.Size = New System.Drawing.Size(51, 20)
Me.cmb_cond4.TabIndex = 14
'
'tb_s1
'
Me.tb_s1.Location = New System.Drawing.Point(274, 22)
Me.tb_s1.Name = "tb_s1"
Me.tb_s1.Size = New System.Drawing.Size(109, 21)
Me.tb_s1.TabIndex = 15
'
'tb_s2
'
Me.tb_s2.Location = New System.Drawing.Point(274, 49)
Me.tb_s2.Name = "tb_s2"
Me.tb_s2.Size = New System.Drawing.Size(109, 21)
Me.tb_s2.TabIndex = 16
'
'tb_s3
'
Me.tb_s3.Location = New System.Drawing.Point(274, 76)
Me.tb_s3.Name = "tb_s3"
Me.tb_s3.Size = New System.Drawing.Size(109, 21)
Me.tb_s3.TabIndex = 17
'
'tb_s4
'
Me.tb_s4.Location = New System.Drawing.Point(274, 103)
Me.tb_s4.Name = "tb_s4"
Me.tb_s4.Size = New System.Drawing.Size(109, 21)
Me.tb_s4.TabIndex = 18
'
'GroupBox1
'
Me.GroupBox1.Controls.Add(Me.cmb_field1)
Me.GroupBox1.Controls.Add(Me.cmb_field2)
Me.GroupBox1.Controls.Add(Me.tb_s4)
Me.GroupBox1.Controls.Add(Me.cmb_field3)
Me.GroupBox1.Controls.Add(Me.tb_s3)
Me.GroupBox1.Controls.Add(Me.cmb_field4)
Me.GroupBox1.Controls.Add(Me.tb_s2)
Me.GroupBox1.Controls.Add(Me.cmb_j1)
Me.GroupBox1.Controls.Add(Me.tb_s1)
Me.GroupBox1.Controls.Add(Me.cmb_j2)
Me.GroupBox1.Controls.Add(Me.cmb_cond4)
Me.GroupBox1.Controls.Add(Me.cmb_j3)
Me.GroupBox1.Controls.Add(Me.cmb_cond3)
Me.GroupBox1.Controls.Add(Me.cmb_cond1)
Me.GroupBox1.Controls.Add(Me.cmb_cond2)
Me.GroupBox1.Location = New System.Drawing.Point(10, 12)
Me.GroupBox1.Name = "GroupBox1"
Me.GroupBox1.Size = New System.Drawing.Size(389, 135)
Me.GroupBox1.TabIndex = 0
Me.GroupBox1.TabStop = False
Me.GroupBox1.Text = "조건"
'
'GroupBox2
'
Me.GroupBox2.Controls.Add(Me.tb_filter)
Me.GroupBox2.Location = New System.Drawing.Point(10, 153)
Me.GroupBox2.Name = "GroupBox2"
Me.GroupBox2.Size = New System.Drawing.Size(389, 93)
Me.GroupBox2.TabIndex = 1
Me.GroupBox2.TabStop = False
Me.GroupBox2.Text = "Filter"
'
'Label1
'
Me.Label1.AutoSize = True
Me.Label1.BackColor = System.Drawing.Color.LightGreen
Me.Label1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.Label1.ForeColor = System.Drawing.SystemColors.ControlText
Me.Label1.Location = New System.Drawing.Point(12, 261)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(31, 14)
Me.Label1.TabIndex = 22
Me.Label1.Text = "0001"
'
'Label2
'
Me.Label2.AutoSize = True
Me.Label2.Location = New System.Drawing.Point(49, 261)
Me.Label2.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size(101, 12)
Me.Label2.TabIndex = 23
Me.Label2.Text = ": 코드로 입력요망"
'
'GroupBox3
'
Me.GroupBox3.Controls.Add(Me.Label4)
Me.GroupBox3.Controls.Add(Me.tb_valuec)
Me.GroupBox3.Controls.Add(Me.cmb_fieldc)
Me.GroupBox3.Location = New System.Drawing.Point(10, 285)
Me.GroupBox3.Name = "GroupBox3"
Me.GroupBox3.Size = New System.Drawing.Size(389, 51)
Me.GroupBox3.TabIndex = 2
Me.GroupBox3.TabStop = False
Me.GroupBox3.Text = "바꾸기"
'
'Label4
'
Me.Label4.AutoSize = True
Me.Label4.Location = New System.Drawing.Point(198, 22)
Me.Label4.Name = "Label4"
Me.Label4.Size = New System.Drawing.Size(41, 12)
Me.Label4.TabIndex = 1
Me.Label4.Text = "변경값"
'
'tb_valuec
'
Me.tb_valuec.Location = New System.Drawing.Point(245, 19)
Me.tb_valuec.Name = "tb_valuec"
Me.tb_valuec.Size = New System.Drawing.Size(138, 21)
Me.tb_valuec.TabIndex = 2
Me.tb_valuec.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'cmb_fieldc
'
Me.cmb_fieldc.FormattingEnabled = True
Me.cmb_fieldc.Location = New System.Drawing.Point(22, 19)
Me.cmb_fieldc.Name = "cmb_fieldc"
Me.cmb_fieldc.Size = New System.Drawing.Size(156, 20)
Me.cmb_fieldc.TabIndex = 0
'
'Label3
'
Me.Label3.AutoSize = True
Me.Label3.Location = New System.Drawing.Point(12, 339)
Me.Label3.Name = "Label3"
Me.Label3.Size = New System.Drawing.Size(353, 12)
Me.Label3.TabIndex = 24
Me.Label3.Text = "바꾸기 값이 설정되어있으면 확인시에 해당 필드값이 변경됩니다"
'
'Frm_Filter
'
Me.AcceptButton = Me.OK_Button
Me.AutoScaleDimensions = New System.Drawing.SizeF(7.0!, 12.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.CancelButton = Me.Cancel_Button
Me.ClientSize = New System.Drawing.Size(411, 360)
Me.Controls.Add(Me.Label3)
Me.Controls.Add(Me.GroupBox3)
Me.Controls.Add(Me.Label2)
Me.Controls.Add(Me.Label1)
Me.Controls.Add(Me.GroupBox2)
Me.Controls.Add(Me.GroupBox1)
Me.Controls.Add(Me.TableLayoutPanel1)
Me.FormBorderStyle = System.Windows.Forms.FormBorderStyle.FixedDialog
Me.MaximizeBox = False
Me.MinimizeBox = False
Me.Name = "Frm_Filter"
Me.ShowInTaskbar = False
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterParent
Me.Text = "검색조건"
Me.TableLayoutPanel1.ResumeLayout(False)
Me.GroupBox1.ResumeLayout(False)
Me.GroupBox1.PerformLayout()
Me.GroupBox2.ResumeLayout(False)
Me.GroupBox2.PerformLayout()
Me.GroupBox3.ResumeLayout(False)
Me.GroupBox3.PerformLayout()
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
Friend WithEvents TableLayoutPanel1 As System.Windows.Forms.TableLayoutPanel
Friend WithEvents OK_Button As System.Windows.Forms.Button
Friend WithEvents Cancel_Button As System.Windows.Forms.Button
Friend WithEvents tb_filter As System.Windows.Forms.TextBox
Friend WithEvents cmb_field1 As System.Windows.Forms.ComboBox
Friend WithEvents cmb_field2 As System.Windows.Forms.ComboBox
Friend WithEvents cmb_field3 As System.Windows.Forms.ComboBox
Friend WithEvents cmb_field4 As System.Windows.Forms.ComboBox
Friend WithEvents cmb_j1 As System.Windows.Forms.ComboBox
Friend WithEvents cmb_j2 As System.Windows.Forms.ComboBox
Friend WithEvents cmb_j3 As System.Windows.Forms.ComboBox
Friend WithEvents cmb_cond1 As System.Windows.Forms.ComboBox
Friend WithEvents cmb_cond2 As System.Windows.Forms.ComboBox
Friend WithEvents cmb_cond3 As System.Windows.Forms.ComboBox
Friend WithEvents cmb_cond4 As System.Windows.Forms.ComboBox
Friend WithEvents tb_s1 As System.Windows.Forms.TextBox
Friend WithEvents tb_s2 As System.Windows.Forms.TextBox
Friend WithEvents tb_s3 As System.Windows.Forms.TextBox
Friend WithEvents tb_s4 As System.Windows.Forms.TextBox
Friend WithEvents GroupBox1 As System.Windows.Forms.GroupBox
Friend WithEvents GroupBox2 As System.Windows.Forms.GroupBox
Friend WithEvents Label1 As System.Windows.Forms.Label
Friend WithEvents Label2 As System.Windows.Forms.Label
Friend WithEvents GroupBox3 As System.Windows.Forms.GroupBox
Friend WithEvents cmb_fieldc As System.Windows.Forms.ComboBox
Friend WithEvents Label3 As System.Windows.Forms.Label
Friend WithEvents Label4 As System.Windows.Forms.Label
Friend WithEvents tb_valuec As System.Windows.Forms.TextBox
End Class

View File

@@ -0,0 +1,120 @@
<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
</root>

View File

@@ -0,0 +1,253 @@
Imports System.Windows.Forms
Public Class Frm_Filter
Public ColumList() As String '//필드네임
Public ColumTitle() As String '//필드제목줄
Public Colorlist As String
Public Numfield As String '//숫자필드일경우
Public Default_Filter As String '//기본값 code <> '0'
Private Sub Frm_Filter_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Init_combo()
End Sub
Private Sub Init_combo() '//콤보박스목록을 생성
Dim CmbJ As String() = {"AND", "OR"}
Dim CmbCond As String() = {"LIKE", "=", "<>", "<=", ">="}
'//clear
Me.cmb_j1.Items.Clear()
Me.cmb_j2.Items.Clear()
Me.cmb_j3.Items.Clear()
'Me.cmb_j4.Items.Clear()
Me.cmb_cond1.Items.Clear()
Me.cmb_cond2.Items.Clear()
Me.cmb_cond3.Items.Clear()
Me.cmb_cond4.Items.Clear()
Me.cmb_field1.Items.Clear()
Me.cmb_field2.Items.Clear()
Me.cmb_field3.Items.Clear()
Me.cmb_field4.Items.Clear()
Me.cmb_fieldc.Items.Clear()
'/set
Me.cmb_j1.Items.AddRange(CmbJ)
Me.cmb_j2.Items.AddRange(CmbJ)
Me.cmb_j3.Items.AddRange(CmbJ)
Me.cmb_cond1.Items.AddRange(CmbCond)
Me.cmb_cond2.Items.AddRange(CmbCond)
Me.cmb_cond3.Items.AddRange(CmbCond)
Me.cmb_cond4.Items.AddRange(CmbCond)
Try '//필드선택 콤보박승 필드명 넣기
Me.cmb_field1.Items.AddRange(ColumTitle)
Me.cmb_field2.Items.AddRange(ColumTitle)
Me.cmb_field3.Items.AddRange(ColumTitle)
Me.cmb_field4.Items.AddRange(ColumTitle)
Me.cmb_fieldc.Items.AddRange(ColumTitle)
Catch ex As Exception
MsgBox("필드목록이 없거나 매개변수값이 없습니다", MsgBoxStyle.Critical, "확인")
End Try
'Me.cmb_j1.SelectedIndex = 0
'Me.cmb_j2.SelectedIndex = 0
'Me.cmb_j3.SelectedIndex = 0
'Me.cmb_cond1.SelectedIndex = 0
'Me.cmb_cond2.SelectedIndex = 0
'Me.cmb_cond3.SelectedIndex = 0
'Me.cmb_cond4.SelectedIndex = 0
AddHandler Me.cmb_j1.SelectedIndexChanged, AddressOf event_comboselectindex
AddHandler Me.cmb_j2.SelectedIndexChanged, AddressOf event_comboselectindex
AddHandler Me.cmb_j3.SelectedIndexChanged, AddressOf event_comboselectindex
AddHandler Me.cmb_cond1.SelectedIndexChanged, AddressOf event_comboselectindex
AddHandler Me.cmb_cond2.SelectedIndexChanged, AddressOf event_comboselectindex
AddHandler Me.cmb_cond3.SelectedIndexChanged, AddressOf event_comboselectindex
AddHandler Me.cmb_cond4.SelectedIndexChanged, AddressOf event_comboselectindex
AddHandler Me.cmb_field1.SelectedIndexChanged, AddressOf event_comboselectindex
AddHandler Me.cmb_field2.SelectedIndexChanged, AddressOf event_comboselectindex
AddHandler Me.cmb_field3.SelectedIndexChanged, AddressOf event_comboselectindex
AddHandler Me.cmb_field4.SelectedIndexChanged, AddressOf event_comboselectindex
AddHandler Me.tb_s1.TextChanged, AddressOf event_textboxchange
AddHandler Me.tb_s2.TextChanged, AddressOf event_textboxchange
AddHandler Me.tb_s3.TextChanged, AddressOf event_textboxchange
AddHandler Me.tb_s4.TextChanged, AddressOf event_textboxchange
End Sub
Private Function IsnumField(ByVal v_Fname As String) As Boolean
'//숫자필드목록에서 해당 필드가 잇는지 확인한다.
If Me.Numfield.IndexOf(v_Fname) = -1 Then '//해당필드가 숫자목록에 잇으면 True
Return False
Else
Return True
End If
End Function
Private Sub MakeWhreState()
'//콤보박스값을 가지고 Textbox1 을 생성
Dim NewStat As New System.Text.StringBuilder()
If Me.cmb_field1.SelectedIndex <> -1 And Me.tb_s1.Text <> "" Then
If cmb_cond1.Text.ToUpper = "LIKE" Then
NewStat.Append(Space(1) + Me.ColumList(Me.cmb_field1.SelectedIndex).ToString + Space(1) + cmb_cond1.Text + Space(1) + "'%" + tb_s1.Text + "%'")
Else
'//숫자필드이면
If IsnumField(Me.cmb_field1.Text) Then
NewStat.Append(Space(1) + "convert(isnull(" & Me.ColumList(Me.cmb_field1.SelectedIndex).ToString & ",'0'),'System.Single')" + Space(1) + cmb_cond1.Text + Space(1) + tb_s1.Text)
Else
NewStat.Append(Space(1) + Me.ColumList(Me.cmb_field1.SelectedIndex).ToString + Space(1) + cmb_cond1.Text + Space(1) + "'" + tb_s1.Text + "'")
End If
End If
End If
If Me.cmb_field2.SelectedIndex <> -1 And Me.tb_s2.Text <> "" Then
If cmb_cond2.Text.ToUpper = "LIKE" Then
NewStat.Append(Space(1) + Me.cmb_j1.Text + Space(1) + Me.ColumList(Me.cmb_field2.SelectedIndex).ToString + Space(1) + cmb_cond2.Text + Space(1) + "'%" + tb_s2.Text + "%'")
Else
If IsnumField(Me.cmb_field1.Text) Then
NewStat.Append(Space(1) + Me.cmb_j1.Text + Space(1) + "convert(isnull(" & Me.ColumList(Me.cmb_field2.SelectedIndex).ToString & ",'0'),'System.Single')" + Space(1) + cmb_cond2.Text + Space(1) + tb_s2.Text)
Else
NewStat.Append(Space(1) + Me.cmb_j1.Text + Space(1) + Me.ColumList(Me.cmb_field2.SelectedIndex).ToString + Space(1) + cmb_cond2.Text + Space(1) + "'" + tb_s2.Text + "'")
End If
End If
End If
If Me.cmb_field3.SelectedIndex <> -1 And Me.tb_s3.Text <> "" Then
If cmb_cond3.Text.ToUpper = "LIKE" Then
NewStat.Append(Space(1) + Me.cmb_j2.Text + Space(1) + Me.ColumList(Me.cmb_field3.SelectedIndex).ToString + Space(1) + cmb_cond3.Text + Space(1) + "'%" + tb_s3.Text + "%'")
Else
If IsnumField(Me.cmb_field1.Text) Then
NewStat.Append(Space(1) + Me.cmb_j2.Text + Space(1) + "convert(isnull(" & Me.ColumList(Me.cmb_field3.SelectedIndex).ToString & ",'0'),'System.Single')" + Space(1) + cmb_cond3.Text + Space(1) + tb_s3.Text)
Else
NewStat.Append(Space(1) + Me.cmb_j2.Text + Space(1) + Me.ColumList(Me.cmb_field3.SelectedIndex).ToString + Space(1) + cmb_cond3.Text + Space(1) + "'" + tb_s3.Text + "'")
End If
End If
End If
If Me.cmb_field4.SelectedIndex <> -1 And Me.tb_s4.Text <> "" Then
If cmb_cond3.Text.ToUpper = "LIKE" Then
NewStat.Append(Space(1) + Me.cmb_j3.Text + Space(1) + Me.ColumList(Me.cmb_field4.SelectedIndex).ToString + Space(1) + cmb_cond4.Text + Space(1) + "'%" + tb_s4.Text + "%'")
Else
If IsnumField(Me.cmb_field1.Text) Then
NewStat.Append(Space(1) + Me.cmb_j3.Text + Space(1) + "convert(isnull(" & Me.ColumList(Me.cmb_field4.SelectedIndex).ToString & ",'0'),'System.Single')" + Space(1) + cmb_cond4.Text + Space(1) + tb_s4.Text)
Else
NewStat.Append(Space(1) + Me.cmb_j3.Text + Space(1) + Me.ColumList(Me.cmb_field4.SelectedIndex).ToString + Space(1) + cmb_cond4.Text + Space(1) + "'" + tb_s4.Text + "'")
End If
End If
End If
If NewStat.ToString.Trim = "" Then
Me.tb_filter.Text = Default_Filter
Else
Me.tb_filter.Text = Default_Filter & " and " + NewStat.ToString
End If
End Sub
Private Sub OK_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK_Button.Click
If Me.tb_filter.Text = "" Then Me.tb_filter.Text = Default_Filter
Me.DialogResult = System.Windows.Forms.DialogResult.OK
Me.Close()
End Sub
Private Sub Cancel_Button_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Cancel_Button.Click
Me.DialogResult = System.Windows.Forms.DialogResult.Cancel
Me.Close()
End Sub
Private Sub event_textboxchange(ByVal sender As System.Object, ByVal e As System.EventArgs)
Me.MakeWhreState()
End Sub
Private Sub event_comboselectindex(ByVal sender As System.Object, ByVal e As System.EventArgs)
Me.MakeWhreState()
End Sub
Private Sub cmb_field1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmb_field1.SelectedIndexChanged
Dim Find As Boolean = False
For Each C As String In Me.Colorlist.Split(",")
If C.ToUpper = Me.ColumList(Me.cmb_field1.SelectedIndex).ToUpper Then ' Me.cmb_field1.Text.ToUpper Then
Find = True
Exit For
End If
Next
If Find Then
Me.tb_s1.BackColor = Color.LightGreen
Else
Me.tb_s1.BackColor = Color.White
End If
End Sub
Private Sub cmb_field2_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmb_field2.SelectedIndexChanged
Dim Find As Boolean = False
For Each C As String In Me.Colorlist.Split(",")
If C.ToUpper = Me.ColumList(Me.cmb_field2.SelectedIndex).ToUpper Then
Find = True
Exit For
End If
Next
If Find Then
Me.tb_s2.BackColor = Color.LightGreen
Else
Me.tb_s2.BackColor = Color.White
End If
End Sub
Private Sub cmb_field3_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmb_field3.SelectedIndexChanged
Dim Find As Boolean = False
For Each C As String In Me.Colorlist.Split(",")
If C.ToUpper = Me.ColumList(Me.cmb_field3.SelectedIndex).ToUpper Then
Find = True
Exit For
End If
Next
If Find Then
Me.tb_s3.BackColor = Color.LightGreen
Else
Me.tb_s3.BackColor = Color.White
End If
End Sub
Private Sub cmb_field4_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmb_field4.SelectedIndexChanged
Dim Find As Boolean = False
For Each C As String In Me.Colorlist.Split(",")
If C.ToUpper = Me.ColumList(Me.cmb_field4.SelectedIndex).ToUpper Then
Find = True
Exit For
End If
Next
If Find Then
Me.tb_s4.BackColor = Color.LightGreen
Else
Me.tb_s4.BackColor = Color.White
End If
End Sub
Private Sub cmb_cond1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmb_cond1.SelectedIndexChanged
End Sub
End Class

171
ArinWarev1/Forms/Frm_Intro.Designer.vb generated Normal file
View File

@@ -0,0 +1,171 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class Frm_Intro
Inherits CForm
'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()
Me.components = New System.ComponentModel.Container()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Frm_Intro))
Me.Button1 = New System.Windows.Forms.Button()
Me.Label3 = New System.Windows.Forms.Label()
Me.Label2 = New System.Windows.Forms.Label()
Me.tb_id = New System.Windows.Forms.TextBox()
Me.tb_pw = New System.Windows.Forms.TextBox()
Me.chk_id = New System.Windows.Forms.CheckBox()
Me.chk_pass = New System.Windows.Forms.CheckBox()
Me.ToolTip1 = New System.Windows.Forms.ToolTip(Me.components)
Me.StatusStrip1 = New System.Windows.Forms.StatusStrip()
Me.lbl_ip = New System.Windows.Forms.ToolStripStatusLabel()
Me.StatusStrip1.SuspendLayout()
Me.SuspendLayout()
'
'Button1
'
Me.Button1.BackColor = System.Drawing.Color.Black
Me.Button1.BackgroundImage = CType(resources.GetObject("Button1.BackgroundImage"), System.Drawing.Image)
Me.Button1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch
Me.Button1.Location = New System.Drawing.Point(319, 14)
Me.Button1.Name = "Button1"
Me.Button1.Size = New System.Drawing.Size(61, 55)
Me.Button1.TabIndex = 11
Me.Button1.UseVisualStyleBackColor = False
'
'Label3
'
Me.Label3.AutoSize = True
Me.Label3.BackColor = System.Drawing.Color.White
Me.Label3.Location = New System.Drawing.Point(42, 49)
Me.Label3.Name = "Label3"
Me.Label3.Size = New System.Drawing.Size(81, 14)
Me.Label3.TabIndex = 12
Me.Label3.Text = "PASSWORD :"
'
'Label2
'
Me.Label2.AutoSize = True
Me.Label2.BackColor = System.Drawing.Color.White
Me.Label2.Location = New System.Drawing.Point(42, 21)
Me.Label2.Name = "Label2"
Me.Label2.Size = New System.Drawing.Size(26, 14)
Me.Label2.TabIndex = 12
Me.Label2.Text = "ID :"
'
'tb_id
'
Me.tb_id.BackColor = System.Drawing.Color.White
Me.tb_id.Font = New System.Drawing.Font("맑은 고딕", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
Me.tb_id.Location = New System.Drawing.Point(129, 17)
Me.tb_id.MaxLength = 10
Me.tb_id.Name = "tb_id"
Me.tb_id.Size = New System.Drawing.Size(184, 25)
Me.tb_id.TabIndex = 1
Me.tb_id.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
Me.ToolTip1.SetToolTip(Me.tb_id, "ID를 입력하세요")
'
'tb_pw
'
Me.tb_pw.BackColor = System.Drawing.Color.White
Me.tb_pw.Font = New System.Drawing.Font("맑은 고딕", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
Me.tb_pw.Location = New System.Drawing.Point(129, 44)
Me.tb_pw.MaxLength = 10
Me.tb_pw.Name = "tb_pw"
Me.tb_pw.PasswordChar = Global.Microsoft.VisualBasic.ChrW(42)
Me.tb_pw.Size = New System.Drawing.Size(184, 25)
Me.tb_pw.TabIndex = 3
Me.tb_pw.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
Me.ToolTip1.SetToolTip(Me.tb_pw, "암호를 입력하세요")
'
'chk_id
'
Me.chk_id.AutoSize = True
Me.chk_id.BackColor = System.Drawing.Color.Transparent
Me.chk_id.Location = New System.Drawing.Point(21, 22)
Me.chk_id.Name = "chk_id"
Me.chk_id.Size = New System.Drawing.Size(15, 14)
Me.chk_id.TabIndex = 7
Me.ToolTip1.SetToolTip(Me.chk_id, "사용자 ID를 저장합니다")
Me.chk_id.UseVisualStyleBackColor = False
'
'chk_pass
'
Me.chk_pass.AutoSize = True
Me.chk_pass.BackColor = System.Drawing.Color.Transparent
Me.chk_pass.Location = New System.Drawing.Point(21, 50)
Me.chk_pass.Name = "chk_pass"
Me.chk_pass.Size = New System.Drawing.Size(15, 14)
Me.chk_pass.TabIndex = 8
Me.ToolTip1.SetToolTip(Me.chk_pass, "사용자 암호를 저장합니다")
Me.chk_pass.UseVisualStyleBackColor = False
'
'StatusStrip1
'
Me.StatusStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.lbl_ip})
Me.StatusStrip1.Location = New System.Drawing.Point(0, 82)
Me.StatusStrip1.Name = "StatusStrip1"
Me.StatusStrip1.Size = New System.Drawing.Size(396, 22)
Me.StatusStrip1.TabIndex = 16
Me.StatusStrip1.Text = "StatusStrip1"
'
'lbl_ip
'
Me.lbl_ip.Name = "lbl_ip"
Me.lbl_ip.Size = New System.Drawing.Size(25, 17)
Me.lbl_ip.Text = "[IP]"
'
'Frm_Intro
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(7.0!, 14.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.ClientSize = New System.Drawing.Size(396, 104)
Me.Controls.Add(Me.StatusStrip1)
Me.Controls.Add(Me.Button1)
Me.Controls.Add(Me.Label3)
Me.Controls.Add(Me.Label2)
Me.Controls.Add(Me.tb_id)
Me.Controls.Add(Me.tb_pw)
Me.Controls.Add(Me.chk_pass)
Me.Controls.Add(Me.chk_id)
Me.Font = New System.Drawing.Font("나눔고딕", 8.999999!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
Me.MaximizeBox = False
Me.MinimizeBox = False
Me.Name = "Frm_Intro"
Me.ShowIcon = False
Me.ShowInTaskbar = False
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "사용자확인"
Me.TransparencyKey = System.Drawing.SystemColors.AppWorkspace
Me.StatusStrip1.ResumeLayout(False)
Me.StatusStrip1.PerformLayout()
Me.ResumeLayout(False)
Me.PerformLayout()
End Sub
Friend WithEvents chk_id As System.Windows.Forms.CheckBox
Friend WithEvents chk_pass As System.Windows.Forms.CheckBox
Friend WithEvents tb_id As System.Windows.Forms.TextBox
Friend WithEvents tb_pw As System.Windows.Forms.TextBox
Friend WithEvents ToolTip1 As System.Windows.Forms.ToolTip
Friend WithEvents Label3 As System.Windows.Forms.Label
Friend WithEvents Label2 As System.Windows.Forms.Label
Friend WithEvents Button1 As System.Windows.Forms.Button
Friend WithEvents StatusStrip1 As System.Windows.Forms.StatusStrip
Friend WithEvents lbl_ip As System.Windows.Forms.ToolStripStatusLabel
End Class

View File

@@ -0,0 +1,611 @@
<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="Button1.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
FklFQyBodHRwOi8vd3d3LmllYy5jaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAABkZXNjAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAt
IHNSR0IAAAAAAAAAAAAAAC5JRUMgNjE5NjYtMi4xIERlZmF1bHQgUkdCIGNvbG91ciBzcGFjZSAtIHNS
R0IAAAAAAAAAAAAAAAAAAAAAAAAAAAAAZGVzYwAAAAAAAAAsUmVmZXJlbmNlIFZpZXdpbmcgQ29uZGl0
aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAALFJlZmVyZW5jZSBWaWV3aW5nIENvbmRpdGlvbiBp
biBJRUM2MTk2Ni0yLjEAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAHZpZXcAAAAAABOk/gAUXy4AEM8U
AAPtzAAEEwsAA1yeAAAAAVhZWiAAAAAAAEwJVgBQAAAAVx/nbWVhcwAAAAAAAAABAAAAAAAAAAAAAAAA
AAAAAAAAAo8AAAACc2lnIAAAAABDUlQgY3VydgAAAAAAAAQAAAAABQAKAA8AFAAZAB4AIwAoAC0AMgA3
ADsAQABFAEoATwBUAFkAXgBjAGgAbQByAHcAfACBAIYAiwCQAJUAmgCfAKQAqQCuALIAtwC8AMEAxgDL
ANAA1QDbAOAA5QDrAPAA9gD7AQEBBwENARMBGQEfASUBKwEyATgBPgFFAUwBUgFZAWABZwFuAXUBfAGD
AYsBkgGaAaEBqQGxAbkBwQHJAdEB2QHhAekB8gH6AgMCDAIUAh0CJgIvAjgCQQJLAlQCXQJnAnECegKE
Ao4CmAKiAqwCtgLBAssC1QLgAusC9QMAAwsDFgMhAy0DOANDA08DWgNmA3IDfgOKA5YDogOuA7oDxwPT
A+AD7AP5BAYEEwQgBC0EOwRIBFUEYwRxBH4EjASaBKgEtgTEBNME4QTwBP4FDQUcBSsFOgVJBVgFZwV3
BYYFlgWmBbUFxQXVBeUF9gYGBhYGJwY3BkgGWQZqBnsGjAadBq8GwAbRBuMG9QcHBxkHKwc9B08HYQd0
B4YHmQesB78H0gflB/gICwgfCDIIRghaCG4IggiWCKoIvgjSCOcI+wkQCSUJOglPCWQJeQmPCaQJugnP
CeUJ+woRCicKPQpUCmoKgQqYCq4KxQrcCvMLCwsiCzkLUQtpC4ALmAuwC8gL4Qv5DBIMKgxDDFwMdQyO
DKcMwAzZDPMNDQ0mDUANWg10DY4NqQ3DDd4N+A4TDi4OSQ5kDn8Omw62DtIO7g8JDyUPQQ9eD3oPlg+z
D88P7BAJECYQQxBhEH4QmxC5ENcQ9RETETERTxFtEYwRqhHJEegSBxImEkUSZBKEEqMSwxLjEwMTIxND
E2MTgxOkE8UT5RQGFCcUSRRqFIsUrRTOFPAVEhU0FVYVeBWbFb0V4BYDFiYWSRZsFo8WshbWFvoXHRdB
F2UXiReuF9IX9xgbGEAYZRiKGK8Y1Rj6GSAZRRlrGZEZtxndGgQaKhpRGncanhrFGuwbFBs7G2Mbihuy
G9ocAhwqHFIcexyjHMwc9R0eHUcdcB2ZHcMd7B4WHkAeah6UHr4e6R8THz4faR+UH78f6iAVIEEgbCCY
IMQg8CEcIUghdSGhIc4h+yInIlUigiKvIt0jCiM4I2YjlCPCI/AkHyRNJHwkqyTaJQklOCVoJZclxyX3
JicmVyaHJrcm6CcYJ0kneierJ9woDSg/KHEooijUKQYpOClrKZ0p0CoCKjUqaCqbKs8rAis2K2krnSvR
LAUsOSxuLKIs1y0MLUEtdi2rLeEuFi5MLoIuty7uLyQvWi+RL8cv/jA1MGwwpDDbMRIxSjGCMbox8jIq
MmMymzLUMw0zRjN/M7gz8TQrNGU0njTYNRM1TTWHNcI1/TY3NnI2rjbpNyQ3YDecN9c4FDhQOIw4yDkF
OUI5fzm8Ofk6Njp0OrI67zstO2s7qjvoPCc8ZTykPOM9Ij1hPaE94D4gPmA+oD7gPyE/YT+iP+JAI0Bk
QKZA50EpQWpBrEHuQjBCckK1QvdDOkN9Q8BEA0RHRIpEzkUSRVVFmkXeRiJGZ0arRvBHNUd7R8BIBUhL
SJFI10kdSWNJqUnwSjdKfUrESwxLU0uaS+JMKkxyTLpNAk1KTZNN3E4lTm5Ot08AT0lPk0/dUCdQcVC7
UQZRUFGbUeZSMVJ8UsdTE1NfU6pT9lRCVI9U21UoVXVVwlYPVlxWqVb3V0RXklfgWC9YfVjLWRpZaVm4
WgdaVlqmWvVbRVuVW+VcNVyGXNZdJ114XcleGl5sXr1fD19hX7NgBWBXYKpg/GFPYaJh9WJJYpxi8GND
Y5dj62RAZJRk6WU9ZZJl52Y9ZpJm6Gc9Z5Nn6Wg/aJZo7GlDaZpp8WpIap9q92tPa6dr/2xXbK9tCG1g
bbluEm5rbsRvHm94b9FwK3CGcOBxOnGVcfByS3KmcwFzXXO4dBR0cHTMdSh1hXXhdj52m3b4d1Z3s3gR
eG54zHkqeYl553pGeqV7BHtje8J8IXyBfOF9QX2hfgF+Yn7CfyN/hH/lgEeAqIEKgWuBzYIwgpKC9INX
g7qEHYSAhOOFR4Wrhg6GcobXhzuHn4gEiGmIzokziZmJ/opkisqLMIuWi/yMY4zKjTGNmI3/jmaOzo82
j56QBpBukNaRP5GokhGSepLjk02TtpQglIqU9JVflcmWNJaflwqXdZfgmEyYuJkkmZCZ/JpomtWbQpuv
nByciZz3nWSd0p5Anq6fHZ+Ln/qgaaDYoUehtqImopajBqN2o+akVqTHpTilqaYapoum/adup+CoUqjE
qTepqaocqo+rAqt1q+msXKzQrUStuK4trqGvFq+LsACwdbDqsWCx1rJLssKzOLOutCW0nLUTtYq2AbZ5
tvC3aLfguFm40blKucK6O7q1uy67p7whvJu9Fb2Pvgq+hL7/v3q/9cBwwOzBZ8Hjwl/C28NYw9TEUcTO
xUvFyMZGxsPHQce/yD3IvMk6ybnKOMq3yzbLtsw1zLXNNc21zjbOts83z7jQOdC60TzRvtI/0sHTRNPG
1EnUy9VO1dHWVdbY11zX4Nhk2OjZbNnx2nba+9uA3AXcit0Q3ZbeHN6i3ynfr+A24L3hROHM4lPi2+Nj
4+vkc+T85YTmDeaW5x/nqegy6LzpRunQ6lvq5etw6/vshu0R7ZzuKO6070DvzPBY8OXxcvH/8ozzGfOn
9DT0wvVQ9d72bfb794r4Gfio+Tj5x/pX+uf7d/wH/Jj9Kf26/kv+3P9t////2wBDAAEBAQEBAQEBAQEB
AQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQECAgICAgICAgICAgMDAwMDAwMDAwP/2wBDAQEB
AQEBAQEBAQECAgECAgMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD
AwP/wAARCACdAVIDAREAAhEBAxEB/8QAHwAAAQUBAQEBAQEAAAAAAAAAAAECAwQFBgcICQoL/8QAtRAA
AgEDAwIEAwUFBAQAAAF9AQIDAAQRBRIhMUEGE1FhByJxFDKBkaEII0KxwRVS0fAkM2JyggkKFhcYGRol
JicoKSo0NTY3ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqDhIWGh4iJipKTlJWWl5iZ
mqKjpKWmp6ipqrKztLW2t7i5usLDxMXGx8jJytLT1NXW19jZ2uHi4+Tl5ufo6erx8vP09fb3+Pn6/8QA
HwEAAwEBAQEBAQEBAQAAAAAAAAECAwQFBgcICQoL/8QAtREAAgECBAQDBAcFBAQAAQJ3AAECAxEEBSEx
BhJBUQdhcRMiMoEIFEKRobHBCSMzUvAVYnLRChYkNOEl8RcYGRomJygpKjU2Nzg5OkNERUZHSElKU1RV
VldYWVpjZGVmZ2hpanN0dXZ3eHl6goOEhYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPE
xcbHyMnK0tPU1dbX2Nna4uPk5ebn6Onq8vP09fb3+Pn6/9oADAMBAAIRAxEAPwD+0v8Aad/aZsPgXplj
oWg2Vr4i+KPie1mufDmg3byppek6XDN9mufFnimW3ZZ4NFtp8x28EZW41G5UxRFESeeD8Z8ZPGLKPCjJ
oVJwjiOIcRF/V6F9HbR1KltVTT0S0c5Jxi0lKUfz3jjjaXDn1bKcow8MRxPiYOVOErqnSpJ8ssRXa1VN
P3YQjadafuRtGNSpT/ILxp4x8efE27uL34l+N/EfjN7mSSQ6Te6hcWPhCzWXANtpfgvTpbfw3aW6IoQM
8E106qPOmlfLn/NDi/xh8QuNsTWrZxxHiFhpN2o05OnRin0jCNo7WTdru1229T8YxeXVs5lKtxPmeIzK
vJtuNWTWHjfpTwsGqEYrZNwnUatz1JvU84/4QfwV/wBCf4X/APCf0n/5Er8//tPMv+hhX/8ABkv8zg/1
O4R/6JXLf/Caj/8AIB/wg/gr/oT/AAv/AOE/pP8A8iUf2nmX/Qwr/wDgyX+Yf6ncI/8ARK5b/wCE1H/5
AP8AhB/BX/Qn+F//AAn9J/8AkSj+08y/6GFf/wAGS/zD/U7hH/olct/8JqP/AMgH/CD+Cv8AoT/C/wD4
T+k//IlH9p5l/wBDCv8A+DJf5h/qdwj/ANErlv8A4TUf/kA/4QfwV/0J/hf/AMJ/Sf8A5Eo/tPMv+hhX
/wDBkv8AMP8AU7hH/olct/8ACaj/APIB/wAIP4K/6E/wv/4T+k//ACJR/aeZf9DCv/4Ml/mH+p3CP/RK
5b/4TUf/AJAP+EH8Ff8AQn+F/wDwn9J/+RKP7TzL/oYV/wDwZL/MP9TuEf8Aolct/wDCaj/8gH/CD+Cv
+hP8L/8AhP6T/wDIlH9p5l/0MK//AIMl/mH+p3CP/RK5b/4TUf8A5AP+EH8Ff9Cf4X/8J/Sf/kSj+08y
/wChhX/8GS/zD/U7hH/olct/8JqP/wAgH/CD+Cv+hP8AC/8A4T+k/wDyJR/aeZf9DCv/AODJf5h/qdwj
/wBErlv/AITUf/kA/wCEH8Ff9Cf4X/8ACf0n/wCRKP7TzL/oYV//AAZL/MP9TuEf+iVy3/wmo/8AyAf8
IP4K/wChP8L/APhP6T/8iUf2nmX/AEMK/wD4Ml/mH+p3CP8A0SuW/wDhNR/+QD/hB/BX/Qn+F/8Awn9J
/wDkSj+08y/6GFf/AMGS/wAw/wBTuEf+iVy3/wAJqP8A8gH/AAg/gr/oT/C//hP6T/8AIlH9p5l/0MK/
/gyX+Yf6ncI/9Erlv/hNR/8AkA/4QfwV/wBCf4X/APCf0n/5Eo/tPMv+hhX/APBkv8w/1O4R/wCiVy3/
AMJqP/yAf8IP4K/6E/wv/wCE/pP/AMiUf2nmX/Qwr/8AgyX+Yf6ncI/9Erlv/hNR/wDkA/4QfwV/0J/h
f/wn9J/+RKP7TzL/AKGFf/wZL/MP9TuEf+iVy3/wmo//ACAf8IP4K/6E/wAL/wDhP6T/APIlH9p5l/0M
K/8A4Ml/mH+p3CP/AESuW/8AhNR/+QD/AIQfwV/0J/hf/wAJ/Sf/AJEo/tPMv+hhX/8ABkv8w/1O4R/6
JXLf/Caj/wDIB/wg/gr/AKE/wv8A+E/pP/yJR/aeZf8AQwr/APgyX+Yf6ncI/wDRK5b/AOE1H/5AP+EH
8Ff9Cf4X/wDCf0n/AORKP7TzL/oYV/8AwZL/ADD/AFO4R/6JXLf/AAmo/wDyAf8ACD+Cv+hP8L/+E/pP
/wAiUf2nmX/Qwr/+DJf5h/qdwj/0SuW/+E1H/wCQD/hB/BX/AEJ/hf8A8J/Sf/kSj+08y/6GFf8A8GS/
zD/U7hH/AKJXLf8Awmo//IB/wg/gr/oT/C//AIT+k/8AyJR/aeZf9DCv/wCDJf5h/qdwj/0SuW/+E1H/
AOQD/hB/BX/Qn+F//Cf0n/5Eo/tPMv8AoYV//Bkv8w/1O4R/6JXLf/Caj/8AIB/wg/gr/oT/AAv/AOE/
pP8A8iUf2nmX/Qwr/wDgyX+Yf6ncI/8ARK5b/wCE1H/5AP8AhB/BX/Qn+F//AAn9J/8AkSj+08y/6GFf
/wAGS/zD/U7hH/olct/8JqP/AMgH/CD+Cv8AoT/C/wD4T+k//IlH9p5l/wBDCv8A+DJf5h/qdwj/ANEr
lv8A4TUf/kA/4QfwV/0J/hf/AMJ/Sf8A5Eo/tPMv+hhX/wDBkv8AMP8AU7hH/olct/8ACaj/APIB/wAI
P4K/6E/wv/4T+k//ACJR/aeZf9DCv/4Ml/mH+p3CP/RK5b/4TUf/AJAP+EH8Ff8AQn+F/wDwn9J/+RKP
7TzL/oYV/wDwZL/MP9TuEf8Aolct/wDCaj/8gH/CD+Cv+hP8L/8AhP6T/wDIlH9p5l/0MK//AIMl/mH+
p3CP/RK5b/4TUf8A5AP+EH8Ff9Cf4X/8J/Sf/kSj+08y/wChhX/8GS/zD/U7hH/olct/8JqP/wAgH/CD
+Cv+hP8AC/8A4T+k/wDyJR/aeZf9DCv/AODJf5h/qdwj/wBErlv/AITUf/kA/wCEH8Ff9Cf4X/8ACf0n
/wCRKP7TzL/oYV//AAZL/MP9TuEf+iVy3/wmo/8AyAf8IP4K/wChP8L/APhP6T/8iUf2nmX/AEMK/wD4
Ml/mH+p3CP8A0SuW/wDhNR/+QD/hB/BX/Qn+F/8Awn9J/wDkSj+08y/6GFf/AMGS/wAw/wBTuEf+iVy3
/wAJqP8A8gH/AAg/gr/oT/C//hP6T/8AIlH9p5l/0MK//gyX+Yf6ncI/9Erlv/hNR/8AkDodAhm8H3K3
3gfUtY8BX8bF477wNq+oeE5g5XaTKmiXFnbXkbLw0c8csUg4dWBIr3si464w4axEcVkfEmMw9VO/u1Zp
Pyavqns091ob0eHMqwMvaZPRll2IW08HOWFkn3fsXCMvOM4yi9pRa0P0s/Zg/bC1nXNf0r4V/Gm8tbrW
tali0/wP8Q4bS302LxJqexynhvxZY2UcGm6b4mvFjzZ3NtHDZ6g+YfKgn8pLj+/fAf6Rq43xNDhLjN06
XEcklRrRSjDEP+WSXuxqv7Nkozfu2UuXn/SeEePMywuY4Thzi6vGssRJQwuMUVD2lSztQxMYpQhWkl+6
qQjGlWd4clOpyRqfpJX9dH7Qfz0/E/xfd/ET4s/E/wAdX0rzHVfGmuaLo3mEH7J4R8Hald+GPDFpAqgJ
DDPYaab10XKm5vZn3MWLH/Hzx24qxXFnidxPi61Vyw1DESoUVfRU6T5I2WybSvK32m3q22/5aw+KnnGa
8RcR123WxeOqxg39nD4apLD4eC7RcIe1aX26s3d3ucbX4+eiFABQAUAFABQAUAFABQAUAFABQAUAFABQ
AUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAUtRtGvrOa3iuJrO5+Sayv
rZ2iutO1C2kS507UrSVCHhvNPvYo5onBysiAjpXZl2PxOV4/CZjhKsoYmjUjOMk7NOLurNbHn5rl8M0y
/FYGc3Fzj7slpKE171OpF9JU5qM4vpKKZ+hH/DdHiT/n0t/+TMv+Fof8e9p/yXb/AKAn+p/5BPt1/wCm
Ff6g/wDEcKneP/JHf2jtH/ff5f8Ar3/XKdv/ABGXN/8AoHX/ACSX1r4V/wAjX/n1t8H9ch+f6/8AH1rH
/YyeKf8A1I9Ur/N7jz/kteKv+w+v/wCnJHkcP/8AIqpf9fa3/p6oS18me0FABQAUAFABQAUAFABQAUAF
ABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFAGb/8AQ31/
WP8A9AR+Lf8AztLq/wDH1rH/AGMnin/1I9Ur+euPP+S14q/7D6//AKckfp/D/wDyKqX/AF9rf+nqhLXy
Z7R1cPgPxzcwxXFv4M8WT288cc0E8Ph3WJYZoZVDxSxSpZskkciMCrAkEHIr6ejwRxniKVKvQ4RzSdCc
VKMo4Wu4yi1dSi1Taaad01o1qjtjluYzjGUcBWcWrpqErNd1oS/8K88f/wDQjeMP/CZ1r/5CrT/UPjn/
AKIzNv8AwkxH/wArH/ZeZ/8AQur/APguf+Rz2paVqmjXJstX02/0q8VEka01KzuLG5EcgJjkMF1HFKEc
Dg4we1eFmGWZllOJeDzXL6+GxaSfJVpypzs9nyzSlZ9HbU5atGtQn7OvSlCp2kmn9z1KFcJmFABQAUAF
ABQAUAXrLTNS1JmTTtPvtQdeWSytJ7plGCcssEchHArsweXZhmEpQwGBrV5rdU4Sm16qKZpTpVarapUp
Sfkm/wAjqoPhl8SbosLb4feOLgoAXEHhPXpigbOCwjsG2g44zX01Dw58QsS5LDcCZzUa35cFiZW9bUnY
7I5Tms78uWYh+lOf+Qk/wz+JFqVW5+H3je3ZgSqz+FNeiLAHBKiSwUkA0VvDrxBwzjHEcCZzTk9ubBYm
N/S9JBLKc1h8WWYhetOf+Ry17pmpaaypqOn32nu3Kpe2k9qzDAOVWeOMng18zjMuzDL5Rhj8DWoTeyqQ
lBv0UkjjqUqtJpVaUovzTX5lGuMzCgAoAKACgAoA0LPSdV1H/kH6ZqF/yw/0OzubrlQCw/cRvyoIz6Zr
uwmWZlj/APcMur19/wCHTnPbf4U9uppCjWq/w6Upeib/ACN2LwD46mRZYfBfi2WN8lZIvDmsSIwBIJV1
sypwRjivap8D8a1oRqUuEM0lTezWErtP0ap2OlZbmMkpRwFdr/BL/If/AMK88f8A/QjeMP8Awmda/wDk
Kr/1D45/6IzNv/CTEf8Aysf9l5n/ANC6v/4Ln/kZ2p+E/FOi2wvNZ8NeINJtDIsIutT0bUbC2MzhmSIT
3VtFEZHVCQuckA+lcGY8McS5Ph1i824ex2Fwrko89ahVpw5ndqPNOEVdpOyvd2fYyrYLGYeHtK+Eqwhe
15RklftdpGBXhnMFAE9ra3V9cwWdlbXF5d3MiQ21rawyXFzcTSHakUEESvLLI7HAVQSTW+Gw2JxuIo4T
B4edXFVJKMIQi5TlJ6KMYxTcm3skm2VCE6k406cHKbdkkrtvsktzqf8AhXnj/wD6Ebxh/wCEzrX/AMhV
9J/qHxz/ANEZm3/hJiP/AJWdn9l5n/0Lq/8A4Ln/AJENx4F8b2dvPd3fg7xVa2trDLcXNzceHtXgt7e3
gRpZp55pbNY4YYY1LMzEKqgknFZYjgrjLC0K2KxXCWZ08NTg5znPC14xhGKvKUpOCUYxSbbbSSV3oTLL
swhGU54CsoJXbcJJJLdt20SOVr5k4woAKACgDTsdF1jVP+QZpOp6j2/0GwurvncFx/o8Un8TAfU16OCy
jNsy/wCRdleIxH/XunOfl9mL66GtOhXrfwqM5eib/I3f+FeeP/8AoRvGH/hM61/8hV7X+ofHP/RGZt/4
SYj/AOVnT/ZeZ/8AQur/APguf+RSu/B3i7TwWv8Awt4jslChy13oep2wCFtoYma1QBS3Gema5MVwnxTg
U5Y3hrMKMbXvPD1oaXtf3oLS+nqZzwONpfxcHVj6wkvzRzpBUlWBVlJDKQQQQcEEHkEGvAacW4yVpI5d
hKQBQAUAZv8A9DfX9Y//AEBH4t/87S6v/H1rH/YyeKf/AFI9Ur+euPP+S14q/wCw+v8A+nJH6fw//wAi
ql/19rf+nqhLXyZ7R+6Pw9/5EHwP/wBif4Z/9MtlX+0vAf8AyQ3Bn/Ypwn/qPTP6Gyz/AJFuX/8AXin/
AOko7CvqztPyf/a+/wCSy3v/AGL+g/8AoiWv8wPpWf8AJ28Z/wBgGG/9JkfjXG3/ACPan/XuH5Hy9X83
HyIUAFABQAUAe8fBX4DeIfi/dz3SXA0Twrp06wajrssPnvJc7VlOn6XbF4hdXnlOGdiyxwqwLEkqjftv
g/4I594rYqviYV/qfDOHmo1cTKPM3OyfsqMLx56lmnJtqNNNOTbcYS+iyHhzE53OU1L2eDg7Sna+v8sV
pd9+i69E/wBF/Bv7Ofwk8GRQm38LWmu6hGqh9V8Tqmt3Msi4ImW1uU/sq1lBGQYLeIj1r+/OEvADwt4R
p0XQ4apY3HRSvWxiWIm2vtKE17GD7OnSg13P1DA8L5LgFHlwaqVV9qp779bP3V8oo9Z1DUvD/hTS3vdT
vdJ8O6NZhVa4vJ7TS9Pt9xwiB5WhgRnbhVHLHgAmv1HHZhkfDOWzxeY4zC4DKKWjnUlCjSjfZXbjFNvR
LdvRK57VWrhsHRdStUhSoR6tqMV+SPF7/wDai+CFhK0J8ZfbJEYo/wBg0TX7qIY/iW5XTFtZVPYo7V+Q
476Sfg1gakqL4t9rUTs/ZYfEzXqp+xUJLzjJng1OL+H6b5fr/M/KE3+PLb7mSaZ+098EdTlWBPGaWUrN
tUano+uWMRHHzNdzaaLONcn+ORTx6VeXfSP8HMxqxox4uVGq3Ze2oYinH1c5UvZpf4pL7h0uLeH6suVY
/lf96M0vvcbfez2m1utF8SaXFdWdxpmvaNqEZaK4t5bXU9NvIiSpKSRtPbXCbgQcEjIxX6/hsTk/EOW0
8ThK+Gx2UV43jKDhWo1I7aNc0JK+nXXQ96E8Pi6KnTlCpQkt1aUWvxTPG/HH7N3wo8bwTFvDtv4b1RwT
Fq/heOLSZkkIzunsYY/7KvA7AFzJAZCM4dSSa/JOM/o+eGHGNGs5ZBTy/MpbV8Go0JJ95U4r2NS7+Lnp
uT1tOLbZ4eYcK5NmEZXwqpVv5qdov5pe6/O6v5o/NP4wfB3xD8INdh07U5E1HSNSWWbQ9dt4nigv4oWU
TQTQszm11C18xPNi3OAHVlZgc1/nh4r+E+e+FOdUsBmNRYjKsQpSw+JjFxjVjFrmjKLvyVYXjzwvJJSi
4yknc/KM8yPE5JiI0qz56M7uE0rJ23TXSS6rXdankVflZ4pZsrK71K8tdP0+2nvL6+uYbSztLaNpri6u
rmRYYLeCJAXklmlcKqgZJOK6cHg8VmGLw2AwOHnWxtapGFOEE5SnObUYxjFauUpNJJatsqnTnVnClTg5
VJNJJatt6JLzZ+gHwx/Y0tBb2urfFDUJ5bmWNJT4V0acQw2xb5vI1TWYi8lxKFOHS18tVcfLM45r+5/D
n6I+FVDDZp4k4+csRKKl9Sw8uWML68tavG7m7aSjR5VGS92tNH6VlPAsOWFbN6rc3r7OLsl5Sl181G3l
Jn1x4e+FPw28KpGug+CfDli8e3bdHTLe71D5MbC+pXy3OoSFSMgtKeeetf1NkPhj4e8MwhHJODsvozja
0/YxnV02vWqKdV285vXXc+1wuTZVg0lhsvpRa68qcv8AwJ3l+J0+ra/4e8N2yT67rWjaBZgbI5tW1Gx0
u2wgA2pJeTQRYUEDAPFfSZpnmQ8PYeFbOs3wmBwmylXq06MNOidSUVpptsddbE4bCwUsRiKdOHeUlFfi
0ebXf7QPwZsiRN8QtBfDhD9ke6vxkqWBBsLa5BTA5YfKDxnPFfnmK8dfCLBtqtx5gnrb3HOr0v8A8u4T
089k9L3PKnxLkVPSWZ0/leX5JlH/AIaR+CP/AEP2n/8Agv1z/wCVdcf/ABMJ4Of9FxQ/8FYn/wCUmf8A
rVw//wBDKP8A4DP/AORPnX9p74v/AA38c/DeDRfCnim01jVF8S6XfNaQ2upQuLWC11KOWbfd2VvFtR50
GN2eelfgX0j/ABW8PuNPD6jk/DHEtLF5ksxo1HCMK0XyRhWUpXnTjHRyit767HzHFud5VmGVRw+Dxkal
b2sXZKS0Sld6pdz8+K/hE/MwoA9Q+Cf/ACV34cf9jhof/pbFX6R4O/8AJ1PD/wD7G2G/9ORPXyD/AJHe
V/8AX+H5n7Y1/sQfvh5/8Wf+SV/Ev/sn/jL/ANRzUq+F8Uf+TZ+In/Yix/8A6i1Tzc6/5E+bf9g1X/0i
R+H1f40n8/BQB9E/Ar4Aap8XbmfU7+6m0Twbp1wLa81OKNHvdRu1VJJNO0lJQ0KyxwyAyTurpDuX5HJK
j988FfAzMvFTEVsxxuJng+EsPU5KlaKTqVZqzdKgpe6pKLTnUkpRhePuzbcV9Pw7w1Wzucq1Sbp4GLs5
LeT/AJY3023bulpoz9H/AAj8DfhX4KhiXSPB2kz3UYGdU1i3TWtUeQDDSi71Fbg2zP3WARJ6KK/0E4W8
GPDPg+lTjlXCeFniY/8AL6vFYis3356vNyN9VTUI9oo/U8Fw9k+AilQwMHNfakuaX3yvb5WXkelX1/pe
iWMl7qV7YaRplnGvm3d9c29hY2sSgKvmTzvFbwRqMAZIAr9DxmOy3J8FPF5hjKGFy6lH3p1JxpU4RWiv
KTjGKW2rSPVqVKOHpupVqRhSitW2kl83ZI8zm+PPwcgkaJ/iJ4aZkwCYb03EZyAflmgjkhfg/wALHB46
1+c1fG7wmo1JUp8e5c5L+WpzL5SinF/JvseTLiPI4txeZ0r+Tv8AitDsvDfjfwf4wR38LeJtD17ykEk0
Wmala3VzboxADXVrHIbm1BLAfvEXk19fw9xlwpxZCc+GuI8HjuWN5KjVhOcE+s4J88P+3oo78LmGBxyb
weLp1LLXlkm16rdfND9f8F+EfFUbx+JPDOha4HXaX1PS7O7mUBdqmK4mhaeF1XhWRlZexFVnnCHCvE1O
dPiDhzBYxNWvWo05yXTSUouUWls4tNdGGJwGCxiaxWEp1P8AFFN/e1dfI+NfjF+yJpH9mX3iH4Wrc2V/
ZwyXU3hKeea9tL+KJDJImjXNw019b35CkrDK8scrEKpj4z/JHiz9FbKv7OxufeGqqUcbRg5ywMpSqQqx
irtYecnKpGrvaE5TjN2jF0+vwuecE0PZVMVlCcakVd02200v5W7tPybaeysfncQQSCCCDgg8EEdQR61/
BDTTs9z8xCgDN/8Aob6/rH/6Aj8W/wDnaXV/4+tY/wCxk8U/+pHqlfz1x5/yWvFX/YfX/wDTkj9P4f8A
+RVS/wCvtb/09UJa+TPaP3R+Hv8AyIPgf/sT/DP/AKZbKv8AaXgP/khuDP8AsU4T/wBR6Z/Q2Wf8i3L/
APrxT/8ASUdhX1Z2n5P/ALX3/JZb3/sX9B/9ES1/mB9Kz/k7eM/7AMN/6TI/GuNv+R7U/wCvcPyPl6v5
uPkQoAKACgAoA/Yr9me2gtvgj4G8iGOLz7XVLmYooBmnl1zUzJNI3V5GAAyeigAcACv9Zfo64ehh/Bvg
v2NKMeenWnKy+KUsTWvJ929Fd9EktEkfuPCcIx4fy/lildSb825y1Pd6/az6I/Lb9sjXdUvPifb6FPdy
tpOjaDpsthYB2FvHcX/nz3d2YtxRrqbKoXxny0Ve3P8Amr9LXOszxfiRQyWtipPK8JgaTp07vkU6vNKc
7Xs5y0i5b8sYrpr+Qcc4itUzeOHlN+xp042XS7u2/V7X7JHyPX8snxYUAfbf7EviHVE8Y+KPCv2qZtFu
fDM2vmyaQtBFqdhqujaetzDEcrFLPa6kyyMuN4RN2dq4/sf6HWe5lDiziXhn6zN5RUy6WJ9m3eMa1OtQ
pKcVspShVak1bmUYc1+WNvv+AMTWWOxmD537B0nO3TmUoxuvVS172V9kfpNX+hJ+qHyT+2bBDJ8J7CZ4
0aW28Y6S0EhHzxGXTtZik2t1AdGwR0PB6gY/lv6XVCjU8L8DWnTTq082oOL6q9LEJ2fmt1s9OqR8Xx3G
LyanJrVV42/8BkflpX+aZ+QH1p+xtoNnqvxUvdSvIY5m8O+GL/UNP38mHUrq80/TEuApUqwSxvLheoKs
ykdOP6j+iTkmEzPxMxeYYulGcsBltWrSv9mrOpSoqVrWdqdSqujTaa20+04Fw8K2cVKs4pulRco+Um4x
v9zkfqbX+lp+vnBfFLxLfeDvh54w8TaYsTalo+h3lzYGZQ8Ud4VENvPJGQyypbyyhyh4fbtJAOa+I8Su
IsbwnwFxXxFlsYvMMJg5zp82sVUtywk1qpKMmpcr0lbldr3PNzjF1MDleOxdFL2sKbav32T87PW3XY/F
HW9e1rxLqVxrGv6pfaxqd0xae91C5kuZ35JWMPIzeXDHuwka4RF4UAcV/j1nOd5vxDmFfNc8zKti8yqu
8qlWbnJ9ldvSK+zFWjFaRSWh+CYjE18XVlXxNaU6z3cnd/8ADdlsuhr+FPAfjDxxJexeEtAv9ek05IJL
5LFI2Nsly0qwNJvkTAlaFgMZ+7Xq8McE8V8Z1MZS4WyOvjamHUXUVNJ8indRbu1u4u3ob4PLsdmDqLBY
aVRxte3S+35HZ/8ACgPjL/0T3xB/36t//kivrv8AiBni5/0QeO/8Bj/8kd3+ree/9Cyr9y/zD/hQHxl/
6J74g/79W/8A8kUf8QM8XP8Aog8d/wCAx/8Akg/1bz3/AKFlX7l/mZWt/Bz4n+G9KvNb13wXrOmaTYIk
l5fXMcIgt0kljgRpCszMA0sqr06mvMznwl8SOHssxec51whi8NldBJ1Kk1HlinJRTdpPeUkvVmOIyPN8
LRniMRgKkKMd21otbd+55pX52eUeofBP/krvw4/7HDQ//S2Kv0jwd/5Op4f/APY2w3/pyJ6+Qf8AI7yv
/r/D8z9sa/2IP3w8/wDiz/ySv4l/9k/8Zf8AqOalXwvij/ybPxE/7EWP/wDUWqebnX/Inzb/ALBqv/pE
j8Pq/wAaT+fgoA/Z39n3TINJ+DXgC3gjjQXGhR6nKUH+sn1aabUpZHJALSFrrBz0xgcAV/rt4E5bRyvw
k4GoUIRSqYJVnbrKvKVWTfd3n+Flokfu/DVGNHIstjFb0+b5ybl+p7JX60e4fm1+214h1R/GHhbwr9ql
XRrbwzDr/wBjWRlgm1K/1XWNPa4miGElkgttMVY2bJQSPtxubP8Ant9MXPsynxZw1wz9Zmsop5dHFezT
ajKtVrV6TnKOzcYUUoN35VKdrc0r/lfH+KrPHYPB879gqSnbo5OUo3foo6drvuz4jr+OD4A6Dwt4l1Xw
f4g0nxJotzLbahpN7BdwtHI0YlWN1aW2mxkPb3UYMcikFWRiCDXu8NcQ5nwpnuV8Q5RiJU8fha0ZxabX
Mk9YS7wmrxkndOLaaZ04PF1sDiaOKoSaqwkmvPyfk9n5H7w1/tmf0UFAH4h/F6xttN+KXxCsrOMQ20Hj
DXxDEuNsSPqVxIIkAAxHGXwo7KAK/wAbvFXB4fL/ABK48weEp8mGhm2K5YraKdWTsvJXsl0Vj8AzunCl
nGZ04K0FXnZdveZ51XwB5Zm//Q31/WP/ANAR+Lf/ADtLq/8AH1rH/YyeKf8A1I9Ur+euPP8AkteKv+w+
v/6ckfp/D/8AyKqX/X2t/wCnqhLXyZ7R+6Pw9/5EHwP/ANif4Z/9MtlX+0vAf/JDcGf9inCf+o9M/obL
P+Rbl/8A14p/+ko7CvqztPyf/a+/5LLe/wDYv6D/AOiJa/zA+lZ/ydvGf9gGG/8ASZH41xt/yPan/XuH
5Hy9X83HyIUAFABQAUAfsj+zd/yRHwD/ANg/UP8A0+apX+tf0e/+TOcD/wDXir/6k1j9z4V/5J/Lf8Mv
/S5HuFfsp9Afk/8Atff8llvf+xf0H/0RLX+YH0rP+Tt4z/sAw3/pMj8a42/5HtT/AK9w/I+Xq/m4+RCg
D7A/Yo/5Kpr/AP2T/Vf/AFI/Clf1d9D3/k5mef8AYirf+pWCPt+Af+Rxif8AsGl/6XTP1Br/AEiP1w+T
/wBsr/kkVt/2OGjf+kWr1/MH0t/+TV4f/sbYf/03XPjeOv8AkSR/6/x/KR+V1f5nH48faP7En/I/eLP+
xPb/ANPWl1/Xv0Of+S54o/7FL/8AUiifecAf8jLG/wDXj/26J+mFf6Jn6ueP/H7/AJI18Q/+xfm/9HwV
+UeOf/JpOPP+wCX/AKVE8PiX/kRZn/17/VH4vV/kMfhB9Pfs0/F/wp8Jb7xbceKY9Wkj1u00iGz/ALKs
4btg9jNqDzecJru1CArcrtxuzz0r+j/o8eK3DHhdjeKcRxLTxUoYylQjT9jTjN3pyquXNzThb41a1767
H1vCmd4LJamNljFNqoopcqT2cr3u13Ps/wANftVfDHxX4g0fw3pcHihdR1zULXTLJrrSrSK2FzdyrFEZ
5U1SVo4wzckKxA7V/XfDv0mvDjibPcp4ey2hmSx+Nrwo0+ejTjDnm1GPM1Wk0rvVpP0PvMJxjlOMxNDC
0Y1va1JKKvFJXemvvH0pX9DH1R4f+0j/AMkR8ff9g/T/AP0+aXX419IT/kznHH/Xil/6k0T5/ir/AJJ/
Mv8ADH/0uJ+N1f5KH4YeofBP/krvw4/7HDQ//S2Kv0jwd/5Op4f/APY2w3/pyJ6+Qf8AI7yv/r/D8z9s
a/2IP3w8/wDiz/ySv4l/9k/8Zf8AqOalXwvij/ybPxE/7EWP/wDUWqebnX/Inzb/ALBqv/pEj8Pq/wAa
T+fgoA/bH4J/8kj+HH/Yn6H/AOkMVf7EeDv/ACavw/8A+xTh/wD02j99yD/kS5V/14h+SPUK/SD1j8vv
21/+SqaB/wBk/wBK/wDUj8V1/m79ML/k5mR/9iKj/wCpWNPyPj7/AJHGG/7Bo/8ApdQ+P6/lE+ICgD+g
Gv8AdA/pMKAPxO+Nn/JXfiP/ANjhrn/pbLX+O/jF/wAnU8QP+xtif/Tkj8Dz/wD5Heaf9f5/meX1+bnk
Gb/9DfX9Y/8A0BH4t/8AO0ur/wAfWsf9jJ4p/wDUj1Sv5648/wCS14q/7D6//pyR+n8P/wDIqpf9fa3/
AKeqEtfJntH7e/CTWLLXfhj4D1LT5Vlt38K6LbOVYN5V3p9jDp9/bORx5lre2skbf7Smv9k/CzNcHnXh
xwRmGBqqVB5Zh4O2tp0qcaVSD84VISg/NM/oDJa9PEZRl1Wk7x9jFfOKUWvk00eiV96emfAv7UPwK8d+
LPFq+OfCNgviCzn0qxsb7TLWWOPVbKex85PNjtp3jF9azROmPKZpQ+4FNoDH+HfpJeCvG3FHFMeNOFsC
sdhJ4WnTqUYNKtTlT5lzKEmvaQlFxtyNzUuZOHKlJ/m/F3DuY43G/wBoYKn7WDgk4r4k15PdNW21vfTq
fFF78PfH2msU1HwR4usWVghF34c1i3+YgsoBls1DblUkY6jkcV/HmM4D44y6Tjj+Ds1oyTt7+Erx13W9
NbrVd1qtD4GplmZUtKuX14+sJL9DP/4RLxV/0LPiD/wTal/8jVw/6r8Tf9E7j/8Awnq//IGf1PGf9AlT
/wABl/kH/CJeKv8AoWfEH/gm1L/5Go/1X4m/6J3H/wDhPV/+QD6njP8AoEqf+Ay/yEPhPxSoLN4a19VU
Esx0bUQAAMkkm2wABSfDHEsU5S4exyiv+nFX/wCQF9Txa/5han/gMv8AIwK8M5z9af2UPFema/8ACPSN
GtpkGqeE5r7S9VtCw8yMXOoXmo2F0qZ3m3urW5AD4wZY5FH3TX+o/wBGDifLc88LMqynD1V/aWVzqUa0
L6rnq1KtKdt+ScJ2UtnOFSK+E/aODcbRxOS0KEJfvqLcZL1k5J+jT37profTFf0SfVnwd+1P8CvF/ivx
BD4/8H2cmuhtLtdO1fRbXDapC9k03k31jbnH263lgkVHijJmV1BVXVjs/iX6S/grxXxPnlLjnhPCSxqe
GhSr4eGtaLpuXLUpx/5eRcWoyhG9SMkmoyUnyfnXGHDuNxmJjmWBpup7ijKK+JWvZpdVbRpa36O+nwXe
+GPEmmzG31Hw9rlhcKSGgvdJv7WZSOoMU9vG4Iz6V/EWM4c4hy+q8Pj8ixlCut41KFWEvulFP8D85qYT
FUpclXDVIy7OLT/FEmneE/FOrzi20rw1r+p3LMqiCw0fULyYs+7aPLt7eR8ttOOOx9K0wHC/Eua1lhsr
4ex2JxDaXLSoVaktdtIxb1s/uY6WCxleXJRwlSc+yjJv8Efop+yv8D/Evw/uNX8Z+L7ddM1PV9KXR9N0
YyLLeWunzXdtf3dxqPlM8ME081lAI4gxdArb9pO2v75+jP4NcQ8C1804u4roLDZlisKqFLD3TqQpSnCp
OVW14xlKVOnywu5RSlz8rdj9P4P4fxeWyrY/HR5K04csY9VFtNuXZtpWW61vY+za/ro+7Piz9tXxPptr
4J8P+EjMj6zq2vQawtsrAvBpel2l9by3UqglkWa7vEjiyAH2yYPyEV/IH0weI8uw3B2RcLOqnm2Kx0a6
gnrGjRhUi5yW65p1IxhfSVqln7jR8Hx7i6UMBhsFzfv51FK3aMU1d+raS769j80a/wA7j8oPf/2a/iHp
nw5+Jltf65OLXRNc0268O6leuT5Oni7uLS7tL6ZRwIYr6xjSRz/q4pHboCD+5/R549y7gDxFw2Nzmt7L
Jsbh54WrUfw0ueUJwqS/uxqU4RlL7EJTlsmn9JwpmdLK82hUxErYepBwk+kbtNN+SaSb6Jtn6/xyRzRx
zQyJLFKiyRSxsrxyRuoZJI3UlXR1IIIOCK/1bp1KdWnCrSmpUpJNNO6aeqaa0aa1TW5+3JqSUou6ZheK
vDen+L/Det+F9V80afrum3WnXLwNsniW4jKrcQMQVE1vJh03AruUZBGQfF4m4fwPFfD+ccN5nzfUcbh5
0puLtKKkrKUXtzRdpRumrpXTV0c+MwtLHYXEYStf2dSDi7bq/Vea3R+YHjP9kn4qeHbq4bQbO08Y6Sry
Nb3el3Vtaah5A5Q3elahPbyrcMOqW73Iz/FX+b3F30WvEzIMTXlkmEpZtlab5Z0ZwhV5enPRqyjJSf8A
LSlVXmfkeO4LzjCzk8NCNej0cWlK3nGTWvlFyPILz4SfFKwMguvhz43RYsF5U8MazPbqCdoP2mCzltzk
+jV+UYvws8S8E5/WeAM5UY7yWDxEor/t+NNx/E8SeS5xTvz5XiLL/p3Jr70rHbfB3wP41sfip8P7y98H
+KbO0tvFejTXN1deH9Wt7a3hjvI2eWeea0SKKNFGSzEACvsfCfgzjDBeJnAuLxnCmZUsLTzTDynOeFrx
hGKqJuUpSglFJbttJHoZHl2YU84y2pUwNaMFWi23CSSV922tD9iK/wBYz9wPD/2kf+SI+Pv+wfp//p80
uvxr6Qn/ACZzjj/rxS/9SaJ8/wAVf8k/mX+GP/pcT8bq/wAlD8MPUPgn/wAld+HH/Y4aH/6WxV+keDv/
ACdTw/8A+xthv/TkT18g/wCR3lf/AF/h+Z+2Nf7EH74ef/Fn/klfxL/7J/4y/wDUc1KvhfFH/k2fiJ/2
Isf/AOotU83Ov+RPm3/YNV/9Ikfh9X+NJ/PwUAftj8E/+SR/Dj/sT9D/APSGKv8AYjwd/wCTV+H/AP2K
cP8A+m0fvuQf8iXKv+vEPyR6hX6Qesfl9+2v/wAlU0D/ALJ/pX/qR+K6/wA3fphf8nMyP/sRUf8A1Kxp
+R8ff8jjDf8AYNH/ANLqHx/X8onxAUAf0A1/ugf0mFAH4nfGz/krvxH/AOxw1z/0tlr/AB38Yv8Ak6ni
B/2NsT/6ckfgef8A/I7zT/r/AD/M8vr83PIM3/6G+v6x/wDoCPxb/wCdpdX/AI+tY/7GTxT/AOpHqlfz
1x5/yWvFX/YfX/8ATkj9P4f/AORVS/6+1v8A09UJa+TPaPcPhH8e/GPwjeaz05bfWfDl3P8AaLvw/qLy
pCs5Cq91pt1Fuk067lRQrnbJE4A3RsQpH7N4V+N/FnhZOrhcBGni+H6s+apharaipbOdGa1pTaSUnaUJ
JLmpyai19BknEeOyRyhSSqYWTu4S2v3i/sv70+qeh9o6D+2h8Nb+OMa5pHibw/dH/W7ba01ewT/rndWt
zFeSYxzm1Xt15x/XmSfS88PMdTgs6yrMcDiXvaEK9Jek4TjUfzor59PvMNx5lVRL6xQq0p+ikvvTT/8A
JT0S0/ae+B14u5fHEVuwUFo7vRPEdsy5JAXdJpAikYY52M2K++wv0j/BnFR5o8ZRhK2qnh8XBr5uhyv/
ALdbPUhxbw/NaZgk/OE1/wC2/kbY+P8A8GWAYfELQMEAjMtwpwRnlWtwyn2IyK9heOnhG0muPMDZ+c1+
Djc3/wBZci/6GdP8f8hf+F/fBr/oofh//v8AT/8Axin/AMRz8JP+i8wH/gUv/kQ/1lyL/oZ0/wAf8g/4
X98Gv+ih+H/+/wBP/wDGKP8AiOfhJ/0XmA/8Cl/8iH+suRf9DOn+P+RS1L49fB2XTr+KP4g6A8ktldRx
oJpss7wSKqj9x1ZjiuPMPG/wmq5fjqVPjrAupKjNJc0tW4tJfD3Iq8SZG6dRLM6d3F9+3ofjXX+SR+Fn
UeEPGnibwJrMOveFdWudJ1GIbGeEq8F1AWVntb21lD295auVBMcisuQCMMAR9JwrxfxHwTm1HO+Gc0qY
XMI6Nxs4zje7hUg7wqQdleM01dJqzSa68Fj8Xl1eOJwdZwqrts12a2a8mfa/hD9tzbFDb+O/B7ySKAJd
U8LXKDzBwMjRdUlRVfHJIvQpPRVFf2Hwr9Mflp0qHGvCblUXxVsHNa/9y9ZpJ9W/rFm9oxR99guP7KMc
xwN31lTf/tsv/k/ke46Z+1j8E9QVTceIdR0Z2IAi1PQNXZskqBuk0u11OBB83UuAMHJHGf2bLfpQeD2P
iniM9xGEm+lbDV2+nWjCtFb7uSSs7s+go8Z5BVXvYmVN/wB6Ev8A21SX4nVQftD/AAWuAzR/EHRlCkA+
emoWpyRn5VubKFmHuARX01Hx68IMQpOHHeESX8yqw+5Tpxb+R2R4nyGW2Z0/nzL80E/7Q/wWtwrSfEHR
mDEgeQmoXRyBn5ltrKZlHuQBRW8evCDDqLnx3hGn/Kqs/vUKcmvmEuJ8hjvmdP5cz/JHK6n+1j8E9PVj
b+IdR1l1JBi0zQNXVsgsDtk1S10yBx8vUOQcjBPOPmcy+lB4PYCLeHz3EYua6UcNXT69a0KMXtupNO6s
zjrcZ5BSXu4mVR/3YS/9uUV+J4V40/baklgmtfAHhN7WVwyx6x4nmikkhByNyaNp0skJmAOVZ7t0B6ow
r8V4v+mLUq0auG4G4YdKpLRV8ZJNx81h6TcebqnKvKKe8JI+ex/H7lGUMtwdn/NUa0/7djpf1k15M+If
EnibXvF+sXev+JNTutX1a+YNcXl04LFVGI4Yo0CxW9tCvyxxRqsaLwoAr+NuIOIs74qzbFZ5xDmNTFZp
Wd5VJvXTaMUrRjCK0jCKUYrSKSPz/FYvEY2vPE4qq51pbt/kuiS6JaIwq8U5woA9z+G37Q3xH+GcUOn6
dqEWteH4vlTQNeWW8s7dPTT7iOWG+07aCdqRyeRuOWjav2jw98efEDw7p0sBgMfDGZFHRYbEp1KcV/06
kpRqUra2jGfs7u7pyPocq4mzTKUqVKqqmGX2J6pf4Xo4+idvJn1l4e/bb8I3Mar4o8Ia/pE+ArSaNcWO
t2pcYDO32uTRbiGNuTtCylemT1r+och+mPwtiIRjxLwpjsLXtvh508RC/d87w8op72Sm1td7n2eF4/wU
0ljMDUhL+61NfjyNfiep2H7VXwQvQvmeK7jTpGYKIr/w/r6nJJHzS2mm3dsijGSWkAAP1x+mYH6TXg1j
FH2nE9TDzbtarhcV+MoUpwXq5Ja+tvYp8Y8P1LXxji/OE/zUWvxN+H9ov4KTvsT4gaSrYLZmt9VtkwMf
8tLjT4o889M5Ne3R8fvB6vPkhx1hU7X96FaC++dKK+V7nTHijIJOyzKHzUl+cS1/wv74Nf8ARQ/D/wD3
+n/+MV0/8Rz8JP8AovMB/wCBS/8AkSv9Zci/6GdP8f8AIP8Ahf3wa/6KH4f/AO/0/wD8Yo/4jn4Sf9F5
gP8AwKX/AMiH+suRf9DOn+P+R5J8dvjH8MPEnwm8Z6JoXjTRtT1a/srKOzsbaWVp7h49X0+d1jDQqCVi
iZjz0FflvjX4s+HHEPhdxdk2S8X4TE5pXo01TpwcnKTVelJpXitoxb9EeLxFnuUYrJcfh8Pj4TrSirJX
u/ei+3Y/Lmv82D8iPQfhPqmn6J8S/Aur6rdRWOm6d4n0i8vryckQ21tBdxvLNIQGISNBk8V934YZlgcn
8ROC81zPExo5fh8yoVKlSXwwhGacpPyS1Z6WTVqWHzbLq9aajShWi23sknqz9YP+F/fBr/oofh//AL/T
/wDxiv8AT7/iOfhJ/wBF5gP/AAKX/wAifsv+suRf9DOn+P8AkcX8SPjd8J9W+Hfj3StN8daHeahqfgvx
Tp9haQzTGW6vbzQ762tbeIGEAyTzyKq8jk18h4g+MnhfmnAPG+WZfxrgquPxGT4ylThGUuadSphqkIQX
u7yk0l5s4M14gyWtleZUaWY05VZ0KkUlfVuDSW3Vn5JV/lqfi4UAfrB8J/jX8KtE+GngXSNV8caJY6lp
3hjSLO+s55ZhNbXMFpGk0MgELAPG4weTX+n3hh4w+GWT+HfBeVZnxng6OY4fLaFOpTlKXNCcYJSi/d3T
0Z+y5Nn+TYfKsuoVswpxqwoxTTvdNLVbHoP/AAv74Nf9FD8P/wDf6f8A+MV93/xHPwk/6LzAf+BS/wDk
T0v9Zci/6GdP8f8AI/Pr9q/xf4Z8a/ETRtV8K6zZ65p9v4L07T5ruxZ3ijvYtc8R3MluxdEPmJBdRseO
jiv4T+k9xXw7xhx9lGZ8M5vSxuAhk9KlKdNtxVSOJxU3B3S1UZwfpJH5rxljsJj80oVsHXjUpKhGLa78
83b7mvvPmOv5yPkgoA/aH/hf3wa/6KH4f/7/AE//AMYr/Xn/AIjn4Sf9F5gP/Apf/In7v/rLkX/Qzp/j
/kH/AAv74Nf9FD8P/wDf6f8A+MUf8Rz8JP8AovMB/wCBS/8AkQ/1lyL/AKGdP8f8j8n/AIsapp+t/Evx
1q+lXUV9puo+J9XvLG8gJMNzbT3cjxTRkhSUkQ5HFf5g+J+ZYHOPETjTNcsxMa2X4jMq9SnUj8M4Sm3G
S8mtUfjWc1qWIzbMa9GalSnWk01s03ozz6vhDzTN/wDob6/rH/6Aj8W/+dpdX/j61j/sZPFP/qR6pX89
cef8lrxV/wBh9f8A9OSP0/h//kVUv+vtb/09UJa+TPaCgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACg
AoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgDN/+hvr+sf8A6Aj8W/8AnaXV
/wCPrWP+xk8U/wDqR6pX89cef8lrxV/2H1//AE5I/T+H/wDkVUv+vtb/ANPVCWvkz2goAKACgAoAKACg
AoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoA
zf8A6G+v6x/+gI/Fv/naXV/4+tY/7GTxT/6keqV/PXHn/Ja8Vf8AYfX/APTkj9P4f/5FVL/r7W/9PVCW
vkz2goAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAC
gAoAKACgAoAKACgAoAzf/ob6/rH/AOgI/Fv/AJ2l1f8Aj61j/sZPFP8A6keqV/PXHn/Ja8Vf9h9f/wBO
SP0/h/8A5FVL/r7W/wDT1Qlr5M9oKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgCe2SCS
4gjupntrZ5o0nuEh+0PBCzgSTLB5kXnGNCTt3LuxjIrbDwozr0YYms6eHc0pSUeZxi3rJRvHmstbXV9r
lQUXKKnK0b6u17LvbqfWfhP9lJvHOlR614U+KXhPWdPk2hpLax1ITW0jKH+z3tpKY7qxuQpyY5URwOcY
r+ouF/oxy40yynnHDHiVleLwErXcKdbmg2r8tSDtOnO32ZxjLrax9nguDXmNFYjB5vRqUvJSuvJp6p+T
SZ0//DD/AIp/6Hnw/wD+C7Uf/iq+j/4k14m/6LPA/wDgqr/mdf8AxD/Gf9DCl/4DIP8Ahh/xT/0PPh//
AMF2o/8AxVH/ABJrxN/0WeB/8FVf8w/4h/jP+hhS/wDAZHhnxS+AXjz4Vk3mp2qax4eYoE8R6Os01hE7
kKIdRidFuNMlLEAGRfKckBHY5A/F/ErwO438M28XmOFji8hdrYugpSpxb05aqaU6Mr2Sc1ySbShOTul8
9nHDeY5P79WCnhf543aXlLrF+uj6NniNfjh4AUAFABQAUAFABQAUAFABQAUAFABQAUAFAGb/APQ31/WP
/wBAR+Lf/O0ur/x9ax/2Mnin/wBSPVK/nrjz/kteKv8AsPr/APpyR+n8P/8AIqpf9fa3/p6oS18me0FA
BQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAdN4U8Y+JvA+rRa34V1m90bUYwFaW1k/dX
MWdxt721kD219bMwyY5UdMgHGQCPouGOLOI+DM0p5xwzm1bCY+OjcHpOO/LUg7wqQe7hOMo3s7XSZ1YP
HYvL6yxGDryp1V26+TWzXk00fod8Jv2u/D/iT7NovxFjtvC+tNtii1yEuPDmoSEqqm48wyS6JM+eTIz2
/BYyR5CV/enhd9KnIuIPq+T8f06eW5w7RWIjf6rVey573lh5PrzOVLRt1IXUD9OyXjbDYrkw+aJUa+3O
vgl69YP1vHzWx9kwzRXEUU8Esc0E0aTQzQuskUsUih45YpELJJHIjAqwJBByK/relVpV6VOvQqRnRnFS
jKLTjKLV001o01qmtGtUfdRlGUVKLTi1dNbNBNDFcRSwTxRzQTRvDNDMiyRSxSKUkiljcMkkciMQykEE
HBoq0qVelUoV6cZ0ZxcZRkk4yi1Zpp6NNaNPRrRhKMZRcZJOLVmns0fFvxd/ZE0XXvtWu/DRrbw7q53z
S+G5spoF++dxXT3ALaJM3OEAe1J2qFhGWr+QfFT6K2T539Zzrw7lTwGau8pYSWmGqvf9098PJ62jaVF+
6lGkryPg874JoYnnxGUtUq+7h9h/4f5H5fD0tHc/O/xD4b17wnqtxoniTSb3RtVtT++sr6FopNhLBJom
5juLaXaTHLGzRyDlWI5r+CM+4ezvhfM8Rk3EOV1sJmdL4qdSLi7dJRe0oSt7s4twktYya1PzDFYXE4Kt
PD4qjKnWjumvx80+jWj6GJXjmAUAFABQAUAFABQAUAFABQAUAFABQBm//Q31/WP/ANAR+Lf/ADtLq/8A
H1rH/YyeKf8A1I9Ur+euPP8AkteKv+w+v/6ckfp/D/8AyKqX/X2t/wCnqhLXyZ7QUAFABQAUAFABQAUA
FABQAUAfav7MHwc+HfxN8NeJL3xdpN5f6jpeuxWsE0OqahYRLZT6fDKkeyzuoVdxOshJZc4I5Pb+wfo3
+E3AXiNw7xDjOKsrq18fhsbGEZRrVaaVOVKMkrU5xTfMpNtrZrXt97wjkeV5thMVUxtCUqsKiSalJaNL
s11ufTn/AAyd8Ef+hc1D/wAKLXP/AJOr+jf+JX/Bz/on6/8A4VYj/wCWH1v+pnD/AP0CS/8AA5/5h/wy
d8Ef+hc1D/wotc/+TqP+JX/Bz/on6/8A4VYj/wCWB/qZw/8A9Akv/A5/5h/wyd8Ef+hc1D/wotc/+TqP
+JX/AAc/6J+v/wCFWI/+WB/qZw//ANAkv/A5/wCYf8MnfBH/AKFzUP8Awotc/wDk6j/iV/wc/wCifr/+
FWI/+WB/qZw//wBAkv8AwOf+Yf8ADJ3wR/6FzUP/AAotc/8Ak6j/AIlf8HP+ifr/APhViP8A5YH+pnD/
AP0CS/8AA5/5h/wyd8Ef+hc1D/wotc/+TqP+JX/Bz/on6/8A4VYj/wCWB/qZw/8A9Akv/A5/5h/wyd8E
f+hc1D/wotc/+TqP+JX/AAc/6J+v/wCFWI/+WB/qZw//ANAkv/A5/wCYf8MnfBH/AKFzUP8Awotc/wDk
6j/iV/wc/wCifr/+FWI/+WB/qZw//wBAkv8AwOf+Yf8ADJ3wR/6FzUP/AAotc/8Ak6j/AIlf8HP+ifr/
APhViP8A5YH+pnD/AP0CS/8AA5/5h/wyd8Ef+hc1D/wotc/+TqP+JX/Bz/on6/8A4VYj/wCWB/qZw/8A
9Akv/A5/5h/wyd8Ef+hc1D/wotc/+TqP+JX/AAc/6J+v/wCFWI/+WB/qZw//ANAkv/A5/wCYf8MnfBH/
AKFzUP8Awotc/wDk6j/iV/wc/wCifr/+FWI/+WB/qZw//wBAkv8AwOf+Z6v4H+Hnh34eWUmmeGG1eDTH
O5NNvta1LVbK2csXZ7GDULi4WxMjMS4i2K5OWBODX6fwZwFkPAWDqZdw48VDLpaqlUxFatTg73bpxqyk
qd225cnKpPWSb1PZy/LMLllN0cJzqj/K5ykl6KTdvO1r9Tua+zPQCgDgPiD8M/B/xN0g6T4r0xLny1c2
GpQEQarpczgZmsL0KzRkkAtGweGTA3owFfD8d+HXCniNlbyvifLlU5U/Z1Y+7Woyf2qVSza6NxalCVlz
wkkebmeU4HNqPscZSvbaS0lF90/0d0+qZ+Wvxi+AXiz4TXL3kgbXPCU0wSz8R2sDIkJkbbFa6xbhpDp1
2xIVSWMUpxsbdlV/zT8WfA7ijwuxE8XNPG8LTlani4RaUbuyhXjd+ym9k23Cb+GXNeMfyDPOG8bks3N/
vME3pNLbykvsv8H0fQ8Hr8TPnQoAKACgAoAKACgAoAKACgAoAKAM3/6G+v6x/wDoCPxb/wCdpdX/AI+t
Y/7GTxT/AOpHqlfz1x5/yWvFX/YfX/8ATkj9P4f/AORVS/6+1v8A09UJa+TPaCgAoAKACgAoAKACgAoA
KACgD75/ZE8ceB/B/hTxWnifxZoWg3t/4ht2gtNVv7azmltbbTYQtxGJpFaSJpZnXOMAqa/uH6K3GfBn
CfDHE8OI+J8FgcZXx8XGFarCnJwhSjaS5mm05Sku10z9I4JzDL8Dg8YsXjadOpKqrKUknZRWuvm39x9c
f8Ls+Ef/AEUfwf8A+Dyx/wDjtf1P/wARi8K/+jgZT/4UU/8AM+1/t/Jf+hrQ/wDA1/mH/C7PhH/0Ufwf
/wCDyx/+O0f8Ri8K/wDo4GU/+FFP/MP7fyX/AKGtD/wNf5h/wuz4R/8ARR/B/wD4PLH/AOO0f8Ri8K/+
jgZT/wCFFP8AzD+38l/6GtD/AMDX+Yf8Ls+Ef/RR/B//AIPLH/47R/xGLwr/AOjgZT/4UU/8w/t/Jf8A
oa0P/A1/mH/C7PhH/wBFH8H/APg8sf8A47R/xGLwr/6OBlP/AIUU/wDMP7fyX/oa0P8AwNf5h/wuz4R/
9FH8H/8Ag8sf/jtH/EYvCv8A6OBlP/hRT/zD+38l/wChrQ/8DX+Yf8Ls+Ef/AEUfwf8A+Dyx/wDjtH/E
YvCv/o4GU/8AhRT/AMw/t/Jf+hrQ/wDA1/mH/C7PhH/0Ufwf/wCDyx/+O0f8Ri8K/wDo4GU/+FFP/MP7
fyX/AKGtD/wNf5h/wuz4R/8ARR/B/wD4PLH/AOO0f8Ri8K/+jgZT/wCFFP8AzD+38l/6GtD/AMDX+Yf8
Ls+Ef/RR/B//AIPLH/47R/xGLwr/AOjgZT/4UU/8w/t/Jf8Aoa0P/A1/mH/C7PhH/wBFH8H/APg8sf8A
47R/xGLwr/6OBlP/AIUU/wDMP7fyX/oa0P8AwNf5h/wuz4R/9FH8H/8Ag8sf/jtH/EYvCv8A6OBlP/hR
T/zD+38l/wChrQ/8DX+Z1fhzxj4W8XR3E3hfXtN16C0dY7mfSrlLyCCRwSkcs0O6JJWUEhSd2OcYr6fI
OLOGuKqdetw3neHx1Gk0pyozVSMW9k5Ruk2tbXvbWx2YXHYPGqUsJiYVIx3cXdL5o6WvoTqCgDm/Ffi/
w54I0a417xRq1rpGmWwOZrhiZJ5dpZbaztkDXF7dyBTtiiV3bB4wDXz/ABPxVw/wblNfO+Jc0pYXLqf2
pvWTtdQpwV5VJu2kIKUnrpZM5cZjcLl9CWJxlZQorq+vklu35LU/MX42/tMa/wDEn7V4e8Ni58O+CmLR
zQBwmra/HyM6tNCxEFk46WkbFDn940nyhP8AOPxj+kTnniF9ZyHh9VMBwe7qUb2r4lf9P5Rfu03/AM+I
txf/AC8lU91R/Jc/4sxOa8+Fwt6WA6r7U/8AE1sv7q07t6W+XK/ms+QCgAoAKACgAoAKACgAoAKACgAo
Azf/AKG+v6x/+gI/Fv8A52l1f+PrWP8AsZPFP/qR6pX89cef8lrxV/2H1/8A05I/T+H/APkVUv8Ar7W/
9PVCWvkz2goAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgDQ0rSNU13ULbStF0681XUr
yQRWtjp9tLd3U79cRwwq7sFAyTjCgZOAK78syvMs6x2HyzKMBWxOY1ZWhTpQlOcn5Rim3bd9EtXoaUaN
bEVYUaFKU6snokrt/JH3j8Jv2O/+PbW/itN/cli8IabdfRtmt6rav9Q0No/v53Va/tnwv+ib/u+ceJ1b
tJYGjP52xFaD+ThQl5+23ifouS8D/DiM5l/3Ci//AEuS/KL/AO3uh94aVpOl6Fp9tpWi6dZaVptnGI7W
x0+2itLWBOpEcEKpGu4nJOMsTk5Nf2zlmV5bkuBw+WZRgKOGy6lG0KdKEYQivKMUkr7vq3q9T9Go0aOH
pwo0KUYUo7KKSS+SNCu80Pl34u/tReEPh99q0bw55Hi7xZHuia3tp/8AiSaVMNyn+1NQhLefPC45toCX
yCrvEcGv5s8VPpJ8K8CfWcoyDkzXiiN04wl/s9GW376rG/NKL3pU7y0cZzpOzPkc74vwOWc9DC2r41aW
T9yL/vSW7X8q16NxPzT8cfEDxZ8RdXfWvFmrz6lc/Mttb58qw06Bjn7Np1kmILSEYGdo3ORudmbJP+eH
GXHXFHH2azzfijNJ4jEaqEfhpUov7FKmvdhHvZXk9ZuUrt/lOYZnjc0ruvjazlLotoxXaK2S/F9bs4yv
kTgCgAoAKACgAoAKACgAoAKACgAoAKAM3/6G+v6x/wDoCPxb/wCdpoMjxX+vwSKUmtfFvjG0uI2GGiub
TxVrFtcwsP70U8TKe2RX8++IFOdLjjiynUjaazCvddv3kj9O4f8A+RYo/ajXxEX5ShiKsZL1Uk0/QdXy
B7YUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQAUAFABQB9N/Dz9oqy+GOn/YvCvwv8NwXEsap
faxdajf3OtakVxzd37RB/L3DIhjEcCEkqgJOf6M4D8fcJ4cYH6nwz4b5dCvKKVSvOrVniKtv56jV7X1U
IKNOLu4wTbv9ZlnFEMppezweUUlJrWTcnKXq/wBFZLoj0b/huDxT/wBCN4f/APBjqP8A8TX3/wDxOVxN
/wBEZgf/AAbV/wAj1P8AiIGM/wChfS/8CkH/AA3B4p/6Ebw//wCDHUf/AImj/icrib/ojMD/AODav+Qf
8RAxn/Qvpf8AgUjzD4k/tQ/ET4g2H9j27W/hLRpYjHfWuhS3C3epbsho7vUpX+0i0KHBhi8tXBPmbxgD
848QvpJce8d4L+yaEqeV5TKNqkMM5KdW+6nWk+fktpyQ5FJNqfOrJeTmvF2aZlT9hFqjQa1UL3l6yetv
JWv1ufNtfz2fKhQAUAFABQAUAFABQAUAFABQAUAFABQAUAVvsd1/zwl/5NN/4S37p/5Fz/oLf9ev/j3t
X9ff2djf+geX/JAc3/bvf0PxW/r/AMiL6z/3A/5+/wCH8fI+kv2s/hVf/Cj4ya7raWsg8CfFrWL3xX4e
1QRn7JY+M9T3XvjLwreTqixQ6hqGpibV7QPhrmK6nVC7W0pHn/Sm8M8bw7xhiOMsDhpSyLM588pJXVPE
PWpGbS0c3epG9rptK7jJr9s4jy2pwrxZmGHqxtk2a154jDT+ysRU9/E4aT2U5VObE009akalRRu6Uj52
r+USQoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKACgAoAKAC
gAoAKACgAoAKACgDV8NeDfEnxN8V6L8NPBiO3iTxXKbc3iRPNB4Y0FXjj1zxhqhT5bfTtCtJSyFyouLt
obdMySop/QfDLgHNfETizLchy6hJ0ZVFKtUs3GlSTXPOb2SS6X1bUV7zSflY+ONzGthuG8lf/C5jrwg0
r+xpbVcVPtCjF3Tek6rp0leU0j9vv+GcvhX/ANAV/wDkhX/DOX37f/klf/QF/wCPX7/+1/q/9iv9cv8A
UXh3/oEf/In/ALM3X+6f8+9t/PbyP3H/AIh5wv8A9Ab/AORH/ZO6/wBy/wCffw7+e3906D42/wDCqP8A
hWXij/hdn9jf8K4+yRf27/bfm+Rv+0w/2d9g+y/8TH+3P7R8r7B9j/037X5fkfvdtdPGX+q3+rWa/wCu
fsP9W/Z/vvbfBa+lvtc/Nbk5ff5rcvvWPR4x/wBWP9Xcx/1w9l/YNl7TnvvzLk5OX3/a8/L7L2f7z2nL
7P3rH4PeKbbwYlxeXfwr1rx/daK11cjTdA+LHhnQ7DU4bVW/0Z4vF3h3xbqV5cWEq/6pNQ0SLUY48faG
eXdX+TXHdHwfeY4ufBGY5zGhzytCphqEqS1+xV+tRqOL+zeimo2u27n84QhmEKc62RYnE1MDzP2dLMqc
KddR+y/rGHq1W4voq+FjiEv4rc7nCfa/Gv8A0L/hf/wsNW/+Yevzb2eW/wDQXX/8FR/+XE/WuLv+hHlv
/hdW/wDneH2vxr/0L/hf/wALDVv/AJh6PZ5b/wBBdf8A8FR/+XB9a4u/6EeW/wDhdW/+d4fa/Gv/AEL/
AIX/APCw1b/5h6PZ5b/0F1//AAVH/wCXB9a4u/6EeW/+F1b/AOd4fa/Gv/Qv+F//AAsNW/8AmHo9nlv/
AEF1/wDwVH/5cH1ri7/oR5b/AOF1b/53h9r8a/8AQv8Ahf8A8LDVv/mHo9nlv/QXX/8ABUf/AJcH1ri7
/oR5b/4XVv8A53h9r8a/9C/4X/8ACw1b/wCYej2eW/8AQXX/APBUf/lwfWuLv+hHlv8A4XVv/neH2vxr
/wBC/wCF/wDwsNW/+Yej2eW/9Bdf/wAFR/8AlwfWuLv+hHlv/hdW/wDneH2vxr/0L/hf/wALDVv/AJh6
PZ5b/wBBdf8A8FR/+XB9a4u/6EeW/wDhdW/+d4fa/Gv/AEL/AIX/APCw1b/5h6PZ5b/0F1//AAVH/wCX
B9a4u/6EeW/+F1b/AOd4fa/Gv/Qv+F//AAsNW/8AmHo9nlv/AEF1/wDwVH/5cH1ri7/oR5b/AOF1b/53
h9r8a/8AQv8Ahf8A8LDVv/mHo9nlv/QXX/8ABUf/AJcH1ri7/oR5b/4XVv8A53h9r8a/9C/4X/8ACw1b
/wCYej2eW/8AQXX/APBUf/lwfWuLv+hHlv8A4XVv/neH2vxr/wBC/wCF/wDwsNW/+Yej2eW/9Bdf/wAF
R/8AlwfWuLv+hHlv/hdW/wDneH2vxr/0L/hf/wALDVv/AJh6PZ5b/wBBdf8A8FR/+XB9a4u/6EeW/wDh
dW/+d4fa/Gv/AEL/AIX/APCw1b/5h6PZ5b/0F1//AAVH/wCXB9a4u/6EeW/+F1b/AOd4fa/Gv/Qv+F//
AAsNW/8AmHo9nlv/AEF1/wDwVH/5cH1ri7/oR5b/AOF1b/53h9r8a/8AQv8Ahf8A8LDVv/mHo9nlv/QX
X/8ABUf/AJcH1ri7/oR5b/4XVv8A53h9r8a/9C/4X/8ACw1b/wCYej2eW/8AQXX/APBUf/lwfWuLv+hH
lv8A4XVv/neH2vxr/wBC/wCF/wDwsNW/+Yej2eW/9Bdf/wAFR/8AlwfWuLv+hHlv/hdW/wDneH2vxr/0
L/hf/wALDVv/AJh6PZ5b/wBBdf8A8FR/+XB9a4u/6EeW/wDhdW/+d4fa/Gv/AEL/AIX/APCw1b/5h6PZ
5b/0F1//AAVH/wCXB9a4u/6EeW/+F1b/AOd4fa/Gv/Qv+F//AAsNW/8AmHo9nlv/AEF1/wDwVH/5cH1r
i7/oR5b/AOF1b/53h9r8a/8AQv8Ahf8A8LDVv/mHo9nlv/QXX/8ABUf/AJcH1ri7/oR5b/4XVv8A53h9
r8a/9C/4X/8ACw1b/wCYej2eW/8AQXX/APBUf/lwfWuLv+hHlv8A4XVv/neH2vxr/wBC/wCF/wDwsNW/
+Yej2eW/9Bdf/wAFR/8AlwfWuLv+hHlv/hdW/wDneH2vxr/0L/hf/wALDVv/AJh6PZ5b/wBBdf8A8FR/
+XB9a4u/6EeW/wDhdW/+d4fa/Gv/AEL/AIX/APCw1b/5h6PZ5b/0F1//AAVH/wCXB9a4u/6EeW/+F1b/
AOd4fa/Gv/Qv+F//AAsNW/8AmHo9nlv/AEF1/wDwVH/5cH1ri7/oR5b/AOF1b/53h9r8a/8AQv8Ahf8A
8LDVv/mHo9nlv/QXX/8ABUf/AJcH1ri7/oR5b/4XVv8A53h9r8a/9C/4X/8ACw1b/wCYej2eW/8AQXX/
APBUf/lwfWuLv+hHlv8A4XVv/neH2vxr/wBC/wCF/wDwsNW/+Yej2eW/9Bdf/wAFR/8AlwfWuLv+hHlv
/hdW/wDneH2vxr/0L/hf/wALDVv/AJh6PZ5b/wBBdf8A8FR/+XB9a4u/6EeW/wDhdW/+d4fa/Gv/AEL/
AIX/APCw1b/5h6PZ5b/0F1//AAVH/wCXB9a4u/6EeW/+F1b/AOd4fa/Gv/Qv+F//AAsNW/8AmHo9nlv/
AEF1/wDwVH/5cH1ri7/oR5b/AOF1b/53h9r8a/8AQv8Ahf8A8LDVv/mHo9nlv/QXX/8ABUf/AJcH1ri7
/oR5b/4XVv8A53h9r8a/9C/4X/8ACw1b/wCYej2eW/8AQXX/APBUf/lwfWuLv+hHlv8A4XVv/neH2vxr
/wBC/wCF/wDwsNW/+Yej2eW/9Bdf/wAFR/8AlwfWuLv+hHlv/hdW/wDneH2vxr/0L/hf/wALDVv/AJh6
PZ5b/wBBdf8A8FR/+XB9a4u/6EeW/wDhdW/+d5u6LDc30hHirUH8LWSh2kbwjo8Hj3Vp0VMiKyXxDrvw
30y1upW4WSYzRRk5ZHA2n38hocDTxVP/AFlzTNKeEvr9XwtCo2u3v4yna/dXa3SexpH/AFlxMZ/WXhsH
BJ/wObGVHptBVngacZPo5uUVu4yWh+wH7F//AAz0PCWsD4NnWW8Vg6d/wsdvHq2ifFJrvZP/AGYfEqWb
Ppi6Sf332IaSx0UHzfs5LebX+ongR/xCv/Vd/wDEMn7nu/WPa2+t81ny+3t8+Xk/d35uX3uY/XvC7/U/
6rmH9hPE/wCsHufXPrnL9dvr7P2vLen7L4vZfV39W+L2WvMfalfuR+rH/9k=
</value>
</data>
<metadata name="ToolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>222, 17</value>
</metadata>
<metadata name="ToolTip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>222, 17</value>
</metadata>
<metadata name="StatusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>322, 17</value>
</metadata>
</root>

View File

@@ -0,0 +1,204 @@
Public Class Frm_Intro
Public Overrides Function AcceptChanged() As Boolean
End Function
Public Overrides Function RejectChanged() As Boolean
End Function
Public Overrides Function HasChanged() As Boolean
End Function
Private Sub Save_SEtting()
Myini.Write("user", "chkid", Me.chk_id.Checked)
Myini.Write("user", "chkpass", Me.chk_pass.Checked)
If Me.chk_id.Checked Then
Myini.Write("user", "id", Me.tb_id.Text)
Else
Myini.Write("user", "id", "")
End If
If Me.chk_pass.Checked Then
Myini.Write("user", "pass", Me.tb_pw.Text)
Else
Myini.Write("user", "pass", "")
End If
End Sub
Private Sub Frm_Login_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
Select Case e.KeyCode
Case Keys.Escape
Me.Close()
End Select
End Sub
Private Sub Frm_Login_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'TODO: 이 코드는 데이터를 'DS.C2600' 테이블에 로드합니다. 필요한 경우 이 코드를 이동하거나 제거할 수 있습니다.
' Uselov = New Lov.ModLov(My.Settings.CS, "")
Me.lbl_ip.Text = "현재 IP:" & Prj.CUrIP & "/MAC:" & Prj.CUrMac & " 컴퓨터에서 접속하였습니다."
My.Application.DoEvents()
'//지정된 정보를 가져옵니다.
Try
Me.chk_id.Checked = CBool(Myini.Read("user", "chkid", CStr(True)))
Me.chk_pass.Checked = CBool(Myini.Read("user", "chkpass", CStr(True)))
Catch ex As Exception
Me.chk_id.Checked = False
Me.chk_pass.Checked = False
End Try
If Me.chk_id.Checked Then Me.tb_id.Text = Myini.Read("user", "id", "")
If Me.chk_pass.Checked Then Me.tb_pw.Text = Myini.Read("user", "pass", "")
End Sub
Private Function GetLevel(ByVal Dcode As String) As Short
'im DR() As DataRow = Me.DS.tbl_user.Select("uid='" & Dcode & "'")
'If DR Is Nothing Then Return 0 '//일반사원 반환
'Try
' Return CShort(DR(0)("level"))
'Catch ex As Exception
' Return 0
'End Try
End Function
Private Sub tb_pw_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles tb_pw.KeyDown
If e.KeyCode = Keys.Enter Then
'//지정된 id 와 비번으로 해당 계정이 존재하는지 확인한다.
login()
ElseIf e.KeyCode = Keys.Escape Then
Me.DialogResult = Windows.Forms.DialogResult.Cancel
End If
End Sub
Private Sub tb_id_GotFocus(ByVal sender As Object, ByVal e As System.EventArgs) Handles tb_id.GotFocus, tb_pw.GotFocus
CType(sender, TextBox).Focus()
CType(sender, TextBox).SelectAll()
End Sub
Private Sub tB_id_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles tb_id.KeyDown
Select Case e.KeyCode
Case Keys.Enter
Me.tb_pw.Focus()
Case Keys.Escape
Me.DialogResult = Windows.Forms.DialogResult.Cancel
End Select
End Sub
Private Sub login()
Work_msg("서버 응답을 기다리는중")
Dim L As New ArinLogin.ArinLOgin
Dim UseriNfo As ArinLogin.ArinLOgin.User_Info = L.Check_user("eco_user", Me.tb_id.Text, Me.tb_pw.Text)
Work_msg("")
Prj.Admin = False
If UseriNfo.name = "" Then
If Me.tb_id.Text = "guest" Then
UseriNfo.authtype = "IP"
Else
MsgBox("존재하지 않는계정이거나 비밀번호오류입니다", MsgBoxStyle.Critical, "확인")
Return
End If
End If
Select Case UseriNfo.authtype
Case "IP"
If Me.tb_id.Text <> "guest" Then
If Prj.CUrIP.ToUpper <> UseriNfo.authip.ToUpper Then
MsgBox("로그인사용자와 현재컴퓨터의 IP가 일치하지않습니다", MsgBoxStyle.Critical, "확인")
Return
End If
Else
Try
Dim userPass As String
Dim userMAC As String
Dim userIP As String
userMAC = Prj.CUrMac.GetHashCode
userIP = Prj.CUrIP.GetHashCode
userPass = userIP + userMAC
userPass = userPass.GetHashCode
If CLng(userPass) < 0 Then
userPass = (CLng(userPass) * -1).ToString
End If
If Me.tb_pw.Text <> userPass Then
MsgBox("존재하지 않는계정이거나 비밀번호오류입니다", MsgBoxStyle.Critical, "확인")
End
End If
Catch ex As Exception
MsgBox("존재하지 않는계정이거나 비밀번호오류입니다", MsgBoxStyle.Critical, "확인")
End
End Try
End If
Case "MAC" '//MAC인증일경우 현재MAC과 비교한다.
If Prj.CUrMac.ToUpper <> UseriNfo.authmac.ToUpper Then
MsgBox("로그인사용자와 현재컴퓨터의 MAC이 일치하지않습니다", MsgBoxStyle.Critical, "확인")
Return
End If
Case "BOTH", "BOTH1", "BOTH2" '// BOTH1, BOTH2 는 기존 일반사용자와 다른 권한 부여하기 위해 만듬. BOTH1은 가져오기 가능, BOTH2는 가져오기 + 프로파일 수정가능 2010.11.22 --- BOTH0 은 일반유저로 설정
If Prj.CUrIP.ToUpper <> UseriNfo.authip.ToUpper OrElse Prj.CUrMac.ToUpper <> UseriNfo.authmac.ToUpper Then
MsgBox("로그인사용자의 IP 또는 MAC이 일치하지 않습니다", MsgBoxStyle.Critical, "확인")
Return
End If
Case "ADMIN"
Prj.Admin = True
Case "BOTH0"
Case Else
Return
End Select
Prj.LoginTime = Format(Now, "yyyy-MM-dd HH:mi:ss")
Prj.UserId = Me.tb_id.Text
Prj.UserPass = Me.tb_pw.Text
If Me.tb_id.Text = "guest" Then
Prj.UserAuthType = "BOTH0"
Else
Prj.UserAuthType = UseriNfo.authtype
End If
Save_SEtting()
Me.DialogResult = Windows.Forms.DialogResult.OK
End Sub
'Private Sub LinkLabel1_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked
' Dim LF As New Frm_user("")
' If LF.ShowDialog = Windows.Forms.DialogResult.OK Then
' Me.tB_id.Text = LF.UID
' Me.tb_pw.Text = ""
' Me.tb_pw.Focus()
' Else
' Me.tB_id.Text = ""
' Me.tb_pw.Text = ""
' Me.tB_id.Focus()
' End If
'End Sub
Private Sub Frm_Intro_SizeChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.SizeChanged
End Sub
Private Sub lbl_ip_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs)
Dim Str As New System.Text.StringBuilder
Str.AppendLine("### 다음내용을 관리자에게 메일로 보내주세요 ###")
Str.AppendLine("ip : " & Prj.CUrIP)
Str.AppendLine("mac : " & Prj.CUrMac)
'Str.AppendLine("lg : " & Prj.LGVersino)
'Str.AppendLine("ui : " & Prj.UIVersion)
My.Computer.FileSystem.WriteAllText("c:\address.txt", Str.ToString, False)
Shell("notepad c:\address.txt", AppWinStyle.NormalFocus)
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
login()
End Sub
Private Sub Label1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
End
End Sub
Private Sub btn_end_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
End
End Sub
End Class

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,256 @@
<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="DSR.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>647, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="ToolStripButton49.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAA62AAAOtgHOyLmlAAABb0lE
QVQ4T7WQTSjDYRzHd1XeSu3iglo5IJO8hGQypLHIhMjMJAcOi4R2cXAg5UIOuEgOJCXlROI0b/Pamlp/
LVLaBf+4PB9jqLW/seJ7eep5vt/P7/v8VH8iXCfQbQTHDh9XkYmVeURnFcKsh631sBC8HliaCfawtgC9
JkS7HtFRAXMTipC3hsJcBiM9oe+cOgKQumxEYwHYmoJMYsiKMOXCpD1sQxWL04jK1HcQw1Zwn8FYfwDq
Pz9s4YXHBc3FgS8ZsxD1edDX8rvwp9jf9VfOQxjSoUYbYfhGgsZCyElA1sbzoI2F2uxf1r+5BlM+FCXi
sxjg4uh9uXdpfsjy7A8LvL+DVh2PJUm4S9Px7W1/BRi14dTEIJ8cKEN4eYZBC+iSOU5T49tYDTHelmcg
tVUje69DIexuIueqcaZEIXU1gPykOGlHE4fsdCgApkaQUqNx6zNBulKu6Zds74bzQwXApRPGB+Bw79vw
P0ilegWKIwMchCbSyQAAAABJRU5ErkJggg==
</value>
</data>
<data name="ToolStripButton44.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAA62AAAOtgHOyLmlAAABKklE
QVQ4T2MYPKBw1vP/TQue/8+c+Pg/VAgDhLc/wCnHkDvz2f9VR97/x6UovvvB/+CGa7gNyJjy9P/CfR+w
Korvefh/6f7///2rL+A2IKHnyf9pW95jKIpovw/WnDnr/3+v0hO4DYjsevS/d/UHFEWhrffAmlvXAW3v
/PvfJf8AbgMCmx/+r5v/Dq4ouOXu/0V7///vAGrOmPPzv13dz//2GdtxG+BRdf9//rQ3KIrsim//T5/z
+79/17f/OoXv/lskrMdtgH3p3f/Zk19jKNJPOf/fpOjFf5WsT/+NI5fhNsAi787/1P7XWBUZJJ34L5v2
9b9u8DzcBhhm3f4f1vISpyL91Mv/NXyn4TZAJ+3Gf7/qh3gVqXhMwG2AU+6V/yAFeBUNQsDAAADwdsCr
peWacAAAAABJRU5ErkJggg==
</value>
</data>
<data name="ToolStripButton48.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAA62AAAOtgHOyLmlAAABSklE
QVQ4T2MYvODuAvb/t+Zx/r86h+v/xRm8/6HCxIPrQI1/HjX+//Ow4f/JyQKkG3B+Oi/cgIM9IqQbcHyS
IFBz3f8/D6r+72gXJ2zApZk8/89O5ft/EqjxSL/Q/33dIkDN5f//3iv6v75B5v+qGrn/SysV/88vVf4/
q0gV08BTQH/+eVgP1FQLxJX//9wrAeK8/3/vZv7/eyf5/9/bcf//3YwA4pD/k3I0MQ041CsMdu7f+6VA
jQVAjdlAjalAjQn//92KBmoM+//vRtD/f9f9/nel6WIasLNd4v+WZqn/68DOlf+/pELx/99bMUCN4f+n
5mn8n5Cl9b87Q/d/e6r+/+ZEQ8JhMhvoT5Bz/90I+N+ToUNYAzoA+fPfDX8g9vvfmqxPugHd6bpg/4Jw
fZwR6Qa0JBn8b4g3/F8Ta/y/MtqEdAPoBBgYACQj2J51/IhpAAAAAElFTkSuQmCC
</value>
</data>
<data name="ToolStripButton50.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAA62AAAOtgHOyLmlAAACL0lE
QVQ4T62S3UvTURjHf/9C990EXXRbU2M4F6vBr1xDWTYMK8JefpFmabpMExUr06j5BtkKl05arSbhpCJf
wBQpEWUqWZq5oiUONcUmgsHX85z98riKLqIHnpvD+XzOeV6k/xLPn4VB6WtdQot3EQ/d82hqDOGuYxp1
tV9gvxXA9fJJlJaMo7DgLfJyR3D+nB8qLkkEdnUCtTUr+Fssr6zClNqFQ6lPeaq4JHmfLHBBZcU39erv
QXBofhm7LC+g0SiwHvQIgfvBHBeUlnxVr0fHT/hjcAExZh8KLk3hgKVZCJwNM1xw0fZBRURshIcnQtgm
e5GTPYbkJKcQ1N8OckHW2REVi8SvcJ8/iM0GNxRlAGazQwhqqj9zgXJqQEX/DHf2f8Km+EYcPvIKiYl1
QnCjcgod7WCjBI4dfwPr0V7ebWoY1UzfppcjcDdSrC8hy3YhuFI2gTYf2A4Aza4fbO7fUX5tljeVGkY1
Z2b41+H9ya0wGiuE4HLhGDyPgPvOVbY4YZjSsqPSkm5D2pmiCJzE4H0eGAxlQmDLG2UwUF0V5i8TROcx
OhmD72cwOjkLJfcq9phaOKzb7YJeXyQEtJaOO1j/NgkIPp1/E+8CcwhML+JCsR2xBheDmxCbcA+6+Hwh
yMwYYnUvcXir0YMtO2Q8buuBr70PHd396H09iL1mKzT6BsQxeLu2HlptTrTg5Ikevp60YbQkNGcaFXWb
GkY106uUBO+MyxKCfw9JWgNsaDprRvk1ewAAAABJRU5ErkJggg==
</value>
</data>
<data name="ToolStripButton45.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAA62AAAOtgHOyLmlAAAAtklE
QVQ4T2MYOiC8/cF/KJN0EN/94H9wwzXyDIjvefh/6f7///2rL5BuQET7fbDmzFn//3uVniDNgNDWe2DN
reuAtnf+/e+Sf4B4A4Jb7v5ftPf//w6g5ow5P//b1f38b5+xnTQX2BXf/p8+5/d//65v/3UK3/23SFhP
ehjop5z/b1L04r9K1qf/xpHLSDcABAySTvyXTfv6Xzd4HnkGgIB+6uX/Gr7TyDcABFQ8JlBmwGAFDAwA
0BRgmAS6UFUAAAAASUVORK5CYII=
</value>
</data>
<data name="ToolStripButton47.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAA62AAAOtgHOyLmlAAABLElE
QVQ4T2MYXKBw1vP/UCYGAMk1LXj+P3PiY5xqGHJnPvuf0H0PqwKQ3Koj7/+Htz/AbUDGlKf/5+3//T+h
6w6GIpDcwn0f/gc3XMNtQELPk/+z9/3637n173+30ssoCkFy07a8/+9ffQG3AZFdj/5P2fbrf8nSv/8T
pv/9b5N7Fq4YJNe7+sN/r9ITuA0IbH74v3Xte7Bm45Iv/6Wjr/03jlwG1gCSq5v/7r9L/gHcBnhU3f9f
MvcdXLOiSw9cMUguf9qb//YZ23EbYF96939gyzMMzSAAksue/Pq/RcJ63AZY5N35b1NwBUMzCIDkUvtf
w72EFRhm3caqGQRAcmEtL//rBs/DbYBO2g2ckiA5v+qH/zV8p+E2AB9wyr3yX8VjAhhDhQYFYGAAAL7R
v7O5DE6cAAAAAElFTkSuQmCC
</value>
</data>
<data name="ToolStripButton46.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAA62AAAOtgHOyLmlAAAAo0lE
QVQ4T2MYfKBw1vP/UCZ5IHfms/8J3ffINyRjytP/8/b//p/QdYc8QxJ6nvyfve/X/86tf/+7lV4m3ZDI
rkf/p2z79b9k6d//CdP//rfJPUuaIYHND/+3rn0P1mxc8uW/dPS1/8aRy4g3xKPq/v+Sue/gmhVdekhz
gX3p3f+BLc/I0wwCFnl3/tsUXCFPMwgYZt0mXzMI6KTdIF/zUAQMDACgfl+gBzRCOAAAAABJRU5ErkJg
gg==
</value>
</data>
<metadata name="bn_all.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>445, 17</value>
</metadata>
<data name="ToolStripButton51.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAJ2SURBVDhPjVNdSJNhFH5bXdmFRFFeREQXRfQDJRlWZLra
mrOIDCEqQmrlTKkoIaHZoEKK1sAVS1dYiJCaCZUkKCRL20WmrXJ61U0UXhSMuen+n97n3adkdtGBw3u+
c57nOed83/uJv+2BEIZGIRzy9MkzSNdi5gwabL65hVgt/Y4ETn51XEfkvRfpnz+UM2aONWKI1WgZY0IW
WwKXK5D8/A742A/0tQKvmjLOeOSNqhFD7BwRqgYuWgC/F8nuZnwqP4y2lSvgWajDQPFuTD26AXS6gF4p
5H8LYslRZG3nyaSvB4nO+/CZC9jB6RFi/TUhFsnY/qGsGOl2Z0ak5wkSvtdqHfVOZOAYr6lAqr0B/qMm
RZaeRXF51vlK9iDW/wLpLjeij+uBZw1IyUbjlyzEOjiBb6L2FFLuWrTlLAU7z5AH9+1ArLcDqZcPMWY5
QkJwrPwgkhI7cdUCcgkMTtVbkbh7Hh6dDtrYdQOF2xDtbpWTuRA4YcY9IX7JvfOer8pBUmIjt6qUoBKI
2E4icdMCb/4GJu2DBVsw3dWMZMttjJbpFVlOlktxNolLLDlKgGN8LzcibjuGUPUBDOlzMd3RiITHjtFD
u2bJXIvrtS3LltjjIGdmBcdw4SbELpQgWmVC3G1D3HUFo+a8OWSJy5LuHCnajFhNKcghd/Yzhq1GRCsN
iFabELLuV+NxZzW27EzywNY1iMgm4Uoj65nPSOOlGMpfi+g5TUSCvug3onN5Npp0C/B0yWIM71yHyNm9
qk7s7EWiyQd1lVkIn8mA/uVhi16RiSVHo2eMCapyNHb7VrododNFyhkzxxox88h/mvZO/vN3FuI3yXDJ
RlfZIFMAAAAASUVORK5CYII=
</value>
</data>
<metadata name="StatusStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>529, 17</value>
</metadata>
<metadata name="bsmain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>722, 17</value>
</metadata>
<metadata name="F.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="M00.UserAddedColumn" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<metadata name="bs_max.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 56</value>
</metadata>
<metadata name="bs_면적.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="bs_소요량.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>111, 17</value>
</metadata>
<metadata name="bs_1차소요량.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>218, 17</value>
</metadata>
<metadata name="bs_생산E.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>344, 17</value>
</metadata>
</root>

View File

@@ -0,0 +1,59 @@
Public Class Frm_RepResult_Admin
Public Overrides Function AcceptChanged() As Boolean
End Function
Public Overrides Function RejectChanged() As Boolean
End Function
Public Overrides Function HasChanged() As Boolean
End Function
Private Sub DataGridView1_CellFormatting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting
Select Case Me.DataGridView1.Rows(e.RowIndex).Cells(2).Value.ToString
Case "MT"
Me.DataGridView1.Rows(e.RowIndex).DefaultCellStyle.ForeColor = Color.Green
Case "TT"
Me.DataGridView1.Rows(e.RowIndex).DefaultCellStyle.ForeColor = Color.Blue
Case "ST"
Me.DataGridView1.Rows(e.RowIndex).DefaultCellStyle.ForeColor = Color.Tomato
Case "SL"
Me.DataGridView1.Rows(e.RowIndex).DefaultCellStyle.ForeColor = Color.DarkMagenta
Case Else
Me.DataGridView1.Rows(e.RowIndex).DefaultCellStyle.ForeColor = Color.Black
End Select
End Sub
Private Sub Frm_RepResult_Admin_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
Me.bsmain.DataSource = DSETR
Me.bs_1차소요량.DataSource = DSETR
Me.bs_max.DataSource = DSETR
Me.bs_면적.DataSource = DSETR
Me.bs_생산E.DataSource = DSETR
Me.bs_소요량.DataSource = DSETR
Dim dv() As DataGridView = New DataGridView() {Me.DataGridView7, _
Me.DataGridView9, _
Me.DataGridView10, _
Me.DataGridView11, _
Me.DataGridView12, _
Me.DataGridView13, _
Me.DataGridView14, _
Me.DataGridView15, _
Me.DataGridView16, _
Me.DataGridView17, _
Me.DataGridView18, _
Me.DataGridView19}
For i As Integer = 1 To 12
Dim Bs As New BindingSource
Bs.DataSource = DSETR
Bs.DataMember = "월별에너지분석"
Bs.Filter = "월='M" & Format(i, "00") & "'"
dv(i - 1).DataSource = Bs
Next
' Me.bs.DataSource = DSETR
End Sub
End Class

82
ArinWarev1/Forms/Frm_Warning.Designer.vb generated Normal file
View File

@@ -0,0 +1,82 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class Frm_Warning
Inherits CForm
'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()
Me.components = New System.ComponentModel.Container()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Frm_Warning))
Me.Panel1 = New System.Windows.Forms.Panel()
Me.Label1 = New System.Windows.Forms.Label()
Me.Timer1 = New System.Windows.Forms.Timer(Me.components)
Me.Panel1.SuspendLayout()
Me.SuspendLayout()
'
'Panel1
'
Me.Panel1.BackColor = System.Drawing.Color.Transparent
Me.Panel1.BackgroundImage = CType(resources.GetObject("Panel1.BackgroundImage"), System.Drawing.Image)
Me.Panel1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center
Me.Panel1.Controls.Add(Me.Label1)
Me.Panel1.Dock = System.Windows.Forms.DockStyle.Fill
Me.Panel1.Location = New System.Drawing.Point(0, 0)
Me.Panel1.Margin = New System.Windows.Forms.Padding(4)
Me.Panel1.Name = "Panel1"
Me.Panel1.Size = New System.Drawing.Size(273, 146)
Me.Panel1.TabIndex = 0
'
'Label1
'
Me.Label1.BackColor = System.Drawing.Color.Transparent
Me.Label1.Font = New System.Drawing.Font("나눔고딕 ExtraBold", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
Me.Label1.Location = New System.Drawing.Point(2, 108)
Me.Label1.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(270, 28)
Me.Label1.TabIndex = 0
Me.Label1.Text = "잠시만 기다려주세요"
Me.Label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'Timer1
'
Me.Timer1.Interval = 20
'
'Frm_Warning
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(9.0!, 17.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.BackColor = System.Drawing.SystemColors.AppWorkspace
Me.ClientSize = New System.Drawing.Size(273, 146)
Me.Controls.Add(Me.Panel1)
Me.Font = New System.Drawing.Font("나눔고딕", 11.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
Me.Margin = New System.Windows.Forms.Padding(4)
Me.Name = "Frm_Warning"
Me.StartPosition = System.Windows.Forms.FormStartPosition.Manual
Me.Text = "알림메세지"
Me.TopMost = True
Me.Panel1.ResumeLayout(False)
Me.ResumeLayout(False)
End Sub
Friend WithEvents Panel1 As System.Windows.Forms.Panel
Friend WithEvents Label1 As System.Windows.Forms.Label
Friend WithEvents Timer1 As System.Windows.Forms.Timer
End Class

View File

@@ -0,0 +1,182 @@
<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="ErrProvider.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>109, 17</value>
</metadata>
<metadata name="bsmain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="Panel1.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
iVBORw0KGgoAAAANSUhEUgAAAEAAAABACAYAAACqaXHeAAAABGdBTUEAALGPC/xhBQAAACBjSFJNAAB6
JgAAgIQAAPoAAACA6AAAdTAAAOpgAAA6mAAAF3CculE8AAAACXBIWXMAAAsPAAALDwGS+QOlAAAKo0lE
QVR4XuXZCXBU9R0HcKzXKLCbOyG7icnGHMRAIQnhChC0gBQUaUGoM3Xa2tPOdDpTZ1oPjoBYFeQqgaqQ
GAiQO+QSSAiHCArFoxWqtoooZEM2m919b3ffe7ub5Nfff5OQfdlfyJ7UNsx8xt3v/t///a/3/7+MowBg
RCNDxrhPHXR8/bTP+fosoH7zB9WfoZDhrcDXz3yYr58OfF0OcOWaRVSZW4EMgw1n6Ttc9SRzt/kS9Eht
wFWliyyjygYbGQYb3zDzBcvxJfgR/3V1gqVlMfDVqX9mv91qZBhMONNjuIoHHN3mC9DDVoDwBXQZm8FU
ntbNfqOuCSYyDCa+YXqdcO4pcHz5LEgn0tB46Lq+C4T3fwZ8TXoLdU0wkWGwmMrTk7jKCd0O3R6QTmf1
DUAa2C4sAoe+BLjK9B5jiVpDXRssZBgsfG3Wv8RPngH7xZ9gx1NlHFfWAvuNr06/Sl0bLGQYDFzt1EV8
3dSeLu02kE6muw2A7ex06NIXAV87BbiyBLZDkvUEGhkGmvPYq8zgbf9e51zu0vEUkv3TXwMrw1WkCrfq
WCTDQMOXnTWWYw/3OC4/jx1NHtqpDOjSbgdL83zcD5JfpuoKNDIMJJxJBR5xdseVV8B2ZhrdcRf2j36I
+8ErYCpL7mLXUnUGEhkGEl+bXWc9s7LHfunnILXc70Z0y5LB8dUasJ5ZAXxV6jGqzkAiw0AxVTyQxlWk
dzm+3gDiyQxnZz0hvZ8HjqubcC9IY8diClV3oJBhoHDVEz8XP/wF2D54DMRjSV6xf/pbYNdylanfUHUH
ChkGAleT+Sgu/277F3/EWU2Wdc7cqIG2fQnwWUGcE/vMN2hkZaRTk4GtHL5mco/pYPwPqHsEAhn6Czev
23HjM9ku/g6k92Zjh1jnBnzx1zhYuTAFJmZNgAlo+YJk+Gyn2q2c7eMVwOowld1vMe5V3U7dy19k6C+u
ZnK+pWlut/3iUyA2J7ppXBUD47OzZWqfi3Ev24LvBriCzEfycBA0G6l7+YsM/WHcqw4xlSZLtk9/j298
E7EjCW6a1o6DzDlzYOq8eTB1/nzn58bVbADk5QQknfse2D9/BowHNA7DW6oQ6p7+IEN/4MZXaz21uMf2
wVIQm7AjhI+2qiFv6VKZD7eqyLJiUyJuiE+D5cRiMB1MCvixSIa+MpWmpnPlqXb7pd/gM4xHWtN9pMu7
42DOkiUyLKPKMtLpKbgK/gDG/UndnYXjxlP39hUZ+oqrGP+Z8N4ykM7OwYbHD+mrwjiY/cgjMiyjyvaz
fbwShLPLwViSeIW6t6/I0BdcecZSXP52299/DOJRnLmj2PAhfF0UB7mLFslcwYwqe0PLeOe7gfFgereh
MHY51QZfkKG3DMWqO40HkgzS31bgxjcJG8w6M7Rvit0HgGVUWVe2c/NBPP8EGArjzPpd0XdSbfEWGXrL
VJa+ztyQ47CdXwTiETzPh3FtbxzMXLhQ5ipmVFmZowlg/8eTwFVn9XQWqgJyLJKhNwxFseHGfYmCdGEZ
Hl248R3B3XwYrSVqmLFggQzLqLKDSadz8NX6CdC/rrJ1/CUynGqTN8jQG6aDqYcsR3O7xXdzQTis8oh2
vxqm4TuAK5ZRZd2pQbrwGJgbZvZ0vqlqotrkDTL0lKE4YYJxr0aSzj8CwpE4bFysR64fVMHUhx6SaTvA
OkeXH4xtiLYPHgf9G2pHx/aICVTbPEWGnjIWa/5pPTarRzw+EYS3sXFvj/NIe6kKpsydK9OOg0KVHYp0
Jg8szXmg3xV7mWqbp8jQE4aipGXG/cmSdDYPGxTjFV1ZLGTn5cmwjCo7JDxqpfOL8UTQdOl3RD5BtdET
ZDgcPILu6tyt1gsnZmFDkkBoxAZ5QV8eC1mzZ8t0YEaVvRnxRCYIJ+aCviCa022OuItq63DIcDiG3Qnr
TKVpNvFkFjYk2mudleNgcm6uTGcFLm2i7E31PQrG/and+p3Rm6i2DocMb0a3LTKqY2eMRTwxtXdTaozy
mqEqBibNmCHDMqrscMTmFBDfmQW6HdFS+5aIKKrNN0OGN6PfqarmKtO6xOZUEBqwET4wVUXDd6dNkzGy
ASDKekI8mQ18ZTrod8Z4fSyS4VA6tsZO7tgeYxVbcNdnM9AQ6ROuJgom5OTIcNW+1yccxrfIk1OgoyDG
ptsWMZlq+1DIcCi6rVEXzdUpPeyGQn2Ez/iaSMjIzpZhGVXWU2xFmutwFeyK/pJq+1DIkNK+Mepx/Q58
9pvuxxuG+8V8KALSMzNlWEaV9Rh7FFoyoHO3yo7H4pNUHyhkOJj2xZC7214O01nqEnHp4+5LNcALlreT
YfykSTKWxmSyrFcOx4MV68G/EYy6LRF3U30ZjAwHa3spLL/z9WhRaMS3tbowv1kPJ0PaxIkyVhwUqqx3
wvEPJg2YilXdnTsjN1N9GYwMXbXmh8RoN4RwlrpYsOINrHgjfwkt0yAlI0OGZVRZrzVEo3i2CgRcBTFU
n1yRoStc/pWGPeEOZ+drQwNCfOf78KdfDQwC+8wyqqxPGmKAK8E3zoKIo1SfXJFhv2urlJnaDUrOeoi4
iR+E5kwQ330UxPdWgnj2cez8w/j8JpFlfYMroT4SV0G42L4lPJvqWz8yZLDzt2nXKT/hSkKwwv9NfGko
6LaHf9m+Ofw2qo8MGTKta5Qr2zcpcPaxskNKP/XV4dI4C2YNL0VBzfpoPAIHcie3633XuSsMX47Cfkr1
kSHD1tWKe7TrFO3mMqykRgmW6l7sM3UTb1mwnqeWqOE+jcZpxYI44Fn9RFl/mSuUoNsSZmzfFHYP1Ve3
gNHmK17U71BarYcUYKkaC+bKsc7/su/+6W1U/YsREJ+QILP/ucgbv9PXes5SPYB9N7wZ2tWxLWwb1Ve3
oHW1UqVdrzRaqvo6X9ErEAMg4O4sHkmBqvVJoFKrZQqf1Th/ExrwuCWu9Ub/pPVPHBsI3dYwa/umcNXg
/sq+MLjxHTLuVjjYRXzpmD7Y+Rqs3F84u1JLDp75s2DJg0kQGxvrNG9GIvDNs0A6ju8CbD+grvUCa7u5
HAegD/tuKg7BQQh1+3+Lsi84+zltG5Qma81YZ8e5A6OdzBVjsGI2CP5jM2w/sxiEM8uhKH8WvLEqF8yn
l4H97KP4mh1HXuMLc3n/5I0Bc1lv+/ExEHQbw6e79vnGh2svKG7T5isvcfvwYuwwtx8732dw5X7Ds9p2
ag44zq0Ax/kfge2dBzHDFy2qrI8slQMT2D+J/AEFtL8Wevn6qwPH4o0B0K5VPql7TeGcfVPJaDDtu7cX
fmYXswpJVf36njdX1b2srgY1NFhY21wn0TmReH99QYitfXPoL2UD0LpKMVq7VqEzl/UufWPxvf8deweY
XPVNBoeT4TSoYze4zLhsEvvwpTiZ5bgKNoYZ8a/b0QMDsEbxqn6HQmCzZnzrXjAUfTuRg+YltjoMryu7
dZtCCpwDcO15RXxrvsLEOs9GzrDnnm8vYlC81f+4Xn85lG/bEBo/SrtGUWR4c2xX/3PDH8RBKMSb/R9i
J0P/HmHco+zUrg8tGKVdrbiIwVXpeCqewyMD9reDDYJ2fcj7o2Ym3LH03NNqGIlyE+9YOgr/adDCEUpz
4z1gpCLDkYQMRxIyHEnIcOSAUf8Bg2gMXEGUQa0AAAAASUVORK5CYII=
</value>
</data>
<metadata name="Timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>222, 17</value>
</metadata>
</root>

View File

@@ -0,0 +1,24 @@
Public Class Frm_Warning
Public Term As Decimal = 0
Public Second As Decimal = 0
Dim Perc As Decimal
Public Overrides Function AcceptChanged() As Boolean
End Function
Public Overrides Function RejectChanged() As Boolean
End Function
Public Overrides Function HasChanged() As Boolean
End Function
Private Sub Timer1_Tick(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Timer1.Tick
Second -= TOSG(Me.Timer1.Interval / 100) '//타이머를 증가
If Second < 0 Then
Me.Timer1.Enabled = False
Me.Dispose()
Else
Perc = TOSG(1 * Second / Term)
Me.Opacity = Perc
End If
End Sub
End Class

94
ArinWarev1/Forms/Frm_Work.Designer.vb generated Normal file
View File

@@ -0,0 +1,94 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class Frm_Work
Inherits CForm
'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()
Me.components = New System.ComponentModel.Container
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Frm_Work))
Me.Panel1 = New System.Windows.Forms.Panel
Me.ProgressBar1 = New System.Windows.Forms.ProgressBar
Me.Label1 = New System.Windows.Forms.Label
Me.Timer1 = New System.Windows.Forms.Timer(Me.components)
Me.Panel1.SuspendLayout()
Me.SuspendLayout()
'
'Panel1
'
Me.Panel1.BackColor = System.Drawing.Color.Transparent
Me.Panel1.BackgroundImage = CType(resources.GetObject("Panel1.BackgroundImage"), System.Drawing.Image)
Me.Panel1.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Center
Me.Panel1.Controls.Add(Me.ProgressBar1)
Me.Panel1.Controls.Add(Me.Label1)
Me.Panel1.Dock = System.Windows.Forms.DockStyle.Fill
Me.Panel1.Location = New System.Drawing.Point(0, 0)
Me.Panel1.Margin = New System.Windows.Forms.Padding(4)
Me.Panel1.Name = "Panel1"
Me.Panel1.Size = New System.Drawing.Size(358, 146)
Me.Panel1.TabIndex = 0
'
'ProgressBar1
'
Me.ProgressBar1.Dock = System.Windows.Forms.DockStyle.Bottom
Me.ProgressBar1.Location = New System.Drawing.Point(0, 128)
Me.ProgressBar1.Name = "ProgressBar1"
Me.ProgressBar1.Size = New System.Drawing.Size(358, 18)
Me.ProgressBar1.TabIndex = 1
'
'Label1
'
Me.Label1.BackColor = System.Drawing.Color.Transparent
Me.Label1.Font = New System.Drawing.Font("나눔고딕 ExtraBold", 9.75!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
Me.Label1.Location = New System.Drawing.Point(3, 101)
Me.Label1.Margin = New System.Windows.Forms.Padding(4, 0, 4, 0)
Me.Label1.Name = "Label1"
Me.Label1.Size = New System.Drawing.Size(354, 28)
Me.Label1.TabIndex = 0
Me.Label1.Text = "잠시만 기다려주세요"
Me.Label1.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'Timer1
'
Me.Timer1.Interval = 1000
'
'Frm_Work
'
Me.AutoScaleDimensions = New System.Drawing.SizeF(9.0!, 17.0!)
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.BackColor = System.Drawing.SystemColors.AppWorkspace
Me.ClientSize = New System.Drawing.Size(358, 146)
Me.Controls.Add(Me.Panel1)
Me.Font = New System.Drawing.Font("나눔고딕", 11.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
Me.Margin = New System.Windows.Forms.Padding(4)
Me.Name = "Frm_Work"
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "Frm_Work"
Me.TransparencyKey = System.Drawing.SystemColors.AppWorkspace
Me.Controls.SetChildIndex(Me.Panel1, 0)
Me.Panel1.ResumeLayout(False)
Me.ResumeLayout(False)
End Sub
Friend WithEvents Panel1 As System.Windows.Forms.Panel
Friend WithEvents Label1 As System.Windows.Forms.Label
Friend WithEvents ProgressBar1 As System.Windows.Forms.ProgressBar
Friend WithEvents Timer1 As System.Windows.Forms.Timer
End Class

View File

@@ -0,0 +1,203 @@
<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="bsmain.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="Panel1.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
</value>
</data>
<metadata name="Timer1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>109, 17</value>
</metadata>
</root>

View File

@@ -0,0 +1,11 @@
Public Class Frm_Work
Public Overrides Function AcceptChanged() As Boolean
End Function
Public Overrides Function RejectChanged() As Boolean
End Function
Public Overrides Function HasChanged() As Boolean
End Function
End Class

177
ArinWarev1/Forms/Frm_import.Designer.vb generated Normal file
View File

@@ -0,0 +1,177 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class Frm_Import
Inherits CForm
'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 resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Frm_Import))
Me.Panel1 = New System.Windows.Forms.Panel()
Me.chk_deldata = New System.Windows.Forms.CheckBox()
Me.ListView1 = New System.Windows.Forms.ListView()
Me.ColumnHeader1 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
Me.ColumnHeader2 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
Me.ColumnHeader3 = CType(New System.Windows.Forms.ColumnHeader(), System.Windows.Forms.ColumnHeader)
Me.tb_file = New System.Windows.Forms.TextBox()
Me.rado = New System.Windows.Forms.RadioButton()
Me.radi = New System.Windows.Forms.RadioButton()
Me.Button2 = New System.Windows.Forms.Button()
Me.Button1 = New System.Windows.Forms.Button()
Me.Label2 = New System.Windows.Forms.Label()
Me.Label1 = New System.Windows.Forms.Label()
Me.PictureBox1 = New System.Windows.Forms.PictureBox()
Me.Panel1.SuspendLayout()
CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'Panel1
'
Me.Panel1.BackColor = System.Drawing.Color.Transparent
resources.ApplyResources(Me.Panel1, "Panel1")
Me.Panel1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.Panel1.Controls.Add(Me.chk_deldata)
Me.Panel1.Controls.Add(Me.ListView1)
Me.Panel1.Controls.Add(Me.tb_file)
Me.Panel1.Controls.Add(Me.rado)
Me.Panel1.Controls.Add(Me.radi)
Me.Panel1.Controls.Add(Me.Button2)
Me.Panel1.Controls.Add(Me.Button1)
Me.Panel1.Controls.Add(Me.Label2)
Me.Panel1.Controls.Add(Me.Label1)
Me.Panel1.Controls.Add(Me.PictureBox1)
Me.Panel1.Name = "Panel1"
'
'chk_deldata
'
resources.ApplyResources(Me.chk_deldata, "chk_deldata")
Me.chk_deldata.Checked = True
Me.chk_deldata.CheckState = System.Windows.Forms.CheckState.Checked
Me.chk_deldata.ForeColor = System.Drawing.Color.FromArgb(CType(CType(0, Byte), Integer), CType(CType(0, Byte), Integer), CType(CType(64, Byte), Integer))
Me.chk_deldata.Name = "chk_deldata"
Me.chk_deldata.UseVisualStyleBackColor = True
'
'ListView1
'
Me.ListView1.Activation = System.Windows.Forms.ItemActivation.OneClick
Me.ListView1.CheckBoxes = True
Me.ListView1.Columns.AddRange(New System.Windows.Forms.ColumnHeader() {Me.ColumnHeader1, Me.ColumnHeader2, Me.ColumnHeader3})
Me.ListView1.FullRowSelect = True
Me.ListView1.HeaderStyle = System.Windows.Forms.ColumnHeaderStyle.None
Me.ListView1.HotTracking = True
Me.ListView1.HoverSelection = True
resources.ApplyResources(Me.ListView1, "ListView1")
Me.ListView1.Name = "ListView1"
Me.ListView1.UseCompatibleStateImageBehavior = False
Me.ListView1.View = System.Windows.Forms.View.Details
'
'ColumnHeader1
'
resources.ApplyResources(Me.ColumnHeader1, "ColumnHeader1")
'
'ColumnHeader2
'
resources.ApplyResources(Me.ColumnHeader2, "ColumnHeader2")
'
'ColumnHeader3
'
resources.ApplyResources(Me.ColumnHeader3, "ColumnHeader3")
'
'tb_file
'
Me.tb_file.BackColor = System.Drawing.Color.FromArgb(CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer), CType(CType(224, Byte), Integer))
resources.ApplyResources(Me.tb_file, "tb_file")
Me.tb_file.Name = "tb_file"
'
'rado
'
resources.ApplyResources(Me.rado, "rado")
Me.rado.BackColor = System.Drawing.Color.Transparent
Me.rado.Checked = True
Me.rado.Name = "rado"
Me.rado.TabStop = True
Me.rado.UseVisualStyleBackColor = False
'
'radi
'
resources.ApplyResources(Me.radi, "radi")
Me.radi.BackColor = System.Drawing.Color.Transparent
Me.radi.Name = "radi"
Me.radi.UseVisualStyleBackColor = False
'
'Button2
'
resources.ApplyResources(Me.Button2, "Button2")
Me.Button2.Name = "Button2"
Me.Button2.UseVisualStyleBackColor = True
'
'Button1
'
resources.ApplyResources(Me.Button1, "Button1")
Me.Button1.Name = "Button1"
Me.Button1.UseVisualStyleBackColor = True
'
'Label2
'
resources.ApplyResources(Me.Label2, "Label2")
Me.Label2.Name = "Label2"
'
'Label1
'
resources.ApplyResources(Me.Label1, "Label1")
Me.Label1.Name = "Label1"
'
'PictureBox1
'
resources.ApplyResources(Me.PictureBox1, "PictureBox1")
Me.PictureBox1.Name = "PictureBox1"
Me.PictureBox1.TabStop = False
'
'Frm_Import
'
resources.ApplyResources(Me, "$this")
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
Me.BackColor = System.Drawing.SystemColors.AppWorkspace
Me.Controls.Add(Me.Panel1)
Me.KeyPreview = True
Me.MaximizeBox = False
Me.MinimizeBox = False
Me.Name = "Frm_Import"
Me.TransparencyKey = System.Drawing.SystemColors.AppWorkspace
Me.Panel1.ResumeLayout(False)
Me.Panel1.PerformLayout()
CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
End Sub
Friend WithEvents Panel1 As System.Windows.Forms.Panel
Friend WithEvents Label1 As System.Windows.Forms.Label
Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox
Friend WithEvents Label2 As System.Windows.Forms.Label
Friend WithEvents Button1 As System.Windows.Forms.Button
Friend WithEvents Button2 As System.Windows.Forms.Button
Friend WithEvents rado As System.Windows.Forms.RadioButton
Friend WithEvents radi As System.Windows.Forms.RadioButton
Friend WithEvents tb_file As System.Windows.Forms.TextBox
Friend WithEvents ListView1 As System.Windows.Forms.ListView
Friend WithEvents ColumnHeader1 As System.Windows.Forms.ColumnHeader
Friend WithEvents ColumnHeader2 As System.Windows.Forms.ColumnHeader
Friend WithEvents ColumnHeader3 As System.Windows.Forms.ColumnHeader
Friend WithEvents chk_deldata As System.Windows.Forms.CheckBox
End Class

View File

@@ -0,0 +1,513 @@
<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Windows.Forms" name="System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="Panel1.BackgroundImageLayout" type="System.Windows.Forms.ImageLayout, System.Windows.Forms">
<value>Center</value>
</data>
<assembly alias="mscorlib" name="mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />
<data name="chk_deldata.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="chk_deldata.Location" type="System.Drawing.Point, System.Drawing">
<value>168, 65</value>
</data>
<data name="chk_deldata.Size" type="System.Drawing.Size, System.Drawing">
<value>190, 19</value>
</data>
<data name="chk_deldata.TabIndex" type="System.Int32, mscorlib">
<value>11</value>
</data>
<data name="chk_deldata.Text" xml:space="preserve">
<value>가져오는영역의 데이터 초기화</value>
</data>
<data name="chk_deldata.Visible" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="&gt;&gt;chk_deldata.Name" xml:space="preserve">
<value>chk_deldata</value>
</data>
<data name="&gt;&gt;chk_deldata.Type" xml:space="preserve">
<value>System.Windows.Forms.CheckBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;chk_deldata.Parent" xml:space="preserve">
<value>Panel1</value>
</data>
<data name="&gt;&gt;chk_deldata.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<data name="ColumnHeader1.Width" type="System.Int32, mscorlib">
<value>255</value>
</data>
<data name="ColumnHeader2.Width" type="System.Int32, mscorlib">
<value>66</value>
</data>
<data name="ColumnHeader3.Width" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="ListView1.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 140</value>
</data>
<data name="ListView1.Size" type="System.Drawing.Size, System.Drawing">
<value>338, 282</value>
</data>
<data name="ListView1.TabIndex" type="System.Int32, mscorlib">
<value>10</value>
</data>
<data name="&gt;&gt;ListView1.Name" xml:space="preserve">
<value>ListView1</value>
</data>
<data name="&gt;&gt;ListView1.Type" xml:space="preserve">
<value>System.Windows.Forms.ListView, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;ListView1.Parent" xml:space="preserve">
<value>Panel1</value>
</data>
<data name="&gt;&gt;ListView1.ZOrder" xml:space="preserve">
<value>1</value>
</data>
<data name="tb_file.Location" type="System.Drawing.Point, System.Drawing">
<value>12, 112</value>
</data>
<data name="tb_file.Size" type="System.Drawing.Size, System.Drawing">
<value>337, 22</value>
</data>
<data name="tb_file.TabIndex" type="System.Int32, mscorlib">
<value>8</value>
</data>
<data name="&gt;&gt;tb_file.Name" xml:space="preserve">
<value>tb_file</value>
</data>
<data name="&gt;&gt;tb_file.Type" xml:space="preserve">
<value>System.Windows.Forms.TextBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;tb_file.Parent" xml:space="preserve">
<value>Panel1</value>
</data>
<data name="&gt;&gt;tb_file.ZOrder" xml:space="preserve">
<value>2</value>
</data>
<data name="rado.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="rado.ImeMode" type="System.Windows.Forms.ImeMode, System.Windows.Forms">
<value>NoControl</value>
</data>
<data name="rado.Location" type="System.Drawing.Point, System.Drawing">
<value>89, 64</value>
</data>
<data name="rado.Size" type="System.Drawing.Size, System.Drawing">
<value>73, 19</value>
</data>
<data name="rado.TabIndex" type="System.Int32, mscorlib">
<value>7</value>
</data>
<data name="rado.Text" xml:space="preserve">
<value>내보내기</value>
</data>
<data name="&gt;&gt;rado.Name" xml:space="preserve">
<value>rado</value>
</data>
<data name="&gt;&gt;rado.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;rado.Parent" xml:space="preserve">
<value>Panel1</value>
</data>
<data name="&gt;&gt;rado.ZOrder" xml:space="preserve">
<value>3</value>
</data>
<data name="radi.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="radi.Location" type="System.Drawing.Point, System.Drawing">
<value>10, 64</value>
</data>
<data name="radi.Size" type="System.Drawing.Size, System.Drawing">
<value>73, 19</value>
</data>
<data name="radi.TabIndex" type="System.Int32, mscorlib">
<value>6</value>
</data>
<data name="radi.Text" xml:space="preserve">
<value>가져오기</value>
</data>
<data name="&gt;&gt;radi.Name" xml:space="preserve">
<value>radi</value>
</data>
<data name="&gt;&gt;radi.Type" xml:space="preserve">
<value>System.Windows.Forms.RadioButton, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;radi.Parent" xml:space="preserve">
<value>Panel1</value>
</data>
<data name="&gt;&gt;radi.ZOrder" xml:space="preserve">
<value>4</value>
</data>
<data name="Button2.Enabled" type="System.Boolean, mscorlib">
<value>False</value>
</data>
<data name="Button2.Location" type="System.Drawing.Point, System.Drawing">
<value>9, 428</value>
</data>
<data name="Button2.Size" type="System.Drawing.Size, System.Drawing">
<value>341, 31</value>
</data>
<data name="Button2.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
</data>
<data name="Button2.Text" xml:space="preserve">
<value>실행</value>
</data>
<data name="&gt;&gt;Button2.Name" xml:space="preserve">
<value>Button2</value>
</data>
<data name="&gt;&gt;Button2.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;Button2.Parent" xml:space="preserve">
<value>Panel1</value>
</data>
<data name="&gt;&gt;Button2.ZOrder" xml:space="preserve">
<value>5</value>
</data>
<data name="Button1.Location" type="System.Drawing.Point, System.Drawing">
<value>10, 87</value>
</data>
<data name="Button1.Size" type="System.Drawing.Size, System.Drawing">
<value>340, 23</value>
</data>
<data name="Button1.TabIndex" type="System.Int32, mscorlib">
<value>3</value>
</data>
<data name="Button1.Text" xml:space="preserve">
<value>파일선택</value>
</data>
<data name="&gt;&gt;Button1.Name" xml:space="preserve">
<value>Button1</value>
</data>
<data name="&gt;&gt;Button1.Type" xml:space="preserve">
<value>System.Windows.Forms.Button, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;Button1.Parent" xml:space="preserve">
<value>Panel1</value>
</data>
<data name="&gt;&gt;Button1.ZOrder" xml:space="preserve">
<value>6</value>
</data>
<data name="Label2.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="Label2.Location" type="System.Drawing.Point, System.Drawing">
<value>67, 36</value>
</data>
<data name="Label2.Size" type="System.Drawing.Size, System.Drawing">
<value>135, 15</value>
</data>
<data name="Label2.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="Label2.Text" xml:space="preserve">
<value>해당 파일을 선택하세요</value>
</data>
<data name="&gt;&gt;Label2.Name" xml:space="preserve">
<value>Label2</value>
</data>
<data name="&gt;&gt;Label2.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;Label2.Parent" xml:space="preserve">
<value>Panel1</value>
</data>
<data name="&gt;&gt;Label2.ZOrder" xml:space="preserve">
<value>7</value>
</data>
<data name="Label1.AutoSize" type="System.Boolean, mscorlib">
<value>True</value>
</data>
<data name="Label1.Location" type="System.Drawing.Point, System.Drawing">
<value>67, 13</value>
</data>
<data name="Label1.Size" type="System.Drawing.Size, System.Drawing">
<value>148, 15</value>
</data>
<data name="Label1.TabIndex" type="System.Int32, mscorlib">
<value>1</value>
</data>
<data name="Label1.Text" xml:space="preserve">
<value>데이터 내보내기/가져오기</value>
</data>
<data name="Label1.TextAlign" type="System.Drawing.ContentAlignment, System.Drawing">
<value>MiddleCenter</value>
</data>
<data name="&gt;&gt;Label1.Name" xml:space="preserve">
<value>Label1</value>
</data>
<data name="&gt;&gt;Label1.Type" xml:space="preserve">
<value>System.Windows.Forms.Label, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;Label1.Parent" xml:space="preserve">
<value>Panel1</value>
</data>
<data name="&gt;&gt;Label1.ZOrder" xml:space="preserve">
<value>8</value>
</data>
<data name="PictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
</value>
</data>
<data name="PictureBox1.Location" type="System.Drawing.Point, System.Drawing">
<value>11, 10</value>
</data>
<data name="PictureBox1.Size" type="System.Drawing.Size, System.Drawing">
<value>48, 48</value>
</data>
<data name="PictureBox1.SizeMode" type="System.Windows.Forms.PictureBoxSizeMode, System.Windows.Forms">
<value>AutoSize</value>
</data>
<data name="PictureBox1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;PictureBox1.Name" xml:space="preserve">
<value>PictureBox1</value>
</data>
<data name="&gt;&gt;PictureBox1.Type" xml:space="preserve">
<value>System.Windows.Forms.PictureBox, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;PictureBox1.Parent" xml:space="preserve">
<value>Panel1</value>
</data>
<data name="&gt;&gt;PictureBox1.ZOrder" xml:space="preserve">
<value>9</value>
</data>
<data name="Panel1.Dock" type="System.Windows.Forms.DockStyle, System.Windows.Forms">
<value>Fill</value>
</data>
<data name="Panel1.Location" type="System.Drawing.Point, System.Drawing">
<value>0, 0</value>
</data>
<data name="Panel1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data>
<data name="Panel1.Size" type="System.Drawing.Size, System.Drawing">
<value>363, 474</value>
</data>
<data name="Panel1.TabIndex" type="System.Int32, mscorlib">
<value>0</value>
</data>
<data name="&gt;&gt;Panel1.Name" xml:space="preserve">
<value>Panel1</value>
</data>
<data name="&gt;&gt;Panel1.Type" xml:space="preserve">
<value>System.Windows.Forms.Panel, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;Panel1.Parent" xml:space="preserve">
<value>$this</value>
</data>
<data name="&gt;&gt;Panel1.ZOrder" xml:space="preserve">
<value>0</value>
</data>
<metadata name="$this.Localizable" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>True</value>
</metadata>
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
<value>8, 15</value>
</data>
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
<value>363, 474</value>
</data>
<data name="$this.Font" type="System.Drawing.Font, System.Drawing">
<value>나눔고딕 ExtraBold, 9.75pt, style=Bold</value>
</data>
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
<value>4, 4, 4, 4</value>
</data>
<data name="$this.StartPosition" type="System.Windows.Forms.FormStartPosition, System.Windows.Forms">
<value>CenterScreen</value>
</data>
<data name="$this.Text" xml:space="preserve">
<value>데이터관리</value>
</data>
<data name="&gt;&gt;ColumnHeader1.Name" xml:space="preserve">
<value>ColumnHeader1</value>
</data>
<data name="&gt;&gt;ColumnHeader1.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;ColumnHeader2.Name" xml:space="preserve">
<value>ColumnHeader2</value>
</data>
<data name="&gt;&gt;ColumnHeader2.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;ColumnHeader3.Name" xml:space="preserve">
<value>ColumnHeader3</value>
</data>
<data name="&gt;&gt;ColumnHeader3.Type" xml:space="preserve">
<value>System.Windows.Forms.ColumnHeader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>Frm_Import</value>
</data>
<data name="&gt;&gt;$this.Type" xml:space="preserve">
<value>Eco2Ar.CForm, Eco2Ar, Version=1.2013.101.0, Culture=neutral, PublicKeyToken=null</value>
</data>
</root>

View File

@@ -0,0 +1,209 @@
<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="PictureBox1.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
</value>
</data>
</root>

View File

@@ -0,0 +1,721 @@
Public Class Frm_Import
Public Overrides Function AcceptChanged() As Boolean
End Function
Public Overrides Function RejectChanged() As Boolean
End Function
Public Overrides Function HasChanged() As Boolean
End Function
Dim RecordCount As Long
Dim TableList As DataTable
Dim IsExcel As Boolean = False
Private Sub Frm_Import_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
'//테이블목록 추가
Add_Tablelist()
Me.Button2.Enabled = False '//실행버튼 사용불가
Me.IsExcel = False
End Sub
Private Sub Add_Tablelist()
Dim TabName As String
Dim TabDesc As String = ""
Dim Sort As String = ""
Me.TableList = New DataTable
Me.TableList.Columns.Add("Desc")
Me.TableList.Columns.Add("Name")
Me.TableList.Columns.Add("Sort")
Me.TableList.Columns.Add("Cnt")
For Each Dt As DataTable In DSET.Tables
TabName = Dt.TableName
TabDesc = ""
Select Case TabName.ToUpper
'Case "TBL_BUHA"
'TabDesc = "부하"
'Sort = "00"
Case "TBL_BUNBAE"
TabDesc = "냉방분배"
Sort = "00"
'Case "TBL_COMMON"
'TabDesc = "공용코드"
'Sort = "00"
Case "TBL_DESC"
TabDesc = "건물개요"
Sort = "00"
Case "TBL_KONGJO"
TabDesc = "공조"
Sort = "00"
Case "TBL_KONGKUB"
TabDesc = "난방공급"
Sort = "00"
Case "TBL_MYOUN"
TabDesc = "입력면"
Sort = "00"
Case "TBL_NANBANGKIKI"
TabDesc = "난방기기"
Sort = "00"
Case "TBL_NANGBANGKIKI"
TabDesc = "냉방기기"
Sort = "00"
Case "TBL_NBUNBAE"
TabDesc = "난방분배"
Sort = "00"
Case "TBL_NEW"
TabDesc = "신재생및열병합"
Sort = "00"
'Case "TBL_PROFILE"
' TabDesc = "프로필"
' Sort = "00"
Case "TBL_ZONE"
TabDesc = "입력존"
Sort = "00"
Case "TBL_YK"
TabDesc = "열관류율(목록)"
Sort = "00"
Case "TBL_YKDETAIL"
TabDesc = "*열관류율(내역)"
Sort = "00"
'Case "TBL_WEATHER"
'TabDesc = "기상데이터(목록)"
'Sort = "00"
'Case "WEATHER_CHA"
'TabDesc = "*기상데이터(차양)"
'Sort = "00"
'Case "WEATHER_ILSA"
'TabDesc = "*기상데이터(일사)"
'Sort = "00"
'Case "WEATHER_SUPDO"
'TabDesc = "*기상데이터(습도)"
'Sort = "00"
'Case "WEATHER_ILSA"
'TabDesc = "*기상데이터(일사)"
'Sort = "00"
End Select
If TabDesc <> "" Then Me.TableList.Rows.Add(New String() {TabDesc, TabName, Sort})
Next
End Sub
Private Sub Frm_Import_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
If e.KeyCode = Keys.Escape Then
Me.DialogResult = Windows.Forms.DialogResult.Cancel
End If
End Sub
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
If radi.Checked Then
File_Open()
Me.Button2.Enabled = True
Else
'//내보내기 기능
File_Save()
Me.Button2.Enabled = True
End If
End Sub
Private Sub File_Open()
Dim Od As New OpenFileDialog
Od.FileName = "c:\out.txt"
Od.Filter = "탭으로 분리된 텍스트파일(*.txt)|*.txt|Ms Excel(*.xls)|*.xls"
Od.FilterIndex = 0
If Od.ShowDialog <> Windows.Forms.DialogResult.OK Then Return
Me.tb_file.Text = Od.FileName
Me.IsExcel = IIf(Od.FilterIndex = 1, False, True)
'//테이블리스트의 데이터갯수 초기화
For Each Dr As DataRow In Me.TableList.Rows
Dr("cnt") = 0
Next
Me.TableList.AcceptChanges()
'//혹시 연속으로 열경우를 대비해서 초기화한다.
Select Case Od.FilterIndex
Case 1 '//텍스트파일
Dim Table As String
Dim BUf As String = My.Computer.FileSystem.ReadAllText(Me.tb_file.Text, System.Text.Encoding.Default)
For Each B As String In BUf.Split(CChar(vbCrLf))
If B.Trim <> "" AndAlso B.Trim.Substring(0, 1) <> "#" Then
Table = B.Split(CChar(vbTab))(0)
'//해당 테이블 이름을 테이블 리스트에 찾아서 카운터를 누적시킨다.
Dim DR() As DataRow = Me.TableList.Select("name='" & Table.Trim & "'")
If DR.GetUpperBound(0) = 0 Then
Try
DR(0)("cnt") = Val(DR(0)("cnt")) + 1
Catch ex As Exception
DR(0)("cnt") = 1
End Try
End If
End If
Next
Case 2
'//엑셀데이터에서 정보를 얻어와야한다.
Dim xlApp As Excel.Application = New Excel.Application ' CreateObject("Excel.Application")
Dim xlBook As Excel.Workbook = xlApp.Workbooks.Open(Me.tb_file.Text)
Dim xlSheet1 As Excel.Worksheet = xlBook.Worksheets(1) '//첫번째 시트로고정
Dim Rng As Excel.Range = xlSheet1.Range("A1") '//Offset으로사용할것이므로 0,0셀을 선택한다
'//줄과 열의 갯수를 가져옵니다.
Dim rowCount As String = Rng.Offset(0, 4).Value '//줄수를 입력(나중에 불러올때 가져올범위를 대략 판단)
Dim ColCount As String = Rng.Offset(0, 5).Value
If rowCount.Trim = "" OrElse rowCount = "0" Then
Dim V As String = InputBox("전체줄의 갯수를 입력하세요", "데이터갯수입력", 1000)
If V = "" Then
MsgBox("불러올 줄수를 확인할 수 없습니다", MsgBoxStyle.Critical, "확인")
Return
End If
If IsNumeric(V) = False Then
MsgBox("숫자만 입력가능합니다", MsgBoxStyle.Critical, "확인")
Return
End If
rowCount = V
End If
If rowCount.Trim = "" OrElse rowCount = "0" Then
ColCount = 60 '//60개를 넘지는 않으므로(아마두?)
End If
'//범위가 지정되었으므로 데이터를 확인한다.
'//데이터의 시작줄은 항상 5번이다.
Dim Tabname As String = ""
Dim As New ArrayList
Dim z_cnt As Integer = 0
For r As Integer = 5 To rowCount
Try
Tabname = Rng.Offset(r, 0).Value.ToString.Trim '//0번째열은 항상 테이블 이름이 오도록한다
Catch ex As Exception
Tabname = ""
End Try
If Tabname = "" OrElse Tabname.Trim.ToUpper = "TABLE" Then '//이건 테이블을 제목줄이다
Else '//테이블이름으로 판단하고 해당 리스트를 찾아서 값을 누적시킴
'//해당 테이블 이름을 테이블 리스트에 찾아서 카운터를 누적시킨다.
Dim DR() As DataRow = Me.TableList.Select("name='" & Tabname & "'")
If DR.GetUpperBound(0) = 0 Then
Try
DR(0)("cnt") = Val(DR(0)("cnt")) + 1
Catch ex As Exception
DR(0)("cnt") = 1
End Try
End If
End If
Next
'//Dispos Excel Object
xlBook.Close()
xlApp.Application.Quit()
xlApp.Quit()
xlApp = Nothing
xlBook = Nothing
xlSheet1 = Nothing
End Select
Me.ListView1.Items.Clear() '//리스트뷰클리어
Dim lv As ListViewItem
For Each dr As DataRow In Me.TableList.Select("", "sort") '//정렬시켜서 가져옴
If DSET.Tables(dr("name").ToString).Rows.Count > 0 Then
lv = Me.ListView1.Items.Add(dr("desc").ToString) '//테이블설명
lv.SubItems.Add(dr("cnt").ToString) '//레코드숫자
lv.SubItems.Add(dr("name").ToString) '//테이블이름
End If
Next
End Sub
Private Sub File_Save()
DSET.AcceptChanges()
DSETR.AcceptChanges()
Dim sd As New SaveFileDialog
sd.FileName = "c:\out.txt"
sd.Filter = "탭으로 분리된 텍스트파일(*.txt)|*.txt|Ms Excel(*.xls)|*.xls"
sd.FilterIndex = 0
If sd.ShowDialog <> Windows.Forms.DialogResult.OK Then Return
Me.tb_file.Text = sd.FileName
Me.IsExcel = IIf(sd.FilterIndex = 1, False, True)
Me.ListView1.Items.Clear() '//기존의 목록제거
Dim Lv As ListViewItem
For Each dr As DataRow In Me.TableList.Select("", "sort") '//정렬시켜서 가져옴
If DSET.Tables(dr("name")).Rows.Count > 0 Then
Lv = Me.ListView1.Items.Add(dr("desc")) '//테이블설명
Lv.SubItems.Add(DSET.Tables(dr("name")).Rows.Count) '//레코드숫자
Lv.SubItems.Add(dr("name")) '//테이블이름
End If
Next
End Sub
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
If MsgBox("실행하시겠습니까?", MsgBoxStyle.Information Or MsgBoxStyle.OkCancel, "확인") <> MsgBoxResult.Ok Then Return
If Me.radi.Checked Then
If My.Computer.FileSystem.FileExists(Me.tb_file.Text) = False Then
MsgBox("해당파일이 존재하지않아서 가져올 수 없습니다", MsgBoxStyle.Critical, "확인")
Me.Button2.Enabled = False
Return
End If
If Me.IsExcel Then
InPutXls()
Else
INput()
End If
Else
If Me.IsExcel Then
OutputXLS()
Else
OutPut()
End If
End If
End Sub
Private Function Get_Listview(ByVal Tabname As String) As ListViewItem
Dim Tname As String
Dim R As ListViewItem = Nothing
For Each Lv As ListViewItem In Me.ListView1.Items
Tname = Lv.SubItems(2).Text
If Tname.ToUpper.Trim = Tabname.ToUpper.Trim Then
R = Lv
Exit For
End If
Next
Return R
End Function
Private Sub InPutXls()
'//가져오는 영역의 데이터 클리어
Work_msg("저장영역 데이터확인중...")
For Each Lview As ListViewItem In Me.ListView1.Items
If Lview.Checked And Me.chk_deldata.Checked Then ' '//삭제명령이 잇엇다면 삭제를 한다.
Work_msg("데이터 삭제중(" & Lview.SubItems(2).Text & ")")
If DSET.Tables(Lview.SubItems(2).Text).Columns.IndexOf("code") <> -1 Then '//코드가잇는 개체라면 코드빼고 삭제
For Each Dr As DataRow In DSET.Tables(Lview.SubItems(2).Text).Select("Code<>'0'")
Dr.Delete()
Next
Else
For Each Dr As DataRow In DSET.Tables(Lview.SubItems(2).Text).Rows
Dr.Delete()
Next
End If
End If
Next
DSET.AcceptChanges()
Dim NullCnt As Int16 = 0
Dim mytext1 As String = vbNullString
Dim xlApp As Excel.Application = New Excel.Application ' CreateObject("Excel.Application")
Dim xlBook As Excel.Workbook = xlApp.Workbooks.Open(Me.tb_file.Text)
Dim xlSheet1 As Excel.Worksheet = xlBook.Worksheets(1) '//첫번째 시트로고정
Dim Rng As Excel.Range = xlSheet1.Range("A1") '//Offset으로사용할것이므로 0,0셀을 선택한다
'//줄과 열의 갯수를 가져옵니다.
Dim rowCount As String = Rng.Offset(0, 4).Value '//줄수를 입력(나중에 불러올때 가져올범위를 대략 판단)
Dim ColCount As String = Rng.Offset(0, 5).Value
If rowCount.Trim = "" OrElse rowCount = "0" Then
Dim V As String = InputBox("전체줄의 갯수를 입력하세요", "데이터갯수입력", 1000)
If V = "" Then
MsgBox("불러올 줄수를 확인할 수 없습니다", MsgBoxStyle.Critical, "확인")
Return
End If
If IsNumeric(V) = False Then
MsgBox("숫자만 입력가능합니다", MsgBoxStyle.Critical, "확인")
Return
End If
rowCount = V
End If
If rowCount.Trim = "" OrElse rowCount = "0" Then
ColCount = 60 '//60개를 넘지는 않으므로
End If
'//범위가 지정되었으므로 데이터를 확인한다.
'//데이터의 시작줄은 항상 5번이다.
Dim Tabname As String = ""
Dim lv As ListViewItem
Dim As New ArrayList
Dim z_cnt As Integer = 0
For r As Integer = 5 To rowCount
Try
Tabname = Rng.Offset(r, 0).Value.ToString '//0번째열은 항상 테이블 이름이 오도록한다
Catch ex As Exception
Tabname = ""
End Try
If Tabname.Trim.ToUpper = "TABLE" Then '//이건 테이블을 제목줄이다
= New ArrayList '//열제목을 이곳에 모두 넣는다.
For c As Integer = 1 To ColCount
Try
If Rng.Offset(r, c).Value.ToString.Trim <> "" AndAlso Rng.Offset(r, c).Value.ToString.Trim <> "0" Then '//열제목이있다
.Add(Rng.Offset(r, c).Value.ToString.Trim)
End If
Catch ex As Exception
End Try
Next
Else
If .Count > 0 AndAlso Tabname.Trim <> "" Then '//열제목이 설정되어잇어야 돌아가도록
lv = Get_Listview(Tabname)
If lv.Checked Then '//가져오기설정과 테이블이름이 잇어야함
Work_msg("가져오는중(" & Tabname & ")")
Dim Dr As DataRow = DSET.Tables(Tabname).NewRow
Dr("code") = Format(DSET.Tables(Tabname).Rows.Count, "0000")
For c As Integer = 1 To .Count
Try
Dr(.Item(c - 1).ToString) = Rng.Offset(r, c).Value
Catch ex As Exception
Dr(.Item(c - 1).ToString) = DBNull.Value
End Try
Next
Try
DSET.Tables(Tabname).Rows.Add(Dr)
DSET.Tables(Tabname).AcceptChanges()
z_cnt += 1
Catch ex As Exception
End Try
End If
End If
End If
Next
Work_msg("")
'//Dispos Excel Object
xlBook.Close()
xlApp.Application.Quit()
xlApp = Nothing
xlBook = Nothing
xlSheet1 = Nothing
MsgBox("가져오기완료", MsgBoxStyle.Information, "확인")
Me.Close()
' Process.Start(Me.tb_file.Text)
'Shell(Me.tb_file.Text, AppWinStyle.NormalFocus)
End Sub
Private Sub INput() '//텍스트파일 가져오기
Dim BUf As String = My.Computer.FileSystem.ReadAllText(Me.tb_file.Text, System.Text.Encoding.Default)
Dim Table As String
Dim As String = ""
For Each Lview As ListViewItem In Me.ListView1.Items
If Lview.Checked And Me.chk_deldata.Checked Then ' '//삭제명령이 잇엇다면 삭제를 한다.
If DSET.Tables(0).Columns.IndexOf("code") <> -1 Then '//코드가잇는 개체라면 코드빼고 삭제
For Each Dr As DataRow In DSET.Tables(Lview.SubItems(2).Text).Select("Code<>'0'")
Dr.Delete()
Next
Else
For Each Dr As DataRow In DSET.Tables(Lview.SubItems(2).Text).Rows
Dr.Delete()
Next
End If
End If
Next
DSET.AcceptChanges()
Dim Lv As ListViewItem
Dim z_cnt As Integer = 0
Dim e_cnt As Integer = 0
For Each B As String In BUf.Split(CChar(vbCrLf)) '//데이터를 실제로 가져온다
If B.Trim <> "" AndAlso B.Trim.Substring(0, 1) <> "#" Then '//주석데이터도제거
Table = B.Split(CChar(vbTab))(0).Trim
Select Case Table.ToUpper
Case "TABLE"
= B.Trim
Case Else
'//해당테이블명이 리뷰에 있는지확인하고 그것의 사용체크가되어있는지확인
Lv = Get_Listview(Table)
If Not Lv Is Nothing Then
If Lv.Checked Then '//사용여부확인
Dim Dr As DataRow = DSET.Tables(Table).NewRow
Dr("code") = Format(DSET.Tables(Table).Rows.Count, "0000")
For i As Integer = 1 To B.Split(CChar(vbTab)).GetUpperBound(0)
Try
Dr(.Split(CChar(vbTab))(i)) = B.Split(CChar(vbTab))(i)
Catch ex As Exception
Dr(.Split(CChar(vbTab))(i)) = DBNull.Value
End Try
Next
Try
DSET.Tables(Table).Rows.Add(Dr)
DSET.Tables(Table).AcceptChanges()
z_cnt += 1
'Catch sqlex As SqlClient.SqlException
' MsgBox(sqlex.ErrorCode)
Catch ex As Exception
' MsgBox(ex.Message.ToString)
If ex.Message.ToString.IndexOf("고유 값") <> -1 Then
z_cnt += 1
Else
e_cnt += 1
End If
End Try
End If
End If
End Select
End If
Next
DSET.AcceptChanges()
' MsgBox(DSET.tbl_zone.Rows.Count)
Dim M As New System.Text.StringBuilder
M.AppendLine(z_cnt & "개의 데이터가 추가됨")
M.AppendLine(e_cnt & "개의 오류발생")
MsgBox(M.ToString, MsgBoxStyle.Information, "OK")
End Sub
'//텍스트파일 내보내기
Private Sub OutPut()
Work_msg("기본정보생성중...")
Dim Wb As New System.Text.StringBuilder
Wb.AppendLine("#### ECO2 Data ####")
Wb.AppendLine("#### Export Time : " & Format(Now, "yyyy-MM-dd HH:mm:ss") & " ####")
Wb.AppendLine("#### Export by Eco2 ####")
Dim Tabname As String = ""
For Each lv As ListViewItem In Me.ListView1.Items
If lv.Checked Then '//체크된것만 내보낸다
Tabname = lv.SubItems(2).Text
Work_msg("내보내는중(" & Tabname & ")")
Wb.Append("table") '///////////////////////
For Each C As System.Data.DataColumn In DSET.Tables(Tabname).Columns
Wb.Append(vbTab & C.ColumnName)
Next
Wb.Append(vbCrLf)
For Each C As DataRow In DSET.Tables(Tabname).Rows
Wb.Append(Tabname)
For i As Integer = 0 To DSET.Tables(Tabname).Columns.Count - 1
'If (Tabname.ToUpper = "TBL_MYOUN") Then
' If DSET.Tables(Tabname).Columns(i).ColumnName.ToUpper.Trim = "열관류율" Then
' If CSng(C(i)) = 0 Then '//링크값사용
' Dim Dr As DS.tbl_ykRow = DSET.tbl_yk.Select("code='" & C("열관류율2") & "'")(0)
' Wb.Append(vbTab & Dr("열관류율").ToString)
' Else '//입력값사용
' Wb.Append(vbTab & C(i).ToString)
' End If
' Else
' Wb.Append(vbTab & C(i).ToString)
' End If
'Else
' Wb.Append(vbTab & C(i).ToString)
'End If
Wb.Append(vbTab & C(i).ToString)
Next
Wb.Append(vbCrLf)
Next
End If
Next
Work_msg("")
My.Computer.FileSystem.WriteAllText(Me.tb_file.Text, Wb.ToString, False, System.Text.Encoding.Default)
If MsgBox("내보내기 완료" & vbCrLf & "파일을 확인하시겠습니까?", _
vbInformation Or vbOK, "확인") = MsgBoxResult.Ok Then
Process.Start(Me.tb_file.Text)
End If
Me.Close()
End Sub
Private Sub OutputXLS()
Dim NullCnt As Int16 = 0
Dim mytext1 As String = vbNullString
Dim xlApp As Excel.Application = New Excel.Application ' CreateObject("Excel.Application")
xlApp.DisplayAlerts = False
xlApp.Visible = False
xlApp.ReferenceStyle = Excel.XlReferenceStyle.xlA1
Dim xlBook As Excel.Workbook = xlApp.Workbooks.Add
Dim xlSheet1 As Excel.Worksheet = xlBook.Worksheets.Add
Work_msg("데이터수 확인중...")
'//전체데이터갯수를 가지고 배열을 정의한다.
Dim Rcnt As Integer = 0
Dim Ccnt As Integer = 0
Dim TabName As String = ""
For Each Lv As ListViewItem In Me.ListView1.Items
If Lv.Checked Then
TabName = Lv.SubItems(2).Text
Rcnt += DSET.Tables(TabName).Rows.Count
If DSET.Tables(TabName).Columns.Count > Ccnt Then Ccnt = DSET.Tables(TabName).Columns.Count
End If
Next
'//제목줄 5줄을포함
'If Ccnt < 5 Then Ccnt = 5
Work_msg("저장영역할당....")
Dim saRet(Rcnt + 50, 52) As String '//여유잇게 할당
For i As Integer = 0 To Rcnt + 10 - 1
For j As Integer = 0 To Ccnt + 5 - 1
saRet(i, j) = ""
Next
Next
Dim Rng As Excel.Range = xlSheet1.Range("A1") '//Offset으로사용할것이므로 0,0셀을 선택한다
Work_msg("기본정보를 내보냅니다....")
'//export title (제목내보내기)
'Rng.Offset(0, 0).Value = "#### ECO2 Data ####"
'Rng.Offset(1, 0).Value = ("#### Export Time : " & Format(Now, "yyyy-MM-dd HH:mm:ss") & " ####")
'Rng.Offset(2, 0).Value = ("#### Export by Eco2 ####")
saRet(0, 0) = "#### ECO2 Data ####"
saRet(1, 0) = ("#### Export Time : " & Format(Now, "yyyy-MM-dd HH:mm:ss") & " ####")
saRet(2, 0) = ("#### Export by Eco2 ####")
'//Export SUbTitle(부가적인정보내보내기)
'Rng.Offset(0, 4).Value = Rcnt + 4 '//줄수를 입력(나중에 불러올때 가져올범위를 대략 판단)
'Rng.Offset(0, 5).Value = Ccnt - 1 '//열수를 입력
saRet(0, 4) = Rcnt + 4 '//줄수를 입력(나중에 불러올때 가져올범위를 대략 판단)
saRet(0, 5) = Ccnt - 1 '//열수를 입력
Dim RowIndex As Integer = 5
Dim ColIndex As Integer = 0
For Each Lv As ListViewItem In Me.ListView1.Items
If Lv.Checked Then
TabName = Lv.SubItems(2).Text
Work_msg("내보내는중(" & TabName & ")")
'Set_ArrayData(Rng, RowIndex, DSET.Tables(TabName))
Set_ArrayData(saRet, RowIndex, DSET.Tables(TabName))
End If
Next
Try
My.Computer.FileSystem.DeleteFile(Me.tb_file.Text) '//대상파일이 존재하면 삭제해버림
Catch ex As Exception
End Try
xlSheet1.Range("A1:AZ" & CStr(Rcnt + 10).ToString).Value = saRet
'xlApp.Visible = True
xlBook.Saved = True
'xlSheet1.SaveAs(Me.tb_file.Text)
xlSheet1.SaveAs(Me.tb_file.Text, _
Excel.XlFileFormat.xlExcel7, _
Nothing, Nothing, Nothing, Nothing, _
Nothing, Nothing, Nothing, Nothing)
xlBook.Close()
xlApp.Application.Quit()
xlApp = Nothing
xlBook = Nothing
xlSheet1 = Nothing
Work_msg("")
If MsgBox("내보내기 완료" & vbCrLf & "파일을 확인하시겠습니까?", _
vbInformation Or vbOK, "확인") = MsgBoxResult.Ok Then
Process.Start(Me.tb_file.Text)
End If
Me.Close()
' Process.Start(Me.tb_file.Text)
'Shell(Me.tb_file.Text, AppWinStyle.NormalFocus)
End Sub
Private Sub Set_ArrayData(ByRef Rng As Excel.Range, ByRef RowIndex As Integer, ByVal Dt As DataTable)
RowIndex += 1
Rng.Offset(RowIndex, 0).Value = "table" '//테이블컬럼명을 내보낸다
'//Export ColumnData
For i As Integer = 0 To Dt.Columns.Count - 1
Rng.Offset(RowIndex, i + 1).Value2 = Dt.Columns(i).ColumnName.ToString
Next
'//Export RowData
For Each C As DataRow In Dt.Rows
RowIndex += 1 ': ReDim Preserve saRet(RowIndex, 255)
Rng.Offset(RowIndex, 0).Value = Dt.TableName
For i As Integer = 0 To Dt.Columns.Count - 1
Rng.Offset(RowIndex, i + 1).Value2 = C(i).ToString
Next
Next
End Sub
Private Sub Set_ArrayData(ByRef Rng(,) As String, ByRef RowIndex As Integer, ByVal Dt As DataTable)
RowIndex += 1
Rng(RowIndex, 0) = "table" '//테이블컬럼명을 내보낸다
'//Export ColumnData
For i As Integer = 0 To Dt.Columns.Count - 1
Rng(RowIndex, i + 1) = Dt.Columns(i).ColumnName.ToString
Next
'//Export RowData
For Each C As DataRow In Dt.Rows
RowIndex += 1 ': ReDim Preserve saRet(RowIndex, 255)
Rng(RowIndex, 0) = Dt.TableName
For i As Integer = 0 To Dt.Columns.Count - 1
Rng(RowIndex, i + 1) = C(i).ToString
Next
Next
End Sub
Private Sub Label3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs)
'//d요부분만 추가됫어요
Me.Close()
End Sub
Private Sub Panel1_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles Panel1.Paint
Dim a As Graphics = e.Graphics
Dim b As New Drawing2D.LinearGradientBrush(New Rectangle(0, 0, Me.Width, 500), Color.WhiteSmoke, _
Color.DarkGray, Drawing2D.LinearGradientMode.Vertical)
a.FillRectangle(b, 0, 0, Me.Width, Me.Height)
'a.FillRectangle(b, Me.Width, 0, Me.Width, 30)
b.Dispose()
a.Dispose()
End Sub
Private Sub PictureBox1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles PictureBox1.Click
Dim xlApp As Excel.Application
Dim xlBook As Excel.Workbook
Dim xlSheet1 As Excel.Worksheet
xlApp = New Excel.Application ' CreateObject("Excel.Application")
xlBook = xlApp.Workbooks.Open("c:\out.xls")
xlSheet1 = xlBook.Worksheets(1) '//첫번째 시트로고정
Dim Rng As Excel.Range = xlSheet1.Range("A1") '//Offset으로사용할것이므로 0,0셀을 선택한다
xlApp.Visible = True
MsgBox("가져오기완료", MsgBoxStyle.Information, "확인")
'//Dispos Excel Object
'xlBook.displayalerts = False
xlBook.Saved = True
xlBook.Close()
xlApp.Application.Quit()
xlApp = Nothing
xlBook = Nothing
xlSheet1 = Nothing
Me.Close()
' Process.Start(M
End Sub
End Class

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,378 @@
<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="Label1.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label2.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label3.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label4.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label19.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label22.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label23.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label24.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label25.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label26.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label27.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label28.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label29.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label30.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label31.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label32.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label33.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label34.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label18.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="bs.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>222, 17</value>
</metadata>
<metadata name="DS.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>286, 17</value>
</metadata>
<metadata name="bn.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>353, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="PictureBox5.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
Y29sb3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29s
b3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAACxSZWZlcmVuY2Ug
Vmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAsUmVmZXJlbmNlIFZpZXdp
bmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdmlldwAA
AAAAE6T+ABRfLgAQzxQAA+3MAAQTCwADXJ4AAAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAA
AAEAAAAAAAAAAAAAAAAAAAAAAAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAU
ABkAHgAjACgALQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACp
AK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIBOAE+AUUBTAFS
AVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHyAfoCAwIMAhQCHQImAi8COAJB
AksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+
A4oDlgOiA64DugPHA9MD4APsA/kEBgQTBCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUN
BRwFKwU6BUkFWAVnBXcFhgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1
BwcHGQcrBz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII5wj7CRAJJQk6
CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyILOQtRC2kLgAuYC7ALyAvh
C/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN3g34DhMOLg5JDmQOfw6bDrYO0g7u
DwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCbELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJk
EoQSoxLDEuMTAxMjE0MTYxODE6QTxRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJ
FmwWjxayFtYW+hcdF0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqe
GsUa7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7pHxMfPh9p
H5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMKIzgjZiOUI8Ij8CQfJE0kfCSr
JNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgNKD8ocSiiKNQpBik4KWspnSnQKgIqNSpo
KpsqzysCKzYraSudK9EsBSw5LG4soizXLQwtQS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCk
MNsxEjFKMYIxujHyMioyYzKbMtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdg
N5w31zgUOFA4jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6g
PuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTORRJFVUWaRd5GIkZn
RqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwqTHJMuk0CTUpNk03cTiVObk63
TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19TqlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeS
V+BYL1h9WMtZGllpWbhaB1pWWqZa9VtFW5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8
YU9homH1YklinGLwY0Njl2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3
a09rp2v/bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1KHWF
deF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5ifsJ/I3+Ef+WAR4Co
gQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4efiASIaYjOiTOJmYn+imSKyoswi5aL/Ixj
jMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4
mSSZkJn8mmia1ZtCm6+cHJyJnPedZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWp
phqmi6b9p26n4KhSqMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4
s660JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/er/1wHDA7MFn
wePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfLNsu2zDXMtc01zbXONs62zzfPuNA5
0LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls2fHadtr724DcBdyK3RDdlt4c3qLfKd+v
4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbnH+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M
8Fjw5fFy8f/yjPMZ86f0NPTC9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23////b
AEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMD
AwMDAwMDA//bAEMBAQEBAQEBAQEBAQICAQICAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD
AwMDAwMDAwMDAwMDAwMDA//AABEIAAwAPAMBEQACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQID
BAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR
8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp
6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUE
BAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeo
qaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/
AP1ZH7UPxEAA/wCEw8bnj/ob9f8A/k+v7U/1Nyj/AKF+G/8ABUP/AJE/llcSZlZf7dX/APBk/wDMX/hq
H4if9Df43/8ACv1//wCT6P8AU3Kf+hfhv/BUP/kQ/wBZcy/6Dq//AIMn/mH/AA1D8RP+hv8AG/8A4V+v
/wDyfR/qblP/AEL8N/4Kh/8AIh/rLmX/AEHV/wDwZP8AzD/hqH4if9Df43/8K/X/AP5Po/1Nyn/oX4b/
AMFQ/wDkQ/1lzL/oOr/+DJ/5h/w1D8RP+hv8b/8AhX6//wDJ9H+puU/9C/Df+Cof/Ih/rLmX/QdX/wDB
k/8AMT/hqH4if9Df43/8K/X/AP5Po/1Nyn/oX4b/AMFQ/wDkQ/1kzL/oOr/+DJ/5n2R+xz+234zt/iRp
nw+8a6vqXiDwZ4gs9baObXr+bUr/AMPajpmkX2tQ3FlqV2Zb57K7XT2t3tXkaJWkV4whVxJ+beJfAuU4
Th/FZ/hKEKOMw8qd+SKjGcZzjTs4q0bpyUlJK7s073VvuuBOLMxxGcYfJ8TWlVw1ZTtzu7hKMJTupPWz
UWnFu2qatrf9aP8AhfXgv+zv7U89/sfm+V5207N+M43fSv50P2w/kwr/AEFP42CgAoAKACgAoA9s/Z0/
s7/hcng3+1vP/s7Ov/avs2PP2f8ACL63t2buP9ZjP+zmvz7xU/5IPPf+4H/qRRPsvD//AJK7KP8AuL/6
ZqH7/wD/ABaT/hUfb7Ht/wBj7V9p8v8A9Cr+Oz+lz//Z
</value>
</data>
<data name="PictureBox4.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
Y29sb3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29s
b3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAACxSZWZlcmVuY2Ug
Vmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAsUmVmZXJlbmNlIFZpZXdp
bmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdmlldwAA
AAAAE6T+ABRfLgAQzxQAA+3MAAQTCwADXJ4AAAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAA
AAEAAAAAAAAAAAAAAAAAAAAAAAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAU
ABkAHgAjACgALQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACp
AK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIBOAE+AUUBTAFS
AVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHyAfoCAwIMAhQCHQImAi8COAJB
AksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+
A4oDlgOiA64DugPHA9MD4APsA/kEBgQTBCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUN
BRwFKwU6BUkFWAVnBXcFhgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1
BwcHGQcrBz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII5wj7CRAJJQk6
CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyILOQtRC2kLgAuYC7ALyAvh
C/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN3g34DhMOLg5JDmQOfw6bDrYO0g7u
DwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCbELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJk
EoQSoxLDEuMTAxMjE0MTYxODE6QTxRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJ
FmwWjxayFtYW+hcdF0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqe
GsUa7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7pHxMfPh9p
H5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMKIzgjZiOUI8Ij8CQfJE0kfCSr
JNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgNKD8ocSiiKNQpBik4KWspnSnQKgIqNSpo
KpsqzysCKzYraSudK9EsBSw5LG4soizXLQwtQS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCk
MNsxEjFKMYIxujHyMioyYzKbMtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdg
N5w31zgUOFA4jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6g
PuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTORRJFVUWaRd5GIkZn
RqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwqTHJMuk0CTUpNk03cTiVObk63
TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19TqlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeS
V+BYL1h9WMtZGllpWbhaB1pWWqZa9VtFW5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8
YU9homH1YklinGLwY0Njl2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3
a09rp2v/bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1KHWF
deF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5ifsJ/I3+Ef+WAR4Co
gQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4efiASIaYjOiTOJmYn+imSKyoswi5aL/Ixj
jMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4
mSSZkJn8mmia1ZtCm6+cHJyJnPedZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWp
phqmi6b9p26n4KhSqMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4
s660JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/er/1wHDA7MFn
wePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfLNsu2zDXMtc01zbXONs62zzfPuNA5
0LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls2fHadtr724DcBdyK3RDdlt4c3qLfKd+v
4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbnH+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M
8Fjw5fFy8f/yjPMZ86f0NPTC9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23////b
AEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMD
AwMDAwMDA//bAEMBAQEBAQEBAQEBAQICAQICAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD
AwMDAwMDAwMDAwMDAwMDA//AABEIAAwAPAMBEQACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQID
BAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR
8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp
6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUE
BAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeo
qaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/
AP1ZH7UPxEAA/wCEw8bnj/ob9f8A/k+v7U/1Nyj/AKF+G/8ABUP/AJE/llcSZlZf7dX/APBk/wDMX/hq
H4if9Df43/8ACv1//wCT6P8AU3Kf+hfhv/BUP/kQ/wBZcy/6Dq//AIMn/mH/AA1D8RP+hv8AG/8A4V+v
/wDyfR/qblP/AEL8N/4Kh/8AIh/rLmX/AEHV/wDwZP8AzD/hqH4if9Df43/8K/X/AP5Po/1Nyn/oX4b/
AMFQ/wDkQ/1lzL/oOr/+DJ/5h/w1D8RP+hv8b/8AhX6//wDJ9H+puU/9C/Df+Cof/Ih/rLmX/QdX/wDB
k/8AMT/hqH4if9Df43/8K/X/AP5Po/1Nyn/oX4b/AMFQ/wDkQ/1kzL/oOr/+DJ/5n2R+xz+234zt/iRp
nw+8a6vqXiDwZ4gs9baObXr+bUr/AMPajpmkX2tQ3FlqV2Zb57K7XT2t3tXkaJWkV4whVxJ+beJfAuU4
Th/FZ/hKEKOMw8qd+SKjGcZzjTs4q0bpyUlJK7s073VvuuBOLMxxGcYfJ8TWlVw1ZTtzu7hKMJTupPWz
UWnFu2qatrf9aP8AhfXgv+zv7U89/sfm+V5207N+M43fSv50P2w/kwr/AEFP42CgAoAKACgAoA9s/Z0/
s7/hcng3+1vP/s7Ov/avs2PP2f8ACL63t2buP9ZjP+zmvz7xU/5IPPf+4H/qRRPsvD//AJK7KP8AuL/6
ZqH7/wD/ABaT/hUfb7Ht/wBj7V9p8v8A9Cr+Oz+lz//Z
</value>
</data>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>46</value>
</metadata>
</root>

View File

@@ -0,0 +1,426 @@
Public Class Frm_Bunbae
Dim Init As Boolean = False
Dim SrcDrv As DataRowView
#Region "data Base 변경여부및 적용방법"
'''변경된내용을적용한다.
Public Overrides Function AcceptChanged() As Boolean
bs.EndEdit()
Dim BaseDS As DataSet = CType(bs.DataSource, DataSet)
Dim BaseDT As DataTable = BaseDS.Tables(bs.DataMember)
BaseDT.AcceptChanges()
Return True
End Function
'''변경된내용이있다면 취소한다.
Public Overrides Function RejectChanged() As Boolean
Dim BaseDS As DataSet = CType(bs.DataSource, DataSet)
Dim BaseDT As DataTable = BaseDS.Tables(bs.DataMember)
BaseDT.RejectChanges()
Return True
End Function
'''데이터에변형이있었는가?
Public Overrides Function HasChanged() As Boolean
bs.EndEdit()
Dim BaseDS As DataSet = CType(bs.DataSource, DataSet)
Dim BaseDT As DataTable = BaseDS.Tables(bs.DataMember)
Dim ChangeDT As DataTable = BaseDT.GetChanges
If Not ChangeDT Is Nothing Then Return True
Return False
End Function
'''기본데이터테이블을 반환합니다.
Public Function DT() As DataTable
Dim BaseDS As DataSet = CType(bs.DataSource, DataSet)
Return BaseDS.Tables(bs.DataMember)
End Function
#End Region
Private Sub MdiMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'MdiMain.Toggle_Menu_Color(MdiMain.E_MenuIdx.냉방분배시스템)
'CEnergy.ARINCLASS.SaveLoad_FrmSetting(Me)
'//프로필 관련
'//공유데이터셋에 연결한다.
Me.bs.DataSource = DSET
'//냉방분배
AddHandler DSET.tbl_bunbae.TableNewRow, AddressOf AddNewDataRow_bunbae
'//모든컨트롤의 cTrl_enter 를 추가합니다
BindProperty(CType(Me.SplitContainer1.Panel2.Controls, Control.ControlCollection))
'//콤보컨트롤 바인딩
Binding_Zone()
Me.bs.Filter = "code <> '0' and 그룹 = '" + Me.Parameter + "'"
Me.lb_grpname.Text = Me.Parameter
Me.Init = True
Try
Me.bs.Position = CEnergy.ARINCLASS.Read_LastPos_Frm(Me)
Catch ex As Exception
Me.bs.MoveFirst()
End Try
bs_CurrentChanged(sender, e)
End Sub
#Region "Control_Enter"
Private Sub BindProperty(ByVal Ctl As Control.ControlCollection)
For Each C As Control In Ctl
If C.Controls.Count > 1 Then
BindProperty(C.Controls)
Else
If C.GetType.ToString.ToUpper.IndexOf("MYTB") <> -1 Then
AddHandler CType(C, MyTb).KeyDown, AddressOf TextBOx_KeyDown
ElseIf C.GetType.ToString.ToUpper.IndexOf("MYCMB") <> -1 Then
AddHandler CType(C, MyCmb).KeyDown, AddressOf Cmd_KeyDown
End If
End If
Next
End Sub
Private Sub TextBOx_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)
If e.KeyCode = Keys.Enter AndAlso e.Control Then
Try
Dim Field As String = (CType(sender, MyTb).DataBindings.Item("text").BindingMemberInfo.BindingField)
For Each Dr As DataRow In DT.Select(Me.bs.Filter, "")
Dr(Field) = CType(sender, MyTb).Text
Next
Work_msg_timer("모든값이 변경되었습니다", 25)
Catch ex As Exception
End Try
End If
End Sub
Private Sub Cmd_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)
If e.KeyCode = Keys.Enter AndAlso e.Control Then
Try
Dim Field As String = (CType(sender, MyCmb).DataBindings.Item("selectedvalue").BindingMemberInfo.BindingField)
For Each Dr As DataRow In DT.Select(Me.bs.Filter, "")
Dr(Field) = CType(sender, MyCmb).SelectedValue
Next
Work_msg_timer("모든값이 변경되었습니다", 25)
Catch ex As Exception
End Try
End If
End Sub
#End Region
Private Sub 냉동기ComboBox_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles 냉동기ComboBox.KeyDown
If e.KeyCode = Keys.V And e.Control Then
e.Handled = True
e.SuppressKeyPress = False
'//클립보드붙여넣기
Dim CB() As String = My.Computer.Clipboard.GetText.Split(CChar(vbCrLf))
If CB.GetUpperBound(0) <> 25 Then
MsgBox("붙여넣기가 호환되는 데이터가 아닙니다.", MsgBoxStyle.Information, "확인")
Return
End If
For ii As Integer = 0 To CType(CB(0).Split(CChar(vbTab)), String()).GetUpperBound(0)
If Me.bs.Count = 0 OrElse ii > 0 Then
If Me.bs.Position >= 0 AndAlso Me.bs.Position < Me.bs.Count - 1 Then
Me.bs.Position += 1
Else
Me.bt_Add.PerformClick() '//한줄추가
End If
End If
Dim Cnt As Short = 0
For i As Integer = 0 To CB.GetUpperBound(0)
Select Case i
Case 0
CType(bs.Current, DataRowView)("설명") = CB(i).Split(CChar(vbTab))(ii).Trim
Case 0 + 2 '//사용프로필 앞에 두개를 숫자4자로변환
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.냉동기ComboBox.SelectedIndex = 0
Else
Me.냉동기ComboBox.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
' Me.냉동기ComboBox.Text = CStr(IIf(CB(i).Split(CChar(vbTab))(ii).Trim = "", "0", CB(i).Split(CChar(vbTab))(ii).Trim))
Case 3 + 2 '//공란
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.냉매방식ComboBox.SelectedIndex = 0
Else
Me.냉매방식ComboBox.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
' Me.냉매방식ComboBox.Text = CStr(IIf(CB(i).Split(CChar(vbTab))(ii).Trim = "", "0", CB(i).Split(CChar(vbTab))(ii).Trim))
Case 4 + 2
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.펌프운전제어유무ComboBox.SelectedIndex = 0
Else
Me.펌프운전제어유무ComboBox.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
'Me.펌프운전제어유무ComboBox.Text = CStr(IIf(CB(i).Split(CChar(vbTab))(ii).Trim = "", "0", CB(i).Split(CChar(vbTab))(ii).Trim))
Case 5 + 2
Me.급수온도NTb.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 6 + 2
Me.환수온도NTb.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 7 + 2
Me.설정점에서의온도차NTb.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 8 + 2
Me.냉매의비열NTb.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 9 + 2
Me.냉매의밀도NTb.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 10 + 2
Me.냉매의점도NTb.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 11 + 2
Me.배관의압력손실NTb.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 12 + 2
Me.개별저항비율NTb.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 13 + 2
Me.펌프동력NTb1.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 15 + 2
Me.공급범위의길이NTb.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 16 + 2
Me.공급범위의넓이NTb.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 17 + 2
Me.열층의수NTb.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 18 + 2
Me.층고NTb1.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 20 + 2
Me.생산기기압력손실NTb.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 21 + 2
Me.사용기기압력손실NTb.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 22 + 2
Me.제어밸브압력손실NTb.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End Select
Next
Next
Me.bs.EndEdit()
End If
End Sub
#Region "기본"
Private Sub MdiMain_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
CEnergy.ARINCLASS.SaveLoad_FrmSetting(Me, Me.bs.Position, True)
End Sub
Private Function GetMaxCode(ByVal dt As DataTable) As String
Try
Dim Dr As DataRow = dt.Select("", "code desc")(0)
Return Format(CInt(Dr("code")) + 1, "0000")
Catch ex As Exception
Return "0001"
End Try
End Function
Private Sub AddNewDataRow_bunbae(ByVal sender As Object, ByVal e As System.Data.DataTableNewRowEventArgs)
e.Row.Item("code") = GetMaxCode(DSET.tbl_bunbae)
End Sub
Private Sub ToolStripButton48_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_add.Click
If Not EndEdit(Me.bs) Then Return
Me.bs.AddNew()
INitRow(Me.Controls)
End Sub
Private Sub ToolStripButton49_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_Del.Click
Dbbase.DelCrow(Me.bs, True)
End Sub
Private Sub ToolStripButton51_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_cancel.Click
If Not EndEdit(Me.bs) Then Return
Data_Cancel(DSET.tbl_profile, Nothing)
End Sub
Private Sub Binding_Zone()
'//냉방분배시스템
Dim bs_냉동기ComboBox As New BindingSource(DSET, "tbl_nangbangkiki")
Me.냉동기ComboBox.DataSource = bs_냉동기ComboBox
bs_냉동기ComboBox.Sort = "code"
냉동기ComboBox.DisplayMember = "설명"
냉동기ComboBox.ValueMember = "code"
Me.냉동기ComboBox.DataBindings.Add("selectedvalue", Me.bs, "냉동기")
'AddHandler 냉동기ComboBox.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_냉매방식ComboBox As New BindingSource(DSET, "tbl_common")
bs_냉매방식ComboBox.Filter = "gubun='1055'"
bs_냉매방식ComboBox.Sort = "code"
Me.냉매방식ComboBox.DataSource = bs_냉매방식ComboBox
냉매방식ComboBox.DisplayMember = "name"
냉매방식ComboBox.ValueMember = "name"
Me.냉매방식ComboBox.DataBindings.Add("selectedvalue", Me.bs, "냉매방식")
'AddHandler 냉매방식ComboBox.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_펌프운전제어유무ComboBox As New BindingSource(DSET, "tbl_common")
bs_펌프운전제어유무ComboBox.Filter = "gubun='1056'"
bs_펌프운전제어유무ComboBox.Sort = "code"
Me.펌프운전제어유무ComboBox.DataSource = bs_펌프운전제어유무ComboBox
펌프운전제어유무ComboBox.DisplayMember = "name"
펌프운전제어유무ComboBox.ValueMember = "name"
Me.펌프운전제어유무ComboBox.DataBindings.Add("selectedvalue", Me.bs, "펌프운전제어유무")
'AddHandler 펌프운전제어유무ComboBox.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_cmb_그룹분배 As New BindingSource(DSET, "tbl_common")
bs_cmb_그룹분배.Sort = "code"
bs_cmb_그룹분배.Filter = "gubun='1201'"
Me.cmb_그룹_분배.DataSource = bs_cmb_그룹분배
Me.cmb_그룹_분배.DisplayMember = "name"
Me.cmb_그룹_분배.ValueMember = "name"
Me.cmb_그룹_분배.DataBindings.Add("selectedvalue", Me.bs, "그룹")
'AddHandler 조명방식ComboBox.KeyDown, AddressOf Cmb_DeleteVal
End Sub
Private Sub Frm_V20091231_Zone_MouseWheel(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseWheel
If e.Delta < 0 Then
If Me.bs.Position < Me.bs.Count Then Me.bs.Position += 1
Else
If Me.bs.Position > 0 Then Me.bs.Position -= 1
End If
Me.Validate()
My.Application.DoEvents()
End Sub
#End Region
Private Sub bt_Del_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles bt_Del.MouseDown
If e.Button = Windows.Forms.MouseButtons.Right Then
If MsgBox("전체삭제를 하시겠습니까?", MsgBoxStyle.Information Or MsgBoxStyle.OkCancel, "확인") = MsgBoxResult.Ok Then
Dim dR() As DataRow = DSET.tbl_bunbae.Select(Me.bs.Filter, "")
For i As Integer = dR.GetUpperBound(0) To 0 Step -1
dR(i).Delete()
Next
DSET.tbl_bunbae.AcceptChanges()
End If
End If
End Sub
Private Sub 냉매방식ComboBox_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 냉매방식ComboBox.SelectedIndexChanged
Try
Select Case Me.냉매방식ComboBox.Text
Case ""
Me.냉매의비열NTb.Text = "4.18"
Me.냉매의밀도NTb.Text = "1000"
Me.냉매의점도NTb.Text = "1"
Case "40%글리콜"
Me.냉매의비열NTb.Text = "3.5"
Me.냉매의밀도NTb.Text = "1070"
Me.냉매의점도NTb.Text = "4.4"
Case "40%글루콜" '디비에 글루콜로 명기되어 임시로 쓰임 디비 수정시 삭제 필요
Me.냉매의비열NTb.Text = "3.5"
Me.냉매의밀도NTb.Text = "1070"
Me.냉매의점도NTb.Text = "4.4"
Case Else
Me.냉매의비열NTb.Text = ""
Me.냉매의밀도NTb.Text = ""
Me.냉매의점도NTb.Text = ""
End Select
bs.EndEdit()
Catch ex As Exception
End Try
End Sub
Private Sub 급수온도NTb_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles 급수온도NTb.TextChanged
Try
Me.설정점에서의온도차NTb.Text = TOST(TOSG(Me.환수온도NTb.Text) - TOSG(Me.급수온도NTb.Text))
Catch ex As Exception
End Try
End Sub
Private Sub 환수온도NTb_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles 환수온도NTb.TextChanged
Try
Me.설정점에서의온도차NTb.Text = TOST(TOSG(Me.환수온도NTb.Text) - TOSG(Me.급수온도NTb.Text))
Catch ex As Exception
End Try
End Sub
Private Sub dv_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles dv.MouseUp
If Prj.UserAuthType = "ADMIN" OrElse Prj.UserAuthType = "BOTH" OrElse Prj.UserAuthType = "BOTH2" OrElse Prj.UserAuthType = "BOTH1" Then '//2011.03.08 추가
If e.Button = Windows.Forms.MouseButtons.Right Then
Dim Frm_FilterA As New Frm_Filter
Frm_FilterA.ColumTitle = getColCaption(Me.DT)
Frm_FilterA.ColumList = getColName(Me.DT)
Frm_FilterA.Colorlist = "냉동기"
Frm_FilterA.Numfield = "" '//20100618 Color 리스트처럼 , 구분해서 필드들을 모두 넣으세요.
Frm_FilterA.Default_Filter = "code <> '0'"
If Frm_FilterA.ShowDialog <> Windows.Forms.DialogResult.OK Then Return '//창떳을떄 확인아ㅣ고 취소눌르면 다음을 수행하지않는다는거에요.
Dim Filter As String = Frm_FilterA.tb_filter.Text '//값은 아까 그 텍박에 잇구요.
Try
Me.bs.Filter = Filter
'//바꾸기값이 있으면 변경 20100618
If Frm_FilterA.cmb_fieldc.SelectedIndex >= 0 AndAlso Frm_FilterA.cmb_fieldc.Text.ToLower <> "code" AndAlso _
Frm_FilterA.tb_valuec.Text <> "" Then
Dim Drow() As DataRow = Me.DT.Select(Filter)
For Each Dr As DataRow In Drow
Dr(Frm_FilterA.cmb_fieldc.Text) = Frm_FilterA.tb_valuec.Text
Next
MsgBox("바꾸기 완료", MsgBoxStyle.Information, "확인")
End If
Catch ex As Exception
Me.bs.Filter = ""
End Try
End If
End If
End Sub
Private Sub dv_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles dv.KeyDown
'//여기보시면 alt+d 누르면 한줄을 경고없이(falsE)삭제하도록 햇어요.. 사실원래 밋alt +d 인데.. ㅎㅎ 잘못해서 ctrl 됫다는
If Prj.UserAuthType = "ADMIN" OrElse Prj.UserAuthType = "BOTH" OrElse Prj.UserAuthType = "BOTH2" OrElse Prj.UserAuthType = "BOTH1" Then '//2011.03.08 추가
Select Case e.KeyCode
Case Keys.D
If e.Alt Then
Dbbase.DelCrow(Me.bs, False)
End If
Case Keys.C
If e.Control Then
Me.SrcDrv = Me.bs.Current
If Me.SrcDrv Is Nothing Then
MsgBox("저장할 ROW가 없습니다", MsgBoxStyle.Information, "확인")
Return
End If
' My.Computer.Clipboard.SetData("ZDATA", Drv)
End If
Case Keys.V
If e.Control Then
If Me.SrcDrv Is Nothing Then Return
Me.bt_add.PerformClick() '//신규추가
Dim NewDrv As DataRowView = Me.bs.Current
For Each C As DataColumn In Me.DT.Columns
If C.ColumnName.ToUpper = "CODE" Then
ElseIf C.ColumnName.ToUpper = "설명" Then
NewDrv(C.ColumnName) = SrcDrv(C.ColumnName) & "#1"
Else
NewDrv(C.ColumnName) = SrcDrv(C.ColumnName)
End If
Next
Me.bs.EndEdit()
bs.MoveLast()
End If
End Select
End If
End Sub
Private Sub bs_CurrentChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bs.CurrentChanged
If Not Init Then Return
Me.bs.EndEdit()
End Sub
Private Sub SplitContainer1_Panel2_Paint(sender As System.Object, e As System.Windows.Forms.PaintEventArgs) Handles SplitContainer1.Panel2.Paint
End Sub
End Class

View File

@@ -0,0 +1,970 @@
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
Partial Class Frm_NaengBang
Inherits CForm
'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()
Me.components = New System.ComponentModel.Container()
Dim Label215 As System.Windows.Forms.Label
Dim Label216 As System.Windows.Forms.Label
Dim Label1 As System.Windows.Forms.Label
Dim Label2 As System.Windows.Forms.Label
Dim Label3 As System.Windows.Forms.Label
Dim Label4 As System.Windows.Forms.Label
Dim Label5 As System.Windows.Forms.Label
Dim Label6 As System.Windows.Forms.Label
Dim Label7 As System.Windows.Forms.Label
Dim Label8 As System.Windows.Forms.Label
Dim 냉동기종류Label As System.Windows.Forms.Label
Dim Label10 As System.Windows.Forms.Label
Dim Label11 As System.Windows.Forms.Label
Dim Label12 As System.Windows.Forms.Label
Dim Label13 As System.Windows.Forms.Label
Dim Label14 As System.Windows.Forms.Label
Dim Label15 As System.Windows.Forms.Label
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(Frm_NaengBang))
Me.GroupBox18 = New System.Windows.Forms.GroupBox()
Me.Label17 = New System.Windows.Forms.Label()
Me.cmb_신재생 = New Eco2Ar.MyCmb()
Me.신재생연결여부ComboBox1 = New Eco2Ar.MyCmb()
Me.tb_zone_cnt = New System.Windows.Forms.TextBox()
Me.Label47 = New System.Windows.Forms.Label()
Me.PictureBox2 = New System.Windows.Forms.PictureBox()
Me.GroupBox11 = New System.Windows.Forms.GroupBox()
Me.Label9 = New System.Windows.Forms.Label()
Me.열성능비NTb = New Eco2Ar.MyTb()
Me.bs = New System.Windows.Forms.BindingSource(Me.components)
Me.DS = New Eco2Ar.DS()
Me.냉동기용량NTb = New Eco2Ar.MyTb()
Me.냉동기방식ComboBox = New Eco2Ar.MyCmb()
Me.PictureBox1 = New System.Windows.Forms.PictureBox()
Me.Label214 = New System.Windows.Forms.Label()
Me.GroupBox19 = New System.Windows.Forms.GroupBox()
Me.cmb_열생산연결방식 = New Eco2Ar.MyCmb()
Me.cmb_사용연료 = New Eco2Ar.MyCmb()
Me.온수열생산기기ComboBox = New Eco2Ar.MyCmb()
Me.Label213 = New System.Windows.Forms.Label()
Me.Label212 = New System.Windows.Forms.Label()
Me.Label210 = New System.Windows.Forms.Label()
Me.압축기제어방식ComboBox = New Eco2Ar.MyCmb()
Me.냉동기압축방식ComboBox = New Eco2Ar.MyCmb()
Me.냉동기종류ComboBox = New Eco2Ar.MyCmb()
Me.냉동기설비시스템ComboBox = New Eco2Ar.MyCmb()
Me.제어방식ComboBox = New Eco2Ar.MyCmb()
Me.PictureBox3 = New System.Windows.Forms.PictureBox()
Me.재냉각기GroupBox = New System.Windows.Forms.GroupBox()
Me.증발식건식냉각기ComboBox = New Eco2Ar.MyCmb()
Me.증발식냉각기ComboBox = New Eco2Ar.MyCmb()
Me.보조방음기유무ComboBox = New Eco2Ar.MyCmb()
Me.냉각수토출온도NTb = New Eco2Ar.MyTb()
Me.Label18 = New System.Windows.Forms.Label()
Me.PictureBox5 = New System.Windows.Forms.PictureBox()
Me.SplitContainer1 = New System.Windows.Forms.SplitContainer()
Me.dv = New CEnergy.arindv()
Me.DataGridViewTextBoxColumn1 = New System.Windows.Forms.DataGridViewTextBoxColumn()
Me.lb_grpname = New System.Windows.Forms.Label()
Me.bn = New System.Windows.Forms.BindingNavigator(Me.components)
Me.lbl_count = New System.Windows.Forms.ToolStripLabel()
Me.bt_add = New System.Windows.Forms.ToolStripButton()
Me.bt_Del = New System.Windows.Forms.ToolStripButton()
Me.bt_cancel = New System.Windows.Forms.ToolStripButton()
Me.ToolStripSeparator1 = New System.Windows.Forms.ToolStripSeparator()
Me.lbl_pos = New System.Windows.Forms.ToolStripLabel()
Me.Label16 = New System.Windows.Forms.Label()
Me.PictureBox4 = New System.Windows.Forms.PictureBox()
Label215 = New System.Windows.Forms.Label()
Label216 = New System.Windows.Forms.Label()
Label1 = New System.Windows.Forms.Label()
Label2 = New System.Windows.Forms.Label()
Label3 = New System.Windows.Forms.Label()
Label4 = New System.Windows.Forms.Label()
Label5 = New System.Windows.Forms.Label()
Label6 = New System.Windows.Forms.Label()
Label7 = New System.Windows.Forms.Label()
Label8 = New System.Windows.Forms.Label()
냉동기종류Label = New System.Windows.Forms.Label()
Label10 = New System.Windows.Forms.Label()
Label11 = New System.Windows.Forms.Label()
Label12 = New System.Windows.Forms.Label()
Label13 = New System.Windows.Forms.Label()
Label14 = New System.Windows.Forms.Label()
Label15 = New System.Windows.Forms.Label()
Me.GroupBox18.SuspendLayout()
CType(Me.PictureBox2, System.ComponentModel.ISupportInitialize).BeginInit()
Me.GroupBox11.SuspendLayout()
CType(Me.bs, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.DS, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).BeginInit()
Me.GroupBox19.SuspendLayout()
CType(Me.PictureBox3, System.ComponentModel.ISupportInitialize).BeginInit()
Me.재냉각기GroupBox.SuspendLayout()
CType(Me.PictureBox5, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainer1.Panel1.SuspendLayout()
Me.SplitContainer1.Panel2.SuspendLayout()
Me.SplitContainer1.SuspendLayout()
CType(Me.dv, System.ComponentModel.ISupportInitialize).BeginInit()
CType(Me.bn, System.ComponentModel.ISupportInitialize).BeginInit()
Me.bn.SuspendLayout()
CType(Me.PictureBox4, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SuspendLayout()
'
'Label215
'
Label215.AutoSize = True
Label215.BackColor = System.Drawing.Color.FromArgb(CType(CType(219, Byte), Integer), CType(CType(221, Byte), Integer), CType(CType(223, Byte), Integer))
Label215.ForeColor = System.Drawing.SystemColors.ControlDarkDark
Label215.Location = New System.Drawing.Point(6, 33)
Label215.Name = "Label215"
Label215.Size = New System.Drawing.Size(134, 14)
Label215.TabIndex = 0
Label215.Text = "-신재생 시스템 연결 여부:"
'
'Label216
'
Label216.AutoSize = True
Label216.BackColor = System.Drawing.Color.FromArgb(CType(CType(219, Byte), Integer), CType(CType(221, Byte), Integer), CType(CType(223, Byte), Integer))
Label216.ForeColor = System.Drawing.SystemColors.ControlDarkDark
Label216.Location = New System.Drawing.Point(6, 57)
Label216.Name = "Label216"
Label216.Size = New System.Drawing.Size(84, 14)
Label216.TabIndex = 2
Label216.Text = "-연결된 시스템:"
'
'Label1
'
Label1.AutoSize = True
Label1.BackColor = System.Drawing.Color.FromArgb(CType(CType(219, Byte), Integer), CType(CType(221, Byte), Integer), CType(CType(223, Byte), Integer))
Label1.ForeColor = System.Drawing.SystemColors.ControlDarkDark
Label1.Location = New System.Drawing.Point(8, 32)
Label1.Name = "Label1"
Label1.Size = New System.Drawing.Size(69, 14)
Label1.TabIndex = 0
Label1.Text = "냉동기 방식:"
'
'Label2
'
Label2.AutoSize = True
Label2.BackColor = System.Drawing.Color.FromArgb(CType(CType(219, Byte), Integer), CType(CType(221, Byte), Integer), CType(CType(223, Byte), Integer))
Label2.ForeColor = System.Drawing.SystemColors.ControlDarkDark
Label2.Location = New System.Drawing.Point(8, 57)
Label2.Name = "Label2"
Label2.Size = New System.Drawing.Size(109, 14)
Label2.TabIndex = 2
Label2.Text = "냉동기 총 용량[kW]:"
'
'Label3
'
Label3.AutoSize = True
Label3.BackColor = System.Drawing.Color.FromArgb(CType(CType(219, Byte), Integer), CType(CType(221, Byte), Integer), CType(CType(223, Byte), Integer))
Label3.ForeColor = System.Drawing.SystemColors.ControlDarkDark
Label3.Location = New System.Drawing.Point(8, 80)
Label3.Name = "Label3"
Label3.Size = New System.Drawing.Size(182, 14)
Label3.TabIndex = 4
Label3.Text = "정격냉열성능지수; 열성능비(COP):"
'
'Label4
'
Label4.AutoSize = True
Label4.BackColor = System.Drawing.Color.FromArgb(CType(CType(243, Byte), Integer), CType(CType(244, Byte), Integer), CType(CType(246, Byte), Integer))
Label4.ForeColor = System.Drawing.SystemColors.ControlDarkDark
Label4.Location = New System.Drawing.Point(7, 298)
Label4.Name = "Label4"
Label4.Size = New System.Drawing.Size(76, 14)
Label4.TabIndex = 159
Label4.Text = "2. 열생산기기"
'
'Label5
'
Label5.AutoSize = True
Label5.BackColor = System.Drawing.Color.FromArgb(CType(CType(243, Byte), Integer), CType(CType(244, Byte), Integer), CType(CType(246, Byte), Integer))
Label5.ForeColor = System.Drawing.SystemColors.ControlDarkDark
Label5.Location = New System.Drawing.Point(7, 110)
Label5.Name = "Label5"
Label5.Size = New System.Drawing.Size(162, 14)
Label5.TabIndex = 150
Label5.Text = "왕복동/스크롤압축기 제어방식:"
'
'Label6
'
Label6.AutoSize = True
Label6.BackColor = System.Drawing.Color.FromArgb(CType(CType(243, Byte), Integer), CType(CType(244, Byte), Integer), CType(CType(246, Byte), Integer))
Label6.ForeColor = System.Drawing.SystemColors.ControlDarkDark
Label6.Location = New System.Drawing.Point(7, 88)
Label6.Name = "Label6"
Label6.Size = New System.Drawing.Size(91, 14)
Label6.TabIndex = 148
Label6.Text = "냉동기 압축방식:"
'
'Label7
'
Label7.AutoSize = True
Label7.BackColor = System.Drawing.Color.FromArgb(CType(CType(243, Byte), Integer), CType(CType(244, Byte), Integer), CType(CType(246, Byte), Integer))
Label7.ForeColor = System.Drawing.SystemColors.ControlDarkDark
Label7.Location = New System.Drawing.Point(7, 166)
Label7.Name = "Label7"
Label7.Size = New System.Drawing.Size(102, 14)
Label7.TabIndex = 152
Label7.Text = "냉동기 설비시스템:"
'
'Label8
'
Label8.AutoSize = True
Label8.BackColor = System.Drawing.Color.FromArgb(CType(CType(243, Byte), Integer), CType(CType(244, Byte), Integer), CType(CType(246, Byte), Integer))
Label8.ForeColor = System.Drawing.SystemColors.ControlDarkDark
Label8.Location = New System.Drawing.Point(7, 191)
Label8.Name = "Label8"
Label8.Size = New System.Drawing.Size(55, 14)
Label8.TabIndex = 154
Label8.Text = "제어방식:"
'
'냉동기종류Label
'
냉동기종류Label.AutoSize = True
냉동기종류Label.BackColor = System.Drawing.Color.FromArgb(CType(CType(243, Byte), Integer), CType(CType(244, Byte), Integer), CType(CType(246, Byte), Integer))
냉동기종류Label.ForeColor = System.Drawing.SystemColors.ControlDarkDark
냉동기종류Label.Location = New System.Drawing.Point(6, 40)
냉동기종류Label.Name = "냉동기종류Label"
냉동기종류Label.Size = New System.Drawing.Size(116, 14)
냉동기종류Label.TabIndex = 146
냉동기종류Label.Text = "*압축식 냉동기 종류:"
'
'Label10
'
Label10.AutoSize = True
Label10.BackColor = System.Drawing.Color.FromArgb(CType(CType(243, Byte), Integer), CType(CType(244, Byte), Integer), CType(CType(246, Byte), Integer))
Label10.ForeColor = System.Drawing.SystemColors.ControlDarkDark
Label10.Location = New System.Drawing.Point(6, 39)
Label10.Name = "Label10"
Label10.Size = New System.Drawing.Size(127, 14)
Label10.TabIndex = 22
Label10.Text = "증발식 또는 건식냉각기:"
'
'Label11
'
Label11.AutoSize = True
Label11.BackColor = System.Drawing.Color.FromArgb(CType(CType(243, Byte), Integer), CType(CType(244, Byte), Integer), CType(CType(246, Byte), Integer))
Label11.ForeColor = System.Drawing.SystemColors.ControlDarkDark
Label11.Location = New System.Drawing.Point(6, 112)
Label11.Name = "Label11"
Label11.Size = New System.Drawing.Size(110, 14)
Label11.TabIndex = 28
Label11.Text = "냉각탑 출구 온도[C]:"
'
'Label12
'
Label12.AutoSize = True
Label12.BackColor = System.Drawing.Color.FromArgb(CType(CType(243, Byte), Integer), CType(CType(244, Byte), Integer), CType(CType(246, Byte), Integer))
Label12.ForeColor = System.Drawing.SystemColors.ControlDarkDark
Label12.Location = New System.Drawing.Point(6, 87)
Label12.Name = "Label12"
Label12.Size = New System.Drawing.Size(149, 14)
Label12.TabIndex = 26
Label12.Text = "재냉각기의 보조방음기 유무:"
'
'Label13
'
Label13.AutoSize = True
Label13.BackColor = System.Drawing.Color.FromArgb(CType(CType(243, Byte), Integer), CType(CType(244, Byte), Integer), CType(CType(246, Byte), Integer))
Label13.ForeColor = System.Drawing.SystemColors.ControlDarkDark
Label13.Location = New System.Drawing.Point(6, 63)
Label13.Name = "Label13"
Label13.Size = New System.Drawing.Size(180, 14)
Label13.TabIndex = 24
Label13.Text = "증발식냉각기(폐쇄형,개방형 순환):"
'
'Label14
'
Label14.AutoSize = True
Label14.BackColor = System.Drawing.Color.FromArgb(CType(CType(243, Byte), Integer), CType(CType(244, Byte), Integer), CType(CType(246, Byte), Integer))
Label14.ForeColor = System.Drawing.SystemColors.ControlDarkDark
Label14.Location = New System.Drawing.Point(7, 272)
Label14.Name = "Label14"
Label14.Size = New System.Drawing.Size(65, 14)
Label14.TabIndex = 163
Label14.Text = "1. 사용연료"
'
'Label15
'
Label15.AutoSize = True
Label15.BackColor = System.Drawing.Color.FromArgb(CType(CType(243, Byte), Integer), CType(CType(244, Byte), Integer), CType(CType(246, Byte), Integer))
Label15.ForeColor = System.Drawing.SystemColors.ControlDarkDark
Label15.Location = New System.Drawing.Point(7, 246)
Label15.Name = "Label15"
Label15.Size = New System.Drawing.Size(101, 14)
Label15.TabIndex = 165
Label15.Text = "0. 열생산 연결방식"
'
'GroupBox18
'
Me.GroupBox18.BackColor = System.Drawing.Color.White
Me.GroupBox18.Controls.Add(Me.Label17)
Me.GroupBox18.Controls.Add(Me.cmb_신재생)
Me.GroupBox18.Controls.Add(Me.신재생연결여부ComboBox1)
Me.GroupBox18.Controls.Add(Label216)
Me.GroupBox18.Controls.Add(Label215)
Me.GroupBox18.Controls.Add(Me.tb_zone_cnt)
Me.GroupBox18.Controls.Add(Me.Label47)
Me.GroupBox18.Controls.Add(Me.PictureBox2)
Me.GroupBox18.Location = New System.Drawing.Point(297, 41)
Me.GroupBox18.Name = "GroupBox18"
Me.GroupBox18.Size = New System.Drawing.Size(275, 108)
Me.GroupBox18.TabIndex = 1
Me.GroupBox18.TabStop = False
'
'Label17
'
Me.Label17.AutoSize = True
Me.Label17.BackColor = System.Drawing.Color.FromArgb(CType(CType(219, Byte), Integer), CType(CType(221, Byte), Integer), CType(CType(223, Byte), Integer))
Me.Label17.Location = New System.Drawing.Point(2, 13)
Me.Label17.Name = "Label17"
Me.Label17.Size = New System.Drawing.Size(181, 14)
Me.Label17.TabIndex = 170
Me.Label17.Text = "[신재생 및 열병합 시스템 연결여부]"
'
'cmb_신재생
'
Me.cmb_신재생.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.cmb_신재생.FormattingEnabled = True
Me.cmb_신재생.Location = New System.Drawing.Point(186, 50)
Me.cmb_신재생.Name = "cmb_신재생"
Me.cmb_신재생.NectControl = Nothing
Me.cmb_신재생.Size = New System.Drawing.Size(84, 22)
Me.cmb_신재생.TabIndex = 3
'
'신재생연결여부ComboBox1
'
Me.신재생연결여부ComboBox1.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.신재생연결여부ComboBox1.FormattingEnabled = True
Me.신재생연결여부ComboBox1.Location = New System.Drawing.Point(186, 24)
Me.신재생연결여부ComboBox1.Name = "신재생연결여부ComboBox1"
Me.신재생연결여부ComboBox1.NectControl = Nothing
Me.신재생연결여부ComboBox1.Size = New System.Drawing.Size(84, 22)
Me.신재생연결여부ComboBox1.TabIndex = 1
'
'tb_zone_cnt
'
Me.tb_zone_cnt.BackColor = System.Drawing.SystemColors.GrayText
Me.tb_zone_cnt.ForeColor = System.Drawing.Color.White
Me.tb_zone_cnt.Location = New System.Drawing.Point(186, 75)
Me.tb_zone_cnt.Name = "tb_zone_cnt"
Me.tb_zone_cnt.Size = New System.Drawing.Size(84, 21)
Me.tb_zone_cnt.TabIndex = 1
Me.tb_zone_cnt.Text = "0"
Me.tb_zone_cnt.TextAlign = System.Windows.Forms.HorizontalAlignment.Center
'
'Label47
'
Me.Label47.AutoSize = True
Me.Label47.BackColor = System.Drawing.Color.FromArgb(CType(CType(219, Byte), Integer), CType(CType(221, Byte), Integer), CType(CType(223, Byte), Integer))
Me.Label47.ForeColor = System.Drawing.Color.DarkCyan
Me.Label47.Location = New System.Drawing.Point(6, 78)
Me.Label47.Name = "Label47"
Me.Label47.Size = New System.Drawing.Size(184, 14)
Me.Label47.TabIndex = 0
Me.Label47.Text = "-냉방생산기기로 적용된 입력존 수 : "
Me.Label47.TextAlign = System.Drawing.ContentAlignment.MiddleRight
'
'PictureBox2
'
Me.PictureBox2.BackColor = System.Drawing.Color.FromArgb(CType(CType(219, Byte), Integer), CType(CType(221, Byte), Integer), CType(CType(223, Byte), Integer))
Me.PictureBox2.Location = New System.Drawing.Point(1, 9)
Me.PictureBox2.Name = "PictureBox2"
Me.PictureBox2.Size = New System.Drawing.Size(272, 95)
Me.PictureBox2.TabIndex = 169
Me.PictureBox2.TabStop = False
'
'GroupBox11
'
Me.GroupBox11.BackColor = System.Drawing.Color.White
Me.GroupBox11.Controls.Add(Me.Label9)
Me.GroupBox11.Controls.Add(Label1)
Me.GroupBox11.Controls.Add(Me.열성능비NTb)
Me.GroupBox11.Controls.Add(Label2)
Me.GroupBox11.Controls.Add(Me.냉동기용량NTb)
Me.GroupBox11.Controls.Add(Label3)
Me.GroupBox11.Controls.Add(Me.냉동기방식ComboBox)
Me.GroupBox11.Controls.Add(Me.PictureBox1)
Me.GroupBox11.Location = New System.Drawing.Point(6, 41)
Me.GroupBox11.Name = "GroupBox11"
Me.GroupBox11.Size = New System.Drawing.Size(290, 108)
Me.GroupBox11.TabIndex = 0
Me.GroupBox11.TabStop = False
'
'Label9
'
Me.Label9.AutoSize = True
Me.Label9.BackColor = System.Drawing.Color.FromArgb(CType(CType(219, Byte), Integer), CType(CType(221, Byte), Integer), CType(CType(223, Byte), Integer))
Me.Label9.Location = New System.Drawing.Point(6, 13)
Me.Label9.Name = "Label9"
Me.Label9.Size = New System.Drawing.Size(70, 14)
Me.Label9.TabIndex = 170
Me.Label9.Text = "[일반데이터]"
'
'열성능비NTb
'
Me.열성능비NTb.DataBindings.Add(New System.Windows.Forms.Binding("Text", Me.bs, "열성능비", True))
Me.열성능비NTb.Location = New System.Drawing.Point(197, 77)
Me.열성능비NTb.Name = "열성능비NTb"
Me.열성능비NTb.NectControl = Nothing
Me.열성능비NTb.Size = New System.Drawing.Size(84, 21)
Me.열성능비NTb.TabIndex = 5
Me.열성능비NTb.TextAlign = System.Windows.Forms.HorizontalAlignment.Right
Me.열성능비NTb.TextFormat = Eco2Ar.MyTb.ETFormat.Normal
'
'bs
'
Me.bs.DataMember = "tbl_nangbangkiki"
Me.bs.DataSource = Me.DS
Me.bs.Filter = "code <> '0'"
'
'DS
'
Me.DS.DataSetName = "DS"
Me.DS.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema
'
'냉동기용량NTb
'
Me.냉동기용량NTb.DataBindings.Add(New System.Windows.Forms.Binding("Text", Me.bs, "냉동기용량", True))
Me.냉동기용량NTb.Location = New System.Drawing.Point(197, 53)
Me.냉동기용량NTb.Name = "냉동기용량NTb"
Me.냉동기용량NTb.NectControl = Nothing
Me.냉동기용량NTb.Size = New System.Drawing.Size(84, 21)
Me.냉동기용량NTb.TabIndex = 3
Me.냉동기용량NTb.TextAlign = System.Windows.Forms.HorizontalAlignment.Right
Me.냉동기용량NTb.TextFormat = Eco2Ar.MyTb.ETFormat.Normal
'
'냉동기방식ComboBox
'
Me.냉동기방식ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.냉동기방식ComboBox.FormattingEnabled = True
Me.냉동기방식ComboBox.Location = New System.Drawing.Point(197, 29)
Me.냉동기방식ComboBox.Name = "냉동기방식ComboBox"
Me.냉동기방식ComboBox.NectControl = Nothing
Me.냉동기방식ComboBox.Size = New System.Drawing.Size(84, 22)
Me.냉동기방식ComboBox.TabIndex = 1
'
'PictureBox1
'
Me.PictureBox1.BackColor = System.Drawing.Color.FromArgb(CType(CType(219, Byte), Integer), CType(CType(221, Byte), Integer), CType(CType(223, Byte), Integer))
Me.PictureBox1.Location = New System.Drawing.Point(2, 9)
Me.PictureBox1.Name = "PictureBox1"
Me.PictureBox1.Size = New System.Drawing.Size(286, 95)
Me.PictureBox1.TabIndex = 169
Me.PictureBox1.TabStop = False
'
'Label214
'
Me.Label214.AutoSize = True
Me.Label214.BackColor = System.Drawing.Color.FromArgb(CType(CType(243, Byte), Integer), CType(CType(244, Byte), Integer), CType(CType(246, Byte), Integer))
Me.Label214.ForeColor = System.Drawing.Color.Black
Me.Label214.Location = New System.Drawing.Point(11, 222)
Me.Label214.Name = "Label214"
Me.Label214.Size = New System.Drawing.Size(84, 14)
Me.Label214.TabIndex = 161
Me.Label214.Text = "[흡수식 냉동기]"
'
'GroupBox19
'
Me.GroupBox19.BackColor = System.Drawing.Color.White
Me.GroupBox19.Controls.Add(Label15)
Me.GroupBox19.Controls.Add(Me.cmb_열생산연결방식)
Me.GroupBox19.Controls.Add(Label14)
Me.GroupBox19.Controls.Add(Me.cmb_사용연료)
Me.GroupBox19.Controls.Add(Label4)
Me.GroupBox19.Controls.Add(Me.Label214)
Me.GroupBox19.Controls.Add(Me.온수열생산기기ComboBox)
Me.GroupBox19.Controls.Add(Me.Label213)
Me.GroupBox19.Controls.Add(Label5)
Me.GroupBox19.Controls.Add(Label6)
Me.GroupBox19.Controls.Add(Me.Label212)
Me.GroupBox19.Controls.Add(Label7)
Me.GroupBox19.Controls.Add(Me.Label210)
Me.GroupBox19.Controls.Add(Me.압축기제어방식ComboBox)
Me.GroupBox19.Controls.Add(Label8)
Me.GroupBox19.Controls.Add(냉동기종류Label)
Me.GroupBox19.Controls.Add(Me.냉동기압축방식ComboBox)
Me.GroupBox19.Controls.Add(Me.냉동기종류ComboBox)
Me.GroupBox19.Controls.Add(Me.냉동기설비시스템ComboBox)
Me.GroupBox19.Controls.Add(Me.제어방식ComboBox)
Me.GroupBox19.Controls.Add(Me.PictureBox3)
Me.GroupBox19.Location = New System.Drawing.Point(6, 149)
Me.GroupBox19.Name = "GroupBox19"
Me.GroupBox19.Size = New System.Drawing.Size(290, 358)
Me.GroupBox19.TabIndex = 0
Me.GroupBox19.TabStop = False
'
'cmb_열생산연결방식
'
Me.cmb_열생산연결방식.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.cmb_열생산연결방식.FormattingEnabled = True
Me.cmb_열생산연결방식.Items.AddRange(New Object() {"(없음)", "직화식", "외부연결"})
Me.cmb_열생산연결방식.Location = New System.Drawing.Point(169, 242)
Me.cmb_열생산연결방식.Name = "cmb_열생산연결방식"
Me.cmb_열생산연결방식.NectControl = Nothing
Me.cmb_열생산연결방식.Size = New System.Drawing.Size(112, 22)
Me.cmb_열생산연결방식.TabIndex = 164
'
'cmb_사용연료
'
Me.cmb_사용연료.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.cmb_사용연료.FormattingEnabled = True
Me.cmb_사용연료.Items.AddRange(New Object() {"(없음)", "난방유", "천연가스", "액화가스"})
Me.cmb_사용연료.Location = New System.Drawing.Point(169, 268)
Me.cmb_사용연료.Name = "cmb_사용연료"
Me.cmb_사용연료.NectControl = Nothing
Me.cmb_사용연료.Size = New System.Drawing.Size(112, 22)
Me.cmb_사용연료.TabIndex = 162
'
'온수열생산기기ComboBox
'
Me.온수열생산기기ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.온수열생산기기ComboBox.FormattingEnabled = True
Me.온수열생산기기ComboBox.Location = New System.Drawing.Point(169, 294)
Me.온수열생산기기ComboBox.Name = "온수열생산기기ComboBox"
Me.온수열생산기기ComboBox.NectControl = Nothing
Me.온수열생산기기ComboBox.Size = New System.Drawing.Size(112, 22)
Me.온수열생산기기ComboBox.TabIndex = 0
'
'Label213
'
Me.Label213.AutoSize = True
Me.Label213.BackColor = System.Drawing.Color.FromArgb(CType(CType(243, Byte), Integer), CType(CType(244, Byte), Integer), CType(CType(246, Byte), Integer))
Me.Label213.ForeColor = System.Drawing.Color.Black
Me.Label213.Location = New System.Drawing.Point(11, 20)
Me.Label213.Name = "Label213"
Me.Label213.Size = New System.Drawing.Size(84, 14)
Me.Label213.TabIndex = 158
Me.Label213.Text = "[압축식 냉동기]"
'
'Label212
'
Me.Label212.AutoSize = True
Me.Label212.BackColor = System.Drawing.Color.FromArgb(CType(CType(243, Byte), Integer), CType(CType(244, Byte), Integer), CType(CType(246, Byte), Integer))
Me.Label212.ForeColor = System.Drawing.Color.DarkCyan
Me.Label212.Location = New System.Drawing.Point(7, 147)
Me.Label212.Name = "Label212"
Me.Label212.Size = New System.Drawing.Size(177, 14)
Me.Label212.TabIndex = 156
Me.Label212.Text = "실내공조시스템(=공기냉각에어콘)"
Me.Label212.TextAlign = System.Drawing.ContentAlignment.MiddleRight
'
'Label210
'
Me.Label210.AutoSize = True
Me.Label210.BackColor = System.Drawing.Color.FromArgb(CType(CType(243, Byte), Integer), CType(CType(244, Byte), Integer), CType(CType(246, Byte), Integer))
Me.Label210.ForeColor = System.Drawing.Color.DarkCyan
Me.Label210.Location = New System.Drawing.Point(7, 66)
Me.Label210.Name = "Label210"
Me.Label210.Size = New System.Drawing.Size(184, 14)
Me.Label210.TabIndex = 157
Me.Label210.Text = "수냉각 또는 공기냉각 압축식 냉동기"
Me.Label210.TextAlign = System.Drawing.ContentAlignment.MiddleRight
'
'압축기제어방식ComboBox
'
Me.압축기제어방식ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.압축기제어방식ComboBox.FormattingEnabled = True
Me.압축기제어방식ComboBox.Location = New System.Drawing.Point(169, 105)
Me.압축기제어방식ComboBox.Name = "압축기제어방식ComboBox"
Me.압축기제어방식ComboBox.NectControl = Nothing
Me.압축기제어방식ComboBox.Size = New System.Drawing.Size(112, 22)
Me.압축기제어방식ComboBox.TabIndex = 2
'
'냉동기압축방식ComboBox
'
Me.냉동기압축방식ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.냉동기압축방식ComboBox.FormattingEnabled = True
Me.냉동기압축방식ComboBox.Location = New System.Drawing.Point(169, 81)
Me.냉동기압축방식ComboBox.Name = "냉동기압축방식ComboBox"
Me.냉동기압축방식ComboBox.NectControl = Nothing
Me.냉동기압축방식ComboBox.Size = New System.Drawing.Size(112, 22)
Me.냉동기압축방식ComboBox.TabIndex = 1
'
'냉동기종류ComboBox
'
Me.냉동기종류ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.냉동기종류ComboBox.FormattingEnabled = True
Me.냉동기종류ComboBox.Location = New System.Drawing.Point(169, 32)
Me.냉동기종류ComboBox.Name = "냉동기종류ComboBox"
Me.냉동기종류ComboBox.NectControl = Nothing
Me.냉동기종류ComboBox.Size = New System.Drawing.Size(112, 22)
Me.냉동기종류ComboBox.TabIndex = 0
'
'냉동기설비시스템ComboBox
'
Me.냉동기설비시스템ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.냉동기설비시스템ComboBox.FormattingEnabled = True
Me.냉동기설비시스템ComboBox.Location = New System.Drawing.Point(169, 163)
Me.냉동기설비시스템ComboBox.Name = "냉동기설비시스템ComboBox"
Me.냉동기설비시스템ComboBox.NectControl = Nothing
Me.냉동기설비시스템ComboBox.Size = New System.Drawing.Size(112, 22)
Me.냉동기설비시스템ComboBox.TabIndex = 3
'
'제어방식ComboBox
'
Me.제어방식ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.제어방식ComboBox.FormattingEnabled = True
Me.제어방식ComboBox.Location = New System.Drawing.Point(169, 187)
Me.제어방식ComboBox.Name = "제어방식ComboBox"
Me.제어방식ComboBox.NectControl = Nothing
Me.제어방식ComboBox.Size = New System.Drawing.Size(112, 22)
Me.제어방식ComboBox.TabIndex = 4
'
'PictureBox3
'
Me.PictureBox3.BackColor = System.Drawing.Color.FromArgb(CType(CType(243, Byte), Integer), CType(CType(244, Byte), Integer), CType(CType(246, Byte), Integer))
Me.PictureBox3.Location = New System.Drawing.Point(1, 9)
Me.PictureBox3.Name = "PictureBox3"
Me.PictureBox3.Size = New System.Drawing.Size(286, 345)
Me.PictureBox3.TabIndex = 169
Me.PictureBox3.TabStop = False
'
'재냉각기GroupBox
'
Me.재냉각기GroupBox.BackColor = System.Drawing.Color.White
Me.재냉각기GroupBox.Controls.Add(Label10)
Me.재냉각기GroupBox.Controls.Add(Me.증발식건식냉각기ComboBox)
Me.재냉각기GroupBox.Controls.Add(Me.증발식냉각기ComboBox)
Me.재냉각기GroupBox.Controls.Add(Label11)
Me.재냉각기GroupBox.Controls.Add(Me.보조방음기유무ComboBox)
Me.재냉각기GroupBox.Controls.Add(Me.냉각수토출온도NTb)
Me.재냉각기GroupBox.Controls.Add(Label12)
Me.재냉각기GroupBox.Controls.Add(Me.Label18)
Me.재냉각기GroupBox.Controls.Add(Label13)
Me.재냉각기GroupBox.Controls.Add(Me.PictureBox5)
Me.재냉각기GroupBox.Location = New System.Drawing.Point(296, 149)
Me.재냉각기GroupBox.Name = "재냉각기GroupBox"
Me.재냉각기GroupBox.Size = New System.Drawing.Size(273, 358)
Me.재냉각기GroupBox.TabIndex = 31
Me.재냉각기GroupBox.TabStop = False
'
'증발식건식냉각기ComboBox
'
Me.증발식건식냉각기ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.증발식건식냉각기ComboBox.FormattingEnabled = True
Me.증발식건식냉각기ComboBox.Location = New System.Drawing.Point(185, 36)
Me.증발식건식냉각기ComboBox.Name = "증발식건식냉각기ComboBox"
Me.증발식건식냉각기ComboBox.NectControl = Nothing
Me.증발식건식냉각기ComboBox.Size = New System.Drawing.Size(84, 22)
Me.증발식건식냉각기ComboBox.TabIndex = 0
'
'증발식냉각기ComboBox
'
Me.증발식냉각기ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.증발식냉각기ComboBox.FormattingEnabled = True
Me.증발식냉각기ComboBox.Location = New System.Drawing.Point(185, 60)
Me.증발식냉각기ComboBox.Name = "증발식냉각기ComboBox"
Me.증발식냉각기ComboBox.NectControl = Nothing
Me.증발식냉각기ComboBox.Size = New System.Drawing.Size(84, 22)
Me.증발식냉각기ComboBox.TabIndex = 1
'
'보조방음기유무ComboBox
'
Me.보조방음기유무ComboBox.DropDownStyle = System.Windows.Forms.ComboBoxStyle.DropDownList
Me.보조방음기유무ComboBox.FormattingEnabled = True
Me.보조방음기유무ComboBox.Location = New System.Drawing.Point(185, 84)
Me.보조방음기유무ComboBox.Name = "보조방음기유무ComboBox"
Me.보조방음기유무ComboBox.NectControl = Nothing
Me.보조방음기유무ComboBox.Size = New System.Drawing.Size(84, 22)
Me.보조방음기유무ComboBox.TabIndex = 2
'
'냉각수토출온도NTb
'
Me.냉각수토출온도NTb.DataBindings.Add(New System.Windows.Forms.Binding("Text", Me.bs, "냉각탑입구온도", True))
Me.냉각수토출온도NTb.Location = New System.Drawing.Point(185, 109)
Me.냉각수토출온도NTb.Name = "냉각수토출온도NTb"
Me.냉각수토출온도NTb.NectControl = Nothing
Me.냉각수토출온도NTb.Size = New System.Drawing.Size(84, 21)
Me.냉각수토출온도NTb.TabIndex = 3
Me.냉각수토출온도NTb.TextAlign = System.Windows.Forms.HorizontalAlignment.Right
Me.냉각수토출온도NTb.TextFormat = Eco2Ar.MyTb.ETFormat.Normal
'
'Label18
'
Me.Label18.AutoSize = True
Me.Label18.BackColor = System.Drawing.Color.FromArgb(CType(CType(243, Byte), Integer), CType(CType(244, Byte), Integer), CType(CType(246, Byte), Integer))
Me.Label18.ForeColor = System.Drawing.Color.Black
Me.Label18.Location = New System.Drawing.Point(6, 20)
Me.Label18.Name = "Label18"
Me.Label18.Size = New System.Drawing.Size(100, 14)
Me.Label18.TabIndex = 158
Me.Label18.Text = "[재냉각기(냉각탑)]"
'
'PictureBox5
'
Me.PictureBox5.BackColor = System.Drawing.Color.FromArgb(CType(CType(243, Byte), Integer), CType(CType(244, Byte), Integer), CType(CType(246, Byte), Integer))
Me.PictureBox5.Location = New System.Drawing.Point(2, 9)
Me.PictureBox5.Name = "PictureBox5"
Me.PictureBox5.Size = New System.Drawing.Size(268, 345)
Me.PictureBox5.TabIndex = 169
Me.PictureBox5.TabStop = False
'
'SplitContainer1
'
Me.SplitContainer1.BorderStyle = System.Windows.Forms.BorderStyle.FixedSingle
Me.SplitContainer1.Dock = System.Windows.Forms.DockStyle.Fill
Me.SplitContainer1.FixedPanel = System.Windows.Forms.FixedPanel.Panel1
Me.SplitContainer1.Location = New System.Drawing.Point(0, 0)
Me.SplitContainer1.Name = "SplitContainer1"
'
'SplitContainer1.Panel1
'
Me.SplitContainer1.Panel1.Controls.Add(Me.dv)
Me.SplitContainer1.Panel1.Controls.Add(Me.lb_grpname)
Me.SplitContainer1.Panel1.Controls.Add(Me.bn)
'
'SplitContainer1.Panel2
'
Me.SplitContainer1.Panel2.BackColor = System.Drawing.Color.White
Me.SplitContainer1.Panel2.Controls.Add(Me.Label16)
Me.SplitContainer1.Panel2.Controls.Add(Me.PictureBox4)
Me.SplitContainer1.Panel2.Controls.Add(Me.재냉각기GroupBox)
Me.SplitContainer1.Panel2.Controls.Add(Me.GroupBox11)
Me.SplitContainer1.Panel2.Controls.Add(Me.GroupBox19)
Me.SplitContainer1.Panel2.Controls.Add(Me.GroupBox18)
Me.SplitContainer1.Size = New System.Drawing.Size(795, 565)
Me.SplitContainer1.SplitterDistance = 212
Me.SplitContainer1.TabIndex = 128
'
'dv
'
Me.dv.A_DelCurrentCell = True
Me.dv.A_EnterToTab = True
Me.dv.AllowUserToAddRows = False
Me.dv.AllowUserToResizeRows = False
Me.dv.AutoGenerateColumns = False
Me.dv.AutoSizeColumnsMode = System.Windows.Forms.DataGridViewAutoSizeColumnsMode.AllCells
Me.dv.BackgroundColor = System.Drawing.Color.FromArgb(CType(CType(245, Byte), Integer), CType(CType(245, Byte), Integer), CType(CType(246, Byte), Integer))
Me.dv.BorderStyle = System.Windows.Forms.BorderStyle.None
Me.dv.ColumnHeadersHeight = 30
Me.dv.ColumnHeadersHeightSizeMode = System.Windows.Forms.DataGridViewColumnHeadersHeightSizeMode.DisableResizing
Me.dv.ColumnHeadersVisible = False
Me.dv.Columns.AddRange(New System.Windows.Forms.DataGridViewColumn() {Me.DataGridViewTextBoxColumn1})
Me.dv.DataSource = Me.bs
Me.dv.Dock = System.Windows.Forms.DockStyle.Fill
Me.dv.Location = New System.Drawing.Point(0, 26)
Me.dv.Margin = New System.Windows.Forms.Padding(3, 5, 3, 5)
Me.dv.Name = "dv"
Me.dv.RowHeadersVisible = False
Me.dv.RowTemplate.Height = 23
Me.dv.ScrollBars = System.Windows.Forms.ScrollBars.Vertical
Me.dv.Size = New System.Drawing.Size(210, 497)
Me.dv.TabIndex = 0
'
'DataGridViewTextBoxColumn1
'
Me.DataGridViewTextBoxColumn1.AutoSizeMode = System.Windows.Forms.DataGridViewAutoSizeColumnMode.Fill
Me.DataGridViewTextBoxColumn1.DataPropertyName = "설명"
Me.DataGridViewTextBoxColumn1.HeaderText = "설명"
Me.DataGridViewTextBoxColumn1.Name = "DataGridViewTextBoxColumn1"
'
'lb_grpname
'
Me.lb_grpname.BackColor = System.Drawing.Color.LightSkyBlue
Me.lb_grpname.Dock = System.Windows.Forms.DockStyle.Top
Me.lb_grpname.ForeColor = System.Drawing.SystemColors.HotTrack
Me.lb_grpname.Location = New System.Drawing.Point(0, 0)
Me.lb_grpname.Name = "lb_grpname"
Me.lb_grpname.Size = New System.Drawing.Size(210, 26)
Me.lb_grpname.TabIndex = 98
Me.lb_grpname.Text = "그룹 :"
Me.lb_grpname.TextAlign = System.Drawing.ContentAlignment.MiddleCenter
'
'bn
'
Me.bn.AddNewItem = Nothing
Me.bn.AutoSize = False
Me.bn.BindingSource = Me.bs
Me.bn.CountItem = Me.lbl_count
Me.bn.DeleteItem = Nothing
Me.bn.Dock = System.Windows.Forms.DockStyle.Bottom
Me.bn.Font = New System.Drawing.Font("나눔고딕 ExtraBold", 8.999999!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
Me.bn.ImageScalingSize = New System.Drawing.Size(20, 20)
Me.bn.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.bt_add, Me.bt_Del, Me.bt_cancel, Me.ToolStripSeparator1, Me.lbl_pos, Me.lbl_count})
Me.bn.Location = New System.Drawing.Point(0, 523)
Me.bn.MoveFirstItem = Nothing
Me.bn.MoveLastItem = Nothing
Me.bn.MoveNextItem = Nothing
Me.bn.MovePreviousItem = Nothing
Me.bn.Name = "bn"
Me.bn.PositionItem = Me.lbl_pos
Me.bn.Size = New System.Drawing.Size(210, 40)
Me.bn.TabIndex = 1
Me.bn.Text = "BindingNavigator1"
'
'lbl_count
'
Me.lbl_count.Name = "lbl_count"
Me.lbl_count.Size = New System.Drawing.Size(27, 37)
Me.lbl_count.Text = "/{0}"
'
'bt_add
'
Me.bt_add.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
Me.bt_add.Image = Global.Eco2Ar.My.Resources.Resources.new_32
Me.bt_add.Name = "bt_add"
Me.bt_add.RightToLeftAutoMirrorImage = True
Me.bt_add.Size = New System.Drawing.Size(24, 37)
Me.bt_add.Text = "신규추가(&A)"
Me.bt_add.ToolTipText = "새로운 프로필을 추가합니다"
'
'bt_Del
'
Me.bt_Del.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
Me.bt_Del.Image = Global.Eco2Ar.My.Resources.Resources.remov_32
Me.bt_Del.Name = "bt_Del"
Me.bt_Del.RightToLeftAutoMirrorImage = True
Me.bt_Del.Size = New System.Drawing.Size(24, 37)
Me.bt_Del.Text = "선택삭제(&D)"
Me.bt_Del.ToolTipText = "선택된 프로필을 삭제합니다"
'
'bt_cancel
'
Me.bt_cancel.DisplayStyle = System.Windows.Forms.ToolStripItemDisplayStyle.Image
Me.bt_cancel.Image = Global.Eco2Ar.My.Resources.Resources.cancl_32
Me.bt_cancel.ImageTransparentColor = System.Drawing.Color.Magenta
Me.bt_cancel.Name = "bt_cancel"
Me.bt_cancel.Size = New System.Drawing.Size(24, 37)
Me.bt_cancel.Text = "변경취소(&C)"
Me.bt_cancel.ToolTipText = "변경된 내용을 되돌립니다"
Me.bt_cancel.Visible = False
'
'ToolStripSeparator1
'
Me.ToolStripSeparator1.Name = "ToolStripSeparator1"
Me.ToolStripSeparator1.Size = New System.Drawing.Size(6, 40)
'
'lbl_pos
'
Me.lbl_pos.Name = "lbl_pos"
Me.lbl_pos.Size = New System.Drawing.Size(14, 37)
Me.lbl_pos.Text = "0"
'
'Label16
'
Me.Label16.AutoSize = True
Me.Label16.BackColor = System.Drawing.Color.FromArgb(CType(CType(116, Byte), Integer), CType(CType(158, Byte), Integer), CType(CType(209, Byte), Integer))
Me.Label16.ForeColor = System.Drawing.Color.White
Me.Label16.Location = New System.Drawing.Point(28, 21)
Me.Label16.Name = "Label16"
Me.Label16.Size = New System.Drawing.Size(40, 14)
Me.Label16.TabIndex = 168
Me.Label16.Text = "냉방기"
'
'PictureBox4
'
Me.PictureBox4.BackgroundImage = CType(resources.GetObject("PictureBox4.BackgroundImage"), System.Drawing.Image)
Me.PictureBox4.BackgroundImageLayout = System.Windows.Forms.ImageLayout.Stretch
Me.PictureBox4.Location = New System.Drawing.Point(15, 10)
Me.PictureBox4.Name = "PictureBox4"
Me.PictureBox4.Size = New System.Drawing.Size(134, 30)
Me.PictureBox4.TabIndex = 167
Me.PictureBox4.TabStop = False
'
'Frm_NaengBang
'
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.None
Me.ClientSize = New System.Drawing.Size(795, 565)
Me.ControlBox = False
Me.Controls.Add(Me.SplitContainer1)
Me.Font = New System.Drawing.Font("나눔고딕 ExtraBold", 8.999999!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(129, Byte))
Me.KeyPreview = True
Me.Name = "Frm_NaengBang"
Me.ShowInTaskbar = False
Me.StartPosition = System.Windows.Forms.FormStartPosition.CenterScreen
Me.Text = "냉방기기"
Me.GroupBox18.ResumeLayout(False)
Me.GroupBox18.PerformLayout()
CType(Me.PictureBox2, System.ComponentModel.ISupportInitialize).EndInit()
Me.GroupBox11.ResumeLayout(False)
Me.GroupBox11.PerformLayout()
CType(Me.bs, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.DS, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.PictureBox1, System.ComponentModel.ISupportInitialize).EndInit()
Me.GroupBox19.ResumeLayout(False)
Me.GroupBox19.PerformLayout()
CType(Me.PictureBox3, System.ComponentModel.ISupportInitialize).EndInit()
Me.재냉각기GroupBox.ResumeLayout(False)
Me.재냉각기GroupBox.PerformLayout()
CType(Me.PictureBox5, System.ComponentModel.ISupportInitialize).EndInit()
Me.SplitContainer1.Panel1.ResumeLayout(False)
Me.SplitContainer1.Panel2.ResumeLayout(False)
Me.SplitContainer1.Panel2.PerformLayout()
Me.SplitContainer1.ResumeLayout(False)
CType(Me.dv, System.ComponentModel.ISupportInitialize).EndInit()
CType(Me.bn, System.ComponentModel.ISupportInitialize).EndInit()
Me.bn.ResumeLayout(False)
Me.bn.PerformLayout()
CType(Me.PictureBox4, System.ComponentModel.ISupportInitialize).EndInit()
Me.ResumeLayout(False)
End Sub
Friend WithEvents 냉각수토출온도NTb As MyTb
Friend WithEvents 열성능비NTb As MyTb
Friend WithEvents 냉동기용량NTb As MyTb
Public WithEvents DS As Eco2Ar.DS
Friend WithEvents bs As System.Windows.Forms.BindingSource
Friend WithEvents cmb_신재생 As Eco2Ar.MyCmb
Friend WithEvents 신재생연결여부ComboBox1 As Eco2Ar.MyCmb
Friend WithEvents 보조방음기유무ComboBox As Eco2Ar.MyCmb
Friend WithEvents 증발식냉각기ComboBox As Eco2Ar.MyCmb
Friend WithEvents 증발식건식냉각기ComboBox As Eco2Ar.MyCmb
Friend WithEvents 온수열생산기기ComboBox As Eco2Ar.MyCmb
Friend WithEvents 제어방식ComboBox As Eco2Ar.MyCmb
Friend WithEvents 냉동기설비시스템ComboBox As Eco2Ar.MyCmb
Friend WithEvents 압축기제어방식ComboBox As Eco2Ar.MyCmb
Friend WithEvents 냉동기압축방식ComboBox As Eco2Ar.MyCmb
Friend WithEvents 냉동기종류ComboBox As Eco2Ar.MyCmb
Friend WithEvents 냉동기방식ComboBox As Eco2Ar.MyCmb
Friend WithEvents GroupBox18 As System.Windows.Forms.GroupBox
Friend WithEvents GroupBox11 As System.Windows.Forms.GroupBox
Friend WithEvents Label214 As System.Windows.Forms.Label
Friend WithEvents GroupBox19 As System.Windows.Forms.GroupBox
Friend WithEvents Label212 As System.Windows.Forms.Label
Friend WithEvents Label210 As System.Windows.Forms.Label
Friend WithEvents 재냉각기GroupBox As System.Windows.Forms.GroupBox
Friend WithEvents tb_zone_cnt As System.Windows.Forms.TextBox
Friend WithEvents Label47 As System.Windows.Forms.Label
Friend WithEvents SplitContainer1 As System.Windows.Forms.SplitContainer
Friend WithEvents dv As CEnergy.arindv
Friend WithEvents bn As System.Windows.Forms.BindingNavigator
Friend WithEvents bt_add As System.Windows.Forms.ToolStripButton
Friend WithEvents bt_Del As System.Windows.Forms.ToolStripButton
Friend WithEvents bt_cancel As System.Windows.Forms.ToolStripButton
Friend WithEvents ToolStripSeparator1 As System.Windows.Forms.ToolStripSeparator
Friend WithEvents DataGridViewTextBoxColumn1 As System.Windows.Forms.DataGridViewTextBoxColumn
Friend WithEvents lbl_count As System.Windows.Forms.ToolStripLabel
Friend WithEvents lbl_pos As System.Windows.Forms.ToolStripLabel
Friend WithEvents Label213 As System.Windows.Forms.Label
Friend WithEvents cmb_열생산연결방식 As Eco2Ar.MyCmb
Friend WithEvents cmb_사용연료 As Eco2Ar.MyCmb
Friend WithEvents Label17 As System.Windows.Forms.Label
Friend WithEvents PictureBox2 As System.Windows.Forms.PictureBox
Friend WithEvents Label9 As System.Windows.Forms.Label
Friend WithEvents PictureBox1 As System.Windows.Forms.PictureBox
Friend WithEvents PictureBox3 As System.Windows.Forms.PictureBox
Friend WithEvents Label16 As System.Windows.Forms.Label
Friend WithEvents PictureBox4 As System.Windows.Forms.PictureBox
Friend WithEvents Label18 As System.Windows.Forms.Label
Friend WithEvents PictureBox5 As System.Windows.Forms.PictureBox
Friend WithEvents lb_grpname As System.Windows.Forms.Label
End Class

View File

@@ -0,0 +1,278 @@
<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="Label215.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label216.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label1.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label2.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label3.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label4.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label5.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label6.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label7.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label8.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="냉동기종류Label.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label10.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label11.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label12.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label13.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label14.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label15.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="bs.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="DS.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>81, 17</value>
</metadata>
<metadata name="bn.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>148, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="PictureBox4.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
/9j/4AAQSkZJRgABAgEASABIAAD/7gAOQWRvYmUAZAAAAAAB/+ED5kV4aWYAAE1NACoAAAAIAAcBEgAD
AAAAAQABAAABGgAFAAAAAQAAAGIBGwAFAAAAAQAAAGoBKAADAAAAAQACAAABMQACAAAAHAAAAHIBMgAC
AAAAFAAAAI6HaQAEAAAAAQAAAKIAAADCAEgAAAABAAAASAAAAAEAAEFkb2JlIFBob3Rvc2hvcCBDUzMg
V2luZG93cwAyMDEwOjA0OjE1IDIwOjMyOjA0AAACoAIABAAAAAEAAAA8oAMABAAAAAEAAAAMAAAAAAAA
AAYBAwADAAAAAQAGAAABGgAFAAAAAQAAARABGwAFAAAAAQAAARgBKAADAAAAAQACAAACAQAEAAAAAQAA
ASACAgAEAAAAAQAAAr4AAAAAAAAASAAAAAEAAABIAAAAAf/Y/+AAEEpGSUYAAQIAAEgASAAA/+0ADEFk
b2JlX0NNAAH/7gAOQWRvYmUAZIAAAAAB/9sAhAAMCAgICQgMCQkMEQsKCxEVDwwMDxUYExMVExMYEQwM
DAwMDBEMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMAQ0LCw0ODRAODhAUDg4OFBQODg4OFBEMDAwM
DBERDAwMDAwMEQwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAz/wAARCAAMADwDASIAAhEBAxEB/90A
BAAE/8QBPwAAAQUBAQEBAQEAAAAAAAAAAwABAgQFBgcICQoLAQABBQEBAQEBAQAAAAAAAAABAAIDBAUG
BwgJCgsQAAEEAQMCBAIFBwYIBQMMMwEAAhEDBCESMQVBUWETInGBMgYUkaGxQiMkFVLBYjM0coLRQwcl
klPw4fFjczUWorKDJkSTVGRFwqN0NhfSVeJl8rOEw9N14/NGJ5SkhbSVxNTk9KW1xdXl9VZmdoaWprbG
1ub2N0dXZ3eHl6e3x9fn9xEAAgIBAgQEAwQFBgcHBgU1AQACEQMhMRIEQVFhcSITBTKBkRShsUIjwVLR
8DMkYuFygpJDUxVjczTxJQYWorKDByY1wtJEk1SjF2RFVTZ0ZeLys4TD03Xj80aUpIW0lcTU5PSltcXV
5fVWZnaGlqa2xtbm9ic3R1dnd4eXp7fH/9oADAMBAAIRAxEAPwDd/amR/pH/AOcf70v2pkf6R/8AnH+9
UUlofq/Bpevxb37UyP8ASP8A84/3pftTI/0j/wDOP96opJfq/BXr8W9+1Mj/AEj/APOP96X7UyP9I/8A
zj/eqKSX6vwV6/F3ujdbuGS2i5xfU8HVxktIG76XyW99vo27p0XGdO2/ba930dZj+q5dX+qfZPL8VAeD
341VVr/eZhx+0bu708n/2f/iDFhJQ0NfUFJPRklMRQABAQAADEhMaW5vAhAAAG1udHJSR0IgWFlaIAfO
AAIACQAGADEAAGFjc3BNU0ZUAAAAAElFQyBzUkdCAAAAAAAAAAAAAAAAAAD21gABAAAAANMtSFAgIAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAEWNwcnQAAAFQAAAAM2Rl
c2MAAAGEAAAAbHd0cHQAAAHwAAAAFGJrcHQAAAIEAAAAFHJYWVoAAAIYAAAAFGdYWVoAAAIsAAAAFGJY
WVoAAAJAAAAAFGRtbmQAAAJUAAAAcGRtZGQAAALEAAAAiHZ1ZWQAAANMAAAAhnZpZXcAAAPUAAAAJGx1
bWkAAAP4AAAAFG1lYXMAAAQMAAAAJHRlY2gAAAQwAAAADHJUUkMAAAQ8AAAIDGdUUkMAAAQ8AAAIDGJU
UkMAAAQ8AAAIDHRleHQAAAAAQ29weXJpZ2h0IChjKSAxOTk4IEhld2xldHQtUGFja2FyZCBDb21wYW55
AABkZXNjAAAAAAAAABJzUkdCIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAEnNSR0IgSUVDNjE5NjYtMi4x
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAABYWVogAAAAAAAA
81EAAQAAAAEWzFhZWiAAAAAAAAAAAAAAAAAAAAAAWFlaIAAAAAAAAG+iAAA49QAAA5BYWVogAAAAAAAA
YpkAALeFAAAY2lhZWiAAAAAAAAAkoAAAD4QAALbPZGVzYwAAAAAAAAAWSUVDIGh0dHA6Ly93d3cuaWVj
LmNoAAAAAAAAAAAAAAAWSUVDIGh0dHA6Ly93d3cuaWVjLmNoAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAGRlc2MAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0Ig
Y29sb3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29s
b3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAACxSZWZlcmVuY2Ug
Vmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAsUmVmZXJlbmNlIFZpZXdp
bmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdmlldwAA
AAAAE6T+ABRfLgAQzxQAA+3MAAQTCwADXJ4AAAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAA
AAEAAAAAAAAAAAAAAAAAAAAAAAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAU
ABkAHgAjACgALQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACp
AK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIBOAE+AUUBTAFS
AVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHyAfoCAwIMAhQCHQImAi8COAJB
AksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+
A4oDlgOiA64DugPHA9MD4APsA/kEBgQTBCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUN
BRwFKwU6BUkFWAVnBXcFhgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1
BwcHGQcrBz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII5wj7CRAJJQk6
CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyILOQtRC2kLgAuYC7ALyAvh
C/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN3g34DhMOLg5JDmQOfw6bDrYO0g7u
DwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCbELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJk
EoQSoxLDEuMTAxMjE0MTYxODE6QTxRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJ
FmwWjxayFtYW+hcdF0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqe
GsUa7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7pHxMfPh9p
H5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMKIzgjZiOUI8Ij8CQfJE0kfCSr
JNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgNKD8ocSiiKNQpBik4KWspnSnQKgIqNSpo
KpsqzysCKzYraSudK9EsBSw5LG4soizXLQwtQS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCk
MNsxEjFKMYIxujHyMioyYzKbMtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdg
N5w31zgUOFA4jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6g
PuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTORRJFVUWaRd5GIkZn
RqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwqTHJMuk0CTUpNk03cTiVObk63
TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19TqlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeS
V+BYL1h9WMtZGllpWbhaB1pWWqZa9VtFW5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8
YU9homH1YklinGLwY0Njl2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3
a09rp2v/bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1KHWF
deF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5ifsJ/I3+Ef+WAR4Co
gQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4efiASIaYjOiTOJmYn+imSKyoswi5aL/Ixj
jMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4
mSSZkJn8mmia1ZtCm6+cHJyJnPedZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWp
phqmi6b9p26n4KhSqMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4
s660JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/er/1wHDA7MFn
wePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfLNsu2zDXMtc01zbXONs62zzfPuNA5
0LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls2fHadtr724DcBdyK3RDdlt4c3qLfKd+v
4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbnH+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M
8Fjw5fFy8f/yjPMZ86f0NPTC9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23////b
AEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMD
AwMDAwMDA//bAEMBAQEBAQEBAQEBAQICAQICAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD
AwMDAwMDAwMDAwMDAwMDA//AABEIAAwAPAMBEQACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQID
BAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR
8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp
6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUE
BAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeo
qaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/
AP1ZH7UPxEAA/wCEw8bnj/ob9f8A/k+v7U/1Nyj/AKF+G/8ABUP/AJE/llcSZlZf7dX/APBk/wDMX/hq
H4if9Df43/8ACv1//wCT6P8AU3Kf+hfhv/BUP/kQ/wBZcy/6Dq//AIMn/mH/AA1D8RP+hv8AG/8A4V+v
/wDyfR/qblP/AEL8N/4Kh/8AIh/rLmX/AEHV/wDwZP8AzD/hqH4if9Df43/8K/X/AP5Po/1Nyn/oX4b/
AMFQ/wDkQ/1lzL/oOr/+DJ/5h/w1D8RP+hv8b/8AhX6//wDJ9H+puU/9C/Df+Cof/Ih/rLmX/QdX/wDB
k/8AMT/hqH4if9Df43/8K/X/AP5Po/1Nyn/oX4b/AMFQ/wDkQ/1kzL/oOr/+DJ/5n2R+xz+234zt/iRp
nw+8a6vqXiDwZ4gs9baObXr+bUr/AMPajpmkX2tQ3FlqV2Zb57K7XT2t3tXkaJWkV4whVxJ+beJfAuU4
Th/FZ/hKEKOMw8qd+SKjGcZzjTs4q0bpyUlJK7s073VvuuBOLMxxGcYfJ8TWlVw1ZTtzu7hKMJTupPWz
UWnFu2qatrf9aP8AhfXgv+zv7U89/sfm+V5207N+M43fSv50P2w/kwr/AEFP42CgAoAKACgAoA9s/Z0/
s7/hcng3+1vP/s7Ov/avs2PP2f8ACL63t2buP9ZjP+zmvz7xU/5IPPf+4H/qRRPsvD//AJK7KP8AuL/6
ZqH7/wD/ABaT/hUfb7Ht/wBj7V9p8v8A9Cr+Oz+lz//Z
</value>
</data>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>39</value>
</metadata>
</root>

View File

@@ -0,0 +1,748 @@
Public Class Frm_NaengBang
Dim Init As Boolean = False
Dim SrcDrv As DataRowView
#Region "data Base 변경여부및 적용방법"
'''변경된내용을적용한다.
Public Overrides Function AcceptChanged() As Boolean
bs.EndEdit()
Dim BaseDS As DataSet = CType(bs.DataSource, DataSet)
Dim BaseDT As DataTable = BaseDS.Tables(bs.DataMember)
BaseDT.AcceptChanges()
Return True
End Function
'''변경된내용이있다면 취소한다.
Public Overrides Function RejectChanged() As Boolean
Dim BaseDS As DataSet = CType(bs.DataSource, DataSet)
Dim BaseDT As DataTable = BaseDS.Tables(bs.DataMember)
BaseDT.RejectChanges()
Return True
End Function
'''데이터에변형이있었는가?
Public Overrides Function HasChanged() As Boolean
bs.EndEdit()
Dim BaseDS As DataSet = CType(bs.DataSource, DataSet)
Dim BaseDT As DataTable = BaseDS.Tables(bs.DataMember)
Dim ChangeDT As DataTable = BaseDT.GetChanges
If Not ChangeDT Is Nothing Then Return True
Return False
End Function
'''기본데이터테이블을 반환합니다.
Public Function DT() As DataTable
Dim BaseDS As DataSet = CType(bs.DataSource, DataSet)
Return BaseDS.Tables(bs.DataMember)
End Function
#End Region
Private Sub MdiMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'MdiMain.Toggle_Menu_Color(MdiMain.E_MenuIdx.냉방기기)
'CEnergy.ARINCLASS.SaveLoad_FrmSetting(Me)
'//프로필 관련
'//공유데이터셋에 연결한다.
Me.bs.DataSource = DSET
'//냉방기기
AddHandler DSET.tbl_nangbangkiki.TableNewRow, AddressOf AddNewDataRow_nangbangkiki
'//콤보컨트롤 바인딩
Binding_Zone()
'//모든컨트롤의 cTrl_enter 를 추가합니다
BindProperty(CType(Me.SplitContainer1.Panel2.Controls, Control.ControlCollection))
Me.bs.Filter = "code <> '0' and 냉동기방식 = '" + Me.Parameter + "'"
Me.lb_grpname.Text = Me.Parameter
Me.Init = True
Try
Me.bs.Position = CEnergy.ARINCLASS.Read_LastPos_Frm(Me)
Catch ex As Exception
Me.bs.MoveFirst()
End Try
bs_CurrentChanged(sender, e)
Validate_Control()
End Sub
#Region "Control_Enter"
Private Sub BindProperty(ByVal Ctl As Control.ControlCollection)
For Each C As Control In Ctl
If C.Controls.Count > 1 Then
BindProperty(C.Controls)
Else
If C.GetType.ToString.ToUpper.IndexOf("MYTB") <> -1 Then
AddHandler CType(C, MyTb).KeyDown, AddressOf TextBOx_KeyDown
ElseIf C.GetType.ToString.ToUpper.IndexOf("MYCMB") <> -1 Then
AddHandler CType(C, MyCmb).KeyDown, AddressOf Cmd_KeyDown
End If
End If
Next
End Sub
Private Sub TextBOx_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)
If e.KeyCode = Keys.Enter AndAlso e.Control Then
Try
Dim Field As String = (CType(sender, MyTb).DataBindings.Item("text").BindingMemberInfo.BindingField)
For Each Dr As DataRow In Dt.Select(Me.bs.Filter, "")
Dr(Field) = CType(sender, MyTb).Text
Next
Work_msg_timer("모든값이 변경되었습니다", 25)
Catch ex As Exception
End Try
End If
End Sub
Private Sub Cmd_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)
If e.KeyCode = Keys.Enter AndAlso e.Control Then
Try
Dim Field As String = (CType(sender, MyCmb).DataBindings.Item("selectedvalue").BindingMemberInfo.BindingField)
For Each Dr As DataRow In Dt.Select(Me.bs.Filter, "")
Dr(Field) = CType(sender, MyCmb).SelectedValue
Next
Work_msg_timer("모든값이 변경되었습니다", 25)
Catch ex As Exception
End Try
End If
End Sub
#End Region
#Region "냉방기기"
Private Sub MdiMain_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
CEnergy.ARINCLASS.SaveLoad_FrmSetting(Me, Me.bs.Position, True)
End Sub
Private Sub MdiMain_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
Select Case e.KeyCode
Case Keys.F12
End Select
End Sub
Private Function GetMaxCode(ByVal dt As DataTable) As String
Try
Dim Dr As DataRow = dt.Select("", "code desc")(0)
Return Format(CInt(Dr("code")) + 1, "0000")
Catch ex As Exception
Return "0001"
End Try
End Function
Private Sub Cmb_DeleteVal(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)
If e.KeyCode = Keys.Delete Then
CType(sender, ComboBox).SelectedValue = ""
End If
End Sub
Private Sub ToolStripButton48_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_add.Click
If Not EndEdit(Me.bs) Then Return
Me.bs.AddNew()
INitRow(Me.Controls)
End Sub
Private Sub ToolStripButton49_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_Del.Click
Dbbase.DelCrow(Me.bs, True)
End Sub
Private Sub ToolStripButton51_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_cancel.Click
If Not EndEdit(Me.bs) Then Return
Data_Cancel(DSET.tbl_profile, Nothing)
End Sub
Private Sub Binding_Zone()
'//냉동기기
Dim bs_냉동기방식ComboBox As New BindingSource(DSET, "tbl_common")
bs_냉동기방식ComboBox.Filter = "gubun='1046'"
bs_냉동기방식ComboBox.Sort = "code"
Me.냉동기방식ComboBox.DataSource = bs_냉동기방식ComboBox
냉동기방식ComboBox.DisplayMember = "name"
냉동기방식ComboBox.ValueMember = "name"
Me.냉동기방식ComboBox.DataBindings.Add("selectedvalue", Me.bs, "냉동기방식")
'AddHandler 냉동기방식ComboBox.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_냉동기종류ComboBox As New BindingSource(DSET, "tbl_common")
bs_냉동기종류ComboBox.Filter = "gubun='1047'"
bs_냉동기종류ComboBox.Sort = "code"
Me.냉동기종류ComboBox.DataSource = bs_냉동기종류ComboBox
냉동기종류ComboBox.DisplayMember = "name"
냉동기종류ComboBox.ValueMember = "name"
Me.냉동기종류ComboBox.DataBindings.Add("selectedvalue", Me.bs, "냉동기종류")
'AddHandler 냉동기종류ComboBox.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_냉동기압축방식ComboBox As New BindingSource(DSET, "tbl_common")
bs_냉동기압축방식ComboBox.Filter = "gubun='1048'"
bs_냉동기압축방식ComboBox.Sort = "code"
Me.냉동기압축방식ComboBox.DataSource = bs_냉동기압축방식ComboBox
냉동기압축방식ComboBox.DisplayMember = "name"
냉동기압축방식ComboBox.ValueMember = "name"
Me.냉동기압축방식ComboBox.DataBindings.Add("selectedvalue", Me.bs, "냉동기압축방식")
' AddHandler 냉동기압축방식ComboBox.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_압축기제어방식ComboBox As New BindingSource(DSET, "tbl_common")
bs_압축기제어방식ComboBox.Filter = "gubun='1049'"
bs_압축기제어방식ComboBox.Sort = "code"
Me.압축기제어방식ComboBox.DataSource = bs_압축기제어방식ComboBox
압축기제어방식ComboBox.DisplayMember = "name"
압축기제어방식ComboBox.ValueMember = "name"
Me.압축기제어방식ComboBox.DataBindings.Add("selectedvalue", Me.bs, "압축기제어방식")
'AddHandler 압축기제어방식ComboBox.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_냉동기설비시스템ComboBox As New BindingSource(DSET, "tbl_common")
bs_냉동기설비시스템ComboBox.Filter = "gubun='1050'"
bs_냉동기설비시스템ComboBox.Sort = "code"
Me.냉동기설비시스템ComboBox.DataSource = bs_냉동기설비시스템ComboBox
냉동기설비시스템ComboBox.DisplayMember = "name"
냉동기설비시스템ComboBox.ValueMember = "name"
Me.냉동기설비시스템ComboBox.DataBindings.Add("selectedvalue", Me.bs, "냉동기설비시스템")
'AddHandler 냉동기설비시스템ComboBox.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_제어방식ComboBox As New BindingSource(DSET, "tbl_common")
bs_제어방식ComboBox.Filter = "gubun='1051'"
bs_제어방식ComboBox.Sort = "code"
Me.제어방식ComboBox.DataSource = bs_제어방식ComboBox
제어방식ComboBox.DisplayMember = "name"
제어방식ComboBox.ValueMember = "name"
Me.제어방식ComboBox.DataBindings.Add("selectedvalue", Me.bs, "제어방식")
'AddHandler 제어방식ComboBox.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_열생산연결방식 As New BindingSource(DSET, "tbl_common")
bs_열생산연결방식.Filter = "gubun='1085'"
bs_열생산연결방식.Sort = "code"
Me.cmb_열생산연결방식.DataSource = bs_열생산연결방식
cmb_열생산연결방식.DisplayMember = "name"
cmb_열생산연결방식.ValueMember = "name"
Me.cmb_열생산연결방식.DataBindings.Add("selectedvalue", Me.bs, "열생산연결방식")
Dim bs_사용연료 As New BindingSource(DSET, "tbl_common")
bs_사용연료.Filter = "gubun='1086'"
bs_사용연료.Sort = "code"
Me.cmb_사용연료.DataSource = bs_사용연료
cmb_사용연료.DisplayMember = "name"
cmb_사용연료.ValueMember = "name"
Me.cmb_사용연료.DataBindings.Add("selectedvalue", Me.bs, "사용연료")
'AddHandler 온수열생산기기ComboBox.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_온수열생산기기ComboBox As New BindingSource(DSET, "tbl_nanbangkiki")
bs_온수열생산기기ComboBox.Sort = "code"
Me.온수열생산기기ComboBox.DataSource = bs_온수열생산기기ComboBox
온수열생산기기ComboBox.DisplayMember = "설명"
온수열생산기기ComboBox.ValueMember = "code"
Me.온수열생산기기ComboBox.DataBindings.Add("selectedvalue", Me.bs, "온수열생산기기")
'AddHandler 온수열생산기기ComboBox.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_증발식건식냉각기ComboBox As New BindingSource(DSET, "tbl_common")
bs_증발식건식냉각기ComboBox.Filter = "gubun='1052'"
bs_증발식건식냉각기ComboBox.Sort = "code"
Me.증발식건식냉각기ComboBox.DataSource = bs_증발식건식냉각기ComboBox
증발식건식냉각기ComboBox.DisplayMember = "name"
증발식건식냉각기ComboBox.ValueMember = "name"
Me.증발식건식냉각기ComboBox.DataBindings.Add("selectedvalue", Me.bs, "증발식건식냉각기")
'AddHandler 증발식건식냉각기ComboBox.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_증발식냉각기ComboBox As New BindingSource(DSET, "tbl_common")
bs_증발식냉각기ComboBox.Filter = "gubun='1053'"
bs_증발식냉각기ComboBox.Sort = "code"
Me.증발식냉각기ComboBox.DataSource = bs_증발식냉각기ComboBox
증발식냉각기ComboBox.DisplayMember = "name"
증발식냉각기ComboBox.ValueMember = "name"
Me.증발식냉각기ComboBox.DataBindings.Add("selectedvalue", Me.bs, "증발식냉각기")
'AddHandler 증발식냉각기ComboBox.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_보조방음기유무ComboBox As New BindingSource(DSET, "tbl_common")
bs_보조방음기유무ComboBox.Filter = "gubun='1054'" '//예 아니오 아직 결정안됨
bs_보조방음기유무ComboBox.Sort = "code"
Me.보조방음기유무ComboBox.DataSource = bs_보조방음기유무ComboBox
보조방음기유무ComboBox.DisplayMember = "name"
보조방음기유무ComboBox.ValueMember = "name"
Me.보조방음기유무ComboBox.DataBindings.Add("selectedvalue", Me.bs, "보조방음기유무")
'AddHandler 보조방음기유무ComboBox.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_신재생연결여부ComboBox1 As New BindingSource(DSET, "tbl_common")
bs_신재생연결여부ComboBox1.Filter = "gubun='1044'"
bs_신재생연결여부ComboBox1.Sort = "code"
Me.신재생연결여부ComboBox1.DataSource = bs_신재생연결여부ComboBox1
신재생연결여부ComboBox1.DisplayMember = "name"
신재생연결여부ComboBox1.ValueMember = "name"
Me.신재생연결여부ComboBox1.DataBindings.Add("selectedvalue", Me.bs, "신재생연결여부")
'AddHandler 신재생연결여부ComboBox1.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_연결된시스템ComboBox1 As New BindingSource(DSET, "tbl_new")
bs_연결된시스템ComboBox1.Sort = "code"
Me.cmb_신재생.DataSource = bs_연결된시스템ComboBox1
cmb_신재생.DisplayMember = "설명"
cmb_신재생.ValueMember = "code"
Me.cmb_신재생.DataBindings.Add("selectedvalue", Me.bs, "연결된시스템")
'AddHandler cmb_신재생.KeyDown, AddressOf Cmb_DeleteVal
End Sub
Private Sub AddNewDataRow_nangbangkiki(ByVal sender As Object, ByVal e As System.Data.DataTableNewRowEventArgs)
e.Row.Item("code") = GetMaxCode(DSET.tbl_nangbangkiki)
End Sub
Private Sub Frm_V20091231_Zone_MouseWheel(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseWheel
If e.Delta < 0 Then
If Me.bs.Position < Me.bs.Count Then Me.bs.Position += 1
Else
If Me.bs.Position > 0 Then Me.bs.Position -= 1
End If
Me.Validate()
My.Application.DoEvents()
End Sub
#End Region
Private Sub 신재생연결여부ComboBox1_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 신재생연결여부ComboBox1.SelectedIndexChanged
Try
If Me.신재생연결여부ComboBox1.SelectedIndex = 0 Then '//신재생연결없음
cmb_신재생.Enabled = False
Else
cmb_신재생.Enabled = True
End If
Catch ex As Exception
End Try
End Sub
Private Sub 냉동기방식ComboBox_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles 냉동기방식ComboBox.KeyDown
If e.KeyCode = Keys.V And e.Control Then
e.Handled = True
e.SuppressKeyPress = False
'//클립보드붙여넣기
Dim CB() As String = My.Computer.Clipboard.GetText.Split(CChar(vbCrLf))
If CB.GetUpperBound(0) <> 32 Then
MsgBox("붙여넣기가 호환되는 데이터가 아닙니다.", MsgBoxStyle.Information, "확인")
Return
End If
For ii As Integer = 0 To CType(CB(0).Split(CChar(vbTab)), String()).GetUpperBound(0)
If Me.bs.Count = 0 OrElse ii > 0 Then Me.bt_Add.PerformClick() '//한줄추가
Dim Cnt As Short = 0
For i As Integer = 0 To CB.GetUpperBound(0)
Select Case i
Case 0
CType(bs.Current, DataRowView)("설명") = CB(i).Split(CChar(vbTab))(ii).Trim
Case 0 + 5 '//사용프로필 앞에 두개를 숫자4자로변환
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.냉동기방식ComboBox.SelectedIndex = 0
Else
Me.냉동기방식ComboBox.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
'Me.냉동기방식ComboBox.Text = CStr(IIf( CB(i).Split(CChar(vbTab))(ii).Trim = "", "0", CB(i).Split(CChar(vbTab))(ii).Trim))
Case 1 + 5
Me.냉동기용량NTb.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 2 + 5
Me.열성능비NTb.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 5 + 5
' Me.TabControl13.SelectedIndex = 1
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.냉동기종류ComboBox.SelectedIndex = 0
Else
Me.냉동기종류ComboBox.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
'Me.냉동기종류ComboBox.Text = CStr(IIf( CB(i).Split(CChar(vbTab))(ii).Trim = "", "0", CB(i).Split(CChar(vbTab))(ii).Trim))
Case 7 + 5
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.냉동기압축방식ComboBox.SelectedIndex = 0
Else
Me.냉동기압축방식ComboBox.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
'Me.냉동기압축방식ComboBox.Text = CStr(IIf( CB(i).Split(CChar(vbTab))(ii).Trim = "", "0", CB(i).Split(CChar(vbTab))(ii).Trim))
Case 13
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.압축기제어방식ComboBox.SelectedIndex = 0
Else
Me.압축기제어방식ComboBox.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
'Me.압축기제어방식ComboBox.Text = CStr(IIf( CB(i).Split(CChar(vbTab))(ii).Trim = "", "0", CB(i).Split(CChar(vbTab))(ii).Trim))
Case 10 + 5
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.냉동기설비시스템ComboBox.SelectedIndex = 0
Else
Me.냉동기설비시스템ComboBox.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
'Me.냉동기설비시스템ComboBox.Text = CStr(IIf( CB(i).Split(CChar(vbTab))(ii).Trim = "", "0", CB(i).Split(CChar(vbTab))(ii).Trim))
Case 11 + 5
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.제어방식ComboBox.SelectedIndex = 0
Else
Me.제어방식ComboBox.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
'Me.제어방식ComboBox.Text = CStr(IIf( CB(i).Split(CChar(vbTab))(ii).Trim = "", "0", CB(i).Split(CChar(vbTab))(ii).Trim))
Case 14 + 5 '//열생산연결방식
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.cmb_열생산연결방식.SelectedIndex = 0
Else
Me.cmb_열생산연결방식.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
Case 14 + 5 + 1 '//사용연로
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.cmb_사용연료.SelectedIndex = 0
Else
Me.cmb_사용연료.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
Case 14 + 5 + 2
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.온수열생산기기ComboBox.SelectedIndex = 0
Else
Me.온수열생산기기ComboBox.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
' Me.온수열생산기기ComboBox.Text = CStr(IIf( CB(i).Split(CChar(vbTab))(ii).Trim = "", "0", CB(i).Split(CChar(vbTab))(ii).Trim))
Case 24
' Me.TabControl13.SelectedIndex = 2
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.증발식건식냉각기ComboBox.SelectedIndex = 0
Else
Me.증발식건식냉각기ComboBox.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
' Me.증발식건식냉각기ComboBox.Text = CStr(IIf( CB(i).Split(CChar(vbTab))(ii).Trim = "", "0", CB(i).Split(CChar(vbTab))(ii).Trim))
Case 25
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.증발식냉각기ComboBox.SelectedIndex = 0
Else
Me.증발식냉각기ComboBox.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
'Me.증발식냉각기ComboBox.Text = CStr(IIf( CB(i).Split(CChar(vbTab))(ii).Trim = "", "0", CB(i).Split(CChar(vbTab))(ii).Trim))
Case 26
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.보조방음기유무ComboBox.SelectedIndex = 0
Else
Me.보조방음기유무ComboBox.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
'Me.보조방음기유무ComboBox.Text = CStr(IIf( CB(i).Split(CChar(vbTab))(ii).Trim = "", "0", CB(i).Split(CChar(vbTab))(ii).Trim))
Case 27
Me.냉각수토출온도NTb.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 30
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.신재생연결여부ComboBox1.SelectedIndex = 0
Else
Me.신재생연결여부ComboBox1.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
'Me.신재생연결여부ComboBox1.Text = CStr(IIf( CB(i).Split(CChar(vbTab))(ii).Trim = "", "0", CB(i).Split(CChar(vbTab))(ii).Trim))
Case 31
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.cmb_신재생.SelectedIndex = 0
Else
Me.cmb_신재생.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
'Me.연결된시스템ComboBox1.Text = CStr(IIf(CB(i).Trim = "", "0", CB(i).Trim))
End Select
Next
Next
Me.bs.EndEdit()
End If
End Sub
Private Sub Validate_Control()
If Not Init Then Return
'//오류 냉동기방식 오류
Try
Dim V As String = CStr(CType(Me.bs.Current, DataRowView)("설명"))
Select Case Me.냉동기방식ComboBox.SelectedValue.ToString.Trim
Case "압축식", "압축식(LNG)" '//압축식
'Select Case V
' Case "냉동기A", "냉동기B"
' 냉동기종류ComboBox.Enabled = True
' 냉동기압축방식ComboBox.Enabled = True
' 압축기제어방식ComboBox.Enabled = False
' 냉동기설비시스템ComboBox.Enabled = False
' 제어방식ComboBox.Enabled = False
' 온수열생산기기ComboBox.Enabled = False
' 증발식건식냉각기ComboBox.Enabled = False
' 증발식냉각기ComboBox.Enabled = False
' 보조방음기유무ComboBox.Enabled = False
' 냉각수토출온도NTb.Enabled = False
' Case "냉동기C"
' 냉동기종류ComboBox.Enabled = True
' 냉동기압축방식ComboBox.Enabled = True
' 압축기제어방식ComboBox.Enabled = False
' 냉동기설비시스템ComboBox.Enabled = False
' 제어방식ComboBox.Enabled = False
' 온수열생산기기ComboBox.Enabled = False
' 증발식건식냉각기ComboBox.Enabled = True
' 증발식냉각기ComboBox.Enabled = True
' 보조방음기유무ComboBox.Enabled = True
' 냉각수토출온도NTb.Enabled = True
'End Select
'//건기연 수정 2010.04.07
냉동기종류ComboBox.Enabled = True
냉동기압축방식ComboBox.Enabled = True
Case "흡수식" '//흡수식
'Select Case V
' Case "냉동기A", "냉동기C"
' 냉동기종류ComboBox.Enabled = False
' '냉동기종류Label.Enabled = False
' 냉동기압축방식ComboBox.Enabled = False
' 압축기제어방식ComboBox.Enabled = False
' 냉동기설비시스템ComboBox.Enabled = False
' 제어방식ComboBox.Enabled = False
' 온수열생산기기ComboBox.Enabled = True
' 증발식건식냉각기ComboBox.Enabled = True
' 증발식냉각기ComboBox.Enabled = True
' 보조방음기유무ComboBox.Enabled = True
' 냉각수토출온도NTb.Enabled = True
' Case "냉동기B"
' 냉동기종류ComboBox.Enabled = False
' 냉동기압축방식ComboBox.Enabled = False
' 압축기제어방식ComboBox.Enabled = False
' 냉동기설비시스템ComboBox.Enabled = False
' 제어방식ComboBox.Enabled = False
' 온수열생산기기ComboBox.Enabled = True
' 증발식건식냉각기ComboBox.Enabled = True
' 증발식냉각기ComboBox.Enabled = False
' 보조방음기유무ComboBox.Enabled = False
' 냉각수토출온도NTb.Enabled = True
'End Select
냉동기종류ComboBox.Enabled = False
냉동기압축방식ComboBox.Enabled = False
Case "지역냉방" '//지역냉방
'Select Case V
' Case "냉동기A", "냉동기B", "냉동기C"
' 냉동기종류ComboBox.Enabled = False
' 냉동기압축방식ComboBox.Enabled = False
' 압축기제어방식ComboBox.Enabled = False
' 냉동기설비시스템ComboBox.Enabled = False
' 제어방식ComboBox.Enabled = False
' 온수열생산기기ComboBox.Enabled = False
' 증발식건식냉각기ComboBox.Enabled = False
' 증발식냉각기ComboBox.Enabled = False
' 보조방음기유무ComboBox.Enabled = False
' 냉각수토출온도NTb.Enabled = False
'End Select
냉동기종류ComboBox.Enabled = False
냉동기압축방식ComboBox.Enabled = False
End Select
Catch ex As Exception
End Try
Try
If Me.냉동기압축방식ComboBox.Text = "왕복동/스크롤 압축기" Then
Me.압축기제어방식ComboBox.Enabled = True
Else
Me.압축기제어방식ComboBox.SelectedIndex = 0 '//없음으로 설정하고
Me.압축기제어방식ComboBox.Enabled = False
End If
Catch ex As Exception
End Try
Try
If Me.냉동기방식ComboBox.Text = "흡수식" Then
Me.cmb_열생산연결방식.Enabled = True
Me.압축기제어방식ComboBox.Enabled = False
Me.냉동기설비시스템ComboBox.Enabled = False
Me.제어방식ComboBox.Enabled = False
Try
If Me.cmb_열생산연결방식.Text = "직화식" Then
Me.cmb_사용연료.Enabled = True
Me.온수열생산기기ComboBox.Enabled = False
Else
If Me.cmb_열생산연결방식.Text = "외부연결" Then
Me.cmb_사용연료.Enabled = False
Me.온수열생산기기ComboBox.Enabled = True
Else
Me.cmb_사용연료.Enabled = False
Me.온수열생산기기ComboBox.Enabled = False
End If
End If
Catch ex As Exception
End Try
Me.재냉각기GroupBox.Enabled = True
Else
Me.cmb_열생산연결방식.Enabled = False
Me.cmb_사용연료.Enabled = False
Me.온수열생산기기ComboBox.Enabled = False
If Me.냉동기방식ComboBox.Text = "압축식" Or Me.냉동기방식ComboBox.Text = "압축식(LNG)" Then
Select Case Me.냉동기종류ComboBox.Text
Case "수냉식"
Me.재냉각기GroupBox.Enabled = True
Me.냉동기압축방식ComboBox.Enabled = True
Me.냉동기설비시스템ComboBox.Enabled = False
Me.제어방식ComboBox.Enabled = False
Case "공냉식"
Me.재냉각기GroupBox.Enabled = False
Me.냉동기압축방식ComboBox.Enabled = True
Me.냉동기설비시스템ComboBox.Enabled = False
Me.제어방식ComboBox.Enabled = False
Case "실내공조시스템"
Me.냉동기압축방식ComboBox.Enabled = False
Me.냉동기설비시스템ComboBox.Enabled = True
Me.제어방식ComboBox.Enabled = True
Me.압축기제어방식ComboBox.Enabled = False
Me.재냉각기GroupBox.Enabled = False
Case Else
End Select
Else
Me.냉동기압축방식ComboBox.Enabled = False
Me.냉동기설비시스템ComboBox.Enabled = False
Me.제어방식ComboBox.Enabled = False
Me.압축기제어방식ComboBox.Enabled = False
Me.재냉각기GroupBox.Enabled = False
End If
End If
Catch ex As Exception
End Try
Me.bs.EndEdit()
End Sub
Private Sub bs_CurrentChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bs.CurrentChanged
If Not Init Then Return
Try
Dim Drv As DataRowView = CType(bs.Current, DataRowView)
Dim DR() As DataRow = DSET.tbl_zone.Select("열생산냉방생산기기='" & Drv("code").ToString & "' or 공조냉방생산기기='" & Drv("code").ToString & "'") '//2010.12.02 수정
'Dim DR() As DataRow = DSET.tbl_zone.Select("열생산냉방생산기기='" & Drv("code").ToString & "'")
Me.tb_zone_cnt.Text = CStr(DR.GetUpperBound(0) + 1)
Catch ex As Exception
Me.tb_zone_cnt.Text = "0"
End Try
Me.bs.EndEdit()
End Sub
Private Sub 냉동기방식ComboBox_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 냉동기방식ComboBox.SelectedIndexChanged
Validate_Control()
End Sub
Private Sub 냉동기압축방식ComboBox_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 냉동기압축방식ComboBox.SelectedIndexChanged
Validate_Control()
End Sub
Private Sub bt_Del_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles bt_Del.MouseDown
If e.Button = Windows.Forms.MouseButtons.Right Then
If MsgBox("전체삭제를 하시겠습니까?", MsgBoxStyle.Information Or MsgBoxStyle.OkCancel, "확인") = MsgBoxResult.Ok Then
Dim dR() As DataRow = DSET.tbl_nangbangkiki.Select(Me.bs.Filter, "")
For i As Integer = dR.GetUpperBound(0) To 0 Step -1
dR(i).Delete()
Next
DSET.tbl_nangbangkiki.AcceptChanges()
End If
End If
End Sub
Private Sub SplitContainer1_Panel2_Paint(ByVal sender As System.Object, ByVal e As System.Windows.Forms.PaintEventArgs) Handles SplitContainer1.Panel2.Paint
End Sub
Private Sub 냉동기종류ComboBox_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 냉동기종류ComboBox.SelectedIndexChanged
Validate_Control()
End Sub
Private Sub cmb_열생산연결방식_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmb_열생산연결방식.SelectedIndexChanged
Validate_Control()
End Sub
Private Sub dv_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles dv.MouseUp
If Prj.UserAuthType = "ADMIN" OrElse Prj.UserAuthType = "BOTH" OrElse Prj.UserAuthType = "BOTH2" OrElse Prj.UserAuthType = "BOTH1" Then '//2011.03.08 추가
If e.Button = Windows.Forms.MouseButtons.Right Then
Dim Frm_FilterA As New Frm_Filter
Frm_FilterA.ColumTitle = getColCaption(Me.Dt)
Frm_FilterA.ColumList = getColName(Me.Dt)
Frm_FilterA.Colorlist = "온수열생산기기,연결된시스템"
Frm_FilterA.Numfield = "" '//20100618 Color 리스트처럼 , 구분해서 필드들을 모두 넣으세요.(=, >= 등을 사용하기 위해서는 해당 항목을 추가 요망)
Frm_FilterA.Default_Filter = "code <> '0'"
If Frm_FilterA.ShowDialog <> Windows.Forms.DialogResult.OK Then Return '//창떳을떄 확인아ㅣ고 취소눌르면 다음을 수행하지않는다는거에요.
Dim Filter As String = Frm_FilterA.tb_filter.Text '//값은 아까 그 텍박에 잇구요.
Try
Me.bs.Filter = Filter
'//바꾸기값이 있으면 변경 20100618
If Frm_FilterA.cmb_fieldc.SelectedIndex >= 0 AndAlso Frm_FilterA.cmb_fieldc.Text.ToLower <> "code" AndAlso _
Frm_FilterA.tb_valuec.Text <> "" Then
Dim Drow() As DataRow = Me.Dt.Select(Filter)
For Each Dr As DataRow In Drow
Dr(Frm_FilterA.cmb_fieldc.Text) = Frm_FilterA.tb_valuec.Text
Next
MsgBox("바꾸기 완료", MsgBoxStyle.Information, "확인")
End If
Catch ex As Exception
Me.bs.Filter = ""
End Try
End If
End If
End Sub
Private Sub dv_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles dv.KeyDown
'//여기보시면 alt+d 누르면 한줄을 경고없이(falsE)삭제하도록 햇어요.. 사실원래 밋alt +d 인데.. ㅎㅎ 잘못해서 ctrl 됫다는
If Prj.UserAuthType = "ADMIN" OrElse Prj.UserAuthType = "BOTH" OrElse Prj.UserAuthType = "BOTH2" OrElse Prj.UserAuthType = "BOTH1" Then '//2011.03.08 추가
Select Case e.KeyCode
Case Keys.D
If e.Alt Then
Dbbase.DelCrow(Me.bs, False)
End If
Case Keys.C
If e.Control Then
Me.SrcDrv = Me.bs.Current
If Me.SrcDrv Is Nothing Then
MsgBox("저장할 ROW가 없습니다", MsgBoxStyle.Information, "확인")
Return
End If
' My.Computer.Clipboard.SetData("ZDATA", Drv)
End If
Case Keys.V
If e.Control Then
If Me.SrcDrv Is Nothing Then Return
Me.bt_add.PerformClick() '//신규추가
Dim NewDrv As DataRowView = Me.bs.Current
For Each C As DataColumn In Me.Dt.Columns
If C.ColumnName.ToUpper = "CODE" Then
ElseIf C.ColumnName.ToUpper = "설명" Then
NewDrv(C.ColumnName) = SrcDrv(C.ColumnName) & "#1"
Else
NewDrv(C.ColumnName) = SrcDrv(C.ColumnName)
End If
Next
Me.bs.EndEdit()
bs.MoveLast()
End If
End Select
End If
End Sub
Private Sub dv_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dv.CellContentClick
End Sub
End Class

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,802 @@
<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="Label165.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label166.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label181.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label185.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label186.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label188.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label184.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label190.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label193.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label192.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label194.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label195.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label196.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label2.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label3.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label4.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label5.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label6.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label7.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label8.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label9.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label10.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label11.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label12.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label13.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label14.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label15.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label1.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label17.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label16.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label19.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label20.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label27.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label28.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="bs.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>17, 17</value>
</metadata>
<metadata name="DS.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>81, 17</value>
</metadata>
<metadata name="bn.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>148, 17</value>
</metadata>
<assembly alias="System.Drawing" name="System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
<data name="PictureBox6.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
Y29sb3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29s
b3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAACxSZWZlcmVuY2Ug
Vmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAsUmVmZXJlbmNlIFZpZXdp
bmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdmlldwAA
AAAAE6T+ABRfLgAQzxQAA+3MAAQTCwADXJ4AAAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAA
AAEAAAAAAAAAAAAAAAAAAAAAAAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAU
ABkAHgAjACgALQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACp
AK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIBOAE+AUUBTAFS
AVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHyAfoCAwIMAhQCHQImAi8COAJB
AksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+
A4oDlgOiA64DugPHA9MD4APsA/kEBgQTBCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUN
BRwFKwU6BUkFWAVnBXcFhgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1
BwcHGQcrBz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII5wj7CRAJJQk6
CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyILOQtRC2kLgAuYC7ALyAvh
C/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN3g34DhMOLg5JDmQOfw6bDrYO0g7u
DwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCbELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJk
EoQSoxLDEuMTAxMjE0MTYxODE6QTxRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJ
FmwWjxayFtYW+hcdF0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqe
GsUa7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7pHxMfPh9p
H5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMKIzgjZiOUI8Ij8CQfJE0kfCSr
JNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgNKD8ocSiiKNQpBik4KWspnSnQKgIqNSpo
KpsqzysCKzYraSudK9EsBSw5LG4soizXLQwtQS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCk
MNsxEjFKMYIxujHyMioyYzKbMtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdg
N5w31zgUOFA4jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6g
PuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTORRJFVUWaRd5GIkZn
RqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwqTHJMuk0CTUpNk03cTiVObk63
TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19TqlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeS
V+BYL1h9WMtZGllpWbhaB1pWWqZa9VtFW5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8
YU9homH1YklinGLwY0Njl2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3
a09rp2v/bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1KHWF
deF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5ifsJ/I3+Ef+WAR4Co
gQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4efiASIaYjOiTOJmYn+imSKyoswi5aL/Ixj
jMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4
mSSZkJn8mmia1ZtCm6+cHJyJnPedZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWp
phqmi6b9p26n4KhSqMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4
s660JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/er/1wHDA7MFn
wePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfLNsu2zDXMtc01zbXONs62zzfPuNA5
0LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls2fHadtr724DcBdyK3RDdlt4c3qLfKd+v
4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbnH+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M
8Fjw5fFy8f/yjPMZ86f0NPTC9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23////b
AEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMD
AwMDAwMDA//bAEMBAQEBAQEBAQEBAQICAQICAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD
AwMDAwMDAwMDAwMDAwMDA//AABEIAAwAPAMBEQACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQID
BAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR
8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp
6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUE
BAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeo
qaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/
AP1ZH7UPxEAA/wCEw8bnj/ob9f8A/k+v7U/1Nyj/AKF+G/8ABUP/AJE/llcSZlZf7dX/APBk/wDMX/hq
H4if9Df43/8ACv1//wCT6P8AU3Kf+hfhv/BUP/kQ/wBZcy/6Dq//AIMn/mH/AA1D8RP+hv8AG/8A4V+v
/wDyfR/qblP/AEL8N/4Kh/8AIh/rLmX/AEHV/wDwZP8AzD/hqH4if9Df43/8K/X/AP5Po/1Nyn/oX4b/
AMFQ/wDkQ/1lzL/oOr/+DJ/5h/w1D8RP+hv8b/8AhX6//wDJ9H+puU/9C/Df+Cof/Ih/rLmX/QdX/wDB
k/8AMT/hqH4if9Df43/8K/X/AP5Po/1Nyn/oX4b/AMFQ/wDkQ/1kzL/oOr/+DJ/5n2R+xz+234zt/iRp
nw+8a6vqXiDwZ4gs9baObXr+bUr/AMPajpmkX2tQ3FlqV2Zb57K7XT2t3tXkaJWkV4whVxJ+beJfAuU4
Th/FZ/hKEKOMw8qd+SKjGcZzjTs4q0bpyUlJK7s073VvuuBOLMxxGcYfJ8TWlVw1ZTtzu7hKMJTupPWz
UWnFu2qatrf9aP8AhfXgv+zv7U89/sfm+V5207N+M43fSv50P2w/kwr/AEFP42CgAoAKACgAoA9s/Z0/
s7/hcng3+1vP/s7Ov/avs2PP2f8ACL63t2buP9ZjP+zmvz7xU/5IPPf+4H/qRRPsvD//AJK7KP8AuL/6
ZqH7/wD/ABaT/hUfb7Ht/wBj7V9p8v8A9Cr+Oz+lz//Z
</value>
</data>
<data name="PictureBox15.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
Y29sb3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29s
b3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAACxSZWZlcmVuY2Ug
Vmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAsUmVmZXJlbmNlIFZpZXdp
bmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdmlldwAA
AAAAE6T+ABRfLgAQzxQAA+3MAAQTCwADXJ4AAAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAA
AAEAAAAAAAAAAAAAAAAAAAAAAAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAU
ABkAHgAjACgALQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACp
AK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIBOAE+AUUBTAFS
AVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHyAfoCAwIMAhQCHQImAi8COAJB
AksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+
A4oDlgOiA64DugPHA9MD4APsA/kEBgQTBCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUN
BRwFKwU6BUkFWAVnBXcFhgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1
BwcHGQcrBz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII5wj7CRAJJQk6
CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyILOQtRC2kLgAuYC7ALyAvh
C/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN3g34DhMOLg5JDmQOfw6bDrYO0g7u
DwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCbELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJk
EoQSoxLDEuMTAxMjE0MTYxODE6QTxRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJ
FmwWjxayFtYW+hcdF0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqe
GsUa7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7pHxMfPh9p
H5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMKIzgjZiOUI8Ij8CQfJE0kfCSr
JNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgNKD8ocSiiKNQpBik4KWspnSnQKgIqNSpo
KpsqzysCKzYraSudK9EsBSw5LG4soizXLQwtQS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCk
MNsxEjFKMYIxujHyMioyYzKbMtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdg
N5w31zgUOFA4jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6g
PuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTORRJFVUWaRd5GIkZn
RqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwqTHJMuk0CTUpNk03cTiVObk63
TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19TqlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeS
V+BYL1h9WMtZGllpWbhaB1pWWqZa9VtFW5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8
YU9homH1YklinGLwY0Njl2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3
a09rp2v/bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1KHWF
deF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5ifsJ/I3+Ef+WAR4Co
gQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4efiASIaYjOiTOJmYn+imSKyoswi5aL/Ixj
jMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4
mSSZkJn8mmia1ZtCm6+cHJyJnPedZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWp
phqmi6b9p26n4KhSqMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4
s660JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/er/1wHDA7MFn
wePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfLNsu2zDXMtc01zbXONs62zzfPuNA5
0LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls2fHadtr724DcBdyK3RDdlt4c3qLfKd+v
4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbnH+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M
8Fjw5fFy8f/yjPMZ86f0NPTC9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23////b
AEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMD
AwMDAwMDA//bAEMBAQEBAQEBAQEBAQICAQICAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD
AwMDAwMDAwMDAwMDAwMDA//AABEIAAwAPAMBEQACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQID
BAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR
8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp
6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUE
BAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeo
qaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/
AP1ZH7UPxEAA/wCEw8bnj/ob9f8A/k+v7U/1Nyj/AKF+G/8ABUP/AJE/llcSZlZf7dX/APBk/wDMX/hq
H4if9Df43/8ACv1//wCT6P8AU3Kf+hfhv/BUP/kQ/wBZcy/6Dq//AIMn/mH/AA1D8RP+hv8AG/8A4V+v
/wDyfR/qblP/AEL8N/4Kh/8AIh/rLmX/AEHV/wDwZP8AzD/hqH4if9Df43/8K/X/AP5Po/1Nyn/oX4b/
AMFQ/wDkQ/1lzL/oOr/+DJ/5h/w1D8RP+hv8b/8AhX6//wDJ9H+puU/9C/Df+Cof/Ih/rLmX/QdX/wDB
k/8AMT/hqH4if9Df43/8K/X/AP5Po/1Nyn/oX4b/AMFQ/wDkQ/1kzL/oOr/+DJ/5n2R+xz+234zt/iRp
nw+8a6vqXiDwZ4gs9baObXr+bUr/AMPajpmkX2tQ3FlqV2Zb57K7XT2t3tXkaJWkV4whVxJ+beJfAuU4
Th/FZ/hKEKOMw8qd+SKjGcZzjTs4q0bpyUlJK7s073VvuuBOLMxxGcYfJ8TWlVw1ZTtzu7hKMJTupPWz
UWnFu2qatrf9aP8AhfXgv+zv7U89/sfm+V5207N+M43fSv50P2w/kwr/AEFP42CgAoAKACgAoA9s/Z0/
s7/hcng3+1vP/s7Ov/avs2PP2f8ACL63t2buP9ZjP+zmvz7xU/5IPPf+4H/qRRPsvD//AJK7KP8AuL/6
ZqH7/wD/ABaT/hUfb7Ht/wBj7V9p8v8A9Cr+Oz+lz//Z
</value>
</data>
<data name="PictureBox5.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
Y29sb3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29s
b3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAACxSZWZlcmVuY2Ug
Vmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAsUmVmZXJlbmNlIFZpZXdp
bmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdmlldwAA
AAAAE6T+ABRfLgAQzxQAA+3MAAQTCwADXJ4AAAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAA
AAEAAAAAAAAAAAAAAAAAAAAAAAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAU
ABkAHgAjACgALQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACp
AK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIBOAE+AUUBTAFS
AVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHyAfoCAwIMAhQCHQImAi8COAJB
AksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+
A4oDlgOiA64DugPHA9MD4APsA/kEBgQTBCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUN
BRwFKwU6BUkFWAVnBXcFhgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1
BwcHGQcrBz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII5wj7CRAJJQk6
CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyILOQtRC2kLgAuYC7ALyAvh
C/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN3g34DhMOLg5JDmQOfw6bDrYO0g7u
DwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCbELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJk
EoQSoxLDEuMTAxMjE0MTYxODE6QTxRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJ
FmwWjxayFtYW+hcdF0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqe
GsUa7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7pHxMfPh9p
H5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMKIzgjZiOUI8Ij8CQfJE0kfCSr
JNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgNKD8ocSiiKNQpBik4KWspnSnQKgIqNSpo
KpsqzysCKzYraSudK9EsBSw5LG4soizXLQwtQS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCk
MNsxEjFKMYIxujHyMioyYzKbMtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdg
N5w31zgUOFA4jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6g
PuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTORRJFVUWaRd5GIkZn
RqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwqTHJMuk0CTUpNk03cTiVObk63
TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19TqlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeS
V+BYL1h9WMtZGllpWbhaB1pWWqZa9VtFW5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8
YU9homH1YklinGLwY0Njl2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3
a09rp2v/bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1KHWF
deF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5ifsJ/I3+Ef+WAR4Co
gQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4efiASIaYjOiTOJmYn+imSKyoswi5aL/Ixj
jMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4
mSSZkJn8mmia1ZtCm6+cHJyJnPedZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWp
phqmi6b9p26n4KhSqMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4
s660JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/er/1wHDA7MFn
wePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfLNsu2zDXMtc01zbXONs62zzfPuNA5
0LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls2fHadtr724DcBdyK3RDdlt4c3qLfKd+v
4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbnH+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M
8Fjw5fFy8f/yjPMZ86f0NPTC9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23////b
AEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMD
AwMDAwMDA//bAEMBAQEBAQEBAQEBAQICAQICAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD
AwMDAwMDAwMDAwMDAwMDA//AABEIAAwAPAMBEQACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQID
BAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR
8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp
6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUE
BAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeo
qaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/
AP1ZH7UPxEAA/wCEw8bnj/ob9f8A/k+v7U/1Nyj/AKF+G/8ABUP/AJE/llcSZlZf7dX/APBk/wDMX/hq
H4if9Df43/8ACv1//wCT6P8AU3Kf+hfhv/BUP/kQ/wBZcy/6Dq//AIMn/mH/AA1D8RP+hv8AG/8A4V+v
/wDyfR/qblP/AEL8N/4Kh/8AIh/rLmX/AEHV/wDwZP8AzD/hqH4if9Df43/8K/X/AP5Po/1Nyn/oX4b/
AMFQ/wDkQ/1lzL/oOr/+DJ/5h/w1D8RP+hv8b/8AhX6//wDJ9H+puU/9C/Df+Cof/Ih/rLmX/QdX/wDB
k/8AMT/hqH4if9Df43/8K/X/AP5Po/1Nyn/oX4b/AMFQ/wDkQ/1kzL/oOr/+DJ/5n2R+xz+234zt/iRp
nw+8a6vqXiDwZ4gs9baObXr+bUr/AMPajpmkX2tQ3FlqV2Zb57K7XT2t3tXkaJWkV4whVxJ+beJfAuU4
Th/FZ/hKEKOMw8qd+SKjGcZzjTs4q0bpyUlJK7s073VvuuBOLMxxGcYfJ8TWlVw1ZTtzu7hKMJTupPWz
UWnFu2qatrf9aP8AhfXgv+zv7U89/sfm+V5207N+M43fSv50P2w/kwr/AEFP42CgAoAKACgAoA9s/Z0/
s7/hcng3+1vP/s7Ov/avs2PP2f8ACL63t2buP9ZjP+zmvz7xU/5IPPf+4H/qRRPsvD//AJK7KP8AuL/6
ZqH7/wD/ABaT/hUfb7Ht/wBj7V9p8v8A9Cr+Oz+lz//Z
</value>
</data>
<data name="PictureBox3.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
Y29sb3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29s
b3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAACxSZWZlcmVuY2Ug
Vmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAsUmVmZXJlbmNlIFZpZXdp
bmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdmlldwAA
AAAAE6T+ABRfLgAQzxQAA+3MAAQTCwADXJ4AAAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAA
AAEAAAAAAAAAAAAAAAAAAAAAAAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAU
ABkAHgAjACgALQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACp
AK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIBOAE+AUUBTAFS
AVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHyAfoCAwIMAhQCHQImAi8COAJB
AksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+
A4oDlgOiA64DugPHA9MD4APsA/kEBgQTBCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUN
BRwFKwU6BUkFWAVnBXcFhgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1
BwcHGQcrBz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII5wj7CRAJJQk6
CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyILOQtRC2kLgAuYC7ALyAvh
C/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN3g34DhMOLg5JDmQOfw6bDrYO0g7u
DwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCbELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJk
EoQSoxLDEuMTAxMjE0MTYxODE6QTxRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJ
FmwWjxayFtYW+hcdF0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqe
GsUa7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7pHxMfPh9p
H5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMKIzgjZiOUI8Ij8CQfJE0kfCSr
JNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgNKD8ocSiiKNQpBik4KWspnSnQKgIqNSpo
KpsqzysCKzYraSudK9EsBSw5LG4soizXLQwtQS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCk
MNsxEjFKMYIxujHyMioyYzKbMtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdg
N5w31zgUOFA4jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6g
PuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTORRJFVUWaRd5GIkZn
RqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwqTHJMuk0CTUpNk03cTiVObk63
TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19TqlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeS
V+BYL1h9WMtZGllpWbhaB1pWWqZa9VtFW5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8
YU9homH1YklinGLwY0Njl2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3
a09rp2v/bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1KHWF
deF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5ifsJ/I3+Ef+WAR4Co
gQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4efiASIaYjOiTOJmYn+imSKyoswi5aL/Ixj
jMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4
mSSZkJn8mmia1ZtCm6+cHJyJnPedZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWp
phqmi6b9p26n4KhSqMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4
s660JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/er/1wHDA7MFn
wePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfLNsu2zDXMtc01zbXONs62zzfPuNA5
0LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls2fHadtr724DcBdyK3RDdlt4c3qLfKd+v
4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbnH+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M
8Fjw5fFy8f/yjPMZ86f0NPTC9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23////b
AEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMD
AwMDAwMDA//bAEMBAQEBAQEBAQEBAQICAQICAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD
AwMDAwMDAwMDAwMDAwMDA//AABEIAAwAPAMBEQACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQID
BAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR
8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp
6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUE
BAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeo
qaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/
AP1ZH7UPxEAA/wCEw8bnj/ob9f8A/k+v7U/1Nyj/AKF+G/8ABUP/AJE/llcSZlZf7dX/APBk/wDMX/hq
H4if9Df43/8ACv1//wCT6P8AU3Kf+hfhv/BUP/kQ/wBZcy/6Dq//AIMn/mH/AA1D8RP+hv8AG/8A4V+v
/wDyfR/qblP/AEL8N/4Kh/8AIh/rLmX/AEHV/wDwZP8AzD/hqH4if9Df43/8K/X/AP5Po/1Nyn/oX4b/
AMFQ/wDkQ/1lzL/oOr/+DJ/5h/w1D8RP+hv8b/8AhX6//wDJ9H+puU/9C/Df+Cof/Ih/rLmX/QdX/wDB
k/8AMT/hqH4if9Df43/8K/X/AP5Po/1Nyn/oX4b/AMFQ/wDkQ/1kzL/oOr/+DJ/5n2R+xz+234zt/iRp
nw+8a6vqXiDwZ4gs9baObXr+bUr/AMPajpmkX2tQ3FlqV2Zb57K7XT2t3tXkaJWkV4whVxJ+beJfAuU4
Th/FZ/hKEKOMw8qd+SKjGcZzjTs4q0bpyUlJK7s073VvuuBOLMxxGcYfJ8TWlVw1ZTtzu7hKMJTupPWz
UWnFu2qatrf9aP8AhfXgv+zv7U89/sfm+V5207N+M43fSv50P2w/kwr/AEFP42CgAoAKACgAoA9s/Z0/
s7/hcng3+1vP/s7Ov/avs2PP2f8ACL63t2buP9ZjP+zmvz7xU/5IPPf+4H/qRRPsvD//AJK7KP8AuL/6
ZqH7/wD/ABaT/hUfb7Ht/wBj7V9p8v8A9Cr+Oz+lz//Z
</value>
</data>
<metadata name="ToolStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>214, 17</value>
</metadata>
<data name="PictureBox14.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
Y29sb3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29s
b3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAACxSZWZlcmVuY2Ug
Vmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAsUmVmZXJlbmNlIFZpZXdp
bmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdmlldwAA
AAAAE6T+ABRfLgAQzxQAA+3MAAQTCwADXJ4AAAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAA
AAEAAAAAAAAAAAAAAAAAAAAAAAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAU
ABkAHgAjACgALQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACp
AK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIBOAE+AUUBTAFS
AVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHyAfoCAwIMAhQCHQImAi8COAJB
AksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+
A4oDlgOiA64DugPHA9MD4APsA/kEBgQTBCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUN
BRwFKwU6BUkFWAVnBXcFhgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1
BwcHGQcrBz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII5wj7CRAJJQk6
CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyILOQtRC2kLgAuYC7ALyAvh
C/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN3g34DhMOLg5JDmQOfw6bDrYO0g7u
DwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCbELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJk
EoQSoxLDEuMTAxMjE0MTYxODE6QTxRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJ
FmwWjxayFtYW+hcdF0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqe
GsUa7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7pHxMfPh9p
H5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMKIzgjZiOUI8Ij8CQfJE0kfCSr
JNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgNKD8ocSiiKNQpBik4KWspnSnQKgIqNSpo
KpsqzysCKzYraSudK9EsBSw5LG4soizXLQwtQS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCk
MNsxEjFKMYIxujHyMioyYzKbMtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdg
N5w31zgUOFA4jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6g
PuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTORRJFVUWaRd5GIkZn
RqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwqTHJMuk0CTUpNk03cTiVObk63
TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19TqlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeS
V+BYL1h9WMtZGllpWbhaB1pWWqZa9VtFW5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8
YU9homH1YklinGLwY0Njl2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3
a09rp2v/bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1KHWF
deF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5ifsJ/I3+Ef+WAR4Co
gQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4efiASIaYjOiTOJmYn+imSKyoswi5aL/Ixj
jMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4
mSSZkJn8mmia1ZtCm6+cHJyJnPedZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWp
phqmi6b9p26n4KhSqMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4
s660JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/er/1wHDA7MFn
wePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfLNsu2zDXMtc01zbXONs62zzfPuNA5
0LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls2fHadtr724DcBdyK3RDdlt4c3qLfKd+v
4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbnH+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M
8Fjw5fFy8f/yjPMZ86f0NPTC9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23////b
AEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMD
AwMDAwMDA//bAEMBAQEBAQEBAQEBAQICAQICAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD
AwMDAwMDAwMDAwMDAwMDA//AABEIAAwAPAMBEQACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQID
BAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR
8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp
6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUE
BAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeo
qaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/
AP1ZH7UPxEAA/wCEw8bnj/ob9f8A/k+v7U/1Nyj/AKF+G/8ABUP/AJE/llcSZlZf7dX/APBk/wDMX/hq
H4if9Df43/8ACv1//wCT6P8AU3Kf+hfhv/BUP/kQ/wBZcy/6Dq//AIMn/mH/AA1D8RP+hv8AG/8A4V+v
/wDyfR/qblP/AEL8N/4Kh/8AIh/rLmX/AEHV/wDwZP8AzD/hqH4if9Df43/8K/X/AP5Po/1Nyn/oX4b/
AMFQ/wDkQ/1lzL/oOr/+DJ/5h/w1D8RP+hv8b/8AhX6//wDJ9H+puU/9C/Df+Cof/Ih/rLmX/QdX/wDB
k/8AMT/hqH4if9Df43/8K/X/AP5Po/1Nyn/oX4b/AMFQ/wDkQ/1kzL/oOr/+DJ/5n2R+xz+234zt/iRp
nw+8a6vqXiDwZ4gs9baObXr+bUr/AMPajpmkX2tQ3FlqV2Zb57K7XT2t3tXkaJWkV4whVxJ+beJfAuU4
Th/FZ/hKEKOMw8qd+SKjGcZzjTs4q0bpyUlJK7s073VvuuBOLMxxGcYfJ8TWlVw1ZTtzu7hKMJTupPWz
UWnFu2qatrf9aP8AhfXgv+zv7U89/sfm+V5207N+M43fSv50P2w/kwr/AEFP42CgAoAKACgAoA9s/Z0/
s7/hcng3+1vP/s7Ov/avs2PP2f8ACL63t2buP9ZjP+zmvz7xU/5IPPf+4H/qRRPsvD//AJK7KP8AuL/6
ZqH7/wD/ABaT/hUfb7Ht/wBj7V9p8v8A9Cr+Oz+lz//Z
</value>
</data>
<data name="PictureBox13.BackgroundImage" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
<value>
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
Y29sb3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAALklFQyA2MTk2Ni0yLjEgRGVmYXVsdCBSR0IgY29s
b3VyIHNwYWNlIC0gc1JHQgAAAAAAAAAAAAAAAAAAAAAAAAAAAABkZXNjAAAAAAAAACxSZWZlcmVuY2Ug
Vmlld2luZyBDb25kaXRpb24gaW4gSUVDNjE5NjYtMi4xAAAAAAAAAAAAAAAsUmVmZXJlbmNlIFZpZXdp
bmcgQ29uZGl0aW9uIGluIElFQzYxOTY2LTIuMQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAdmlldwAA
AAAAE6T+ABRfLgAQzxQAA+3MAAQTCwADXJ4AAAABWFlaIAAAAAAATAlWAFAAAABXH+dtZWFzAAAAAAAA
AAEAAAAAAAAAAAAAAAAAAAAAAAACjwAAAAJzaWcgAAAAAENSVCBjdXJ2AAAAAAAABAAAAAAFAAoADwAU
ABkAHgAjACgALQAyADcAOwBAAEUASgBPAFQAWQBeAGMAaABtAHIAdwB8AIEAhgCLAJAAlQCaAJ8ApACp
AK4AsgC3ALwAwQDGAMsA0ADVANsA4ADlAOsA8AD2APsBAQEHAQ0BEwEZAR8BJQErATIBOAE+AUUBTAFS
AVkBYAFnAW4BdQF8AYMBiwGSAZoBoQGpAbEBuQHBAckB0QHZAeEB6QHyAfoCAwIMAhQCHQImAi8COAJB
AksCVAJdAmcCcQJ6AoQCjgKYAqICrAK2AsECywLVAuAC6wL1AwADCwMWAyEDLQM4A0MDTwNaA2YDcgN+
A4oDlgOiA64DugPHA9MD4APsA/kEBgQTBCAELQQ7BEgEVQRjBHEEfgSMBJoEqAS2BMQE0wThBPAE/gUN
BRwFKwU6BUkFWAVnBXcFhgWWBaYFtQXFBdUF5QX2BgYGFgYnBjcGSAZZBmoGewaMBp0GrwbABtEG4wb1
BwcHGQcrBz0HTwdhB3QHhgeZB6wHvwfSB+UH+AgLCB8IMghGCFoIbgiCCJYIqgi+CNII5wj7CRAJJQk6
CU8JZAl5CY8JpAm6Cc8J5Qn7ChEKJwo9ClQKagqBCpgKrgrFCtwK8wsLCyILOQtRC2kLgAuYC7ALyAvh
C/kMEgwqDEMMXAx1DI4MpwzADNkM8w0NDSYNQA1aDXQNjg2pDcMN3g34DhMOLg5JDmQOfw6bDrYO0g7u
DwkPJQ9BD14Peg+WD7MPzw/sEAkQJhBDEGEQfhCbELkQ1xD1ERMRMRFPEW0RjBGqEckR6BIHEiYSRRJk
EoQSoxLDEuMTAxMjE0MTYxODE6QTxRPlFAYUJxRJFGoUixStFM4U8BUSFTQVVhV4FZsVvRXgFgMWJhZJ
FmwWjxayFtYW+hcdF0EXZReJF64X0hf3GBsYQBhlGIoYrxjVGPoZIBlFGWsZkRm3Gd0aBBoqGlEadxqe
GsUa7BsUGzsbYxuKG7Ib2hwCHCocUhx7HKMczBz1HR4dRx1wHZkdwx3sHhYeQB5qHpQevh7pHxMfPh9p
H5Qfvx/qIBUgQSBsIJggxCDwIRwhSCF1IaEhziH7IiciVSKCIq8i3SMKIzgjZiOUI8Ij8CQfJE0kfCSr
JNolCSU4JWgllyXHJfcmJyZXJocmtyboJxgnSSd6J6sn3CgNKD8ocSiiKNQpBik4KWspnSnQKgIqNSpo
KpsqzysCKzYraSudK9EsBSw5LG4soizXLQwtQS12Last4S4WLkwugi63Lu4vJC9aL5Evxy/+MDUwbDCk
MNsxEjFKMYIxujHyMioyYzKbMtQzDTNGM38zuDPxNCs0ZTSeNNg1EzVNNYc1wjX9Njc2cjauNuk3JDdg
N5w31zgUOFA4jDjIOQU5Qjl/Obw5+To2OnQ6sjrvOy07azuqO+g8JzxlPKQ84z0iPWE9oT3gPiA+YD6g
PuA/IT9hP6I/4kAjQGRApkDnQSlBakGsQe5CMEJyQrVC90M6Q31DwEQDREdEikTORRJFVUWaRd5GIkZn
RqtG8Ec1R3tHwEgFSEtIkUjXSR1JY0mpSfBKN0p9SsRLDEtTS5pL4kwqTHJMuk0CTUpNk03cTiVObk63
TwBPSU+TT91QJ1BxULtRBlFQUZtR5lIxUnxSx1MTU19TqlP2VEJUj1TbVShVdVXCVg9WXFapVvdXRFeS
V+BYL1h9WMtZGllpWbhaB1pWWqZa9VtFW5Vb5Vw1XIZc1l0nXXhdyV4aXmxevV8PX2Ffs2AFYFdgqmD8
YU9homH1YklinGLwY0Njl2PrZEBklGTpZT1lkmXnZj1mkmboZz1nk2fpaD9olmjsaUNpmmnxakhqn2r3
a09rp2v/bFdsr20IbWBtuW4SbmtuxG8eb3hv0XArcIZw4HE6cZVx8HJLcqZzAXNdc7h0FHRwdMx1KHWF
deF2Pnabdvh3VnezeBF4bnjMeSp5iXnnekZ6pXsEe2N7wnwhfIF84X1BfaF+AX5ifsJ/I3+Ef+WAR4Co
gQqBa4HNgjCCkoL0g1eDuoQdhICE44VHhauGDoZyhteHO4efiASIaYjOiTOJmYn+imSKyoswi5aL/Ixj
jMqNMY2Yjf+OZo7OjzaPnpAGkG6Q1pE/kaiSEZJ6kuOTTZO2lCCUipT0lV+VyZY0lp+XCpd1l+CYTJi4
mSSZkJn8mmia1ZtCm6+cHJyJnPedZJ3SnkCerp8dn4uf+qBpoNihR6G2oiailqMGo3aj5qRWpMelOKWp
phqmi6b9p26n4KhSqMSpN6mpqhyqj6sCq3Wr6axcrNCtRK24ri2uoa8Wr4uwALB1sOqxYLHWskuywrM4
s660JbSctRO1irYBtnm28Ldot+C4WbjRuUq5wro7urW7LrunvCG8m70VvY++Cr6Evv+/er/1wHDA7MFn
wePCX8Lbw1jD1MRRxM7FS8XIxkbGw8dBx7/IPci8yTrJuco4yrfLNsu2zDXMtc01zbXONs62zzfPuNA5
0LrRPNG+0j/SwdNE08bUSdTL1U7V0dZV1tjXXNfg2GTY6Nls2fHadtr724DcBdyK3RDdlt4c3qLfKd+v
4DbgveFE4cziU+Lb42Pj6+Rz5PzlhOYN5pbnH+ep6DLovOlG6dDqW+rl63Dr++yG7RHtnO4o7rTvQO/M
8Fjw5fFy8f/yjPMZ86f0NPTC9VD13vZt9vv3ivgZ+Kj5OPnH+lf65/t3/Af8mP0p/br+S/7c/23////b
AEMAAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQICAgICAgICAgICAwMD
AwMDAwMDA//bAEMBAQEBAQEBAQEBAQICAQICAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMDAwMD
AwMDAwMDAwMDAwMDAwMDA//AABEIAAwAPAMBEQACEQEDEQH/xAAfAAABBQEBAQEBAQAAAAAAAAAAAQID
BAUGBwgJCgv/xAC1EAACAQMDAgQDBQUEBAAAAX0BAgMABBEFEiExQQYTUWEHInEUMoGRoQgjQrHBFVLR
8CQzYnKCCQoWFxgZGiUmJygpKjQ1Njc4OTpDREVGR0hJSlNUVVZXWFlaY2RlZmdoaWpzdHV2d3h5eoOE
hYaHiImKkpOUlZaXmJmaoqOkpaanqKmqsrO0tba3uLm6wsPExcbHyMnK0tPU1dbX2Nna4eLj5OXm5+jp
6vHy8/T19vf4+fr/xAAfAQADAQEBAQEBAQEBAAAAAAAAAQIDBAUGBwgJCgv/xAC1EQACAQIEBAMEBwUE
BAABAncAAQIDEQQFITEGEkFRB2FxEyIygQgUQpGhscEJIzNS8BVictEKFiQ04SXxFxgZGiYnKCkqNTY3
ODk6Q0RFRkdISUpTVFVWV1hZWmNkZWZnaGlqc3R1dnd4eXqCg4SFhoeIiYqSk5SVlpeYmZqio6Slpqeo
qaqys7S1tre4ubrCw8TFxsfIycrS09TV1tfY2dri4+Tl5ufo6ery8/T19vf4+fr/2gAMAwEAAhEDEQA/
AP1ZH7UPxEAA/wCEw8bnj/ob9f8A/k+v7U/1Nyj/AKF+G/8ABUP/AJE/llcSZlZf7dX/APBk/wDMX/hq
H4if9Df43/8ACv1//wCT6P8AU3Kf+hfhv/BUP/kQ/wBZcy/6Dq//AIMn/mH/AA1D8RP+hv8AG/8A4V+v
/wDyfR/qblP/AEL8N/4Kh/8AIh/rLmX/AEHV/wDwZP8AzD/hqH4if9Df43/8K/X/AP5Po/1Nyn/oX4b/
AMFQ/wDkQ/1lzL/oOr/+DJ/5h/w1D8RP+hv8b/8AhX6//wDJ9H+puU/9C/Df+Cof/Ih/rLmX/QdX/wDB
k/8AMT/hqH4if9Df43/8K/X/AP5Po/1Nyn/oX4b/AMFQ/wDkQ/1kzL/oOr/+DJ/5n2R+xz+234zt/iRp
nw+8a6vqXiDwZ4gs9baObXr+bUr/AMPajpmkX2tQ3FlqV2Zb57K7XT2t3tXkaJWkV4whVxJ+beJfAuU4
Th/FZ/hKEKOMw8qd+SKjGcZzjTs4q0bpyUlJK7s073VvuuBOLMxxGcYfJ8TWlVw1ZTtzu7hKMJTupPWz
UWnFu2qatrf9aP8AhfXgv+zv7U89/sfm+V5207N+M43fSv50P2w/kwr/AEFP42CgAoAKACgAoA9s/Z0/
s7/hcng3+1vP/s7Ov/avs2PP2f8ACL63t2buP9ZjP+zmvz7xU/5IPPf+4H/qRRPsvD//AJK7KP8AuL/6
ZqH7/wD/ABaT/hUfb7Ht/wBj7V9p8v8A9Cr+Oz+lz//Z
</value>
</data>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>44</value>
</metadata>
</root>

View File

@@ -0,0 +1,940 @@
Public Class Frm_Nanbang
Dim isCopy As Boolean = False
Dim Init As Boolean = False
Dim SrcDrv As DataRowView
#Region "data Base 변경여부및 적용방법"
'''변경된내용을적용한다.
Public Overrides Function AcceptChanged() As Boolean
bs.EndEdit()
Dim BaseDS As DataSet = CType(bs.DataSource, DataSet)
Dim BaseDT As DataTable = BaseDS.Tables(bs.DataMember)
BaseDT.AcceptChanges()
Return True
End Function
'''변경된내용이있다면 취소한다.
Public Overrides Function RejectChanged() As Boolean
Dim BaseDS As DataSet = CType(bs.DataSource, DataSet)
Dim BaseDT As DataTable = BaseDS.Tables(bs.DataMember)
BaseDT.RejectChanges()
Return True
End Function
'''데이터에변형이있었는가?
Public Overrides Function HasChanged() As Boolean
bs.EndEdit()
Dim BaseDS As DataSet = CType(bs.DataSource, DataSet)
Dim BaseDT As DataTable = BaseDS.Tables(bs.DataMember)
Dim ChangeDT As DataTable = BaseDT.GetChanges
If Not ChangeDT Is Nothing Then Return True
Return False
End Function
'''기본데이터테이블을 반환합니다.
Public Function DT() As DataTable
Dim BaseDS As DataSet = CType(bs.DataSource, DataSet)
Return BaseDS.Tables(bs.DataMember)
End Function
#End Region
Private Sub MdiMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'MdiMain.Toggle_Menu_Color(MdiMain.E_MenuIdx.난방기기)
' CEnergy.ARINCLASS.SaveLoad_FrmSetting(Me)
'//프로필 관련
'//공유데이터셋에 연결한다.
Me.bs.DataSource = DSET
'//난방기기
AddHandler DSET.tbl_nanbangkiki.TableNewRow, AddressOf AddNewDataRow_nanbangkiki
'//콤보컨트롤 바인딩
Binding_Zone()
Me.bs.Filter = "code <> '0' and 열생산기기방식 = '" + Me.Parameter + "'"
Me.lb_grpname.Text = Me.Parameter
'//모든컨트롤의 cTrl_enter 를 추가합니다
BindProperty(CType(Me.SplitContainer1.Panel2.Controls, Control.ControlCollection))
Me.Init = True
Try
Me.bs.Position = CEnergy.ARINCLASS.Read_LastPos_Frm(Me)
Catch ex As Exception
Me.bs.MoveFirst()
End Try
bs_CurrentChanged(sender, e)
Validate_Control()
End Sub
#Region "Control_Enter"
Private Sub BindProperty(ByVal Ctl As Control.ControlCollection)
For Each C As Control In Ctl
If C.Controls.Count > 1 Then
BindProperty(C.Controls)
Else
If C.GetType.ToString.ToUpper.IndexOf("MYTB") <> -1 Then
AddHandler CType(C, MyTb).KeyDown, AddressOf TextBOx_KeyDown
ElseIf C.GetType.ToString.ToUpper.IndexOf("MYCMB") <> -1 Then
AddHandler CType(C, MyCmb).KeyDown, AddressOf Cmd_KeyDown
End If
End If
Next
End Sub
Private Sub TextBOx_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)
If e.KeyCode = Keys.Enter AndAlso e.Control Then
Try
Dim Field As String = (CType(sender, MyTb).DataBindings.Item("text").BindingMemberInfo.BindingField)
For Each Dr As DataRow In Dt.Select(Me.bs.Filter, "")
Dr(Field) = CType(sender, MyTb).Text
Next
Work_msg_timer("모든값이 변경되었습니다", 25)
Catch ex As Exception
End Try
End If
End Sub
Private Sub Cmd_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)
If e.KeyCode = Keys.Enter AndAlso e.Control Then
Try
Dim Field As String = (CType(sender, MyCmb).DataBindings.Item("selectedvalue").BindingMemberInfo.BindingField)
For Each Dr As DataRow In Dt.Select(Me.bs.Filter, "")
Dr(Field) = CType(sender, MyCmb).SelectedValue
Next
Work_msg_timer("모든값이 변경되었습니다", 25)
Catch ex As Exception
End Try
End If
End Sub
#End Region
#Region "난방기기"
Private Sub ToolStripButton48_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_add.Click
If Not EndEdit(Me.bs) Then Return
Me.bs.AddNew()
INitRow(Me.Controls)
End Sub
Private Sub ToolStripButton49_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_Del.Click
Dbbase.DelCrow(Me.bs, True)
End Sub
Private Sub ToolStripButton51_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_cancel.Click
If Not EndEdit(Me.bs) Then Return
Data_Cancel(DSET.tbl_profile, Nothing)
End Sub
Private Sub MdiMain_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
CEnergy.ARINCLASS.SaveLoad_FrmSetting(Me, Me.bs.Position, True)
End Sub
Private Sub MdiMain_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
Select Case e.KeyCode
Case Keys.F12
End Select
End Sub
Private Function GetMaxCode(ByVal dt As DataTable) As String
Try
Dim Dr As DataRow = dt.Select("", "code desc")(0)
Return Format(CInt(Dr("code")) + 1, "0000")
Catch ex As Exception
Return "0001"
End Try
End Function
Private Sub Cmb_DeleteVal(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)
If e.KeyCode = Keys.Delete Then
CType(sender, ComboBox).SelectedValue = ""
End If
End Sub
Private Sub Binding_Zone()
'//난방기기
Dim bs_열생산기기방식NCMB As New BindingSource(DSET, "tbl_common")
bs_열생산기기방식NCMB.Filter = "gubun='1020'"
bs_열생산기기방식NCMB.Sort = "code"
Me.열생산기기방식NCMB.DataSource = bs_열생산기기방식NCMB
열생산기기방식NCMB.DisplayMember = "name"
열생산기기방식NCMB.ValueMember = "name"
Me.열생산기기방식NCMB.DataBindings.Add("selectedvalue", Me.bs, "열생산기기방식")
'AddHandler 열생산기기방식NCMB.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_사용연료NCMB As New BindingSource(DSET, "tbl_common")
bs_사용연료NCMB.Filter = "gubun='1021'"
bs_사용연료NCMB.Sort = "code"
Me.사용연료NCMB.DataSource = bs_사용연료NCMB
사용연료NCMB.DisplayMember = "name"
사용연료NCMB.ValueMember = "name"
Me.사용연료NCMB.DataBindings.Add("selectedvalue", Me.bs, "사용연료")
'AddHandler 사용연료NCMB.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_운전방식NCMB As New BindingSource(DSET, "tbl_common")
bs_운전방식NCMB.Filter = "gubun='1035'"
bs_운전방식NCMB.Sort = "code"
Me.운전방식NCMB.DataSource = bs_운전방식NCMB
운전방식NCMB.DisplayMember = "name"
운전방식NCMB.ValueMember = "name"
Me.운전방식NCMB.DataBindings.Add("selectedvalue", Me.bs, "운전방식")
'AddHandler 운전방식NCMB.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_보일러방식NCMB As New BindingSource(DSET, "tbl_common")
bs_보일러방식NCMB.Filter = "gubun='1036'"
bs_보일러방식NCMB.Sort = "code"
Me.보일러방식NCMB.DataSource = bs_보일러방식NCMB
보일러방식NCMB.DisplayMember = "name"
보일러방식NCMB.ValueMember = "name"
Me.보일러방식NCMB.DataBindings.Add("selectedvalue", Me.bs, "보일러방식")
'AddHandler 보일러방식NCMB.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_지역난방방식NCMB As New BindingSource(DSET, "tbl_common")
bs_지역난방방식NCMB.Filter = "gubun='1037'"
bs_지역난방방식NCMB.Sort = "code"
Me.지역난방방식NCMB.DataSource = bs_지역난방방식NCMB
지역난방방식NCMB.DisplayMember = "name"
지역난방방식NCMB.ValueMember = "name"
Me.지역난방방식NCMB.DataBindings.Add("selectedvalue", Me.bs, "지역난방방식")
'AddHandler 지역난방방식NCMB.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_단열등급NCMB As New BindingSource(DSET, "tbl_common")
bs_단열등급NCMB.Filter = "gubun='1038'"
bs_단열등급NCMB.Sort = "code"
Me.단열등급NCMB.DataSource = bs_단열등급NCMB
단열등급NCMB.DisplayMember = "name"
단열등급NCMB.ValueMember = "name"
Me.단열등급NCMB.DataBindings.Add("selectedvalue", Me.bs, "단열등급")
'AddHandler 단열등급NCMB.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_축열탱크방식NCMB As New BindingSource(DSET, "tbl_common")
bs_축열탱크방식NCMB.Filter = "gubun='1039'"
bs_축열탱크방식NCMB.Sort = "code"
Me.축열탱크방식NCMB.DataSource = bs_축열탱크방식NCMB
축열탱크방식NCMB.DisplayMember = "name"
축열탱크방식NCMB.ValueMember = "name"
Me.축열탱크방식NCMB.DataBindings.Add("selectedvalue", Me.bs, "축열탱크방식")
' AddHandler 축열탱크방식NCMB.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_배관망유형ComboBox As New BindingSource(DSET, "tbl_common")
bs_배관망유형ComboBox.Filter = "gubun='1040'"
bs_배관망유형ComboBox.Sort = "code"
Me.배관망유형ComboBox.DataSource = bs_배관망유형ComboBox
배관망유형ComboBox.DisplayMember = "name"
배관망유형ComboBox.ValueMember = "name"
Me.배관망유형ComboBox.DataBindings.Add("selectedvalue", Me.bs, "배관망유형")
'AddHandler 배관망유형ComboBox.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_펌프교정계수ComboBox As New BindingSource(DSET, "tbl_common")
bs_펌프교정계수ComboBox.Filter = "gubun='1002'"
bs_펌프교정계수ComboBox.Sort = "code"
Me.펌프교정계수ComboBox.DataSource = bs_펌프교정계수ComboBox
펌프교정계수ComboBox.DisplayMember = "name"
펌프교정계수ComboBox.ValueMember = "name"
Me.펌프교정계수ComboBox.DataBindings.Add("selectedvalue", Me.bs, "펌프교정계수")
'AddHandler 펌프교정계수ComboBox.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_펌프제어유형ComboBox As New BindingSource(DSET, "tbl_common")
bs_펌프제어유형ComboBox.Filter = "gubun='1041'"
bs_펌프제어유형ComboBox.Sort = "code"
Me.펌프제어유형ComboBox.DataSource = bs_펌프제어유형ComboBox
펌프제어유형ComboBox.DisplayMember = "name"
펌프제어유형ComboBox.ValueMember = "name"
Me.펌프제어유형ComboBox.DataBindings.Add("selectedvalue", Me.bs, "펌프제어유형")
'AddHandler 펌프제어유형ComboBox.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_분배시스템방식ComboBox As New BindingSource(DSET, "tbl_common")
bs_분배시스템방식ComboBox.Filter = "gubun='1042'"
bs_분배시스템방식ComboBox.Sort = "code"
Me.분배시스템방식ComboBox.DataSource = bs_분배시스템방식ComboBox
분배시스템방식ComboBox.DisplayMember = "name"
분배시스템방식ComboBox.ValueMember = "name"
Me.분배시스템방식ComboBox.DataBindings.Add("selectedvalue", Me.bs, "분배시스템방식")
'AddHandler 분배시스템방식ComboBox.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_순환유무ComboBox As New BindingSource(DSET, "tbl_common")
bs_순환유무ComboBox.Filter = "gubun='1032'"
bs_순환유무ComboBox.Sort = "code"
Me.순환유무ComboBox.DataSource = bs_순환유무ComboBox
순환유무ComboBox.DisplayMember = "name"
순환유무ComboBox.ValueMember = "name"
Me.순환유무ComboBox.DataBindings.Add("selectedvalue", Me.bs, "순환유무")
'AddHandler 순환유무ComboBox.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_펌프제어ComboBox As New BindingSource(DSET, "tbl_common")
bs_펌프제어ComboBox.Filter = "gubun='1043'"
bs_펌프제어ComboBox.Sort = "code"
Me.펌프제어ComboBox.DataSource = bs_펌프제어ComboBox
펌프제어ComboBox.DisplayMember = "name"
펌프제어ComboBox.ValueMember = "name"
Me.펌프제어ComboBox.DataBindings.Add("selectedvalue", Me.bs, "펌프제어")
'AddHandler 펌프제어ComboBox.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_신재생연결여부ComboBox As New BindingSource(DSET, "tbl_common")
bs_신재생연결여부ComboBox.Filter = "gubun='1044'"
bs_신재생연결여부ComboBox.Sort = "code"
Me.신재생연결여부ComboBox.DataSource = bs_신재생연결여부ComboBox
신재생연결여부ComboBox.DisplayMember = "name"
신재생연결여부ComboBox.ValueMember = "name"
Me.신재생연결여부ComboBox.DataBindings.Add("selectedvalue", Me.bs, "신재생연결여부")
'AddHandler 신재생연결여부ComboBox.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_연결된시스템 As New BindingSource(DSET, "tbl_new")
bs_연결된시스템.Sort = "code"
Me.cmb_신재생.DataSource = bs_연결된시스템
cmb_신재생.DisplayMember = "설명"
cmb_신재생.ValueMember = "code"
Me.cmb_신재생.DataBindings.Add("selectedvalue", Me.bs, "연결된시스템")
'AddHandler 연결된시스템ComboBox.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_히트펌프연료 As New BindingSource(DSET, "tbl_common")
bs_히트펌프연료.Filter = "gubun='1086'"
bs_히트펌프연료.Sort = "code"
Me.cmb_히트사용연료.DataSource = bs_히트펌프연료
cmb_히트사용연료.DisplayMember = "name"
cmb_히트사용연료.ValueMember = "name"
Me.cmb_히트사용연료.DataBindings.Add("selectedvalue", Me.bs, "히트연료")
Dim bs_히트펌프종류 As New BindingSource(DSET, "tbl_common")
bs_히트펌프종류.Filter = "gubun='1087'"
bs_히트펌프종류.Sort = "code"
Me.cmb_히트펌프시스템종류.DataSource = bs_히트펌프종류
cmb_히트펌프시스템종류.DisplayMember = "name"
cmb_히트펌프시스템종류.ValueMember = "name"
Me.cmb_히트펌프시스템종류.DataBindings.Add("selectedvalue", Me.bs, "히트펌프시스템종류")
'AddHandler 신재생연결여부ComboBox.KeyDown, AddressOf Cmb_DeleteVal
End Sub
Private Sub Binding_nanbangkiki()
End Sub
Private Sub AddNewDataRow_nanbangkiki(ByVal sender As Object, ByVal e As System.Data.DataTableNewRowEventArgs)
e.Row.Item("code") = GetMaxCode(DSET.tbl_nanbangkiki)
End Sub
#End Region
Private Sub 신재생연결여부ComboBox_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 신재생연결여부ComboBox.SelectedIndexChanged
Validate_Control()
End Sub
Private Sub 축열탱크방식NCMB_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 축열탱크방식NCMB.SelectedIndexChanged
Validate_Control()
End Sub
Private Sub 운전방식NCMB_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 운전방식NCMB.SelectedIndexChanged
Validate_Control()
End Sub
Private Sub Validate_Control()
If Not Init Then Return
If isCopy Then Return
Try
If Me.신재생연결여부ComboBox.SelectedIndex = 0 Then
cmb_신재생.Enabled = False
Else
cmb_신재생.Enabled = True
End If
Catch ex As Exception
End Try
Try
If Me.축열탱크방식NCMB.SelectedIndex = 0 Then
축열제척NTb.Enabled = False
MyTb1.Enabled = False
Else
축열제척NTb.Enabled = True
MyTb1.Enabled = True
End If
Catch ex As Exception
End Try
Try
If Me.운전방식NCMB.SelectedIndex = 0 Then
tb_보일러대수다수.Enabled = False
Else
tb_보일러대수다수.Enabled = True
End If
Catch ex As Exception
End Try
Try
Select Case Me.열생산기기방식NCMB.SelectedValue.ToString.Trim
Case "보일러" '//보일러
Me.PictureBox2.BackColor = Color.FromArgb(219, 221, 223)
Me.Label50.BackColor = Color.FromArgb(219, 221, 223)
Me.Label180.BackColor = Color.FromArgb(219, 221, 223)
Me.Label182.BackColor = Color.FromArgb(219, 221, 223)
사용연료NCMB.Enabled = True
Me.급수온도NTb1.Enabled = True
Me.환수온도NTb1.Enabled = True
보일러정격출력NTb.Enabled = True
열교환기정격출력NTb.Enabled = False
운전방식NCMB.Enabled = True
정격보일러효율NTb.Enabled = True
보일러방식NCMB.Enabled = True
지역난방방식NCMB.Enabled = False
Me.단열등급NCMB.Enabled = False
'/// 2011. 1. 31 수정
Me.배관망유형ComboBox.Enabled = True
Me.펌프교정계수ComboBox.Enabled = True
Me.펌프제어유형ComboBox.Enabled = True
Me.펌프동력NTb.Enabled = True
'// 2011. 1. 31 수정
Case "지역난방" '//지역난방
Me.PictureBox2.BackColor = Color.FromArgb(219, 221, 223)
Me.Label50.BackColor = Color.FromArgb(219, 221, 223)
Me.Label180.BackColor = Color.FromArgb(219, 221, 223)
Me.Label182.BackColor = Color.FromArgb(219, 221, 223)
사용연료NCMB.Enabled = False
Me.급수온도NTb1.Enabled = True
Me.환수온도NTb1.Enabled = True
보일러정격출력NTb.Enabled = False
열교환기정격출력NTb.Enabled = True
운전방식NCMB.Enabled = False
tb_보일러대수다수.Enabled = False
정격보일러효율NTb.Enabled = True
보일러방식NCMB.Enabled = False
지역난방방식NCMB.Enabled = True
Me.단열등급NCMB.Enabled = True
'/// 2011. 1. 31 수정
Me.배관망유형ComboBox.Enabled = True
Me.펌프교정계수ComboBox.Enabled = True
Me.펌프제어유형ComboBox.Enabled = True
Me.펌프동력NTb.Enabled = True
'// 2011. 1. 31 수정
Case "전기보일러" '//전기보일러
Me.PictureBox2.BackColor = Color.FromArgb(219, 221, 223)
Me.Label50.BackColor = Color.FromArgb(219, 221, 223)
Me.Label180.BackColor = Color.FromArgb(219, 221, 223)
Me.Label182.BackColor = Color.FromArgb(219, 221, 223)
사용연료NCMB.Enabled = False
Me.급수온도NTb1.Enabled = True
Me.환수온도NTb1.Enabled = True
보일러정격출력NTb.Enabled = True
열교환기정격출력NTb.Enabled = False
운전방식NCMB.Enabled = False
정격보일러효율NTb.Enabled = True
보일러방식NCMB.Enabled = False
지역난방방식NCMB.Enabled = False
Me.단열등급NCMB.Enabled = False
'/// 2011. 1. 31 수정
Me.배관망유형ComboBox.Enabled = True
Me.펌프교정계수ComboBox.Enabled = True
Me.펌프제어유형ComboBox.Enabled = True
Me.펌프동력NTb.Enabled = True
'// 2011. 1. 31 수정
Case "히트펌프" '//히트펌프
Me.PictureBox2.BackColor = Color.FromArgb(243, 244, 246)
Me.Label50.BackColor = Color.FromArgb(243, 244, 246)
Me.Label180.BackColor = Color.FromArgb(243, 244, 246)
Me.Label182.BackColor = Color.FromArgb(243, 244, 246)
사용연료NCMB.Enabled = False
Me.급수온도NTb1.Enabled = True
Me.환수온도NTb1.Enabled = True
보일러정격출력NTb.Enabled = False
열교환기정격출력NTb.Enabled = False
운전방식NCMB.Enabled = True
정격보일러효율NTb.Enabled = False
보일러방식NCMB.Enabled = False
지역난방방식NCMB.Enabled = False
Me.단열등급NCMB.Enabled = False
'/// 2011. 1. 31 수정
Me.배관망유형ComboBox.Enabled = True
Me.펌프교정계수ComboBox.Enabled = True
Me.펌프제어유형ComboBox.Enabled = True
Me.펌프동력NTb.Enabled = True
'// 2011. 1. 31 수정
End Select
Me.bs.EndEdit()
Catch ex As Exception
End Try
Try
If Me.열생산기기방식NCMB.Text = "히트펌프" Then
cmb_히트사용연료.Enabled = True
tb_히트용량.Enabled = True
tb_히트정격7.Enabled = True
tb_히트정격10.Enabled = True
tb_히트길이.Enabled = True
cmb_히트펌프시스템종류.Enabled = True
Else
cmb_히트사용연료.Enabled = False
tb_히트용량.Enabled = False
tb_히트정격7.Enabled = False
tb_히트정격10.Enabled = False
tb_히트길이.Enabled = False
cmb_히트펌프시스템종류.Enabled = False
End If
Catch ex As Exception
End Try
If Me.분배시스템방식ComboBox.SelectedIndex >= 0 Then
Try
Select Case Me.분배시스템방식ComboBox.Text
Case "중앙식"
순환유무ComboBox.Enabled = True
펌프제어ComboBox.Enabled = True
펌프동력급탕NTb.Enabled = True
건물길이NTb.Enabled = True
건물넓이NTb.Enabled = True
열공급층수NTb.Enabled = True
층고NTb.Enabled = True
Me.RadioButton1.Enabled = True
Me.RadioButton2.Enabled = True
If RadioButton2.Checked = True Then
Me.급탕배관길이NTB.Enabled = True
End If
Case "개별식"
순환유무ComboBox.Enabled = False
펌프제어ComboBox.Enabled = True
펌프동력급탕NTb.Enabled = True
건물길이NTb.Enabled = False
건물넓이NTb.Enabled = False
열공급층수NTb.Enabled = False
층고NTb.Enabled = False
Me.급탕배관길이NTB.Enabled = False
Me.RadioButton1.Enabled = False
Me.RadioButton2.Enabled = False
End Select
Catch ex As Exception
End Try
End If
If Me.급탕배관길이NTB.Text <> "" AndAlso Me.급탕배관길이NTB.Text <> "0" Then '//배관길이 값을통해서 라디오버튼설정
Me.RadioButton2.Checked = True
건물길이NTb.Enabled = False
건물넓이NTb.Enabled = False
열공급층수NTb.Enabled = False
층고NTb.Enabled = False
ElseIf Me.분배시스템방식ComboBox.Text = "중앙식" Then
Me.RadioButton1.Checked = True
건물길이NTb.Enabled = True
건물넓이NTb.Enabled = True
열공급층수NTb.Enabled = True
층고NTb.Enabled = True
End If
End Sub
Private Sub 열생산기기방식NCMB_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles 열생산기기방식NCMB.KeyDown
If e.KeyCode = Keys.V And e.Control Then
isCopy = True
' Clear_Control(Me.TabPage2)
e.Handled = True
e.SuppressKeyPress = False
'//클립보드붙여넣기
Dim CB() As String = My.Computer.Clipboard.GetText.Split(CChar(vbCrLf))
If CB.GetUpperBound(0) <> 58 Then
MsgBox("붙여넣기가 호환되는 데이터가 아닙니다.", MsgBoxStyle.Information, "확인")
Return
End If
For ii As Integer = 0 To CType(CB(0).Split(CChar(vbTab)), String()).GetUpperBound(0)
If Me.bs.Count = 0 OrElse ii > 0 Then Me.bt_Add.PerformClick() '//한줄추가
Dim Cnt As Short = 0
For i As Integer = 0 To CB.GetUpperBound(0)
Select Case i
Case 0
CType(bs.Current, DataRowView)("설명") = CB(i).Split(CChar(vbTab))(ii).Trim
Case 0 + 8 '//사용프로필 앞에 두개를 숫자4자리로변환 '//뒷부분이 와존히 다른느낌 ^^;;어 아닌데.. 수정안된거예요..
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.열생산기기방식NCMB.SelectedIndex = 0
Else
Me.열생산기기방식NCMB.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
'Me.열생산기기방식NCMB.Text = CStr(IIf( CB(i).Split(CChar(vbTab))(ii).Trim = "", "0", CB(i).Split(CChar(vbTab))(ii).Trim))
Case 1 + 8 '//공란
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.사용연료NCMB.SelectedIndex = 0
Else
Me.사용연료NCMB.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
'Me.사용연료NCMB.Text = CStr(IIf( CB(i).Split(CChar(vbTab))(ii).Trim = "", "0", CB(i).Split(CChar(vbTab))(ii).Trim))
Case 2 + 8 '//면적
Me.급수온도NTb1.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 3 + 8
Me.환수온도NTb1.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 4 + 8
Me.보일러정격출력NTb.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 5 + 8
Me.열교환기정격출력NTb.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 6 + 8
Case 15
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.운전방식NCMB.SelectedIndex = 0
Else
Me.운전방식NCMB.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
'Me.운전방식NCMB.Text = CStr(IIf( CB(i).Split(CChar(vbTab))(ii).Trim = "", "0", CB(i).Split(CChar(vbTab))(ii).Trim))
Case 8 + 8
Me.tb_보일러대수다수.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 11 + 8
'Me.TabControl12.SelectedIndex = 1
Me.정격보일러효율NTb.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 13 + 8
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.보일러방식NCMB.SelectedIndex = 0
Else
Me.보일러방식NCMB.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
'Me.보일러방식NCMB.Text = CStr(IIf( CB(i).Split(CChar(vbTab))(ii).Trim = "", "0", CB(i).Split(CChar(vbTab))(ii).Trim))
Case 23
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.지역난방방식NCMB.SelectedIndex = 0
Else
Me.지역난방방식NCMB.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
'Me.지역난방방식NCMB.Text = CStr(IIf( CB(i).Split(CChar(vbTab))(ii).Trim = "", "0", CB(i).Split(CChar(vbTab))(ii).Trim))
Case 16 + 8
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.단열등급NCMB.SelectedIndex = 0
Else
Me.단열등급NCMB.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
'Me.단열등급NCMB.Text = CStr(IIf( CB(i).Split(CChar(vbTab))(ii).Trim = "", "0", CB(i).Split(CChar(vbTab))(ii).Trim))
Case 25 '//히트펌프
Case 26 '//사용연료
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.cmb_히트사용연료.SelectedIndex = 0
Else
Me.cmb_히트사용연료.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
Case 27
Me.tb_히트용량.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 28
Me.tb_히트정격7.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 29
Me.tb_히트정격10.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 30
Me.tb_히트길이.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 31
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.cmb_히트펌프시스템종류.SelectedIndex = 0
Else
Me.cmb_히트펌프시스템종류.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
Case 19 + 8 + 6 + 1
' Me.TabControl12.SelectedIndex = 2
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.축열탱크방식NCMB.SelectedIndex = 0
Else
Me.축열탱크방식NCMB.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
Case 20 + 8 + 6 + 1
Me.축열제척NTb.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 21 + 8 + 6 + 1
Me.MyTb1.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 24 + 8 + 6 + 1
' Me.TabControl12.SelectedIndex = 3
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.배관망유형ComboBox.SelectedIndex = 0
Else
Me.배관망유형ComboBox.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
' Me.배관망유형ComboBox.Text = CStr(IIf( CB(i).Split(CChar(vbTab))(ii).Trim = "", "0", CB(i).Split(CChar(vbTab))(ii).Trim))
Case 25 + 8 + 6 + 1
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.펌프교정계수ComboBox.SelectedIndex = 0
Else
Me.펌프교정계수ComboBox.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
' Me.펌프교정계수ComboBox.Text = CStr(IIf( CB(i).Split(CChar(vbTab))(ii).Trim = "", "0", CB(i).Split(CChar(vbTab))(ii).Trim))
Case 26 + 8 + 6 + 1
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.펌프제어유형ComboBox.SelectedIndex = 0
Else
Me.펌프제어유형ComboBox.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
' Me.펌프제어유형ComboBox.Text = CStr(IIf( CB(i).Split(CChar(vbTab))(ii).Trim = "", "0", CB(i).Split(CChar(vbTab))(ii).Trim))
Case 27 + 8 + 6 + 1
Me.펌프동력NTb.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 30 + 8 + 6 + 1 '//33
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
'MsgBox("null")
Me.분배시스템방식ComboBox.SelectedIndex = 0
Else
'Dim iii As Short = 0
'For Each C As DataRowView In Me.분배시스템방식ComboBox.Items
' If C("name").ToString.Trim = CB(i).Split(CChar(vbTab))(ii).Trim Then
' Me.분배시스템방식ComboBox.SelectedIndex = iii
' End If
' iii += 1
'Next
' MsgBox(CB(i).Split(CChar(vbTab))(ii).Trim)
Me.분배시스템방식ComboBox.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
'Me.분배시스템방식ComboBox.Text = CStr(IIf( CB(i).Split(CChar(vbTab))(ii).Trim = "", "0", CB(i).Split(CChar(vbTab))(ii).Trim))
Case 31 + 8 + 6 + 1
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.순환유무ComboBox.SelectedIndex = 0
Else
Me.순환유무ComboBox.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
'Me.순환유무ComboBox.Text = CStr(IIf( CB(i).Split(CChar(vbTab))(ii).Trim = "", "0", CB(i).Split(CChar(vbTab))(ii).Trim))
Case 32 + 8 + 6 + 1
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.펌프제어ComboBox.SelectedIndex = 0
Else
Me.펌프제어ComboBox.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
' Me.펌프제어ComboBox.Text = CStr(IIf( CB(i).Split(CChar(vbTab))(ii).Trim = "", "0", CB(i).Split(CChar(vbTab))(ii).Trim))
Case 33 + 8 + 6 + 1
Me.펌프동력급탕NTb.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 35 + 8 + 6 + 1
Me.건물길이NTb.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 36 + 8 + 6 + 1
Me.건물넓이NTb.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 37 + 8 + 6 + 1
Me.열공급층수NTb.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 38 + 8 + 6 + 1
Me.층고NTb.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 41 + 8 + 6 + 1
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.신재생연결여부ComboBox.SelectedIndex = 0
Else
Me.신재생연결여부ComboBox.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
' Me.신재생연결여부ComboBox.Text = CStr(IIf( CB(i).Split(CChar(vbTab))(ii).Trim = "", "0", CB(i).Split(CChar(vbTab))(ii).Trim))
Case 57 '42 + 8 + 6 + 1
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.cmb_신재생.SelectedIndex = 0
Else
Me.cmb_신재생.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
'Me.연결된시스템ComboBox.Text = CStr(IIf( CB(i).Split(CChar(vbTab))(ii).Trim = "", "0", CB(i).Split(CChar(vbTab))(ii).Trim))
End Select
Next
Next
Me.bs.EndEdit()
isCopy = False
Me.Validate_Control()
End If
End Sub
Private Sub 열생산기기방식NCMB_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 열생산기기방식NCMB.SelectedIndexChanged
Validate_Control()
End Sub
Private Sub bs_CurrentChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bs.CurrentChanged
If Not Init Then Return
Dim Drv As DataRowView = CType(bs.Current, DataRowView)
Try
Dim DR() As DataRow = DSET.tbl_zone.Select("열생산난방생산기기='" & Drv("code").ToString & "' or 공조난방생산기기='" & Drv("code").ToString & "'")
Me.lbl_cnt1.Text = CStr(DR.GetUpperBound(0) + 1)
Catch ex As Exception
Me.lbl_cnt1.Text = "0"
End Try
Try
Dim DR() As DataRow = DSET.tbl_zone.Select("열생산급탕생산기기='" & Drv("code").ToString & "'")
Me.lbl_cnt2.Text = CStr(DR.GetUpperBound(0) + 1)
Catch ex As Exception
Me.lbl_cnt2.Text = "0"
End Try
Me.bs.EndEdit()
End Sub
Private Sub Frm_V20091231_Zone_MouseWheel(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles Me.MouseWheel
If e.Delta < 0 Then
If Me.bs.Position < Me.bs.Count Then Me.bs.Position += 1
Else
If Me.bs.Position > 0 Then Me.bs.Position -= 1
End If
Me.Validate()
My.Application.DoEvents()
End Sub
Private Sub bt_Del_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles bt_Del.MouseDown
If e.Button = Windows.Forms.MouseButtons.Right Then
If MsgBox("전체삭제를 하시겠습니까?", MsgBoxStyle.Information Or MsgBoxStyle.OkCancel, "확인") = MsgBoxResult.Ok Then
Dim dR() As DataRow = DSET.tbl_nanbangkiki.Select(Me.bs.Filter, "")
For i As Integer = dR.GetUpperBound(0) To 0 Step -1
dR(i).Delete()
Next
DSET.tbl_nanbangkiki.AcceptChanges()
End If
End If
End Sub
Private Sub dv_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles dv.MouseUp
If Prj.UserAuthType = "ADMIN" OrElse Prj.UserAuthType = "BOTH" OrElse Prj.UserAuthType = "BOTH2" OrElse Prj.UserAuthType = "BOTH1" Then '//2011.03.08 추가
If e.Button = Windows.Forms.MouseButtons.Right Then
Dim Frm_FilterA As New Frm_Filter
Frm_FilterA.ColumTitle = getColCaption(Me.Dt)
Frm_FilterA.ColumList = getColName(Me.Dt)
Frm_FilterA.Colorlist = "연결된시스템"
Frm_FilterA.Numfield = "" '//20100618 Color 리스트처럼 , 구분해서 필드들을 모두 넣으세요.(=, >= 등을 사용하기 위해서는 해당 항목을 추가 요망)
Frm_FilterA.Default_Filter = "code <> '0'"
If Frm_FilterA.ShowDialog <> Windows.Forms.DialogResult.OK Then Return '//창떳을떄 확인아ㅣ고 취소눌르면 다음을 수행하지않는다는거에요.
Dim Filter As String = Frm_FilterA.tb_filter.Text '//값은 아까 그 텍박에 잇구요.
Try
Me.bs.Filter = Filter
'//바꾸기값이 있으면 변경 20100618
If Frm_FilterA.cmb_fieldc.SelectedIndex >= 0 AndAlso Frm_FilterA.cmb_fieldc.Text.ToLower <> "code" AndAlso _
Frm_FilterA.tb_valuec.Text <> "" Then
Dim Drow() As DataRow = Me.Dt.Select(Filter)
For Each Dr As DataRow In Drow
Dr(Frm_FilterA.cmb_fieldc.Text) = Frm_FilterA.tb_valuec.Text
Next
MsgBox("바꾸기 완료", MsgBoxStyle.Information, "확인")
End If
Catch ex As Exception
Me.bs.Filter = ""
End Try
End If
End If
End Sub
Private Sub dv_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles dv.KeyDown
'//여기보시면 alt+d 누르면 한줄을 경고없이(falsE)삭제하도록 햇어요.. 사실원래 밋alt +d 인데.. ㅎㅎ 잘못해서 ctrl 됫다는
If Prj.UserAuthType = "ADMIN" OrElse Prj.UserAuthType = "BOTH" OrElse Prj.UserAuthType = "BOTH2" OrElse Prj.UserAuthType = "BOTH1" Then '//2011.03.08 추가
Select Case e.KeyCode
Case Keys.D
If e.Alt Then
Dbbase.DelCrow(Me.bs, False)
End If
Case Keys.C
If e.Control Then
Me.SrcDrv = Me.bs.Current
If Me.SrcDrv Is Nothing Then
MsgBox("저장할 ROW가 없습니다", MsgBoxStyle.Information, "확인")
Return
End If
' My.Computer.Clipboard.SetData("ZDATA", Drv)
End If
Case Keys.V
If e.Control Then
If Me.SrcDrv Is Nothing Then Return
Me.bt_add.PerformClick() '//신규추가
Dim NewDrv As DataRowView = Me.bs.Current
For Each C As DataColumn In Me.Dt.Columns
If C.ColumnName.ToUpper = "CODE" Then
ElseIf C.ColumnName.ToUpper = "설명" Then
NewDrv(C.ColumnName) = SrcDrv(C.ColumnName) & "#1"
Else
NewDrv(C.ColumnName) = SrcDrv(C.ColumnName)
End If
Next
Me.bs.EndEdit()
bs.MoveLast()
End If
End Select
End If
End Sub
Private Sub lbl_cnt2_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles lbl_cnt2.TextChanged
Try
If Me.lbl_cnt2.Text = "0" Then
GroupBox10.Enabled = False
GroupBox9.Enabled = False
Else
GroupBox10.Enabled = True
GroupBox9.Enabled = True
End If
Catch ex As Exception
End Try
End Sub
Private Sub 분배시스템방식ComboBox_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles 분배시스템방식ComboBox.SelectedValueChanged
Validate_Control()
End Sub
Private Sub lbl_cnt1_TextChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles lbl_cnt1.TextChanged
Try
If Me.lbl_cnt1.Text = "0" Then
GroupBox8.Enabled = False
Else
GroupBox8.Enabled = True
End If
Catch ex As Exception
End Try
End Sub
Private Sub 분배시스템방식ComboBox_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 분배시스템방식ComboBox.SelectedIndexChanged
End Sub
Private Sub 급탕배관길이NTB_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 급탕배관길이NTB.TextChanged
If Me.급탕배관길이NTB.Text <> "" AndAlso Me.급탕배관길이NTB.Text <> "0" Then '//배관길이에 값이 바뀌면 체크변경
Me.RadioButton2.Checked = True
End If
End Sub
Private Sub RadioButton2_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton2.CheckedChanged, RadioButton1.CheckedChanged
If Me.RadioButton2.Checked = False Then '//표준치로 선택되면 배관길이값을 지워버림
Me.급탕배관길이NTB.Text = ""
Me.급탕배관길이NTB.Enabled = False
Me.건물길이NTb.Enabled = True
Me.건물넓이NTb.Enabled = True
Me.열공급층수NTb.Enabled = True
Me.층고NTb.Enabled = True
Else
Me.건물길이NTb.Enabled = False
Me.건물넓이NTb.Enabled = False
Me.열공급층수NTb.Enabled = False
Me.층고NTb.Enabled = False
Me.급탕배관길이NTB.Enabled = True
End If
End Sub
End Class

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,243 @@
<?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=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<resheader name="writer">
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</resheader>
<metadata name="Label456.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label455.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label4.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label6.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label7.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label8.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label9.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label10.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label11.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label12.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label13.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label14.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label15.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label16.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label17.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label18.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label19.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label20.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label21.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label465.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label23.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label24.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label25.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label457.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label458.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label459.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label30.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label31.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label3.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label2.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label5.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label22.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label27.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label29.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label28.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label26.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="Label32.GenerateMember" type="System.Boolean, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>False</value>
</metadata>
<metadata name="bs.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>222, 17</value>
</metadata>
<metadata name="DS.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>286, 17</value>
</metadata>
<metadata name="bn.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
<value>353, 17</value>
</metadata>
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
<value>40</value>
</metadata>
</root>

View File

@@ -0,0 +1,836 @@
Public Class Frm_New
Dim Init As Boolean = False
Dim SrcDrv As DataRowView
#Region "data Base 변경여부및 적용방법"
'''변경된내용을적용한다.
Public Overrides Function AcceptChanged() As Boolean
bs.EndEdit()
Dim BaseDS As DataSet = CType(bs.DataSource, DataSet)
Dim BaseDT As DataTable = BaseDS.Tables(bs.DataMember)
BaseDT.AcceptChanges()
Return True
End Function
'''변경된내용이있다면 취소한다.
Public Overrides Function RejectChanged() As Boolean
Dim BaseDS As DataSet = CType(bs.DataSource, DataSet)
Dim BaseDT As DataTable = BaseDS.Tables(bs.DataMember)
BaseDT.RejectChanges()
Return True
End Function
'''데이터에변형이있었는가?
Public Overrides Function HasChanged() As Boolean
bs.EndEdit()
Dim BaseDS As DataSet = CType(bs.DataSource, DataSet)
Dim BaseDT As DataTable = BaseDS.Tables(bs.DataMember)
Dim ChangeDT As DataTable = BaseDT.GetChanges
If Not ChangeDT Is Nothing Then Return True
Return False
End Function
'''기본데이터테이블을 반환합니다.
Public Function DT() As DataTable
Dim BaseDS As DataSet = CType(bs.DataSource, DataSet)
Return BaseDS.Tables(bs.DataMember)
End Function
#End Region
Private Sub MdiMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'MdiMain.Toggle_Menu_Color(MdiMain.E_MenuIdx.신재생기기)
'CEnergy.ARINCLASS.SaveLoad_FrmSetting(Me)
'//프로필 관련
'//공유데이터셋에 연결한다.
Me.bs.DataSource = DSET
'If Me.bs.Count < 1 Then
' Me.bs.AddNew()
' Dim DRv As DataRowView = bs.Current
' DRv("code") = Me.GetMaxCode(DSET.tbl_new)
'End If
'//신재생
AddHandler DSET.tbl_new.TableNewRow, AddressOf AddNewDataRow_new
'//콤보컨트롤 바인딩
Binding_Zone()
'//모든컨트롤의 cTrl_enter 를 추가합니다
BindProperty(CType(Me.SplitContainer1.Panel2.Controls, Control.ControlCollection))
Me.bs.Filter = "code <> '0' and 기기종류 = '" + Me.Parameter + "'"
Me.lb_grpname.Text = Me.Parameter
Me.Init = True
Try
Me.bs.Position = CEnergy.ARINCLASS.Read_LastPos_Frm(Me)
Catch ex As Exception
Me.bs.MoveFirst()
End Try
bs_CurrentChanged(sender, e)
Me.Validate_Control()
End Sub
#Region "Control_Enter"
Private Sub BindProperty(ByVal Ctl As Control.ControlCollection)
For Each C As Control In Ctl
If C.Controls.Count > 1 Then
BindProperty(C.Controls)
Else
If C.GetType.ToString.ToUpper.IndexOf("MYTB") <> -1 Then
AddHandler CType(C, MyTb).KeyDown, AddressOf TextBOx_KeyDown
ElseIf C.GetType.ToString.ToUpper.IndexOf("MYCMB") <> -1 Then
AddHandler CType(C, MyCmb).KeyDown, AddressOf Cmd_KeyDown
End If
End If
Next
End Sub
Private Sub TextBOx_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)
If e.KeyCode = Keys.Enter AndAlso e.Control Then
Try
Dim Field As String = (CType(sender, MyTb).DataBindings.Item("text").BindingMemberInfo.BindingField)
For Each Dr As DataRow In Dt.Select(Me.bs.Filter, "")
Dr(Field) = CType(sender, MyTb).Text
Next
Work_msg_timer("모든값이 변경되었습니다", 25)
Catch ex As Exception
End Try
End If
End Sub
Private Sub Cmd_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)
If e.KeyCode = Keys.Enter AndAlso e.Control Then
Try
Dim Field As String = (CType(sender, MyCmb).DataBindings.Item("selectedvalue").BindingMemberInfo.BindingField)
For Each Dr As DataRow In Dt.Select(Me.bs.Filter, "")
Dr(Field) = CType(sender, MyCmb).SelectedValue
Next
Work_msg_timer("모든값이 변경되었습니다", 25)
Catch ex As Exception
End Try
End If
End Sub
#End Region
#Region "신재생"
Private Function GetMaxCode(ByVal dt As DataTable) As String
Try
Dim Dr As DataRow = dt.Select("", "code desc")(0)
Return Format(CInt(Dr("code")) + 1, "0000")
Catch ex As Exception
Return "0001"
End Try
End Function
Private Sub Cmb_DeleteVal(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs)
If e.KeyCode = Keys.Delete Then
CType(sender, ComboBox).SelectedValue = ""
End If
End Sub
Private Sub Binding_Zone()
'//신재생
Dim bs_기기종류ComboBox As New BindingSource(DSET, "tbl_common")
bs_기기종류ComboBox.Filter = "gubun='1028'"
bs_기기종류ComboBox.Sort = "code"
Me.기기종류ComboBox.DataSource = bs_기기종류ComboBox
기기종류ComboBox.DisplayMember = "name"
기기종류ComboBox.ValueMember = "name"
Me.기기종류ComboBox.DataBindings.Add("selectedvalue", Me.bs, "기기종류")
AddHandler 기기종류ComboBox.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_가동연료ComboBox As New BindingSource(DSET, "tbl_common")
bs_가동연료ComboBox.Filter = "gubun='1066'"
bs_가동연료ComboBox.Sort = "code"
Me.cmb_가동연료.DataSource = bs_가동연료ComboBox
cmb_가동연료.DisplayMember = "name"
cmb_가동연료.ValueMember = "name"
Me.cmb_가동연료.DataBindings.Add("selectedvalue", Me.bs, "가동연료")
'AddHandler 지열가동연료ComboBox.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_태양열종류ComboBox As New BindingSource(DSET, "tbl_common")
bs_태양열종류ComboBox.Filter = "gubun='1057'"
bs_태양열종류ComboBox.Sort = "code"
Me.cmb_태양열시스템종류.DataSource = bs_태양열종류ComboBox
cmb_태양열시스템종류.DisplayMember = "name"
cmb_태양열시스템종류.ValueMember = "name"
Me.cmb_태양열시스템종류.DataBindings.Add("selectedvalue", Me.bs, "태양열종류")
'AddHandler 태양열종류ComboBox.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_집열기유형ComboBox As New BindingSource(DSET, "tbl_common")
bs_집열기유형ComboBox.Filter = "gubun='1058'"
bs_집열기유형ComboBox.Sort = "code"
Me.cmb_집열기유형.DataSource = bs_집열기유형ComboBox
cmb_집열기유형.DisplayMember = "name"
cmb_집열기유형.ValueMember = "name"
Me.cmb_집열기유형.DataBindings.Add("selectedvalue", Me.bs, "집열기유형")
'AddHandler 집열기유형ComboBox.KeyDown, AddressOf Cmb_DeleteVal
'집열기유형ComboBox
Dim bs_집열판방위ComboBox As New BindingSource(DSET, "tbl_common")
bs_집열판방위ComboBox.Filter = "gubun='1059'"
bs_집열판방위ComboBox.Sort = "code"
Me.cmb_집열판방위.DataSource = bs_집열판방위ComboBox
cmb_집열판방위.DisplayMember = "name"
cmb_집열판방위.ValueMember = "name"
Me.cmb_집열판방위.DataBindings.Add("selectedvalue", Me.bs, "집열판방위")
'AddHandler 집열판방위ComboBox.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_태양열시스템의성능ComboBox As New BindingSource(DSET, "tbl_common")
bs_태양열시스템의성능ComboBox.Filter = "gubun='1060'"
bs_태양열시스템의성능ComboBox.Sort = "code"
Me.cmb_태양열시스템의성능.DataSource = bs_태양열시스템의성능ComboBox
cmb_태양열시스템의성능.DisplayMember = "name"
cmb_태양열시스템의성능.ValueMember = "name"
Me.cmb_태양열시스템의성능.DataBindings.Add("selectedvalue", Me.bs, "태양열시스템의성능")
'AddHandler 태양열시스템의성능ComboBox.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_축열탱크설치장소ComboBox As New BindingSource(DSET, "tbl_common")
bs_축열탱크설치장소ComboBox.Filter = "gubun='1061'"
bs_축열탱크설치장소ComboBox.Sort = "code"
Me.cmb_축열탱크설치장소.DataSource = bs_축열탱크설치장소ComboBox
cmb_축열탱크설치장소.DisplayMember = "name"
cmb_축열탱크설치장소.ValueMember = "name"
Me.cmb_축열탱크설치장소.DataBindings.Add("selectedvalue", Me.bs, "축열탱크설치장소")
'AddHandler 축열탱크설치장소ComboBox.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_태양광모듈기울기ComboBox As New BindingSource(DSET, "tbl_common")
bs_태양광모듈기울기ComboBox.Filter = "gubun='1062'"
bs_태양광모듈기울기ComboBox.Sort = "code"
Me.cmb_모듈기울기.DataSource = bs_태양광모듈기울기ComboBox
cmb_모듈기울기.DisplayMember = "name"
cmb_모듈기울기.ValueMember = "name"
Me.cmb_모듈기울기.DataBindings.Add("selectedvalue", Me.bs, "태양광모듈기울기")
'AddHandler 태양광모듈기울기ComboBox.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_태양광모듈방위ComboBox As New BindingSource(DSET, "tbl_common")
bs_태양광모듈방위ComboBox.Filter = "gubun='1063'"
bs_태양광모듈방위ComboBox.Sort = "code"
Me.cmb_모듈방위.DataSource = bs_태양광모듈방위ComboBox
cmb_모듈방위.DisplayMember = "name"
cmb_모듈방위.ValueMember = "name"
Me.cmb_모듈방위.DataBindings.Add("selectedvalue", Me.bs, "태양광모듈방위")
'AddHandler 태양광모듈방위ComboBox.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_태양광모듈종류ComboBox As New BindingSource(DSET, "tbl_common")
bs_태양광모듈종류ComboBox.Filter = "gubun='1064'"
bs_태양광모듈종류ComboBox.Sort = "code"
Me.cmb_모듈종류.DataSource = bs_태양광모듈종류ComboBox
cmb_모듈종류.DisplayMember = "name"
cmb_모듈종류.ValueMember = "name"
Me.cmb_모듈종류.DataBindings.Add("selectedvalue", Me.bs, "태양광모듈종류")
'AddHandler 태양광모듈종류ComboBox.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_태양광모듈적용타입ComboBox As New BindingSource(DSET, "tbl_common")
bs_태양광모듈적용타입ComboBox.Filter = "gubun='1065'"
bs_태양광모듈적용타입ComboBox.Sort = "code"
Me.cmb_모듈적용타입.DataSource = bs_태양광모듈적용타입ComboBox
cmb_모듈적용타입.DisplayMember = "name"
cmb_모듈적용타입.ValueMember = "name"
Me.cmb_모듈적용타입.DataBindings.Add("selectedvalue", Me.bs, "태양광모듈적용타입")
'AddHandler 태양광모듈적용타입ComboBox.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_열교환기설치여부ComboBox As New BindingSource(DSET, "tbl_common")
bs_열교환기설치여부ComboBox.Filter = "gubun='1054'"
bs_열교환기설치여부ComboBox.Sort = "code"
Me.cmb_열교환기설치여부.DataSource = bs_열교환기설치여부ComboBox
cmb_열교환기설치여부.DisplayMember = "name"
cmb_열교환기설치여부.ValueMember = "name"
Me.cmb_열교환기설치여부.DataBindings.Add("selectedvalue", Me.bs, "열교환기설치여부")
'AddHandler 열교환기설치여부ComboBox.KeyDown, AddressOf Cmb_DeleteVal
Dim bs_팽창탱크설치여부ComboBox As New BindingSource(DSET, "tbl_common")
bs_팽창탱크설치여부ComboBox.Filter = "gubun='1054'"
bs_팽창탱크설치여부ComboBox.Sort = "code"
Me.cmb_지열팽창설치여부.DataSource = bs_팽창탱크설치여부ComboBox
cmb_지열팽창설치여부.DisplayMember = "name"
cmb_지열팽창설치여부.ValueMember = "name"
Me.cmb_지열팽창설치여부.DataBindings.Add("selectedvalue", Me.bs, "팽창탱크설치여부")
'AddHandler 팽창탱크설치여부ComboBox.KeyDown, AddressOf Cmb_DeleteVal
End Sub
Private Sub MdiMain_FormClosed(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosedEventArgs) Handles Me.FormClosed
CEnergy.ARINCLASS.SaveLoad_FrmSetting(Me, Me.bs.Position, True)
End Sub
Private Sub MdiMain_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles Me.KeyDown
Select Case e.KeyCode
Case Keys.F12
End Select
End Sub
Private Sub ToolStripButton48_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_add.Click
If Not EndEdit(Me.bs) Then Return
Me.bs.AddNew()
'Dim DRv As DataRowView = bs.Current
'DRv("code") = Me.GetMaxCode(DSET.tbl_new)
INitRow(Me.Controls)
End Sub
Private Sub ToolStripButton49_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_Del.Click
Dbbase.DelCrow(Me.bs, True)
End Sub
Private Sub ToolStripButton51_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bt_cancel.Click
If Not EndEdit(Me.bs) Then Return
Data_Cancel(DSET.tbl_profile, Nothing)
End Sub
Private Sub Binding_new()
End Sub
Private Sub AddNewDataRow_new(ByVal sender As Object, ByVal e As System.Data.DataTableNewRowEventArgs)
' MsgBox("new")
e.Row.Item("code") = GetMaxCode(DSET.tbl_new)
End Sub
#End Region
Private Sub 태양열종류ComboBox_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles cmb_태양열시스템종류.KeyDown
If e.KeyCode = Keys.V And e.Control Then
e.Handled = True
e.SuppressKeyPress = False
'//클립보드붙여넣기
Dim CB() As String = My.Computer.Clipboard.GetText.Split(CChar(vbCrLf))
If CB.GetUpperBound(0) <> 12 Then
MsgBox("붙여넣기가 호환되는 데이터가 아닙니다.", MsgBoxStyle.Information, "확인")
Return
End If
Dim Cnt As Short = 0
For i As Integer = 0 To CB.GetUpperBound(0)
Select Case i
Case 0 '//사용프로필 앞에 두개를 숫자4자로변환
'If CB(i).Trim = "" Then Me.태양열종류ComboBox.SelectedIndex = -1
If CB(i).Trim = "" Then
Me.cmb_태양열시스템종류.SelectedIndex = 0
Else
Me.cmb_태양열시스템종류.Text = CB(i).Trim
End If
' Me.태양열종류ComboBox.Text = CStr(IIf(CB(i).Trim = "", "0", CB(i).Trim))
Case 1 '//공란
If CB(i).Trim = "" Then
Me.cmb_집열기유형.SelectedIndex = 0
Else
Me.cmb_집열기유형.Text = CB(i).Trim
End If
'Me.집열기유형ComboBox.Text = CStr(IIf(CB(i).Trim = "", "0", CB(i).Trim))
Case 2 '//면적
Me.tb_집열판면적.Text = CB(i).Trim
Case 3
If CB(i).Trim = "" Then
Me.cmb_집열판방위.SelectedIndex = 0
Else
Me.cmb_집열판방위.Text = CB(i).Trim
End If
'Me.집열판방위ComboBox.Text = CStr(IIf(CB(i).Trim = "", "0", CB(i).Trim))
Case 4
Me.tB_솔라펌프출력.Text = CB(i).Trim
Case 5
If CB(i).Trim = "" Then
Me.cmb_태양열시스템의성능.SelectedIndex = 0
Else
Me.cmb_태양열시스템의성능.Text = CB(i).Trim
End If
' Me.태양열시스템의성능ComboBox.Text = CStr(IIf(CB(i).Trim = "", "0", CB(i).Trim))
Case 6
Me.tb_무손실효율계수.Text = CB(i).Trim
Case 7
Me.tb_1차손실계수.Text = CB(i).Trim
Case 8
Me.tb_2차손실계수.Text = CB(i).Trim
Case 9
Case 10
Me.tb_축열탱크체적급.Text = CB(i).Trim
Case 11
Me.tb_축열탱크체적난.Text = CB(i).Trim
Case 12
If CB(i).Trim = "" Then
Me.cmb_축열탱크설치장소.SelectedIndex = 0
Else
Me.cmb_축열탱크설치장소.Text = CB(i).Trim
End If
'Me.축열탱크설치장소ComboBox.Text = CStr(IIf(CB(i).Trim = "", "0", CB(i).Trim))
End Select
Next
Me.bs.EndEdit()
End If
End Sub
Private Sub 태양광모듈면적NTb_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles tb_모듈면적.KeyDown
If e.KeyCode = Keys.V And e.Control Then
e.Handled = True
e.SuppressKeyPress = False
'//클립보드붙여넣기
Dim CB() As String = My.Computer.Clipboard.GetText.Split(CChar(vbCrLf))
If CB.GetUpperBound(0) < 3 Then
MsgBox("정상적인 데이터가 아닙니다")
Return
End If
Dim Cnt As Short = 0
For i As Integer = 0 To CB.GetUpperBound(0)
Select Case i
Case 0 '//사용프로필 앞에 두개를 숫자4자로변환
Me.tb_모듈면적.Text = CB(i).Trim
Case 1 '//공란
If CB(i).Trim = "" Then Me.cmb_모듈기울기.SelectedIndex = -1
Me.cmb_모듈기울기.Text = CB(i).Trim
Case 2 '//면적
If CB(i).Trim = "" Then Me.cmb_모듈방위.SelectedIndex = -1
Me.cmb_모듈방위.Text = CB(i).Trim
Case 3
If CB(i).Trim = "" Then Me.cmb_모듈종류.SelectedIndex = -1
Me.cmb_모듈종류.Text = CB(i).Trim
Case 4
If CB(i).Trim = "" Then Me.cmb_모듈적용타입.SelectedIndex = -1
Me.cmb_모듈적용타입.Text = CB(i).Trim
End Select
Next
Me.bs.EndEdit()
End If
End Sub
Private Sub 지열가동연료ComboBox_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles cmb_가동연료.KeyDown, tb_지열펌프용량.KeyDown
End Sub
Private Sub bs_CurrentChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bs.CurrentChanged
'//존이 옴겨질떄 해당 존의 사용량을 표시
If Not Init Then Return
Try
Dim Drv As DataRowView = CType(bs.Current, DataRowView)
Me.tb_태양열_cnt1.Text = CStr(DSET.tbl_nanbangkiki.Select("신재생연결여부='시스템연결' and 연결된시스템='" & Drv("Code").ToString & "'").GetUpperBound(0) + 1)
Me.tb_태양열_cnt2.Text = CStr(DSET.tbl_nangbangkiki.Select("신재생연결여부='시스템연결' and 연결된시스템='" & Drv("Code").ToString & "'").GetUpperBound(0) + 1)
Catch ex As Exception
Me.tb_태양열_cnt1.Text = ex.Message.ToString
Me.tb_태양열_cnt2.Text = ex.Message.ToString
End Try
Me.bs.EndEdit()
End Sub
Private Sub 기기종류ComboBox_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles 기기종류ComboBox.KeyDown
If e.KeyCode = Keys.V And e.Control Then
e.Handled = True
e.SuppressKeyPress = False
'//클립보드붙여넣기
Dim CB() As String = My.Computer.Clipboard.GetText.Split(CChar(vbCrLf))
If CB.GetUpperBound(0) < 2 Then
MsgBox("정상적인 데이터가 아닙니다")
Return
End If
For ii As Integer = 0 To CType(CB(0).Split(CChar(vbTab)), String()).GetUpperBound(0)
If Me.bs.Count = 0 OrElse ii > 0 Then Me.bt_add.PerformClick() '//한줄추가
Dim Cnt As Short = 0
For i As Integer = 0 To CB.GetUpperBound(0)
Select Case i
Case 0
CType(bs.Current, DataRowView)("설명") = CB(i).Split(CChar(vbTab))(ii).Trim
Case 5
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.기기종류ComboBox.SelectedIndex = 0
Else
Me.기기종류ComboBox.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
Case 6
' If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then Me.열교가산치ComboBox.SelectedIndex = -1
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.cmb_가동연료.SelectedIndex = 0
Else
Me.cmb_가동연료.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
'Me.열교가산치ComboBox.Text = CStr(IIf( CB(i).Split(CChar(vbTab))(ii).Trim = "", "0", CB(i).Split(CChar(vbTab))(ii).Trim))
Case 9
'If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then Me.cmb_냉난방방식.SelectedIndex = -1
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.cmb_태양열시스템종류.SelectedIndex = 0
Else
Me.cmb_태양열시스템종류.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
'Me.cmb_냉난방방식.Text = CStr(IIf( CB(i).Split(CChar(vbTab))(ii).Trim = "", "0", CB(i).Split(CChar(vbTab))(ii).Trim))
Case 10
'If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then Me.냉난방공조ComboBox.SelectedIndex = -1
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.cmb_집열기유형.SelectedIndex = 0
Else
Me.cmb_집열기유형.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
Case 11 '//열생산지정
' Me.TabControl10.SelectedIndex = 1
Me.tb_집열판면적.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 12
'If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then Me.냉난방공조ComboBox.SelectedIndex = -1
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.cmb_집열판방위.SelectedIndex = 0
Else
Me.cmb_집열판방위.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
Case 13 '//열생산지정
' Me.TabControl10.SelectedIndex = 1
Me.tB_솔라펌프출력.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 14
'If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then Me.냉난방공조ComboBox.SelectedIndex = -1
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.cmb_태양열시스템의성능.SelectedIndex = 0
Else
Me.cmb_태양열시스템의성능.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
Case 15 '//열생산지정
' Me.TabControl10.SelectedIndex = 1
Me.tb_무손실효율계수.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 16 '//열생산지정
Me.tb_1차손실계수.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 17 '//열생산지정
Me.tb_2차손실계수.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 19 '//열생산지정
Me.tb_축열탱크체적급.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 20 '//열생산지정
Me.tb_축열탱크체적난.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 21
'If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then Me.냉난방공조ComboBox.SelectedIndex = -1
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.cmb_축열탱크설치장소.SelectedIndex = 0
Else
Me.cmb_축열탱크설치장소.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
Case 24 '//열생산지정
Me.tb_모듈면적.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 25
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.cmb_모듈기울기.SelectedIndex = 0
Else
Me.cmb_모듈기울기.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
Case 26 '//열생산지정
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.cmb_모듈방위.SelectedIndex = 0
Else
Me.cmb_모듈방위.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
Case 27
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.cmb_모듈종류.SelectedIndex = 0
Else
Me.cmb_모듈종류.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
Case 28 '//열생산지정
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.cmb_모듈적용타입.SelectedIndex = 0
Else
Me.cmb_모듈적용타입.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
' Me.cmb_모듈적용타입.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 31 '//열생산지정
Me.tb_지열펌프용량.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 32 '//열생산지정
Me.tb_열성능비.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 33 '//열생산지정
Me.tb_열성능비2.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 34 '//열생산지정
Me.tb_1차펌프용량.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 35 '//열생산지정
Me.tb_2차펌프용량.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 36
'If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then Me.냉난방공조ComboBox.SelectedIndex = -1
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.cmb_열교환기설치여부.SelectedIndex = 0
Else
Me.cmb_열교환기설치여부.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
Case 37
'If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then Me.냉난방공조ComboBox.SelectedIndex = -1
If CB(i).Split(CChar(vbTab))(ii).Trim = "" Then
Me.cmb_지열팽창설치여부.SelectedIndex = 0
Else
Me.cmb_지열팽창설치여부.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End If
Case 38 '//열생산지정
Me.tb_지열팽창탱크체적.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 41 '//열생산지정
Me.tb_열생산능력.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 42 '//열생산지정
Me.tb_열생산효율.Text = CB(i).Split(CChar(vbTab))(ii).Trim
Case 43 '//열생산지정
Me.tb_발전효율.Text = CB(i).Split(CChar(vbTab))(ii).Trim
End Select
Next
Next
Me.bs.EndEdit()
End If
End Sub
Private Sub 기기종류ComboBox_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles 기기종류ComboBox.SelectedIndexChanged
Validate_Control()
End Sub
Private Sub Validate_Control()
If Not Init Then Return
Try
Select Case Me.기기종류ComboBox.Text
Case "태양열", "태양광"
Me.cmb_가동연료.SelectedIndex = 0
Me.cmb_가동연료.Enabled = False
Case Else
Me.cmb_가동연료.Enabled = True
End Select
Catch ex As Exception
End Try
Try
Select Case Me.cmb_태양열시스템의성능.Text
Case "성능치"
Me.tb_무손실효율계수.Enabled = True
Me.tb_1차손실계수.Enabled = True
Me.tb_2차손실계수.Enabled = True
Case Else
Me.tb_무손실효율계수.Enabled = False
Me.tb_1차손실계수.Enabled = False
Me.tb_2차손실계수.Enabled = False
End Select
Catch ex As Exception
End Try
Try
If 기기종류ComboBox.Text = "태양열" Then
태양열Panel.Enabled = True
축열탱크Panel.Enabled = True
열병합Panel.Enabled = False
태양광Panel.Enabled = False
지열Panel.Enabled = False
ElseIf 기기종류ComboBox.Text = "열병합" Then
태양열Panel.Enabled = False
축열탱크Panel.Enabled = False
열병합Panel.Enabled = True
태양광Panel.Enabled = False
지열Panel.Enabled = False
ElseIf 기기종류ComboBox.Text = "태양광" Then
태양열Panel.Enabled = False
축열탱크Panel.Enabled = False
열병합Panel.Enabled = False
태양광Panel.Enabled = True
지열Panel.Enabled = False
ElseIf 기기종류ComboBox.Text = "지열" Then
태양열Panel.Enabled = False
축열탱크Panel.Enabled = False
열병합Panel.Enabled = False
태양광Panel.Enabled = False
지열Panel.Enabled = True
Else
태양열Panel.Enabled = False
축열탱크Panel.Enabled = False
열병합Panel.Enabled = False
태양광Panel.Enabled = False
지열Panel.Enabled = False
End If
Catch ex As Exception
End Try
'//건기연 추가 (2010.04.07)
'MsgBox(Me.cmb_가동연료.Text)
Try
Select Case Me.cmb_가동연료.Text
Case "전기"
Me.cmb_열교환기설치여부.Enabled = False
Case Else
Me.cmb_열교환기설치여부.Enabled = True
End Select
Catch ex As Exception
End Try
Try
Select Case Me.cmb_모듈기울기.Text
Case "수평", "(없음)"
Me.cmb_모듈방위.Enabled = False
Case Else
Me.cmb_모듈방위.Enabled = True
End Select
Catch ex As Exception
End Try
Try
Select Case Me.cmb_모듈종류.Text
Case "성능치 입력"
Me.tb_모듈효율.Enabled = True
Case Else
Me.tb_모듈효율.Enabled = False
End Select
Catch ex As Exception
End Try
End Sub
Private Sub ToolStripButton49_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs)
If e.Button = Windows.Forms.MouseButtons.Right Then
If MsgBox("전체삭제를 하시겠습니까?", MsgBoxStyle.Information Or MsgBoxStyle.OkCancel, "확인") = MsgBoxResult.Ok Then
Dim dR() As DataRow = DSET.tbl_new.Select(Me.bs.Filter, "")
For i As Integer = dR.GetUpperBound(0) To 0 Step -1
dR(i).Delete()
Next
DSET.tbl_new.AcceptChanges()
End If
End If
End Sub
Private Sub bt_Del_MouseDown(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles bt_Del.MouseDown
If e.Button = Windows.Forms.MouseButtons.Right Then
If MsgBox("전체삭제를 하시겠습니까?", MsgBoxStyle.Information Or MsgBoxStyle.OkCancel, "확인") = MsgBoxResult.Ok Then
Dim dR() As DataRow = DSET.tbl_new.Select(Me.bs.Filter, "")
For i As Integer = dR.GetUpperBound(0) To 0 Step -1
dR(i).Delete()
Next
DSET.tbl_new.AcceptChanges()
End If
End If
End Sub
Private Sub cmb_가동연료_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmb_가동연료.SelectedIndexChanged
If Me.cmb_가동연료.SelectedIndex <> -1 Then Me.Validate_Control()
End Sub
Private Sub dv_MouseUp(ByVal sender As Object, ByVal e As System.Windows.Forms.MouseEventArgs) Handles dv.MouseUp
If Prj.UserAuthType = "ADMIN" OrElse Prj.UserAuthType = "BOTH" OrElse Prj.UserAuthType = "BOTH2" OrElse Prj.UserAuthType = "BOTH1" Then '//2011.03.08 추가
If e.Button = Windows.Forms.MouseButtons.Right Then
Dim Frm_FilterA As New Frm_Filter
Frm_FilterA.ColumTitle = getColCaption(Me.Dt)
Frm_FilterA.ColumList = getColName(Me.Dt)
Frm_FilterA.Colorlist = ""
'//getfiled 며령으로 모든 필드명을 찾아서
'//그것을 그 화면으로 보내는거에요
'//그런데 여기서 어떤필드는 색을 달리하겟다라고할려면 해당 :::: 정보도 같이 넘겨줘야해요
'//그부분 구현이 좀 매끄럽게 생각정리가안되네요
Frm_FilterA.Numfield = "" '//20100618 Color 리스트처럼 , 구분해서 필드들을 모두 넣으세요.(=, >= 등을 사용하기 위해서는 해당 항목을 추가 요망)
Frm_FilterA.Default_Filter = "code <> '0'"
If Frm_FilterA.ShowDialog <> Windows.Forms.DialogResult.OK Then Return '//창떳을떄 확인아ㅣ고 취소눌르면 다음을 수행하지않는다는거에요.
Dim Filter As String = Frm_FilterA.tb_filter.Text '//값은 아까 그 텍박에 잇구요.
Try
Me.bs.Filter = Filter
'//바꾸기값이 있으면 변경 20100618
If Frm_FilterA.cmb_fieldc.SelectedIndex >= 0 AndAlso Frm_FilterA.cmb_fieldc.Text.ToLower <> "code" AndAlso _
Frm_FilterA.tb_valuec.Text <> "" Then
Dim Drow() As DataRow = Me.Dt.Select(Filter)
For Each Dr As DataRow In Drow
Dr(Frm_FilterA.cmb_fieldc.Text) = Frm_FilterA.tb_valuec.Text
Next
MsgBox("바꾸기 완료", MsgBoxStyle.Information, "확인")
End If
Catch ex As Exception
Me.bs.Filter = ""
End Try
End If
End If
End Sub
Private Sub dv_KeyDown(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyEventArgs) Handles dv.KeyDown
'//여기보시면 alt+d 누르면 한줄을 경고없이(falsE)삭제하도록 햇어요.. 사실원래 밋alt +d 인데.. ㅎㅎ 잘못해서 ctrl 됫다는
If Prj.UserAuthType = "ADMIN" OrElse Prj.UserAuthType = "BOTH" OrElse Prj.UserAuthType = "BOTH2" OrElse Prj.UserAuthType = "BOTH1" Then '//2011.03.08 추가
Select Case e.KeyCode
Case Keys.D
If e.Alt Then
Dbbase.DelCrow(Me.bs, False)
End If
Case Keys.C
If e.Control Then
Me.SrcDrv = Me.bs.Current
If Me.SrcDrv Is Nothing Then
MsgBox("저장할 ROW가 없습니다", MsgBoxStyle.Information, "확인")
Return
End If
' My.Computer.Clipboard.SetData("ZDATA", Drv)
End If
Case Keys.V
If e.Control Then
If SrcDrv Is Nothing Then Return
Me.bt_add.PerformClick() '//신규추가
Dim NewDrv As DataRowView = Me.bs.Current
For Each C As DataColumn In Me.Dt.Columns
If C.ColumnName.ToUpper = "CODE" Then
ElseIf C.ColumnName.ToUpper = "설명" Then
NewDrv(C.ColumnName) = SrcDrv(C.ColumnName) & "#1"
Else
NewDrv(C.ColumnName) = SrcDrv(C.ColumnName)
End If
Next
Me.bs.EndEdit()
bs.MoveLast()
End If
End Select
End If
End Sub
Private Sub cmb_지열팽창설치여부_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmb_지열팽창설치여부.SelectedValueChanged
Try
Select Case Me.cmb_지열팽창설치여부.Text
Case ""
Me.tb_지열팽창탱크체적.Enabled = True
Case Else
Me.tb_지열팽창탱크체적.Enabled = False
End Select
Catch ex As Exception
End Try
End Sub
Private Sub cmb_모듈기울기_SelectedValueChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles cmb_모듈기울기.SelectedValueChanged
Validate_Control()
End Sub
Private Sub dv_CellContentClick(ByVal sender As System.Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dv.CellContentClick
End Sub
Private Sub cmb_태양열시스템의성능_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmb_태양열시스템의성능.SelectedIndexChanged
Validate_Control()
End Sub
Private Sub cmb_모듈종류_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmb_모듈종류.SelectedIndexChanged
Validate_Control()
End Sub
End Class

Some files were not shown because too many files have changed in this diff Show More