Public Class Frm_Desc #Region "data Base 변경여부및 적용방법" '''변경된내용을적용한다. Public Overrides Function AcceptChanged() As Boolean Dim drv As DataRowView = bs.Current If drv Is Nothing Then Return True 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 Dim DT지역중분류 As DataTable Dim init As Boolean = False Dim 변경암함_세부지역 As Boolean = False Public Sub New(_opentime) ' 이 호출은 디자이너에 필요합니다. InitializeComponent() OpenTime = _opentime ' InitializeComponent() 호출 뒤에 초기화 코드를 추가하십시오. 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 ShowHistory() Dim drv As DataRowView = Me.bs.Current Dim f As New Frm_History("tbl_Desc", "") If f.ShowDialog = DialogResult.OK Then drv(f.colname) = f.val Me.Validate() Me.bs.EndEdit() My.Application.DoEvents() MsgBox("값이 변경되었습니다", MsgBoxStyle.Information, "확인") End If End Sub Private Sub AddNewDataRow_Zone_Changed2(ByVal sender As Object, ByVal e As System.Data.DataColumnChangeEventArgs) Dim oval As String = e.Row(e.Column.ColumnName).ToString Dim nval As String = e.ProposedValue.ToString If oval <> nval Then Dim newdr As DS2.historyRow = DSHistory.history.NewhistoryRow newdr.time = Now.ToString("yyyy-MM-dd HH:mm:ss") newdr.tablename = "tbl_Desc" newdr.ovalue = oval newdr.nvalue = nval newdr.column = e.Column.ColumnName newdr.code = "" DSHistory.history.AddhistoryRow(newdr) DSHistory.history.AcceptChanges() End If 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 ShowHistory() End Select End Sub 'Sub AttachAreaBind() ' '//지역중분류값을 업데이트한다 ' bsArea1.DataSource = DSET1 ' bsArea1.DataMember = "weather_group" ' bsArea2.DataSource = DSET1 ' bsArea2.DataMember = "weather_group" ' cmbArea1.DataSource = bsArea1 ' cmbArea2.DataSource = bsArea2 ' cmbArea1.DisplayMember = "name" ' cmbArea1.ValueMember = "code" ' 'bsArea1.Filter = "code like '%0000'" ' cmbArea2.DisplayMember = "name" ' cmbArea2.ValueMember = "code" ' 'bsArea2.Filter = "code ='test'" 'End Sub Private Sub MdiMain_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load init = False Me.Show() My.Application.DoEvents() '//지역중분류값을 업데이트한다 bsArea1.DataSource = DSET1 bsArea1.DataMember = "weather_group" bsArea2.DataSource = DSET1 bsArea2.DataMember = "weather_group" 'cmbArea1.DataSource = bsArea1 'cmbArea2.DataSource = bsArea2 'cmbArea1.DisplayMember = "name" 'cmbArea1.ValueMember = "code" 'bsArea1.Filter = "code like '%0000'" 'cmbArea2.DisplayMember = "name" 'cmbArea2.ValueMember = "code" 'bsArea2.Filter = "code ='test'" Me.LinkLabel1.Visible = False Me.LinkLabel2.Visible = False Me.LinkLabel3.Visible = False 'MdiMain.Toggle_Menu_Color(MdiMain.E_MenuIdx.건물개요) 'CEnergy.ARINCLASS.SaveLoad_FrmSetting(Me) '//프로필 관련 '//공유데이터셋에 연결한다. Me.bs.DataSource = DSET1 If Me.bs.Count = 0 Then bs.AddNew() bs.EndEdit() '//Zone Binding_Zone() init = True Try Me.bs.Position = CEnergy.ARINCLASS.Read_LastPos_Frm(Me) Catch ex As Exception Me.bs.MoveFirst() End Try Dim drDesc As DS.tbl_DescRow = DSET1.tbl_Desc.Rows(0) btArea.Text = GetAreaName(drDesc.buildarea) If Not (Prj.UserId.ToLower() = "guest" OrElse Prj.UserId.ToLower().StartsWith("user") OrElse Prj.UserAuthType = "ADMIN" OrElse Prj.UserAuthType = "BOTH" OrElse Prj.UserAuthType = "BOTH2" OrElse Prj.UserAuthType = "BOTH1") Then '//2011.03.08 추가 Dim MyVersion As String '= Format(My.Application.Info.Version.Minor, "0000") & Format(My.Application.Info.Version.Build, "0000") Dim L As New ArinLogin.ArinLOgin Dim VersionInfo As ArinLogin.ArinLOgin.sVersionInfo = Nothing '/공용코드버젼확인 Try MyVersion = DSET1.tbl_Desc.Rows(0)("versionc").ToString If MyVersion = "" Then MyVersion = "20100101" Catch ex As Exception MyVersion = "20100101" End Try Try VersionInfo = L.Get_LastVersion("C") '//버젼을 가져오는데 eco 버젼만 가져오게 바꺼야겟죵 ^^ 구분자를 넣도록 합시닷! If VersionInfo.Ver <> "0" AndAlso (CInt(VersionInfo.Ver) > CInt(MyVersion)) Then '//0은 없거나 관리안함의 뜻이므로 넘어간다. ' Dim Lc As String = Me.cmbArea2.SelectedValue Read_CommonCode() 'Me.cmbArea2.SelectedValue = Lc Me.bs.EndEdit() End If Catch ex As Exception MsgBox("공용코드 에러" & ex.Message.ToString) End Try '/표준프로파일버젼확인 '//2010.12.06 추가 Try MyVersion = DSET1.tbl_Desc.Rows(0)("versionp").ToString If MyVersion = "" Then MyVersion = "20100101" Catch ex As Exception MyVersion = "20100101" End Try Try VersionInfo = L.Get_LastVersion("P") '//버젼을 가져오는데 eco 버젼만 가져오게 바꺼야겟죵 ^^ 구분자를 넣도록 합시닷! If VersionInfo.Ver <> "0" AndAlso (CInt(VersionInfo.Ver) > CInt(MyVersion)) Then '//0은 없거나 관리안함의 뜻이므로 넘어간다. 'Dim Lp As String = Me.cmbArea2.SelectedValue Read_ProfileData() 'Me.cmbArea2.SelectedValue = Lp Me.bs.EndEdit() End If Catch ex As Exception MsgBox("표준프로파일 에러" & ex.Message.ToString) End Try '/기상데이터버젼확인 Try MyVersion = DSET1.tbl_Desc.Rows(0)("versionw").ToString If MyVersion = "" Then MyVersion = "20100101" Catch ex As Exception MyVersion = "20100101" End Try Try 'MyVersion = DSET1.tbl_Desc.Rows(0)("versionw").ToString VersionInfo = L.Get_LastVersion("W") '//버젼을 가져오는데 eco 버젼만 가져오게 바꺼야겟죵 ^^ 구분자를 넣도록 합시닷! If VersionInfo.Ver <> "0" AndAlso (CInt(VersionInfo.Ver) > CInt(MyVersion)) Then '//0은 없거나 관리안함의 뜻이므로 넘어간다. 'Dim Lw As String = Me.cmbArea2.SelectedValue Read_WeatherData() 'Me.cmbArea2.SelectedValue = Lw Me.bs.EndEdit() End If Catch ex As Exception End Try Else If Not Prj.UserId.ToLower() = "guest" Then '//서버업데이트기능 숨김 Me.LinkLabel1.Visible = True Me.LinkLabel2.Visible = True Me.LinkLabel3.Visible = True End If End If '지역코드설정() AddHandler DSET1.tbl_Desc.ColumnChanging, AddressOf AddNewDataRow_Zone_Changed2 AddDebug("▲ Form Load") End Sub Private Sub Binding_Zone() Dim bs_cmb_공조방식 As New BindingSource(DSET1, "tbl_weather") bs_cmb_공조방식.Filter = "" 'Me.cmbArea2.DataSource = bs_cmb_공조방식 'cmbArea2.DisplayMember = "건물위치" 'cmbArea2.ValueMember = "code" 'Me.cmbArea2.DataBindings.Add("selectedvalue", Me.bs, "buildarea") Dim bs_cmb_인증기관 As New BindingSource(DSET1, "tbl_common") bs_cmb_인증기관.Filter = "gubun='1100'" bs_cmb_인증기관.Sort = "code" cmb_인증기관.DataSource = bs_cmb_인증기관 cmb_인증기관.DisplayMember = "name" cmb_인증기관.ValueMember = "name" Me.cmb_인증기관.DataBindings.Add("selectedvalue", Me.bs, "인증기관") Dim bs_cmb_건물용도 As New BindingSource(DSET1, "tbl_common") bs_cmb_건물용도.Filter = "gubun='1201'" bs_cmb_건물용도.Sort = "code" cmb_주거용건축물.DataSource = bs_cmb_건물용도 cmb_주거용건축물.DisplayMember = "name" cmb_주거용건축물.ValueMember = "valn1" Me.cmb_주거용건축물.DataBindings.Add("selectedvalue", Me.bs, "isjugo") 'Dim DT주거용 As New DataTable 'DT주거용.Columns.Add("name") 'DT주거용.Columns.Add("value") 'DT주거용.Rows.Add(New String() {"주거용건축물(단독주택)", "1"}) 'DT주거용.Rows.Add(New String() {"주거용건축물(공동주택)", "2"}) 'DT주거용.Rows.Add(New String() {"비주거용(제1종근린생활시설)", "11"}) 'DT주거용.Rows.Add(New String() {"비주거용(제2종근린생활시설)", "12"}) 'DT주거용.Rows.Add(New String() {"비주거용(문화및집회시설)", "13"}) 'DT주거용.Rows.Add(New String() {"비주거용(종교시설)", "14"}) 'DT주거용.Rows.Add(New String() {"비주거용(판매시설)", "15"}) 'DT주거용.Rows.Add(New String() {"비주거용(의료시설)", "16"}) 'DT주거용.Rows.Add(New String() {"비주거용(교육연구시설)", "17"}) 'DT주거용.Rows.Add(New String() {"비주거용(노유자시설)", "18"}) 'DT주거용.Rows.Add(New String() {"비주거용(수련시설)", "19"}) 'DT주거용.Rows.Add(New String() {"비주거용(운동시설)", "20"}) 'DT주거용.Rows.Add(New String() {"비주거용(업무시설)", "21"}) 'DT주거용.Rows.Add(New String() {"비주거용(숙박시설)", "22"}) 'DT주거용.Rows.Add(New String() {"비주거용(위락시설)", "23"}) 'DT주거용.Rows.Add(New String() {"비주거용(고장물품제조가공이용시설)", "24"}) 'DT주거용.Rows.Add(New String() {"비주거용(창고시설)", "25"}) 'DT주거용.Rows.Add(New String() {"비주거용(위험물처리장)", "26"}) 'DT주거용.Rows.Add(New String() {"비주거용(자동차관리시설)", "27"}) 'DT주거용.Rows.Add(New String() {"비주거용(동물및식물관련시설)", "28"}) 'DT주거용.Rows.Add(New String() {"비주거용(분뇨및쓰레기처리시설)", "29"}) 'DT주거용.Rows.Add(New String() {"비주거용(교정및군사시설)", "30"}) 'DT주거용.Rows.Add(New String() {"비주거용(방송통신시설)", "31"}) 'DT주거용.Rows.Add(New String() {"비주거용(발전시설발전소)", "32"}) 'DT주거용.Rows.Add(New String() {"비주거용(묘지관리시설)", "33"}) 'DT주거용.Rows.Add(New String() {"비주거용(관광휴계시설)", "34"}) 'DT주거용.Rows.Add(New String() {"비주거용(장례식장)", "35"}) 'Me.cmb_주거용건축물.DataSource = DT주거용 'Me.cmb_주거용건축물.DisplayMember = "name" 'Me.cmb_주거용건축물.ValueMember = "value" 'Me.cmb_주거용건축물.DataBindings.Add("selectedvalue", Me.bs, "isjugo") 'AddHandler cmb_location.KeyDown, AddressOf Cmb_DeleteVal End Sub Private Sub LinkLabel1_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel1.LinkClicked ' Dim L As String = Me.cmbArea2.SelectedValue If MsgBox("공용코드값을 서버로부터 가져오시겠습니까?", MsgBoxStyle.Information Or MsgBoxStyle.OkCancel, "확인") = MsgBoxResult.Ok Then Read_CommonCode() ' Me.cmbArea2.SelectedValue = L Me.bs.EndEdit() End Sub Private Sub LinkLabel2_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel2.LinkClicked 'Dim L As String = Me.cmbArea2.SelectedValue If MsgBox("기상데이터값을 서버로부터 가져오시겠습니까?", MsgBoxStyle.Information Or MsgBoxStyle.OkCancel, "확인") = MsgBoxResult.Ok Then Read_WeatherData() ' AttachAreaBind() ' Me.cmbArea2.SelectedValue = L Me.bs.EndEdit() End Sub Private Sub LinkLabel3_LinkClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.LinkLabelLinkClickedEventArgs) Handles LinkLabel3.LinkClicked '//2010.12.06 추가 ' Dim L As String = Me.cmbArea2.SelectedValue If MsgBox("표준프로파일값을 서버로부터 가져오시겠습니까?", MsgBoxStyle.Information Or MsgBoxStyle.OkCancel, "확인") = MsgBoxResult.Ok Then Read_ProfileData() ' Me.cmbArea2.SelectedValue = L Me.bs.EndEdit() End Sub Private Sub bs_CurrentChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles bs.CurrentChanged Me.bs.EndEdit() Dim drv As DataRowView = Me.bs.Current If drv Is Nothing Then Return If drv("공공").ToString = "" Then drv("공공") = "1" If drv("공공").ToString = "1" Then Me.CheckBox1.Checked = True Else Me.CheckBox1.Checked = False End If End Sub Private Sub DateTimePicker1_ValueChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles DateTimePicker1.ValueChanged, DateTimePicker2.ValueChanged '//준공이후 경과년수계산 Dim datetime1 As String = Format(Me.DateTimePicker1.Value, "yyyy") Dim datetime2 As String = Format(Me.DateTimePicker2.Value, "yyyy") Dim datetime3 As String = Format(Me.DateTimePicker1.Value, "MM") Dim datetime4 As String = Format(Me.DateTimePicker2.Value, "MM") Dim priod As Single Try If TOSG(datetime3) - TOSG(datetime4) >= 0 Then priod = Math.Round(TOSG(datetime1) - TOSG(datetime2) + (TOSG(datetime3) - TOSG(datetime4)) / 12, 1) Else priod = Math.Round(TOSG(datetime1) - TOSG(datetime2) - (TOSG(datetime4) - TOSG(datetime3)) / 12, 1) End If Catch ex As Exception priod = 0 End Try If priod < 0 Then priod = 0 MyTb6.Text = CStr(priod) Me.bs.EndEdit() End Sub Private Sub CheckBox1_Click(sender As Object, e As System.EventArgs) Handles CheckBox1.Click Dim drv As DataRowView = Me.bs.Current If drv Is Nothing Then Return drv("공공") = IIf(Me.CheckBox1.Checked, "1", "0") End Sub Private Sub CheckBox1_CheckedChanged(sender As System.Object, e As System.EventArgs) Handles CheckBox1.CheckedChanged End Sub 'Private Sub 지역코드설정() ' Dim drv As DataRowView = Me.bs.Current ' If drv Is Nothing Then Return ' '//지역코드에는 Weather_Group의 코드값이 들어있다. ' Dim 지역코드 As String = drv("buildarea").ToString ' If 지역코드 <> "" AndAlso 지역코드 <> "0" AndAlso 지역코드 <> "00" AndAlso 지역코드.Length = 6 Then ' 변경암함_세부지역 = True ' '//Dep 1 ' Dim codeHeader As String = 지역코드.Substring(0, 2) ' bsArea2.Filter = String.Format("code like '{0}%' and code not like '%0000' and code like '%00'", codeHeader) ' Me.cmbArea1.SelectedValue = codeHeader + "0000" '//선택해줌 ' codeHeader = 지역코드.Substring(0, 4) ' 'bsArea3.Filter = String.Format("code like '{0}%' and code not like '%00'", codeHeader) ' Me.cmbArea2.SelectedValue = codeHeader + "00" ' 'Me.cmbArea3.SelectedValue = 지역코드 ' '//찾은 중분류코드에맞는 중분류를 자동 선택해준다. ' 변경암함_세부지역 = False ' Else ' bsArea1.Filter = "code like '%0000'" ' bsArea2.Filter = "code='test'" ' 'bsArea3.Filter = "code='test'" ' End If 'End Sub 'Private Sub cmbArea1_SelectedIndexChanged(sender As Object, e As EventArgs) ' If init = False Then Return '//초기화전이면 수행안함 ' Dim drv As DataRowView = Me.bs.Current ' If drv Is Nothing Then Return ' '//지역그룹선택을 바꾼다면 해당 지역에 맞도록 우측을 갱신해줘야한다 ' If 변경암함_세부지역 Then Return '//순환참조방지 ' If Me.cmbArea1.SelectedIndex < 0 OrElse cmbArea1.Text = "없음" OrElse cmbArea1.SelectedValue.ToString() = "00" Then ' Me.cmbArea2.SelectedIndex = -1 ' Else ' Dim codeHeader As String = cmbArea1.SelectedValue.ToString().Substring(0, 2) ' bsArea2.Filter = String.Format("code like '{0}%' and code not like '%0000' and code like '%00'", codeHeader) ' cmbArea2.DataSource = bsArea2 ' cmbArea2.DisplayMember = "name" ' cmbArea2.ValueMember = "code" ' If (cmbArea2.Items.Count > 0) Then ' cmbArea2.SelectedIndex = 0 ' Else ' cmbArea2.SelectedIndex = -1 ' End If ' If cmbArea1.SelectedIndex >= 0 Then ' drv("buildarea") = cmbArea1.SelectedValue.ToString() ' drv.EndEdit() ' End If ' End If 'End Sub 'Private Sub CmbArea2_SelectedIndexChanged_1(sender As System.Object, e As System.EventArgs) ' If init = False Then Return '//초기화전이면 수행안함 ' Dim drv As DataRowView = Me.bs.Current ' If drv Is Nothing Then Return ' '//지역그룹선택을 바꾼다면 해당 지역에 맞도록 우측을 갱신해줘야한다 ' If 변경암함_세부지역 Then Return '//순환참조방지 ' If Me.cmbArea2.SelectedIndex < 0 OrElse cmbArea2.Text = "없음" OrElse cmbArea2.SelectedValue.ToString() = "00" Then ' 'Me.cmbArea3.SelectedIndex = -1 ' Else ' Dim codeHeader As String = cmbArea2.SelectedValue.ToString().Substring(0, 4) ' 'bsArea3.Filter = String.Format("code like '{0}%' and code not like '%00'", codeHeader) ' 'cmbArea3.SelectedIndex = -1 ' If cmbArea2.SelectedIndex >= 0 Then ' drv("buildarea") = cmbArea2.SelectedValue.ToString() ' drv.EndEdit() ' End If ' End If 'End Sub Private Sub Label41_Click(sender As Object, e As EventArgs) Handles Label41.Click End Sub Private Sub tbArea_TextChanged(sender As Object, e As EventArgs) End Sub Private Sub tbArea_Click(sender As Object, e As EventArgs) End Sub Function GetAreaName(code As String) If String.IsNullOrEmpty(code) OrElse code.Length <> 6 Then Return code Dim Grp1 As String = code.Substring(0, 2) '//그룹 이름 찾기 Dim GrpName As String = String.Empty Dim CodeName As String = String.Empty Dim GrpCode As String = Grp1 + "0000" Dim GrpList() As DS.weather_groupRow = DSET1.weather_group.Select("code='" + GrpCode + "'") If GrpList Is Nothing OrElse GrpList.Length = 1 Then GrpName = GrpList(0).name End If GrpList = DSET1.weather_group.Select("code='" + code + "'") If GrpList Is Nothing OrElse GrpList.Length = 1 Then CodeName = GrpList(0).name End If If CodeName = String.Empty Then Return code Else Return GrpName + " > " + CodeName End If End Function Private Sub btArea_Click(sender As Object, e As EventArgs) Handles btArea.Click Dim PreCode As String = String.Empty Dim dr As DS.tbl_DescRow = Nothing If DSET1.tbl_Desc.Rows.Count = 1 Then dr = DSET1.tbl_Desc.Rows(0) PreCode = dr.buildarea End If Dim f As New fSelectWeatherGroup(PreCode) If f.ShowDialog() = DialogResult.OK Then If Not dr Is Nothing Then btArea.Text = GetAreaName(f.SelectedCode) dr.buildarea = f.SelectedCode dr.EndEdit() End If End If End Sub End Class