파일 열기 메뉴 펑션으로 분리

데이터 정정 작업을 펑션으로 분리하고, import 기능에서도 추가 호출
가져오기시 메뉴 자동 업데이트 되도록 함
This commit is contained in:
chi
2022-12-18 21:33:10 +09:00
parent f400997408
commit 3b44d192cb

View File

@@ -711,155 +711,7 @@ Public Class MdiMain
Frm_Work.Label1.Text = "데이터를 확인하고 있습니다"
Frm_Work.Show()
If DSET1.tbl_buha.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_buha.Rows.Add(New String() {"0", "(없음)"})
If DSET1.tbl_bunbae.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_bunbae.Rows.Add(New String() {"0", "(없음)"})
If DSET1.tbl_kongjo.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_kongjo.Rows.Add(New String() {"0", "(없음)"})
If DSET1.tbl_kongkub.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_kongkub.Rows.Add(New String() {"0", "(없음)"})
If DSET1.tbl_myoun.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_myoun.Rows.Add(New String() {"0", "(없음)"})
If DSET1.tbl_nanbangkiki.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_nanbangkiki.Rows.Add(New String() {"0", "(없음)"})
If DSET1.tbl_nangbangkiki.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_nangbangkiki.Rows.Add(New String() {"0", "(없음)"})
If DSET1.tbl_nbunbae.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_nbunbae.Rows.Add(New String() {"0", "(없음)"})
If DSET1.tbl_new.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_new.Rows.Add(New String() {"0", "(없음)"})
If DSET1.tbl_profile.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_profile.Rows.Add(New String() {"0", "(없음)"})
If DSET1.tbl_weather.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_weather.Rows.Add(New String() {"0", "(없음)"})
If DSET1.tbl_zone.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_zone.Rows.Add(New String() {"0", "(없음)"})
If DSET1.tbl_yk.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_yk.Rows.Add(New String() {"0", "(없음)"})
If DSET1.tbl_Desc.Rows.Count < 1 Then
MsgBox("건물개요데이터가 없으므로 초기자료를 생성합니다", MsgBoxStyle.Critical, "확인")
Dim newdescdr As DS.tbl_DescRow = DSET1.tbl_Desc.NewRow
newdescdr.name = "오류"
newdescdr.buildarea = "010100"
DSET1.tbl_Desc.Addtbl_DescRow(newdescdr)
DSET1.tbl_Desc.AcceptChanges()
Else
If isNew Then '//신규작성파일이 ㄴ경우
Dim drDesc1 As DS.tbl_DescRow = DSET1.tbl_Desc.Rows(0)
drDesc1.buildarea = "010100" '//서울로 지정
drDesc1.EndEdit()
End If
End If
'//건물용도기본값
Dim 용도 As String = DSET1.tbl_Desc.Rows(0)("isjugo").ToString
If IsNumeric(용도) = False Then
pLog.Add(String.Format("건물개요의 용도값이 숫자가아니므로 1로 설정합니다"))
DSET1.tbl_Desc.Rows(0)("isjugo") = "1"
End If
'//그룹명이없는경우 처리함(130810:arin)
For Each dr As DS.tbl_zoneRow In DSET1.tbl_zone.Select("isnull(그룹,'')=''")
pLog.Add(String.Format("그룹명이없는 경우이므로 '기본'으로 설정합니다 Zone Code={0}", dr.code))
dr.그룹 = "기본"
Next
'//월별에너지사용량데이터영역생성(130819:arin)
If DSET1.tbl_monuse.Rows.Count = 0 Then
For y As Integer = 1 To 3
Dim idx As String = y.ToString("0000")
For i As Integer = 1 To 12
DSET1.tbl_monuse.Rows.Add(New String() {y.ToString() + "차년도", i.ToString("00"), "0", "0", "0", idx}) '//년,월,도시가스,전력,지역난방,코드
Next
Next
End If
'//140808 데이터 기본값 처리
'//입력존
If Not DSET1 Is Nothing Then
For i As Integer = 1 To DSET1.tbl_zone.Rows.Count
'//순실체적 재계산 150111
'순실체적NTb.Text = TOST(TOSG(면적NTb.Text) * TOSG(천장고NTb.Text))
Dim 면적 As String = ""
Dim 천장고 As String = ""
Dim 순실체적 As String = ""
Try
면적 = DSET1.tbl_zone.Rows(i - 1)("면적").ToString
Catch ex As Exception
면적 = ""
End Try
Try
천장고 = DSET1.tbl_zone.Rows(i - 1)("천장고p").ToString
Catch ex As Exception
천장고 = ""
End Try
Try
순실체적 = DSET1.tbl_zone.Rows(i - 1)("순실체적").ToString
Catch ex As Exception
순실체적 = ""
End Try
If IsNumeric(면적) AndAlso IsNumeric(천장고) Then
If Not IsNumeric(순실체적) Then
' MsgBox("순실체적값이 없으므로 재계산 합니다", MsgBoxStyle.Information, "확인")
DSET1.tbl_zone.Rows(i - 1)("순실체적") = CSng(면적) * CSng(천장고)
End If
End If
If DSET1.tbl_zone.Rows(i - 1).RowState = DataRowState.Deleted OrElse _
DSET1.tbl_zone.Rows(i - 1).RowState = DataRowState.Detached Then
Continue For
End If
Dim StrCode As String = DSET1.tbl_zone.Rows(i - 1)("code").ToString
If StrCode.Length = 4 Then
DSET1.tbl_zone.Rows(i - 1)("code") = "0" + StrCode
End If
Next
DSET1.tbl_zone.AcceptChanges()
End If
If Not DSET2 Is Nothing Then
For i As Integer = 1 To DSET2.tbl_zone.Rows.Count
If DSET2.tbl_zone.Rows(i - 1).RowState = DataRowState.Deleted OrElse _
DSET2.tbl_zone.Rows(i - 1).RowState = DataRowState.Detached Then
Continue For
End If
Dim StrCode As String = DSET2.tbl_zone.Rows(i - 1)("code").ToString
If StrCode.Length = 4 Then
DSET2.tbl_zone.Rows(i - 1)("code") = "0" + StrCode
End If
Next
DSET2.tbl_zone.AcceptChanges()
End If
'//입력면
If Not DSET1 Is Nothing Then
For i As Integer = 1 To DSET1.tbl_myoun.Rows.Count
If DSET1.tbl_myoun.Rows(i - 1).RowState = DataRowState.Deleted OrElse _
DSET1.tbl_myoun.Rows(i - 1).RowState = DataRowState.Detached Then
Continue For
End If
Dim StrCode As String = DSET1.tbl_myoun.Rows(i - 1)("code").ToString
If StrCode.Length = 4 Then
DSET1.tbl_myoun.Rows(i - 1)("code") = "0" + StrCode
End If
Dim StrCode2 As String = DSET1.tbl_myoun.Rows(i - 1)("존분류").ToString
If StrCode2.Length = 4 Then
DSET1.tbl_myoun.Rows(i - 1)("존분류") = "0" + StrCode2
End If
Next
DSET1.tbl_myoun.AcceptChanges()
End If
If Not DSET2 Is Nothing Then
For i As Integer = 1 To DSET2.tbl_myoun.Rows.Count
If DSET2.tbl_myoun.Rows(i - 1).RowState = DataRowState.Deleted OrElse _
DSET2.tbl_myoun.Rows(i - 1).RowState = DataRowState.Detached Then
Continue For
End If
Dim StrCode As String = DSET2.tbl_myoun.Rows(i - 1)("code").ToString
If StrCode.Length = 4 Then
DSET2.tbl_myoun.Rows(i - 1)("code") = "0" + StrCode
End If
Dim StrCode2 As String = DSET2.tbl_myoun.Rows(i - 1)("존분류").ToString
If StrCode2.Length = 4 Then
DSET2.tbl_myoun.Rows(i - 1)("존분류") = "0" + StrCode2
End If
Next
DSET2.tbl_myoun.AcceptChanges()
End If
FixData(isNew) '//221218 chi import 기능과 공유하기 위해 데이터 보정기능을 분리
Frm_Work.Close()
@@ -999,10 +851,6 @@ Public Class MdiMain
End If
Read_WeatherFile()
Menu_건물개요()
@@ -1077,6 +925,160 @@ Public Class MdiMain
End Sub
Sub FixData(isNew As Boolean)
If DSET1.tbl_buha.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_buha.Rows.Add(New String() {"0", "(없음)"})
If DSET1.tbl_bunbae.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_bunbae.Rows.Add(New String() {"0", "(없음)"})
If DSET1.tbl_kongjo.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_kongjo.Rows.Add(New String() {"0", "(없음)"})
If DSET1.tbl_kongkub.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_kongkub.Rows.Add(New String() {"0", "(없음)"})
If DSET1.tbl_myoun.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_myoun.Rows.Add(New String() {"0", "(없음)"})
If DSET1.tbl_nanbangkiki.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_nanbangkiki.Rows.Add(New String() {"0", "(없음)"})
If DSET1.tbl_nangbangkiki.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_nangbangkiki.Rows.Add(New String() {"0", "(없음)"})
If DSET1.tbl_nbunbae.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_nbunbae.Rows.Add(New String() {"0", "(없음)"})
If DSET1.tbl_new.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_new.Rows.Add(New String() {"0", "(없음)"})
If DSET1.tbl_profile.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_profile.Rows.Add(New String() {"0", "(없음)"})
If DSET1.tbl_weather.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_weather.Rows.Add(New String() {"0", "(없음)"})
If DSET1.tbl_zone.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_zone.Rows.Add(New String() {"0", "(없음)"})
If DSET1.tbl_yk.Select("code='0'").GetUpperBound(0) = -1 Then DSET1.tbl_yk.Rows.Add(New String() {"0", "(없음)"})
If DSET1.tbl_Desc.Rows.Count < 1 Then
MsgBox("건물개요데이터가 없으므로 초기자료를 생성합니다", MsgBoxStyle.Critical, "확인")
Dim newdescdr As DS.tbl_DescRow = DSET1.tbl_Desc.NewRow
newdescdr.name = "오류"
newdescdr.buildarea = "010100"
DSET1.tbl_Desc.Addtbl_DescRow(newdescdr)
DSET1.tbl_Desc.AcceptChanges()
Else
If isNew Then '//신규작성파일이 ㄴ경우
Dim drDesc1 As DS.tbl_DescRow = DSET1.tbl_Desc.Rows(0)
drDesc1.buildarea = "010100" '//서울로 지정
drDesc1.EndEdit()
End If
End If
'//건물용도기본값
Dim 용도 As String = DSET1.tbl_Desc.Rows(0)("isjugo").ToString
If IsNumeric(용도) = False Then
pLog.Add(String.Format("건물개요의 용도값이 숫자가아니므로 1로 설정합니다"))
DSET1.tbl_Desc.Rows(0)("isjugo") = "1"
End If
'//그룹명이없는경우 처리함(130810:arin)
For Each dr As DS.tbl_zoneRow In DSET1.tbl_zone.Select("isnull(그룹,'')=''")
pLog.Add(String.Format("그룹명이없는 경우이므로 '기본'으로 설정합니다 Zone Code={0}", dr.code))
dr.그룹 = "기본"
Next
'//월별에너지사용량데이터영역생성(130819:arin)
If DSET1.tbl_monuse.Rows.Count = 0 Then
For y As Integer = 1 To 3
Dim idx As String = y.ToString("0000")
For i As Integer = 1 To 12
DSET1.tbl_monuse.Rows.Add(New String() {y.ToString() + "차년도", i.ToString("00"), "0", "0", "0", idx}) '//년,월,도시가스,전력,지역난방,코드
Next
Next
End If
'//140808 데이터 기본값 처리
'//입력존
If Not DSET1 Is Nothing Then
For i As Integer = 1 To DSET1.tbl_zone.Rows.Count
'//순실체적 재계산 150111
'순실체적NTb.Text = TOST(TOSG(면적NTb.Text) * TOSG(천장고NTb.Text))
Dim 면적 As String = ""
Dim 천장고 As String = ""
Dim 순실체적 As String = ""
Try
면적 = DSET1.tbl_zone.Rows(i - 1)("면적").ToString
Catch ex As Exception
면적 = ""
End Try
Try
천장고 = DSET1.tbl_zone.Rows(i - 1)("천장고p").ToString
Catch ex As Exception
천장고 = ""
End Try
Try
순실체적 = DSET1.tbl_zone.Rows(i - 1)("순실체적").ToString
Catch ex As Exception
순실체적 = ""
End Try
If IsNumeric(면적) AndAlso IsNumeric(천장고) Then
If Not IsNumeric(순실체적) Then
' MsgBox("순실체적값이 없으므로 재계산 합니다", MsgBoxStyle.Information, "확인")
DSET1.tbl_zone.Rows(i - 1)("순실체적") = CSng(면적) * CSng(천장고)
End If
End If
If DSET1.tbl_zone.Rows(i - 1).RowState = DataRowState.Deleted OrElse _
DSET1.tbl_zone.Rows(i - 1).RowState = DataRowState.Detached Then
Continue For
End If
Dim StrCode As String = DSET1.tbl_zone.Rows(i - 1)("code").ToString
If StrCode.Length = 4 Then
DSET1.tbl_zone.Rows(i - 1)("code") = "0" + StrCode
End If
Next
DSET1.tbl_zone.AcceptChanges()
End If
If Not DSET2 Is Nothing Then
For i As Integer = 1 To DSET2.tbl_zone.Rows.Count
If DSET2.tbl_zone.Rows(i - 1).RowState = DataRowState.Deleted OrElse _
DSET2.tbl_zone.Rows(i - 1).RowState = DataRowState.Detached Then
Continue For
End If
Dim StrCode As String = DSET2.tbl_zone.Rows(i - 1)("code").ToString
If StrCode.Length = 4 Then
DSET2.tbl_zone.Rows(i - 1)("code") = "0" + StrCode
End If
Next
DSET2.tbl_zone.AcceptChanges()
End If
'//입력면
If Not DSET1 Is Nothing Then
For i As Integer = 1 To DSET1.tbl_myoun.Rows.Count
If DSET1.tbl_myoun.Rows(i - 1).RowState = DataRowState.Deleted OrElse _
DSET1.tbl_myoun.Rows(i - 1).RowState = DataRowState.Detached Then
Continue For
End If
Dim StrCode As String = DSET1.tbl_myoun.Rows(i - 1)("code").ToString
If StrCode.Length = 4 Then
DSET1.tbl_myoun.Rows(i - 1)("code") = "0" + StrCode
End If
Dim StrCode2 As String = DSET1.tbl_myoun.Rows(i - 1)("존분류").ToString
If StrCode2.Length = 4 Then
DSET1.tbl_myoun.Rows(i - 1)("존분류") = "0" + StrCode2
End If
Next
DSET1.tbl_myoun.AcceptChanges()
End If
If Not DSET2 Is Nothing Then
For i As Integer = 1 To DSET2.tbl_myoun.Rows.Count
If DSET2.tbl_myoun.Rows(i - 1).RowState = DataRowState.Deleted OrElse _
DSET2.tbl_myoun.Rows(i - 1).RowState = DataRowState.Detached Then
Continue For
End If
Dim StrCode As String = DSET2.tbl_myoun.Rows(i - 1)("code").ToString
If StrCode.Length = 4 Then
DSET2.tbl_myoun.Rows(i - 1)("code") = "0" + StrCode
End If
Dim StrCode2 As String = DSET2.tbl_myoun.Rows(i - 1)("존분류").ToString
If StrCode2.Length = 4 Then
DSET2.tbl_myoun.Rows(i - 1)("존분류") = "0" + StrCode2
End If
Next
DSET2.tbl_myoun.AcceptChanges()
End If
End Sub
Public Sub Open_File_Only_weather(ByVal FileName As String, Optional ByVal SyncServer As Boolean = False, Optional checkVersion As Boolean = True, Optional silent As Boolean = False, Optional isNew As Boolean = False)
@@ -2484,6 +2486,10 @@ ENDSTAT: '//
End Sub
Private Sub 열기ToolStripMenuItem_Click(sender As System.Object, e As System.EventArgs) Handles btOpen.Click
OpenFile()
End Sub
Sub OpenFile()
If Prj.LoginTime = "" Then
MsgBox("먼저 로그인을 하세요", MsgBoxStyle.Information, "확인")
Frm_Intro.Activate()
@@ -2800,7 +2806,7 @@ ENDSTAT: '//
End Sub
Private Sub ToolStripButton2_Click(sender As System.Object, e As System.EventArgs) Handles ToolStripButton2.Click
btOpen.PerformClick()
OpenFile()
End Sub
@@ -3392,6 +3398,12 @@ ENDSTAT: '//
Pub.DSET1.AcceptChanges()
Dim xr As XmlReadMode = Pub.DSET1.ReadXml(od.FileName)
Pub.DSET1.AcceptChanges()
FixData(False) '//데이터보정
Calc.validation() '//null보정
Menu_건물개요()
Me.RefreshMenuList("")
Catch ex As Exception
MsgboxE("외부파일 가져오기 실패\n" + ex.Message)
End Try