ZooFlow: New SearchForm
This commit is contained in:
138
GUIs.ZooFlow/Search/frmSearch2021.vb
Normal file
138
GUIs.ZooFlow/Search/frmSearch2021.vb
Normal file
@@ -0,0 +1,138 @@
|
||||
Imports DevExpress.Utils
|
||||
Imports DevExpress.XtraEditors
|
||||
Imports DevExpress.XtraEditors.Repository
|
||||
|
||||
Public Class frmSearch2021
|
||||
Private ReadOnly TokenListAttributes As New Dictionary(Of String, Object) From {
|
||||
{"Rechnungsnummer", New AttributeToken(7411)},
|
||||
{"Rechnungsdatum", New AttributeToken(7412)},
|
||||
{"Kundennummer", New AttributeToken(7413)}
|
||||
}
|
||||
|
||||
Private ReadOnly TokenListAttrValues As New Dictionary(Of String, Object) From {
|
||||
{"{1233}", New AttributeValueToken(1233)},
|
||||
{"{1234}", New AttributeValueToken(1234)},
|
||||
{"{1235}", New AttributeValueToken(1235)}
|
||||
}
|
||||
|
||||
Private ReadOnly TokenListDate As New Dictionary(Of String, Object) From {
|
||||
{"heute", New DateToken(Date.Now)},
|
||||
{"gestern", New DateToken(Date.Now.AddDays(-1))},
|
||||
{"letzte Woche", New DateToken(TimeSpan.FromDays(-7))},
|
||||
{"letzter Monat", New DateToken(TimeSpan.FromDays(-30))}
|
||||
}
|
||||
|
||||
Private TokenListDefault As Dictionary(Of String, Object)
|
||||
Private TokenListAll As Dictionary(Of String, Object)
|
||||
|
||||
Private Sub XtraForm1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||
Dim TokenList As New Dictionary(Of String, Object)
|
||||
TokenListAll = TokenList.
|
||||
Concat(TokenListAttributes).
|
||||
Concat(TokenListAttrValues).
|
||||
Concat(TokenListDate).
|
||||
ToDictionary(Function(a) a.Key, Function(a) a.Value)
|
||||
|
||||
TokenListDefault = TokenList.
|
||||
Concat(TokenListAttributes).
|
||||
Concat(TokenListDate).
|
||||
ToDictionary(Function(a) a.Key, Function(a) a.Value)
|
||||
|
||||
AddTokens(SearchControl2, TokenListDefault)
|
||||
|
||||
ComboBoxEdit1.SelectedIndex = 0
|
||||
End Sub
|
||||
|
||||
Public Enum [ValueType]
|
||||
AttributeName
|
||||
AttributeValue
|
||||
End Enum
|
||||
|
||||
Public Enum [InputMode]
|
||||
[Default]
|
||||
Value
|
||||
End Enum
|
||||
|
||||
Public Class TokenValue
|
||||
Public Value As Object
|
||||
Public Type As [ValueType]
|
||||
|
||||
Public Overrides Function ToString() As String
|
||||
Return Value.ToString()
|
||||
End Function
|
||||
End Class
|
||||
|
||||
Public Class AttributeToken
|
||||
Inherits TokenValue
|
||||
|
||||
Public Sub New(pValue As Object)
|
||||
Value = pValue
|
||||
Type = ValueType.AttributeName
|
||||
End Sub
|
||||
End Class
|
||||
|
||||
Public Class AttributeValueToken
|
||||
Inherits TokenValue
|
||||
|
||||
Public Sub New(pValue As Object)
|
||||
Value = pValue
|
||||
Type = ValueType.AttributeValue
|
||||
End Sub
|
||||
End Class
|
||||
|
||||
Public Class DateToken
|
||||
Inherits TokenValue
|
||||
|
||||
Public Sub New(pValue As Object)
|
||||
Value = pValue
|
||||
Type = ValueType.AttributeValue
|
||||
End Sub
|
||||
End Class
|
||||
|
||||
|
||||
|
||||
Private Sub AddTokens(Editor As TokenEdit, Tokens As Dictionary(Of String, Object))
|
||||
For Each oToken In Tokens
|
||||
Editor.Properties.Tokens.Add(New DevExpress.XtraEditors.TokenEditToken With {
|
||||
.Description = oToken.Key,
|
||||
.Value = oToken.Value
|
||||
})
|
||||
Next
|
||||
End Sub
|
||||
|
||||
Private Sub SearchControl2_Properties_TokenAdded(sender As Object, e As DevExpress.XtraEditors.TokenEditTokenAddedEventArgs) Handles SearchControl2.Properties.TokenAdded
|
||||
Dim oEditor As TokenEdit = sender
|
||||
SetNewTokens(oEditor)
|
||||
End Sub
|
||||
|
||||
Private Sub SearchControl2_Properties_TokenRemoved(sender As Object, e As TokenEditTokenRemovedEventArgs) Handles SearchControl2.Properties.TokenRemoved
|
||||
Dim oEditor As TokenEdit = sender
|
||||
SetNewTokens(oEditor)
|
||||
End Sub
|
||||
|
||||
Private Sub SetNewTokens(pEditor As TokenEdit)
|
||||
Dim oLastToken = pEditor.GetTokenList().LastOrDefault()
|
||||
pEditor.Properties.BeginUpdate()
|
||||
|
||||
If oLastToken IsNot Nothing Then
|
||||
pEditor.Properties.Tokens.Clear()
|
||||
|
||||
Select Case oLastToken.Value.GetType
|
||||
Case GetType(AttributeToken)
|
||||
AddTokens(pEditor, TokenListAttrValues)
|
||||
|
||||
Case GetType(AttributeValueToken)
|
||||
AddTokens(pEditor, TokenListAll)
|
||||
|
||||
Case Else
|
||||
AddTokens(pEditor, TokenListDefault)
|
||||
|
||||
End Select
|
||||
|
||||
pEditor.Properties.EndUpdate()
|
||||
Else
|
||||
pEditor.Properties.Tokens.Clear()
|
||||
AddTokens(pEditor, TokenListDefault)
|
||||
End If
|
||||
End Sub
|
||||
End Class
|
||||
Reference in New Issue
Block a user