Files
ECO2/ArinWarev1/Forms_Basic/fSelectWeatherGroup.vb
2020-08-16 00:44:02 +09:00

112 lines
3.6 KiB
VB.net

Public Class fSelectWeatherGroup
Public SelectedCode As String = String.Empty
Dim preCode As String
Dim bInit As Boolean
Public Sub New(precode_ As String)
' 디자이너에서 이 호출이 필요합니다.
InitializeComponent()
Me.preCode = precode_
' InitializeComponent() 호출 뒤에 초기화 코드를 추가하세요.
End Sub
Private Sub fSelectArea_Load(sender As Object, e As EventArgs) Handles MyBase.Load
bInit = False
bsArea1.DataSource = DSET1
bsArea2.DataSource = DSET2
bsArea1.Filter = "code like '%0000'"
bsArea2.Filter = "code = 'test'"
'//좌측목록에 데이터를 표시한다
Dim list = From m In DSET1.weather_group
Where m.code.EndsWith("0000")
Select m
lv1.Items.Clear()
For Each item As DS.weather_groupRow In list
Dim lvitem As ListViewItem = lv1.Items.Add(item.name)
lvitem.Tag = item.code
'//입력된 코드가 있다면 선택해준다
If preCode.Length = 6 Then
If item.code.Substring(0, 2) = preCode.Substring(0, 2) Then
lvitem.Selected = True
lvitem.Focused = True
End If
End If
Next
'//입력된 코드가 있다면 중분류를 선택해준다
If preCode.Length = 6 Then
SelectGrp2Code(preCode)
End If
bInit = True
'//선택되지 않았다면 1번아이템을 선택해준다
If lv1.SelectedItems.Count < 1 AndAlso lv1.Items.Count > 0 Then
lv1.Items(0).Selected = True '//중분류는 이 걸로 자동 선택됨
End If
Me.Show()
Me.lv1.Select()
End Sub
Private Sub lv1_SelectedIndexChanged(sender As Object, e As EventArgs) Handles lv1.SelectedIndexChanged
'//왼쪽에서 목록을 선태갛면 그걸로 시작하는 데이터를 표시해줘야하낟
If bInit = False OrElse lv1.SelectedItems.Count < 1 Then Return
Dim GrpItem As ListViewItem = lv1.SelectedItems(0)
Dim GrpCode As String = GrpItem.Tag.ToString()
SelectGrp2Code(GrpCode)
'Dim list = From m In DSET1.weather_group
' Where m.code.StartsWith(GrpCode.Substring(0, 2)) AndAlso m.code.EndsWith("0000") = False AndAlso m.code.EndsWith("00")
' Select m
'lv2.Items.Clear()
'For Each item As DS.weather_groupRow In list
' Dim lvitem As ListViewItem = lv2.Items.Add(item.name)
' lvitem.Tag = item.code
'Next
End Sub
Sub SelectGrp2Code(GrpCode As String)
'//해당 중분류 아이템을 가져온다
Dim list = From m In DSET1.weather_group
Where m.code.StartsWith(GrpCode.Substring(0, 2)) AndAlso m.code.EndsWith("0000") = False AndAlso m.code.EndsWith("00")
Select m
lv2.Items.Clear()
For Each item As DS.weather_groupRow In list
Dim lvitem As ListViewItem = lv2.Items.Add(item.name)
lvitem.Tag = item.code
If GrpCode = item.code Then
lvitem.Focused = True
lvitem.Selected = True
End If
Next
End Sub
Private Sub Button1_Click(sender As Object, e As EventArgs) Handles btOK.Click
If lv2.SelectedItems.Count < 1 Then
MessageBox.Show("2차 지역을 선택하세요", "확인")
Return
End If
'
SelectedCode = lv2.SelectedItems(0).Tag.ToString()
DialogResult = DialogResult.OK
End Sub
End Class