ms stage
This commit is contained in:
commit
dfa222d1ed
@ -105,7 +105,8 @@ Public Class ClassInit
|
||||
oDataRow.Item("PASSWORD").ToString
|
||||
)
|
||||
|
||||
My.DatabaseIDB = New MSSQLServer(My.LogConfig, oConString)
|
||||
Dim oDecryptedConnectionString = MSSQLServer.DecryptConnectionString(oConString)
|
||||
My.DatabaseIDB = New MSSQLServer(My.LogConfig, oDecryptedConnectionString)
|
||||
End If
|
||||
|
||||
If My.DatabaseIDB.DBInitialized = False Then
|
||||
|
||||
@ -1,23 +1,24 @@
|
||||
DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraBars.Docking.DockManager, DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.DateEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraTreeList.TreeList, DevExpress.XtraTreeList.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraNavBar.NavBarControl, DevExpress.XtraNavBar.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.ProgressBarControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraBars.FormAssistant, DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.LookUpEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraBars.Navigation.TileNavPane, DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.Repository.RepositoryItemComboBox, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.Repository.RepositoryItemDateEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.TileControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.Repository.RepositoryItemTextEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.ButtonEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraBars.Docking2010.DocumentManager, DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraSpreadsheet.SpreadsheetFormulaBar, DevExpress.XtraSpreadsheet.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraDataLayout.DataLayoutControl, DevExpress.XtraLayout.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraGrid.GridControl, DevExpress.XtraGrid.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.Repository.RepositoryItemDateEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraNavBar.NavBarControl, DevExpress.XtraNavBar.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.SearchLookUpEdit, DevExpress.XtraGrid.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.CheckEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.LookUpEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.TileControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraLayout.LayoutControl, DevExpress.XtraLayout.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.ProgressBarControl, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.Repository.RepositoryItemComboBox, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.PictureEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraBars.Docking.DockManager, DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraTreeList.TreeList, DevExpress.XtraTreeList.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.ButtonEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraBars.Navigation.TileNavPane, DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraDataLayout.DataLayoutControl, DevExpress.XtraLayout.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraBars.Docking2010.DocumentManager, DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.DateEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.ComboBoxEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraBars.FormAssistant, DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraEditors.TextEdit, DevExpress.XtraEditors.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraSpreadsheet.SpreadsheetFormulaBar, DevExpress.XtraSpreadsheet.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
DevExpress.XtraBars.Ribbon.RibbonControl, DevExpress.XtraBars.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
|
||||
|
||||
107
GUIs.ZooFlow/Search/Search.vb
Normal file
107
GUIs.ZooFlow/Search/Search.vb
Normal file
@ -0,0 +1,107 @@
|
||||
Imports System.ComponentModel
|
||||
Imports DevExpress.XtraEditors
|
||||
Imports DigitalData.GUIs.ZooFlow.Search.SearchToken
|
||||
Imports DigitalData.Modules.EDMI.API
|
||||
Imports DigitalData.Modules.Logging
|
||||
Imports DigitalData.Modules.ZooFlow.State
|
||||
|
||||
Namespace Search
|
||||
Public Class Search
|
||||
Private ReadOnly _SearchQuery As New BindingList(Of SearchCriteria)
|
||||
Private ReadOnly _LogConfig As LogConfig
|
||||
Private ReadOnly _Database As DatabaseWithFallback
|
||||
Private ReadOnly _UserState As UserState
|
||||
|
||||
Private ReadOnly _OpEquals As New KeyValuePair(Of String, Object)("gleich", New AttributeOperatorToken(OperatorToken.Equals))
|
||||
Private ReadOnly _OpNotEquals As New KeyValuePair(Of String, Object)("nicht gleich", New AttributeOperatorToken(OperatorToken.NotEquals))
|
||||
Private ReadOnly _OpGreaterThan As New KeyValuePair(Of String, Object)("größer als", New AttributeOperatorToken(OperatorToken.GreaterThan))
|
||||
Private ReadOnly _OpLessThan As New KeyValuePair(Of String, Object)("kleiner als", New AttributeOperatorToken(OperatorToken.LessThan))
|
||||
Private ReadOnly _OpContains As New KeyValuePair(Of String, Object)("enthält", New AttributeOperatorToken(OperatorToken.Contains))
|
||||
|
||||
Public ReadOnly Property Query As BindingList(Of SearchCriteria)
|
||||
|
||||
|
||||
|
||||
Private ReadOnly TokenListAttributes As New Dictionary(Of String, Object)
|
||||
'Private ReadOnly TokenListAttributes As New Dictionary(Of String, Object) From {
|
||||
' {"Rechnungsnummer", New AttributeKeyToken("InvoiceNo")},
|
||||
' {"Rechnungsdatum", New AttributeKeyToken("InvoiceDate")},
|
||||
' {"Kundennummer", New AttributeKeyToken("CustNo")}
|
||||
'}
|
||||
Private ReadOnly TokenListOperands As New Dictionary(Of String, Object) From {
|
||||
{"gleich", New AttributeOperatorToken(OperatorToken.Equals)},
|
||||
{"nicht gleich", New AttributeOperatorToken(OperatorToken.NotEquals)},
|
||||
{"größer als", New AttributeOperatorToken(OperatorToken.Equals)},
|
||||
{"kleiner als", New AttributeOperatorToken(OperatorToken.Equals)},
|
||||
{"enthält", New AttributeOperatorToken(OperatorToken.Equals)}
|
||||
}
|
||||
Private ReadOnly TokenListAttrValues As New Dictionary(Of String, Object)
|
||||
'Private ReadOnly TokenListAttrValues As New Dictionary(Of String, Object) From {
|
||||
' {"1233", New AttributeValueToken(1233)},
|
||||
' {"1234", New AttributeValueToken(1234)},
|
||||
' {"1235", New AttributeValueToken(1235)},
|
||||
' {"4711", New AttributeValueToken(4711)},
|
||||
' {"4712", New AttributeValueToken(4712)}
|
||||
'}
|
||||
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))}
|
||||
}
|
||||
|
||||
Public InputMode As InputMode = InputMode.Default
|
||||
|
||||
Public Sub New(pLogConfig As LogConfig, pUserState As UserState, pDatabase As DatabaseWithFallback)
|
||||
_LogConfig = pLogConfig
|
||||
_Database = pDatabase
|
||||
_UserState = pUserState
|
||||
End Sub
|
||||
|
||||
Public Function GetAttributeTokens() As Dictionary(Of String, Object)
|
||||
Dim oSQL = $"SELECT * FROM VWIDB_BE_ATTRIBUTE WHERE DEFAULT_SEARCH_ATTRIBUTE = 1 AND LANG_CODE = '{_UserState.Language}'"
|
||||
Dim oTable = _Database.GetDatatable("VWIDB_BE_ATTRIBUTE", oSQL, Constants.DatabaseType.IDB, $"DEFAULT_SEARCH_ATTRIBUTE = 1 AND LANG_CODE = '{_UserState.Language}'")
|
||||
Dim oTokens As New Dictionary(Of String, Object)
|
||||
|
||||
For Each oRow As DataRow In oTable.rows
|
||||
oTokens.Add(oRow.Item("ATTR_TITLE"), New AttributeKeyToken(oRow.Item("ATTR_ID")))
|
||||
Next
|
||||
|
||||
Return oTokens
|
||||
End Function
|
||||
|
||||
Public Function GetValueTokensForAttribute() As Dictionary(Of String, Object)
|
||||
Dim oSQL = $"SELECT * FROM VWIDB_BE_ATTRIBUTE WHERE DEFAULT_SEARCH_ATTRIBUTE = 1 AND LANG_CODE = '{_UserState.Language}'"
|
||||
Dim oTable = _Database.GetDatatable("VWIDB_BE_ATTRIBUTE", oSQL, Constants.DatabaseType.IDB, $"DEFAULT_SEARCH_ATTRIBUTE = 1 AND LANG_CODE = '{_UserState.Language}'")
|
||||
Dim oTokens As New Dictionary(Of String, Object)
|
||||
End Function
|
||||
|
||||
Public Function GetOperatorTokens(pDataType As Type) As Dictionary(Of String, Object)
|
||||
Dim oResult = New Dictionary(Of String, Object)
|
||||
|
||||
Select Case pDataType.GetType
|
||||
Case GetType(Date)
|
||||
oResult.Add(_OpEquals.Key, _OpEquals.Value)
|
||||
|
||||
Case GetType(Integer)
|
||||
oResult.Add(_OpEquals.Key, _OpEquals.Value)
|
||||
oResult.Add(_OpNotEquals.Key, _OpNotEquals.Value)
|
||||
oResult.Add(_OpGreaterThan.Key, _OpGreaterThan.Value)
|
||||
oResult.Add(_OpLessThan.Key, _OpLessThan.Value)
|
||||
|
||||
Case GetType(Boolean)
|
||||
oResult.Add(_OpEquals.Key, _OpEquals.Value)
|
||||
oResult.Add(_OpNotEquals.Key, _OpNotEquals.Value)
|
||||
|
||||
Case Else
|
||||
oResult.Add(_OpEquals.Key, _OpEquals.Value)
|
||||
oResult.Add(_OpNotEquals.Key, _OpNotEquals.Value)
|
||||
oResult.Add(_OpContains.Key, _OpContains.Value)
|
||||
|
||||
End Select
|
||||
|
||||
Return oResult
|
||||
End Function
|
||||
|
||||
End Class
|
||||
End Namespace
|
||||
12
GUIs.ZooFlow/Search/SearchCriteria.vb
Normal file
12
GUIs.ZooFlow/Search/SearchCriteria.vb
Normal file
@ -0,0 +1,12 @@
|
||||
Namespace Search
|
||||
Public Class SearchCriteria
|
||||
Public Property ParenLeft As String = ""
|
||||
Public Property Key As String
|
||||
Public Property Op As SearchToken.OperatorToken = SearchToken.OperatorToken.Equals
|
||||
Public Property Value As Object
|
||||
Public Property ParentRight As String = ""
|
||||
Public Property JoinOperator As String = "AND"
|
||||
End Class
|
||||
|
||||
|
||||
End Namespace
|
||||
@ -1,6 +1,7 @@
|
||||
Public Class SearchFilter
|
||||
Namespace Search
|
||||
Public Class SearchFilter
|
||||
|
||||
Public Shared Property DefaultFilters As New List(Of FilterTimeframe) From {
|
||||
Public Shared Property DefaultFilters As New List(Of FilterTimeframe) From {
|
||||
New FilterTimeframe() With {.Name = "Kein", .DisableFilter = True, .[To] = Nothing},
|
||||
New FilterTimeframe() With {.Name = "Eigener", .CustomFilter = True, .[To] = Date.Now, .From = Date.Now},
|
||||
New FilterTimeframe() With {
|
||||
@ -21,15 +22,17 @@
|
||||
}
|
||||
}
|
||||
|
||||
Public Class FilterTimeframe
|
||||
Public Property Name As String
|
||||
Public Property From As Date
|
||||
Public Property [To] As Date = Date.Now
|
||||
Public Property DisableFilter As Boolean = False
|
||||
Public Property CustomFilter As Boolean = False
|
||||
Public Class FilterTimeframe
|
||||
Public Property Name As String
|
||||
Public Property From As Date
|
||||
Public Property [To] As Date = Date.Now
|
||||
Public Property DisableFilter As Boolean = False
|
||||
Public Property CustomFilter As Boolean = False
|
||||
|
||||
Public Overrides Function ToString() As String
|
||||
Return Name.ToString
|
||||
End Function
|
||||
Public Overrides Function ToString() As String
|
||||
Return Name.ToString
|
||||
End Function
|
||||
End Class
|
||||
End Class
|
||||
End Class
|
||||
|
||||
End Namespace
|
||||
70
GUIs.ZooFlow/Search/SearchToken.vb
Normal file
70
GUIs.ZooFlow/Search/SearchToken.vb
Normal file
@ -0,0 +1,70 @@
|
||||
Namespace Search
|
||||
Public Class SearchToken
|
||||
|
||||
Public Enum [ValueType]
|
||||
AttributeName
|
||||
AttributeValue
|
||||
AttributeOperator
|
||||
End Enum
|
||||
|
||||
Public Enum [InputMode]
|
||||
[Default]
|
||||
[Operator]
|
||||
Value
|
||||
End Enum
|
||||
|
||||
Public Enum [OperatorToken]
|
||||
Equals
|
||||
NotEquals
|
||||
GreaterThan
|
||||
LessThan
|
||||
Contains
|
||||
End Enum
|
||||
|
||||
Public MustInherit 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 AttributeKeyToken
|
||||
Inherits TokenValue
|
||||
|
||||
Public Sub New(pValue As Object)
|
||||
Value = pValue
|
||||
Type = ValueType.AttributeName
|
||||
End Sub
|
||||
End Class
|
||||
|
||||
Public Class AttributeOperatorToken
|
||||
Inherits TokenValue
|
||||
|
||||
Public Sub New(pValue As Object)
|
||||
Value = pValue
|
||||
Type = ValueType.AttributeOperator
|
||||
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
|
||||
End Class
|
||||
|
||||
End Namespace
|
||||
171
GUIs.ZooFlow/Search/frmSearch2021.Designer.vb
generated
171
GUIs.ZooFlow/Search/frmSearch2021.Designer.vb
generated
@ -1,171 +0,0 @@
|
||||
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
|
||||
Partial Class frmSearch2021
|
||||
Inherits DevExpress.XtraEditors.XtraForm
|
||||
|
||||
'Form overrides dispose to clean up the component list.
|
||||
<System.Diagnostics.DebuggerNonUserCode()>
|
||||
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||
If disposing AndAlso components IsNot Nothing Then
|
||||
components.Dispose()
|
||||
End If
|
||||
MyBase.Dispose(disposing)
|
||||
End Sub
|
||||
|
||||
'Required by the Windows Form Designer
|
||||
Private components As System.ComponentModel.IContainer
|
||||
|
||||
'NOTE: The following procedure is required by the Windows Form Designer
|
||||
'It can be modified using the Windows Form Designer.
|
||||
'Do not modify it using the code editor.
|
||||
<System.Diagnostics.DebuggerStepThrough()>
|
||||
Private Sub InitializeComponent()
|
||||
Me.SearchControl2 = New DevExpress.XtraEditors.TokenEdit()
|
||||
Me.ComboBoxEdit1 = New DevExpress.XtraEditors.ComboBoxEdit()
|
||||
Me.PanelControl1 = New DevExpress.XtraEditors.PanelControl()
|
||||
Me.SidePanel1 = New DevExpress.XtraEditors.SidePanel()
|
||||
Me.NavBarControl1 = New DevExpress.XtraNavBar.NavBarControl()
|
||||
Me.NavBarGroup1 = New DevExpress.XtraNavBar.NavBarGroup()
|
||||
Me.NavBarItem1 = New DevExpress.XtraNavBar.NavBarItem()
|
||||
Me.NavBarItem2 = New DevExpress.XtraNavBar.NavBarItem()
|
||||
Me.NavBarItem3 = New DevExpress.XtraNavBar.NavBarItem()
|
||||
Me.NavBarGroup2 = New DevExpress.XtraNavBar.NavBarGroup()
|
||||
Me.NavBarGroup3 = New DevExpress.XtraNavBar.NavBarGroup()
|
||||
CType(Me.SearchControl2.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.ComboBoxEdit1.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.PanelControl1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
Me.PanelControl1.SuspendLayout()
|
||||
Me.SidePanel1.SuspendLayout()
|
||||
CType(Me.NavBarControl1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'SearchControl2
|
||||
'
|
||||
Me.SearchControl2.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
|
||||
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
||||
Me.SearchControl2.Location = New System.Drawing.Point(227, 5)
|
||||
Me.SearchControl2.Name = "SearchControl2"
|
||||
Me.SearchControl2.Properties.Appearance.BackColor = System.Drawing.Color.Transparent
|
||||
Me.SearchControl2.Properties.Appearance.Font = New System.Drawing.Font("Segoe UI", 20.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.SearchControl2.Properties.Appearance.Options.UseBackColor = True
|
||||
Me.SearchControl2.Properties.Appearance.Options.UseFont = True
|
||||
Me.SearchControl2.Properties.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.Simple
|
||||
Me.SearchControl2.Properties.EditMode = DevExpress.XtraEditors.TokenEditMode.Manual
|
||||
Me.SearchControl2.Properties.PopupFilterMode = DevExpress.XtraEditors.TokenEditPopupFilterMode.Contains
|
||||
Me.SearchControl2.Properties.Separators.AddRange(New String() {",", "-", "ODER", "OR", "AND", "UND"})
|
||||
Me.SearchControl2.Size = New System.Drawing.Size(894, 44)
|
||||
Me.SearchControl2.TabIndex = 0
|
||||
'
|
||||
'ComboBoxEdit1
|
||||
'
|
||||
Me.ComboBoxEdit1.Location = New System.Drawing.Point(5, 5)
|
||||
Me.ComboBoxEdit1.Name = "ComboBoxEdit1"
|
||||
Me.ComboBoxEdit1.Properties.Appearance.BackColor = System.Drawing.Color.Transparent
|
||||
Me.ComboBoxEdit1.Properties.Appearance.Font = New System.Drawing.Font("Segoe UI", 20.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.ComboBoxEdit1.Properties.Appearance.Options.UseBackColor = True
|
||||
Me.ComboBoxEdit1.Properties.Appearance.Options.UseFont = True
|
||||
Me.ComboBoxEdit1.Properties.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.Simple
|
||||
Me.ComboBoxEdit1.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)})
|
||||
Me.ComboBoxEdit1.Properties.Items.AddRange(New Object() {"Alle", "Belege", "Rechnungen", "Lieferscheine", "Aufträge", "Angebote", "Kunde Schaum", "Kunde medacom"})
|
||||
Me.ComboBoxEdit1.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor
|
||||
Me.ComboBoxEdit1.Size = New System.Drawing.Size(223, 44)
|
||||
Me.ComboBoxEdit1.TabIndex = 1
|
||||
'
|
||||
'PanelControl1
|
||||
'
|
||||
Me.PanelControl1.AutoSize = True
|
||||
Me.PanelControl1.AutoSizeMode = System.Windows.Forms.AutoSizeMode.GrowAndShrink
|
||||
Me.PanelControl1.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.NoBorder
|
||||
Me.PanelControl1.Controls.Add(Me.ComboBoxEdit1)
|
||||
Me.PanelControl1.Controls.Add(Me.SearchControl2)
|
||||
Me.PanelControl1.Dock = System.Windows.Forms.DockStyle.Top
|
||||
Me.PanelControl1.Location = New System.Drawing.Point(0, 0)
|
||||
Me.PanelControl1.Name = "PanelControl1"
|
||||
Me.PanelControl1.Size = New System.Drawing.Size(1126, 52)
|
||||
Me.PanelControl1.TabIndex = 2
|
||||
'
|
||||
'SidePanel1
|
||||
'
|
||||
Me.SidePanel1.Controls.Add(Me.NavBarControl1)
|
||||
Me.SidePanel1.Dock = System.Windows.Forms.DockStyle.Left
|
||||
Me.SidePanel1.Location = New System.Drawing.Point(0, 52)
|
||||
Me.SidePanel1.Name = "SidePanel1"
|
||||
Me.SidePanel1.Size = New System.Drawing.Size(228, 566)
|
||||
Me.SidePanel1.TabIndex = 3
|
||||
Me.SidePanel1.Text = "SidePanel1"
|
||||
'
|
||||
'NavBarControl1
|
||||
'
|
||||
Me.NavBarControl1.ActiveGroup = Me.NavBarGroup1
|
||||
Me.NavBarControl1.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.NavBarControl1.Groups.AddRange(New DevExpress.XtraNavBar.NavBarGroup() {Me.NavBarGroup1, Me.NavBarGroup2, Me.NavBarGroup3})
|
||||
Me.NavBarControl1.Items.AddRange(New DevExpress.XtraNavBar.NavBarItem() {Me.NavBarItem1, Me.NavBarItem2, Me.NavBarItem3})
|
||||
Me.NavBarControl1.Location = New System.Drawing.Point(0, 0)
|
||||
Me.NavBarControl1.Name = "NavBarControl1"
|
||||
Me.NavBarControl1.OptionsNavPane.ExpandedWidth = 227
|
||||
Me.NavBarControl1.Size = New System.Drawing.Size(227, 566)
|
||||
Me.NavBarControl1.TabIndex = 0
|
||||
Me.NavBarControl1.Text = "NavBarControl1"
|
||||
'
|
||||
'NavBarGroup1
|
||||
'
|
||||
Me.NavBarGroup1.Caption = "NavBarGroup1"
|
||||
Me.NavBarGroup1.Expanded = True
|
||||
Me.NavBarGroup1.ItemLinks.AddRange(New DevExpress.XtraNavBar.NavBarItemLink() {New DevExpress.XtraNavBar.NavBarItemLink(Me.NavBarItem1), New DevExpress.XtraNavBar.NavBarItemLink(Me.NavBarItem2), New DevExpress.XtraNavBar.NavBarItemLink(Me.NavBarItem3)})
|
||||
Me.NavBarGroup1.Name = "NavBarGroup1"
|
||||
'
|
||||
'NavBarItem1
|
||||
'
|
||||
Me.NavBarItem1.Caption = "NavBarItem1"
|
||||
Me.NavBarItem1.Name = "NavBarItem1"
|
||||
'
|
||||
'NavBarItem2
|
||||
'
|
||||
Me.NavBarItem2.Caption = "NavBarItem2"
|
||||
Me.NavBarItem2.Name = "NavBarItem2"
|
||||
'
|
||||
'NavBarItem3
|
||||
'
|
||||
Me.NavBarItem3.Caption = "NavBarItem3"
|
||||
Me.NavBarItem3.Name = "NavBarItem3"
|
||||
'
|
||||
'NavBarGroup2
|
||||
'
|
||||
Me.NavBarGroup2.Caption = "NavBarGroup2"
|
||||
Me.NavBarGroup2.Name = "NavBarGroup2"
|
||||
'
|
||||
'NavBarGroup3
|
||||
'
|
||||
Me.NavBarGroup3.Caption = "NavBarGroup3"
|
||||
Me.NavBarGroup3.Name = "NavBarGroup3"
|
||||
'
|
||||
'XtraForm1
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.ClientSize = New System.Drawing.Size(1126, 618)
|
||||
Me.Controls.Add(Me.SidePanel1)
|
||||
Me.Controls.Add(Me.PanelControl1)
|
||||
Me.Name = "XtraForm1"
|
||||
Me.Text = "XtraForm1"
|
||||
CType(Me.SearchControl2.Properties, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.ComboBoxEdit1.Properties, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.PanelControl1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
Me.PanelControl1.ResumeLayout(False)
|
||||
Me.SidePanel1.ResumeLayout(False)
|
||||
CType(Me.NavBarControl1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
Me.ResumeLayout(False)
|
||||
Me.PerformLayout()
|
||||
|
||||
End Sub
|
||||
Friend WithEvents SearchControl2 As DevExpress.XtraEditors.TokenEdit
|
||||
Friend WithEvents ComboBoxEdit1 As DevExpress.XtraEditors.ComboBoxEdit
|
||||
Friend WithEvents PanelControl1 As DevExpress.XtraEditors.PanelControl
|
||||
Friend WithEvents SidePanel1 As DevExpress.XtraEditors.SidePanel
|
||||
Friend WithEvents NavBarControl1 As DevExpress.XtraNavBar.NavBarControl
|
||||
Friend WithEvents NavBarGroup1 As DevExpress.XtraNavBar.NavBarGroup
|
||||
Friend WithEvents NavBarItem1 As DevExpress.XtraNavBar.NavBarItem
|
||||
Friend WithEvents NavBarItem2 As DevExpress.XtraNavBar.NavBarItem
|
||||
Friend WithEvents NavBarItem3 As DevExpress.XtraNavBar.NavBarItem
|
||||
Friend WithEvents NavBarGroup2 As DevExpress.XtraNavBar.NavBarGroup
|
||||
Friend WithEvents NavBarGroup3 As DevExpress.XtraNavBar.NavBarGroup
|
||||
End Class
|
||||
@ -1,138 +0,0 @@
|
||||
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
|
||||
320
GUIs.ZooFlow/Search/frmSearchNeu.Designer.vb
generated
Normal file
320
GUIs.ZooFlow/Search/frmSearchNeu.Designer.vb
generated
Normal file
@ -0,0 +1,320 @@
|
||||
Imports DevExpress.XtraEditors
|
||||
Imports DevExpress.XtraGrid
|
||||
Imports DevExpress.XtraGrid.Views.Grid
|
||||
|
||||
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()>
|
||||
Partial Class frmSearchNeu
|
||||
Inherits DevExpress.XtraBars.Ribbon.RibbonForm
|
||||
|
||||
'Form overrides dispose to clean up the component list.
|
||||
<System.Diagnostics.DebuggerNonUserCode()> _
|
||||
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||
If disposing AndAlso components IsNot Nothing Then
|
||||
components.Dispose()
|
||||
End If
|
||||
MyBase.Dispose(disposing)
|
||||
End Sub
|
||||
|
||||
'Required by the Windows Form Designer
|
||||
Private components As System.ComponentModel.IContainer
|
||||
|
||||
'NOTE: The following procedure is required by the Windows Form Designer
|
||||
'It can be modified using the Windows Form Designer.
|
||||
'Do not modify it using the code editor.
|
||||
<System.Diagnostics.DebuggerStepThrough()> _
|
||||
Private Sub InitializeComponent()
|
||||
Me.NavBarControl1 = New DevExpress.XtraNavBar.NavBarControl()
|
||||
Me.NavBarGroup1 = New DevExpress.XtraNavBar.NavBarGroup()
|
||||
Me.SplitContainerControl1 = New DevExpress.XtraEditors.SplitContainerControl()
|
||||
Me.SplitContainerControl2 = New DevExpress.XtraEditors.SplitContainerControl()
|
||||
Me.SplitContainerControl3 = New DevExpress.XtraEditors.SplitContainerControl()
|
||||
Me.Button1 = New System.Windows.Forms.Button()
|
||||
Me.cmbSelect = New DevExpress.XtraEditors.ComboBoxEdit()
|
||||
Me.SearchControl2 = New DevExpress.XtraEditors.TokenEdit()
|
||||
Me.GridControl1 = New DevExpress.XtraGrid.GridControl()
|
||||
Me.GridView1 = New DevExpress.XtraGrid.Views.Grid.GridView()
|
||||
Me.colParenLeft = New DevExpress.XtraGrid.Columns.GridColumn()
|
||||
Me.colAttribute = New DevExpress.XtraGrid.Columns.GridColumn()
|
||||
Me.colOperator = New DevExpress.XtraGrid.Columns.GridColumn()
|
||||
Me.colValue = New DevExpress.XtraGrid.Columns.GridColumn()
|
||||
Me.colParenRight = New DevExpress.XtraGrid.Columns.GridColumn()
|
||||
Me.RibbonControl1 = New DevExpress.XtraBars.Ribbon.RibbonControl()
|
||||
Me.BarButtonItem1 = New DevExpress.XtraBars.BarButtonItem()
|
||||
Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage()
|
||||
Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
|
||||
Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
|
||||
Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar()
|
||||
Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage()
|
||||
CType(Me.NavBarControl1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
Me.SplitContainerControl1.SuspendLayout()
|
||||
CType(Me.SplitContainerControl2, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
Me.SplitContainerControl2.SuspendLayout()
|
||||
CType(Me.SplitContainerControl3, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
Me.SplitContainerControl3.SuspendLayout()
|
||||
CType(Me.cmbSelect.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.SearchControl2.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.GridControl1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.GridView1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||
Me.SuspendLayout()
|
||||
'
|
||||
'NavBarControl1
|
||||
'
|
||||
Me.NavBarControl1.ActiveGroup = Me.NavBarGroup1
|
||||
Me.NavBarControl1.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.NavBarControl1.Groups.AddRange(New DevExpress.XtraNavBar.NavBarGroup() {Me.NavBarGroup1})
|
||||
Me.NavBarControl1.Location = New System.Drawing.Point(0, 0)
|
||||
Me.NavBarControl1.Name = "NavBarControl1"
|
||||
Me.NavBarControl1.OptionsNavPane.ExpandedWidth = 163
|
||||
Me.NavBarControl1.Size = New System.Drawing.Size(163, 193)
|
||||
Me.NavBarControl1.TabIndex = 4
|
||||
Me.NavBarControl1.Text = "NavBarControl1"
|
||||
'
|
||||
'NavBarGroup1
|
||||
'
|
||||
Me.NavBarGroup1.Caption = "NavBarGroup1"
|
||||
Me.NavBarGroup1.Expanded = True
|
||||
Me.NavBarGroup1.Name = "NavBarGroup1"
|
||||
'
|
||||
'SplitContainerControl1
|
||||
'
|
||||
Me.SplitContainerControl1.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.SplitContainerControl1.Location = New System.Drawing.Point(0, 0)
|
||||
Me.SplitContainerControl1.Name = "SplitContainerControl1"
|
||||
Me.SplitContainerControl1.Panel1.Controls.Add(Me.NavBarControl1)
|
||||
Me.SplitContainerControl1.Panel1.Text = "Panel1"
|
||||
Me.SplitContainerControl1.Panel2.Text = "Panel2"
|
||||
Me.SplitContainerControl1.Size = New System.Drawing.Size(984, 193)
|
||||
Me.SplitContainerControl1.SplitterPosition = 163
|
||||
Me.SplitContainerControl1.TabIndex = 7
|
||||
'
|
||||
'SplitContainerControl2
|
||||
'
|
||||
Me.SplitContainerControl2.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.SplitContainerControl2.Horizontal = False
|
||||
Me.SplitContainerControl2.Location = New System.Drawing.Point(0, 94)
|
||||
Me.SplitContainerControl2.Name = "SplitContainerControl2"
|
||||
Me.SplitContainerControl2.Panel1.Controls.Add(Me.SplitContainerControl3)
|
||||
Me.SplitContainerControl2.Panel1.Text = "Panel1"
|
||||
Me.SplitContainerControl2.Panel2.Controls.Add(Me.SplitContainerControl1)
|
||||
Me.SplitContainerControl2.Panel2.Text = "Panel2"
|
||||
Me.SplitContainerControl2.Size = New System.Drawing.Size(984, 493)
|
||||
Me.SplitContainerControl2.SplitterPosition = 290
|
||||
Me.SplitContainerControl2.TabIndex = 8
|
||||
'
|
||||
'SplitContainerControl3
|
||||
'
|
||||
Me.SplitContainerControl3.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.SplitContainerControl3.Horizontal = False
|
||||
Me.SplitContainerControl3.IsSplitterFixed = True
|
||||
Me.SplitContainerControl3.Location = New System.Drawing.Point(0, 0)
|
||||
Me.SplitContainerControl3.Name = "SplitContainerControl3"
|
||||
Me.SplitContainerControl3.Panel1.Controls.Add(Me.Button1)
|
||||
Me.SplitContainerControl3.Panel1.Controls.Add(Me.cmbSelect)
|
||||
Me.SplitContainerControl3.Panel1.Controls.Add(Me.SearchControl2)
|
||||
Me.SplitContainerControl3.Panel1.Text = "Panel1"
|
||||
Me.SplitContainerControl3.Panel2.Controls.Add(Me.GridControl1)
|
||||
Me.SplitContainerControl3.Panel2.Text = "Panel2"
|
||||
Me.SplitContainerControl3.Size = New System.Drawing.Size(984, 290)
|
||||
Me.SplitContainerControl3.SplitterPosition = 55
|
||||
Me.SplitContainerControl3.TabIndex = 9
|
||||
'
|
||||
'Button1
|
||||
'
|
||||
Me.Button1.FlatStyle = System.Windows.Forms.FlatStyle.Flat
|
||||
Me.Button1.Location = New System.Drawing.Point(886, 6)
|
||||
Me.Button1.Name = "Button1"
|
||||
Me.Button1.Size = New System.Drawing.Size(95, 44)
|
||||
Me.Button1.TabIndex = 5
|
||||
Me.Button1.Text = "Suchen"
|
||||
Me.Button1.UseVisualStyleBackColor = True
|
||||
'
|
||||
'cmbSelect
|
||||
'
|
||||
Me.cmbSelect.Location = New System.Drawing.Point(3, 6)
|
||||
Me.cmbSelect.Name = "cmbSelect"
|
||||
Me.cmbSelect.Properties.Appearance.BackColor = System.Drawing.Color.Transparent
|
||||
Me.cmbSelect.Properties.Appearance.Font = New System.Drawing.Font("Segoe UI", 20.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.cmbSelect.Properties.Appearance.Options.UseBackColor = True
|
||||
Me.cmbSelect.Properties.Appearance.Options.UseFont = True
|
||||
Me.cmbSelect.Properties.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.Simple
|
||||
Me.cmbSelect.Properties.Buttons.AddRange(New DevExpress.XtraEditors.Controls.EditorButton() {New DevExpress.XtraEditors.Controls.EditorButton(DevExpress.XtraEditors.Controls.ButtonPredefines.Combo)})
|
||||
Me.cmbSelect.Properties.Items.AddRange(New Object() {"Alle", "Belege", "Rechnungen", "Lieferscheine", "Aufträge", "Angebote", "Kunde Schaum", "Kunde medacom"})
|
||||
Me.cmbSelect.Properties.TextEditStyle = DevExpress.XtraEditors.Controls.TextEditStyles.DisableTextEditor
|
||||
Me.cmbSelect.Size = New System.Drawing.Size(113, 44)
|
||||
Me.cmbSelect.TabIndex = 4
|
||||
'
|
||||
'SearchControl2
|
||||
'
|
||||
Me.SearchControl2.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _
|
||||
Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles)
|
||||
Me.SearchControl2.Location = New System.Drawing.Point(115, 6)
|
||||
Me.SearchControl2.Name = "SearchControl2"
|
||||
Me.SearchControl2.Properties.Appearance.BackColor = System.Drawing.Color.Transparent
|
||||
Me.SearchControl2.Properties.Appearance.Font = New System.Drawing.Font("Segoe UI", 20.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||
Me.SearchControl2.Properties.Appearance.Options.UseBackColor = True
|
||||
Me.SearchControl2.Properties.Appearance.Options.UseFont = True
|
||||
Me.SearchControl2.Properties.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.Simple
|
||||
Me.SearchControl2.Properties.EditMode = DevExpress.XtraEditors.TokenEditMode.Manual
|
||||
Me.SearchControl2.Properties.EditValueType = DevExpress.XtraEditors.TokenEditValueType.List
|
||||
Me.SearchControl2.Properties.PopupFilterMode = DevExpress.XtraEditors.TokenEditPopupFilterMode.Contains
|
||||
Me.SearchControl2.Properties.Separators.AddRange(New String() {",", "-", "ODER", "OR", "AND", "UND"})
|
||||
Me.SearchControl2.Size = New System.Drawing.Size(772, 44)
|
||||
Me.SearchControl2.TabIndex = 3
|
||||
'
|
||||
'GridControl1
|
||||
'
|
||||
Me.GridControl1.Dock = System.Windows.Forms.DockStyle.Fill
|
||||
Me.GridControl1.Location = New System.Drawing.Point(0, 0)
|
||||
Me.GridControl1.MainView = Me.GridView1
|
||||
Me.GridControl1.Name = "GridControl1"
|
||||
Me.GridControl1.Size = New System.Drawing.Size(984, 225)
|
||||
Me.GridControl1.TabIndex = 8
|
||||
Me.GridControl1.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridView1})
|
||||
'
|
||||
'GridView1
|
||||
'
|
||||
Me.GridView1.Columns.AddRange(New DevExpress.XtraGrid.Columns.GridColumn() {Me.colParenLeft, Me.colAttribute, Me.colOperator, Me.colValue, Me.colParenRight})
|
||||
Me.GridView1.GridControl = Me.GridControl1
|
||||
Me.GridView1.Name = "GridView1"
|
||||
'
|
||||
'colParenLeft
|
||||
'
|
||||
Me.colParenLeft.Caption = "("
|
||||
Me.colParenLeft.FieldName = "ParentLeft"
|
||||
Me.colParenLeft.Name = "colParenLeft"
|
||||
Me.colParenLeft.Visible = True
|
||||
Me.colParenLeft.VisibleIndex = 0
|
||||
'
|
||||
'colAttribute
|
||||
'
|
||||
Me.colAttribute.Caption = "Attribut"
|
||||
Me.colAttribute.FieldName = "Key"
|
||||
Me.colAttribute.Name = "colAttribute"
|
||||
Me.colAttribute.Visible = True
|
||||
Me.colAttribute.VisibleIndex = 1
|
||||
'
|
||||
'colOperator
|
||||
'
|
||||
Me.colOperator.Caption = "Operand"
|
||||
Me.colOperator.FieldName = "Op"
|
||||
Me.colOperator.Name = "colOperator"
|
||||
Me.colOperator.Visible = True
|
||||
Me.colOperator.VisibleIndex = 2
|
||||
'
|
||||
'colValue
|
||||
'
|
||||
Me.colValue.Caption = "Wert"
|
||||
Me.colValue.FieldName = "Value"
|
||||
Me.colValue.Name = "colValue"
|
||||
Me.colValue.Visible = True
|
||||
Me.colValue.VisibleIndex = 3
|
||||
'
|
||||
'colParenRight
|
||||
'
|
||||
Me.colParenRight.Caption = ")"
|
||||
Me.colParenRight.FieldName = "ParenRight"
|
||||
Me.colParenRight.Name = "colParenRight"
|
||||
Me.colParenRight.Visible = True
|
||||
Me.colParenRight.VisibleIndex = 4
|
||||
'
|
||||
'RibbonControl1
|
||||
'
|
||||
Me.RibbonControl1.CommandLayout = DevExpress.XtraBars.Ribbon.CommandLayout.Simplified
|
||||
Me.RibbonControl1.ExpandCollapseItem.Id = 0
|
||||
Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.BarButtonItem1})
|
||||
Me.RibbonControl1.Location = New System.Drawing.Point(0, 0)
|
||||
Me.RibbonControl1.MaxItemId = 2
|
||||
Me.RibbonControl1.Name = "RibbonControl1"
|
||||
Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1})
|
||||
Me.RibbonControl1.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False]
|
||||
Me.RibbonControl1.Size = New System.Drawing.Size(984, 94)
|
||||
Me.RibbonControl1.StatusBar = Me.RibbonStatusBar1
|
||||
'
|
||||
'BarButtonItem1
|
||||
'
|
||||
Me.BarButtonItem1.Caption = "BarButtonItem1"
|
||||
Me.BarButtonItem1.Id = 1
|
||||
Me.BarButtonItem1.Name = "BarButtonItem1"
|
||||
'
|
||||
'RibbonPage1
|
||||
'
|
||||
Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1, Me.RibbonPageGroup2})
|
||||
Me.RibbonPage1.Name = "RibbonPage1"
|
||||
Me.RibbonPage1.Text = "RibbonPage1"
|
||||
'
|
||||
'RibbonPageGroup1
|
||||
'
|
||||
Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonItem1)
|
||||
Me.RibbonPageGroup1.Name = "RibbonPageGroup1"
|
||||
Me.RibbonPageGroup1.Text = "RibbonPageGroup1"
|
||||
'
|
||||
'RibbonPageGroup2
|
||||
'
|
||||
Me.RibbonPageGroup2.Name = "RibbonPageGroup2"
|
||||
Me.RibbonPageGroup2.Text = "RibbonPageGroup2"
|
||||
'
|
||||
'RibbonStatusBar1
|
||||
'
|
||||
Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 587)
|
||||
Me.RibbonStatusBar1.Name = "RibbonStatusBar1"
|
||||
Me.RibbonStatusBar1.Ribbon = Me.RibbonControl1
|
||||
Me.RibbonStatusBar1.Size = New System.Drawing.Size(984, 22)
|
||||
'
|
||||
'RibbonPage2
|
||||
'
|
||||
Me.RibbonPage2.Name = "RibbonPage2"
|
||||
Me.RibbonPage2.Text = "RibbonPage2"
|
||||
'
|
||||
'frmSearchNeu
|
||||
'
|
||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||
Me.ClientSize = New System.Drawing.Size(984, 609)
|
||||
Me.Controls.Add(Me.SplitContainerControl2)
|
||||
Me.Controls.Add(Me.RibbonStatusBar1)
|
||||
Me.Controls.Add(Me.RibbonControl1)
|
||||
Me.Name = "frmSearchNeu"
|
||||
Me.Ribbon = Me.RibbonControl1
|
||||
Me.StatusBar = Me.RibbonStatusBar1
|
||||
Me.Text = "frmSearchNeu"
|
||||
CType(Me.NavBarControl1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.SplitContainerControl1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
Me.SplitContainerControl1.ResumeLayout(False)
|
||||
CType(Me.SplitContainerControl2, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
Me.SplitContainerControl2.ResumeLayout(False)
|
||||
CType(Me.SplitContainerControl3, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
Me.SplitContainerControl3.ResumeLayout(False)
|
||||
CType(Me.cmbSelect.Properties, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.SearchControl2.Properties, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.GridControl1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.GridView1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||
Me.ResumeLayout(False)
|
||||
Me.PerformLayout()
|
||||
|
||||
End Sub
|
||||
Friend WithEvents NavBarControl1 As DevExpress.XtraNavBar.NavBarControl
|
||||
Friend WithEvents NavBarGroup1 As DevExpress.XtraNavBar.NavBarGroup
|
||||
Friend WithEvents SplitContainerControl1 As SplitContainerControl
|
||||
Friend WithEvents SplitContainerControl2 As SplitContainerControl
|
||||
Friend WithEvents SplitContainerControl3 As SplitContainerControl
|
||||
Friend WithEvents GridControl1 As GridControl
|
||||
Friend WithEvents GridView1 As GridView
|
||||
Friend WithEvents RibbonControl1 As DevExpress.XtraBars.Ribbon.RibbonControl
|
||||
Friend WithEvents RibbonPage1 As DevExpress.XtraBars.Ribbon.RibbonPage
|
||||
Friend WithEvents RibbonPageGroup1 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
|
||||
Friend WithEvents RibbonPageGroup2 As DevExpress.XtraBars.Ribbon.RibbonPageGroup
|
||||
Friend WithEvents RibbonStatusBar1 As DevExpress.XtraBars.Ribbon.RibbonStatusBar
|
||||
Friend WithEvents RibbonPage2 As DevExpress.XtraBars.Ribbon.RibbonPage
|
||||
Friend WithEvents BarButtonItem1 As DevExpress.XtraBars.BarButtonItem
|
||||
Friend WithEvents colParenLeft As Columns.GridColumn
|
||||
Friend WithEvents colAttribute As Columns.GridColumn
|
||||
Friend WithEvents colOperator As Columns.GridColumn
|
||||
Friend WithEvents colValue As Columns.GridColumn
|
||||
Friend WithEvents colParenRight As Columns.GridColumn
|
||||
Friend WithEvents Button1 As Button
|
||||
Friend WithEvents cmbSelect As ComboBoxEdit
|
||||
Friend WithEvents SearchControl2 As TokenEdit
|
||||
End Class
|
||||
123
GUIs.ZooFlow/Search/frmSearchNeu.vb
Normal file
123
GUIs.ZooFlow/Search/frmSearchNeu.vb
Normal file
@ -0,0 +1,123 @@
|
||||
Imports System.Collections
|
||||
Imports System.ComponentModel
|
||||
Imports DevExpress.XtraEditors
|
||||
Imports DigitalData.GUIs.ZooFlow.Search
|
||||
Imports DigitalData.GUIs.ZooFlow.Search.SearchToken
|
||||
Imports DigitalData.Modules.EDMI.API
|
||||
|
||||
Public Class frmSearchNeu
|
||||
Private Search As Search.Search
|
||||
Private Database As DatabaseWithFallback
|
||||
|
||||
Private TokenListDefault As New Dictionary(Of String, Object)
|
||||
Private TokenListOperands As New Dictionary(Of String, Object)
|
||||
Private TokenListAttrValues As New Dictionary(Of String, Object)
|
||||
|
||||
|
||||
|
||||
Private Sub XtraForm1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
|
||||
Database = New DatabaseWithFallback(My.LogConfig, My.Application.Service.Client, My.DatabaseECM, My.DatabaseIDB)
|
||||
Search = New Search.Search(My.LogConfig, My.Application.User, Database)
|
||||
|
||||
Dim oTokens = Search.GetAttributeTokens()
|
||||
AddTokens(SearchControl2, oTokens)
|
||||
|
||||
GridControl1.DataSource = Search.Query
|
||||
cmbSelect.SelectedIndex = 0
|
||||
End Sub
|
||||
|
||||
Private Sub SetTokens(Editor As TokenEdit, Tokens As Dictionary(Of String, Object))
|
||||
Editor.Properties.Tokens.Clear()
|
||||
AddTokens(Editor, Tokens)
|
||||
End Sub
|
||||
|
||||
Private Sub AddTokens(Editor As TokenEdit, Tokens As Dictionary(Of String, Object))
|
||||
For Each oToken In Tokens
|
||||
Dim oTokenEditToken = New TokenEditToken With {
|
||||
.Description = oToken.Key,
|
||||
.Value = oToken.Value
|
||||
}
|
||||
Editor.Properties.Tokens.Add(oTokenEditToken)
|
||||
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
|
||||
Select Case oLastToken.Value.GetType
|
||||
|
||||
Case GetType(AttributeKeyToken)
|
||||
' After the attribute key comes an operator
|
||||
SetTokens(pEditor, Search.GetOperatorTokens(GetType(String)))
|
||||
Search.InputMode = InputMode.Operator
|
||||
|
||||
Case GetType(AttributeOperatorToken)
|
||||
' After the attribute operator comes a value
|
||||
SetTokens(pEditor, TokenListAttrValues)
|
||||
Search.InputMode = InputMode.Value
|
||||
|
||||
Case GetType(AttributeValueToken)
|
||||
' After the attribute value comes another value
|
||||
SetTokens(pEditor, TokenListAttrValues)
|
||||
Search.InputMode = InputMode.Value
|
||||
|
||||
Case Else
|
||||
SetTokens(pEditor, TokenListDefault)
|
||||
Search.InputMode = InputMode.Default
|
||||
|
||||
End Select
|
||||
Else
|
||||
SetTokens(pEditor, TokenListDefault)
|
||||
Search.InputMode = InputMode.Default
|
||||
End If
|
||||
|
||||
pEditor.Properties.EndUpdate()
|
||||
End Sub
|
||||
|
||||
Private Sub SearchControl2_CustomDrawTokenGlyph(sender As Object, e As TokenEditCustomDrawTokenGlyphEventArgs) Handles SearchControl2.CustomDrawTokenGlyph
|
||||
' Set Background according to token type
|
||||
Select Case e.Value.GetType()
|
||||
Case GetType(AttributeKeyToken)
|
||||
e.Graphics.FillRectangle(New SolidBrush(ColorTranslator.FromHtml("#F87171")), e.Bounds)
|
||||
|
||||
Case GetType(AttributeOperatorToken)
|
||||
e.Graphics.FillRectangle(New SolidBrush(ColorTranslator.FromHtml("#34D399")), e.Bounds)
|
||||
|
||||
Case GetType(AttributeValueToken)
|
||||
e.Graphics.FillRectangle(New SolidBrush(ColorTranslator.FromHtml("#60A5FA")), e.Bounds)
|
||||
Case Else
|
||||
End Select
|
||||
|
||||
' Draw the glyph on top
|
||||
' This fixes: https://supportcenter.devexpress.com/ticket/details/t215578/tokenedit-glyph-is-not-visible-when-customdrawtokentext-is-used
|
||||
e.DefaultDraw()
|
||||
End Sub
|
||||
|
||||
Private Sub SearchControl2_KeyUp(sender As Object, e As KeyEventArgs) Handles SearchControl2.KeyUp
|
||||
If Search.InputMode = InputMode.Value And e.KeyCode = Keys.Enter And SearchControl2.IsPopupOpen Then
|
||||
Search.Query.Add(New SearchCriteria With {
|
||||
.ParenLeft = False,
|
||||
.Key = "test",
|
||||
.Op = OperatorToken.Equals,
|
||||
.Value = "test",
|
||||
.ParentRight = False
|
||||
})
|
||||
End If
|
||||
End Sub
|
||||
|
||||
Private Sub RibbonControl1_Click(sender As Object, e As EventArgs) Handles RibbonControl1.Click
|
||||
|
||||
End Sub
|
||||
End Class
|
||||
@ -9,7 +9,7 @@ Imports DevExpress.XtraEditors
|
||||
Imports DevExpress.XtraSplashScreen
|
||||
Imports DigitalData.GUIs.Common
|
||||
Imports DigitalData.GUIs.ZooFlow.ClassConstants
|
||||
Imports DigitalData.GUIs.ZooFlow.SearchFilter
|
||||
Imports DigitalData.GUIs.ZooFlow.Search.SearchFilter
|
||||
Imports System.Threading.Tasks
|
||||
|
||||
|
||||
|
||||
@ -70,6 +70,10 @@
|
||||
<Reference Include="DevExpress.Data.v19.2" />
|
||||
<Reference Include="DevExpress.DataAccess.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.DataAccess.v19.2.UI, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Images.v19.2, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL">
|
||||
<SpecificVersion>False</SpecificVersion>
|
||||
<HintPath>D:\ProgramFiles\DevExpress 19.2\Components\Bin\Framework\DevExpress.Images.v19.2.dll</HintPath>
|
||||
</Reference>
|
||||
<Reference Include="DevExpress.Office.v19.2.Core, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
<Reference Include="DevExpress.Printing.v19.2.Core" />
|
||||
<Reference Include="DevExpress.RichEdit.v19.2.Core, Version=19.2.3.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a, processorArchitecture=MSIL" />
|
||||
@ -285,6 +289,12 @@
|
||||
<Compile Include="Globix\frmGlobix_Index.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Search\frmSearchNeu.Designer.vb">
|
||||
<DependentUpon>frmSearchNeu.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Search\frmSearchNeu.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<Compile Include="Search\frmSearchPredefined.Designer.vb">
|
||||
<DependentUpon>frmSearchPredefined.vb</DependentUpon>
|
||||
</Compile>
|
||||
@ -335,18 +345,16 @@
|
||||
<Compile Include="My Project\Application.Designer.vb">
|
||||
<AutoGen>True</AutoGen>
|
||||
<DependentUpon>Application.myapp</DependentUpon>
|
||||
<DesignTime>True</DesignTime>
|
||||
</Compile>
|
||||
<Compile Include="My Project\AssemblyInfo.vb" />
|
||||
<Compile Include="MyApplication.vb" />
|
||||
<Compile Include="Queries\ClassQueries.vb" />
|
||||
<Compile Include="Search\Search.vb" />
|
||||
<Compile Include="Search\SearchCriteria.vb" />
|
||||
<Compile Include="Search\SearchFilter.vb" />
|
||||
<Compile Include="Search\SearchToken.vb" />
|
||||
<Compile Include="Search\State.vb" />
|
||||
<Compile Include="Search\frmSearch2021.Designer.vb">
|
||||
<DependentUpon>frmSearch2021.vb</DependentUpon>
|
||||
</Compile>
|
||||
<Compile Include="Search\frmSearch2021.vb">
|
||||
<SubType>Form</SubType>
|
||||
</Compile>
|
||||
<EmbeddedResource Include="Administration\frmAdmin_ClipboardWatcher.resx">
|
||||
<DependentUpon>frmAdmin_ClipboardWatcher.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
@ -392,6 +400,9 @@
|
||||
<EmbeddedResource Include="Globix\frmGlobix_Index.resx">
|
||||
<DependentUpon>frmGlobix_Index.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Search\frmSearchNeu.resx">
|
||||
<DependentUpon>frmSearchNeu.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Search\frmSearchPredefined.resx">
|
||||
<DependentUpon>frmSearchPredefined.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
@ -411,9 +422,6 @@
|
||||
<SubType>Designer</SubType>
|
||||
<LastGenOutput>Resources.Designer.vb</LastGenOutput>
|
||||
</EmbeddedResource>
|
||||
<EmbeddedResource Include="Search\frmSearch2021.resx">
|
||||
<DependentUpon>frmSearch2021.vb</DependentUpon>
|
||||
</EmbeddedResource>
|
||||
<None Include="App.config" />
|
||||
<None Include="DBCW_Stammdaten.xsc">
|
||||
<DependentUpon>DBCW_Stammdaten.xsd</DependentUpon>
|
||||
|
||||
@ -204,16 +204,15 @@ Public Class frmFlowForm
|
||||
Next
|
||||
|
||||
AddHandler Watcher.ClipboardChanged, AddressOf Watcher_ClipboardChanged
|
||||
Dim oSQL As String
|
||||
' Dim oSQL = My.Queries.Common.FNIDB_GET_SEARCH_PROFILES(My.Application.User.UserId, My.Application.User.Language)
|
||||
'Dim oDatatable As DataTable = My.DatabaseIDB.GetDatatable(oSQL)
|
||||
PictureBoxSearch1.Visible = False
|
||||
|
||||
'If Not IsNothing(oDatatable) OrElse oDatatable.Rows.Count > 0 Then
|
||||
' IDBSearchActive = True
|
||||
' DTIDB_SEARCHES = oDatatable
|
||||
' PictureBoxSearch1.Visible = True
|
||||
'End If
|
||||
Dim oSQL = My.Queries.Common.FNIDB_GET_SEARCH_PROFILES(My.Application.User.UserId, My.Application.User.Language)
|
||||
Dim oDatatable As DataTable = My.DatabaseIDB.GetDatatable(oSql)
|
||||
PictureBoxSearch1.Visible = False
|
||||
If Not IsNothing(oDatatable) OrElse oDatatable.Rows.Count > 0 Then
|
||||
IDBSearchActive = True
|
||||
DTIDB_SEARCHES = oDatatable
|
||||
PictureBoxSearch1.Visible = True
|
||||
End If
|
||||
|
||||
If My.Application.ModulesActive.Contains(MODULE_CLIPBOARDWATCHER) Then
|
||||
Try
|
||||
@ -256,8 +255,6 @@ Public Class frmFlowForm
|
||||
Logger.Info("Clipboard Watcher Module is not active. Hotkey Monitoring will be disabled!")
|
||||
End If
|
||||
|
||||
|
||||
|
||||
If My.Application.ModulesActive.Contains(MODULE_GLOBAL_INDEXER) Then
|
||||
FileDrop = New ClassFileDrop(My.LogConfig)
|
||||
FileHandle = New ClassFilehandle()
|
||||
@ -403,7 +400,7 @@ Public Class frmFlowForm
|
||||
Logger.Debug("OnEvent called!")
|
||||
End Sub
|
||||
Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Click
|
||||
frmSearch2021.Show()
|
||||
frmSearchNeu.Show()
|
||||
|
||||
'Open_FlowSearch()
|
||||
End Sub
|
||||
@ -1011,9 +1008,5 @@ Public Class frmFlowForm
|
||||
frmtest.Show()
|
||||
|
||||
End Sub
|
||||
|
||||
Private Sub PictureBoxGlobix1_Click(sender As Object, e As EventArgs) Handles PictureBoxGlobix1.Click
|
||||
|
||||
End Sub
|
||||
End Class
|
||||
|
||||
|
||||
@ -99,6 +99,7 @@ Public Class frmtest
|
||||
Dim oResult As Long = Await My.Application.Service.Client.NewFileAsync(
|
||||
txtFile2Import.Text,
|
||||
"WORK",
|
||||
"DOC",
|
||||
"DEFAULT",
|
||||
New NewFileOptions With {
|
||||
.KeepExtension = CheckBoxKeepExtension.Checked,
|
||||
|
||||
@ -225,7 +225,7 @@ Public Class MSSQLServer
|
||||
''' </summary>
|
||||
''' <param name="Connection"></param>
|
||||
''' <returns></returns>
|
||||
<DebuggerStepThrough()>
|
||||
'<DebuggerStepThrough()>
|
||||
Private Function OpenSQLConnection(Connection As SqlConnection) As SqlConnection
|
||||
If Connection.State = ConnectionState.Closed Then
|
||||
Connection.Open()
|
||||
@ -234,12 +234,12 @@ Public Class MSSQLServer
|
||||
Return Connection
|
||||
End Function
|
||||
|
||||
<DebuggerStepThrough()>
|
||||
'<DebuggerStepThrough()>
|
||||
Private Function GetSQLConnection() As SqlConnection
|
||||
Return GetConnection(CurrentSQLConnectionString)
|
||||
End Function
|
||||
|
||||
<DebuggerStepThrough()>
|
||||
'<DebuggerStepThrough()>
|
||||
Private Function GetConnection(ConnectionString As String) As SqlConnection
|
||||
Try
|
||||
Dim oConnection As New SqlConnection(ConnectionString)
|
||||
@ -272,7 +272,7 @@ Public Class MSSQLServer
|
||||
End Try
|
||||
End Function
|
||||
|
||||
<DebuggerStepThrough()>
|
||||
'<DebuggerStepThrough()>
|
||||
Public Function GetDatatable(SqlCommand As String) As DataTable Implements IDatabase.GetDatatable
|
||||
Return GetDatatable(SqlCommand, _Timeout)
|
||||
End Function
|
||||
@ -282,33 +282,33 @@ Public Class MSSQLServer
|
||||
''' </summary>
|
||||
''' <param name="SqlCommand">sqlcommand for datatable (select XYZ from TableORView)</param>
|
||||
''' <returns>Returns a datatable</returns>
|
||||
<DebuggerStepThrough()>
|
||||
'<DebuggerStepThrough()>
|
||||
Public Function GetDatatable(SqlCommand As String, Timeout As Integer) As DataTable Implements IDatabase.GetDatatable
|
||||
Using oSqlConnection = GetSQLConnection()
|
||||
Return GetDatatableWithConnectionObject(SqlCommand, oSqlConnection, TransactionMode.WithTransaction, Nothing, Timeout)
|
||||
End Using
|
||||
End Function
|
||||
|
||||
<DebuggerStepThrough()>
|
||||
'<DebuggerStepThrough()>
|
||||
Public Function GetDatatable(SqlCommand As String, Transaction As SqlTransaction, Optional Timeout As Integer = 120) As DataTable
|
||||
Using oSqlConnection = GetSQLConnection()
|
||||
Return GetDatatableWithConnectionObject(SqlCommand, oSqlConnection, TransactionMode.ExternalTransaction, Transaction, Timeout)
|
||||
End Using
|
||||
End Function
|
||||
|
||||
<DebuggerStepThrough()>
|
||||
'<DebuggerStepThrough()>
|
||||
Public Async Function GetDatatableAsync(SqlCommand As String, Optional Timeout As Integer = 120) As Task(Of DataTable)
|
||||
Return Await Task.Run(Function() GetDatatable(SqlCommand, Timeout))
|
||||
End Function
|
||||
|
||||
<DebuggerStepThrough()>
|
||||
'<DebuggerStepThrough()>
|
||||
Public Function GetDatatableWithConnection(SqlCommand As String, ConnectionString As String, Optional Timeout As Integer = 120) As DataTable
|
||||
Using oConnection = GetConnection(ConnectionString)
|
||||
Return GetDatatableWithConnectionObject(SqlCommand, oConnection, Timeout:=Timeout)
|
||||
End Using
|
||||
End Function
|
||||
|
||||
<DebuggerStepThrough()>
|
||||
'<DebuggerStepThrough()>
|
||||
Public Function GetDatatableWithConnectionObject(SqlCommand As String, SqlConnection As SqlConnection,
|
||||
Optional TransactionMode As TransactionMode = TransactionMode.WithTransaction,
|
||||
Optional Transaction As SqlTransaction = Nothing,
|
||||
|
||||
@ -47,15 +47,15 @@ Public Class DatabaseWithFallback
|
||||
End If
|
||||
End Function
|
||||
|
||||
Public Function GetDatatable(DataTable As String, FallbackSQL As String, FallbackType As Constants.DatabaseType, Optional FilterExpression As String = "", Optional SortByColumn As String = "", Optional ForceFallback As Boolean = False) As DataTable
|
||||
Public Function GetDatatable(pDataTableName As String, pFallbackSQL As String, pFallbackType As Constants.DatabaseType, Optional pFilterExpression As String = "", Optional pSortByColumn As String = "", Optional pForceFallback As Boolean = False) As DataTable
|
||||
Try
|
||||
Dim oResult As DataTable = Nothing
|
||||
|
||||
If ForceFallback = False Then
|
||||
If pForceFallback = False Then
|
||||
Dim oTableResult As TableResult
|
||||
|
||||
Try
|
||||
oTableResult = _Client.GetDatatableByName(DataTable, FilterExpression, SortByColumn)
|
||||
oTableResult = _Client.GetDatatableByName(pDataTableName, pFilterExpression, pSortByColumn)
|
||||
Catch ex As Exception
|
||||
_Logger.Error(ex)
|
||||
oTableResult = Nothing
|
||||
@ -63,12 +63,12 @@ Public Class DatabaseWithFallback
|
||||
|
||||
If oTableResult Is Nothing OrElse oTableResult.OK = False Then
|
||||
_Logger.Warn("Datatable [{0}] could not be fetched from AppServer Cache. Falling back to direct Database Access.")
|
||||
Return GetDatatableFromDatabase(FallbackSQL, FallbackType)
|
||||
Return GetDatatableFromDatabase(pFallbackSQL, pFallbackType)
|
||||
End If
|
||||
|
||||
Return oTableResult.Table
|
||||
Else
|
||||
Return GetDatatableFromDatabase(FallbackSQL, FallbackType)
|
||||
Return GetDatatableFromDatabase(pFallbackSQL, pFallbackType)
|
||||
End If
|
||||
Catch ex As Exception
|
||||
_Logger.Error(ex)
|
||||
@ -95,32 +95,5 @@ Public Class DatabaseWithFallback
|
||||
|
||||
End Try
|
||||
End Function
|
||||
|
||||
Public Function GetUserData(UserName As String, ModuleCode As String, Client As Integer) As UserData
|
||||
'Dim oSQL = $"SELECT * FROM FNDD_CHECK_USER_MODULE('{UserName}','{ModuleCode}',{Client})"
|
||||
'Dim oTable As DataTable = GetDatatable("TBDD_USER_MODULE", $"USERNAME = '{UserName.ToLower}' AND MODULE_SHORT = '{ModuleCode}'", "", oSQL, DatabaseType.ECM)
|
||||
|
||||
'If oTable Is Nothing Then
|
||||
' Return Nothing
|
||||
'End If
|
||||
|
||||
'If oTable.Rows.Count = 0 Then
|
||||
' Return Nothing
|
||||
'End If
|
||||
|
||||
'Dim oRow As DataRow = oTable.Rows.Item(0)
|
||||
'Dim oUserData As New UserData With {
|
||||
' .Id = NotNull(oRow, "USER_ID", -1),
|
||||
' .Surname = NotNull(oRow, "USER_SURNAME", String.Empty),
|
||||
' .Prename = NotNull(oRow, "USER_PRENAME", String.Empty),
|
||||
' .Shortname = NotNull(oRow, "USER_SHORTNAME", String.Empty),
|
||||
' .Email = NotNull(oRow, "USER_EMAIL", String.Empty),
|
||||
' .Language = NotNull(oRow, "USER_LANGUAGE", "de-DE"),
|
||||
' .DateFormat = NotNull(oRow, "USER_DATE_FORMAT", "dd.MM.yyyy")
|
||||
'}
|
||||
|
||||
Throw New NotImplementedException()
|
||||
End Function
|
||||
|
||||
End Class
|
||||
|
||||
|
||||
@ -1,14 +0,0 @@
|
||||
Public Class UserData
|
||||
Public Id As Integer
|
||||
Public Surname As String
|
||||
Public Prename As String
|
||||
Public Shortname As String
|
||||
Public Email As String
|
||||
Public Language As String
|
||||
Public DateFormat As String
|
||||
|
||||
Public IsAdmin As Boolean
|
||||
Public HasAccess As Boolean
|
||||
|
||||
Public ModuleName As String
|
||||
End Class
|
||||
@ -97,7 +97,6 @@
|
||||
<DependentUpon>Settings.settings</DependentUpon>
|
||||
<DesignTimeSharedInput>True</DesignTimeSharedInput>
|
||||
</Compile>
|
||||
<Compile Include="DatabaseWithFallback\UserData.vb" />
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<EmbeddedResource Include="My Project\Resources.resx">
|
||||
|
||||
@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
|
||||
' übernehmen, indem Sie "*" eingeben:
|
||||
' <Assembly: AssemblyVersion("1.0.*")>
|
||||
|
||||
<Assembly: AssemblyVersion("1.2.3.0")>
|
||||
<Assembly: AssemblyFileVersion("1.2.3.0")>
|
||||
<Assembly: AssemblyVersion("1.2.4.0")>
|
||||
<Assembly: AssemblyFileVersion("1.2.4.0")>
|
||||
|
||||
@ -4,8 +4,10 @@ Imports System.Text.RegularExpressions
|
||||
Namespace [PatternModule]
|
||||
Public Class BaseModule
|
||||
Friend ReadOnly Logger As Logger
|
||||
|
||||
Private ReadOnly MyRegex As Regex = New Regex("{#(\w+)#([\:\.\w\s_-]+)}+")
|
||||
Private ReadOnly SqlPhrases As New List(Of String) From {
|
||||
"SELECT ", "UPDATE ", "DELETE ", "EXEC "
|
||||
}
|
||||
|
||||
Private Const MAX_TRY_COUNT = 500
|
||||
|
||||
@ -21,23 +23,37 @@ Namespace [PatternModule]
|
||||
pCounter += 1
|
||||
End Sub
|
||||
|
||||
Public Function ReplacePattern(input As String, type As String, replacement As String) As String
|
||||
Dim elements As MatchCollection = MyRegex.Matches(input)
|
||||
Public Function ReplacePattern(pInput As String, pType As String, pReplacement As String) As String
|
||||
Dim oElements As MatchCollection = MyRegex.Matches(pInput)
|
||||
|
||||
If IsNothing(replacement) Then
|
||||
Return input
|
||||
If IsNothing(pReplacement) Then
|
||||
Return pInput
|
||||
End If
|
||||
|
||||
For Each element As Match In elements
|
||||
Dim oIsSQL As Boolean = False
|
||||
For Each oPhrase In SqlPhrases
|
||||
If pInput.Contains(oPhrase) Then
|
||||
oIsSQL = True
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
|
||||
If oIsSQL = True Then
|
||||
Logger.Debug("Input string is most likely an SQL Query, masking quotes in replacement string.")
|
||||
pReplacement = pReplacement.Replace("'", "''")
|
||||
End If
|
||||
|
||||
For Each oElement As Match In oElements
|
||||
' if group 1 contains the 'pattern' the replace whole group with 'replacement'
|
||||
' and return it
|
||||
If element.Groups(1).Value = type Then
|
||||
Return Regex.Replace(input, element.Groups(0).Value, replacement)
|
||||
If oElement.Groups(1).Value = pType Then
|
||||
Logger.Debug("Replacing Placeholder with [{0}]", pReplacement)
|
||||
Return Regex.Replace(pInput, oElement.Groups(0).Value, pReplacement)
|
||||
End If
|
||||
Next
|
||||
|
||||
' no replacement made
|
||||
Return input
|
||||
Return pInput
|
||||
End Function
|
||||
|
||||
Public Function ContainsPatternAndValue(pInput As String, pType As String, pValue As String) As Boolean
|
||||
@ -45,10 +61,10 @@ Namespace [PatternModule]
|
||||
|
||||
For Each oElement As Match In oElements
|
||||
' Pattern in pInput
|
||||
Dim t As String = oElement.Groups(1).Value
|
||||
Dim v As String = oElement.Groups(2).Value
|
||||
Dim oType As String = oElement.Groups(1).Value
|
||||
Dim oValue As String = oElement.Groups(2).Value
|
||||
|
||||
If t = pType And v = pValue Then
|
||||
If oType = pType And oValue = pValue Then
|
||||
Return True
|
||||
End If
|
||||
Next
|
||||
@ -84,16 +100,16 @@ Namespace [PatternModule]
|
||||
Return False
|
||||
End Function
|
||||
|
||||
Public Function GetNextPattern(input As String, type As String) As Pattern
|
||||
Dim elements As MatchCollection = MyRegex.Matches(input)
|
||||
Public Function GetNextPattern(pInput As String, pType As String) As Pattern
|
||||
Dim oElements As MatchCollection = MyRegex.Matches(pInput)
|
||||
|
||||
For Each element As Match In elements
|
||||
For Each oElement As Match In oElements
|
||||
' Pattern in pInput
|
||||
Dim t As String = element.Groups(1).Value
|
||||
Dim v As String = element.Groups(2).Value
|
||||
Dim oType As String = oElement.Groups(1).Value
|
||||
Dim oValue As String = oElement.Groups(2).Value
|
||||
|
||||
If t = type Then
|
||||
Return New Pattern(t, v)
|
||||
If oType = pType Then
|
||||
Return New Pattern(oType, oValue)
|
||||
End If
|
||||
Next
|
||||
|
||||
|
||||
@ -11,7 +11,6 @@ Namespace [PatternModule]
|
||||
Public Const CLIPBOARD_VALUE_EN = "@Clipboard"
|
||||
|
||||
Public Property PatternIdentifier As String = "CLIP" Implements IModule.PatternIdentifier
|
||||
|
||||
Public Property IsComplex As Boolean = False Implements IModule.IsComplex
|
||||
|
||||
Public Sub New(pLogConfig As LogConfig)
|
||||
|
||||
@ -4,55 +4,62 @@ Imports DigitalData.Modules.Logging
|
||||
|
||||
Namespace [PatternModule]
|
||||
''' <summary>
|
||||
''' Simple patterns that only rely on .NET functions
|
||||
''' Patterns for control values on a panel
|
||||
''' </summary>
|
||||
Public Class Controls
|
||||
Inherits BaseModule
|
||||
Implements IModule
|
||||
|
||||
Public Const CTRL_VALUE_PANEL = "PANEL"
|
||||
Public Const CTRL_VALUE_PANEL = "CTRL_VALUE_PANEL"
|
||||
|
||||
Public Property PatternIdentifier As String = "CTRL" Implements IModule.PatternIdentifier
|
||||
Public Property IsComplex As Boolean = True Implements IModule.IsComplex
|
||||
Private ReadOnly Logger As Logger
|
||||
|
||||
Public Sub New(pLogConfig As LogConfig)
|
||||
MyBase.New(pLogConfig)
|
||||
Logger = pLogConfig.GetLogger()
|
||||
End Sub
|
||||
|
||||
Public Function Replace(pInput As String, pReplaceMap As Dictionary(Of String, Object)) As String Implements IModule.Replace
|
||||
Dim oResult = pInput
|
||||
Dim oCounter = 0
|
||||
Dim oPanel As Panel = pReplaceMap.Item("CTRL_VALUE_PANEL")
|
||||
Dim oPanel As Panel = pReplaceMap.Item(CTRL_VALUE_PANEL)
|
||||
|
||||
While ContainsPattern(oResult, PatternIdentifier)
|
||||
Dim oControlName As String = GetNextPattern(oResult, PatternIdentifier).Value
|
||||
Dim oControl As Control = oPanel.Controls.Find(oControlName, False).FirstOrDefault()
|
||||
Try
|
||||
Dim oControlName As String = GetNextPattern(oResult, PatternIdentifier).Value
|
||||
Dim oControl As Control = oPanel.Controls.Find(oControlName, False).FirstOrDefault()
|
||||
|
||||
If oControl IsNot Nothing Then
|
||||
Dim oReplaceValue As String
|
||||
Select Case oControl.GetType.ToString
|
||||
Case GetType(TextBox).ToString
|
||||
oReplaceValue = oControl.Text
|
||||
Case GetType(LookupControl3).ToString
|
||||
Dim oLookupControl3 As LookupControl3 = oControl
|
||||
If oLookupControl3.Properties.SelectedValues.Count = 1 Then
|
||||
oReplaceValue = oLookupControl3.Properties.SelectedValues.Item(0)
|
||||
Else
|
||||
If oControl IsNot Nothing Then
|
||||
Dim oReplaceValue As String
|
||||
Select Case oControl.GetType.ToString
|
||||
Case GetType(TextBox).ToString
|
||||
oReplaceValue = oControl.Text
|
||||
Case GetType(LookupControl3).ToString
|
||||
Dim oLookupControl3 As LookupControl3 = oControl
|
||||
If oLookupControl3.Properties.SelectedValues.Count = 1 Then
|
||||
oReplaceValue = oLookupControl3.Properties.SelectedValues.Item(0)
|
||||
Else
|
||||
oReplaceValue = "0"
|
||||
End If
|
||||
Case GetType(ComboBox).ToString
|
||||
oReplaceValue = oControl.Text
|
||||
Case GetType(CheckBox).ToString
|
||||
Dim oCheckBox As CheckBox = oControl
|
||||
oReplaceValue = oCheckBox.Checked
|
||||
Case Else
|
||||
oReplaceValue = "0"
|
||||
End If
|
||||
Case GetType(ComboBox).ToString
|
||||
oReplaceValue = oControl.Text
|
||||
Case GetType(CheckBox).ToString
|
||||
Dim oCheckBox As CheckBox = oControl
|
||||
oReplaceValue = oCheckBox.Checked
|
||||
Case Else
|
||||
oReplaceValue = "0"
|
||||
End Select
|
||||
End Select
|
||||
|
||||
oResult = ReplacePattern(oResult, PatternIdentifier, oReplaceValue)
|
||||
End If
|
||||
oResult = ReplacePattern(oResult, PatternIdentifier, oReplaceValue)
|
||||
End If
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
Finally
|
||||
IncrementCounterOrThrow(oCounter)
|
||||
End Try
|
||||
|
||||
IncrementCounterOrThrow(oCounter)
|
||||
End While
|
||||
|
||||
Return oResult
|
||||
|
||||
31
Modules.Patterns/Modules/IDB.vb
Normal file
31
Modules.Patterns/Modules/IDB.vb
Normal file
@ -0,0 +1,31 @@
|
||||
Imports System.Windows.Forms
|
||||
Imports DigitalData.Controls.LookupGrid
|
||||
Imports DigitalData.Modules.Logging
|
||||
|
||||
Namespace [PatternModule]
|
||||
''' <summary>
|
||||
''' Patterns for Windream Indicies
|
||||
''' </summary>
|
||||
Public Class IDB
|
||||
Inherits BaseModule
|
||||
Implements IModule
|
||||
|
||||
Public Const IDB_OBJECT_ID = "IDB_OBJECT_ID"
|
||||
|
||||
Public Property PatternIdentifier As String = "IDB" Implements IModule.PatternIdentifier
|
||||
Public Property IsComplex As Boolean = True Implements IModule.IsComplex
|
||||
|
||||
Private ReadOnly Logger As Logger
|
||||
|
||||
Public Sub New(pLogConfig As LogConfig)
|
||||
MyBase.New(pLogConfig)
|
||||
Logger = pLogConfig.GetLogger()
|
||||
End Sub
|
||||
|
||||
Public Function Replace(pInput As String, pReplaceMap As Dictionary(Of String, Object)) As String Implements IModule.Replace
|
||||
'TODO: Implement, depends on IDB Data, which is not in monorepo yet
|
||||
|
||||
Return pInput
|
||||
End Function
|
||||
End Class
|
||||
End Namespace
|
||||
@ -14,7 +14,6 @@ Namespace [PatternModule]
|
||||
Public Const INT_VALUE_DATE = "DATE"
|
||||
|
||||
Public Property PatternIdentifier As String = "INT" Implements IModule.PatternIdentifier
|
||||
|
||||
Public Property IsComplex As Boolean = False Implements IModule.IsComplex
|
||||
|
||||
Public Sub New(pLogConfig As LogConfig)
|
||||
|
||||
@ -14,7 +14,6 @@ Namespace [PatternModule]
|
||||
Public Const USER_VALUE_USER_NAME = "USER_NAME"
|
||||
|
||||
Public Property PatternIdentifier As String = "USER" Implements IModule.PatternIdentifier
|
||||
|
||||
Public Property IsComplex As Boolean = True Implements IModule.IsComplex
|
||||
|
||||
Public Sub New(pLogConfig As LogConfig)
|
||||
|
||||
53
Modules.Patterns/Modules/Windream.vb
Normal file
53
Modules.Patterns/Modules/Windream.vb
Normal file
@ -0,0 +1,53 @@
|
||||
Imports System.Windows.Forms
|
||||
Imports DigitalData.Controls.LookupGrid
|
||||
Imports DigitalData.Modules.Logging
|
||||
|
||||
Namespace [PatternModule]
|
||||
''' <summary>
|
||||
''' Patterns for Windream Indicies
|
||||
''' </summary>
|
||||
Public Class Windream
|
||||
Inherits BaseModule
|
||||
Implements IModule
|
||||
|
||||
Public Const WM_VALUE_DOCUMENT = "WM_DOCUMENT"
|
||||
|
||||
Public Property PatternIdentifier As String = "WMI" Implements IModule.PatternIdentifier
|
||||
Public Property IsComplex As Boolean = True Implements IModule.IsComplex
|
||||
|
||||
Private ReadOnly Logger As Logger
|
||||
|
||||
Public Sub New(pLogConfig As LogConfig)
|
||||
MyBase.New(pLogConfig)
|
||||
Logger = pLogConfig.GetLogger()
|
||||
End Sub
|
||||
|
||||
Public Function Replace(pInput As String, pReplaceMap As Dictionary(Of String, Object)) As String Implements IModule.Replace
|
||||
Dim oResult = pInput
|
||||
Dim oCounter = 0
|
||||
Dim pWMObject As WINDREAMLib.WMObject = pReplaceMap.Item(WM_VALUE_DOCUMENT)
|
||||
|
||||
While ContainsPattern(oResult, PatternIdentifier)
|
||||
Try
|
||||
Dim oIndexName As String = GetNextPattern(oResult, PatternIdentifier).Value
|
||||
Dim oWMValue As Object = pWMObject.GetVariableValue(oIndexName)
|
||||
|
||||
If oWMValue Is Nothing Then
|
||||
Logger.Warn("Value for Index [{0}] is empty and will not be used for replacing. Skipping.")
|
||||
Return oResult
|
||||
End If
|
||||
|
||||
oResult = ReplacePattern(oResult, PatternIdentifier, oWMValue.ToString)
|
||||
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
Return oResult
|
||||
Finally
|
||||
IncrementCounterOrThrow(oCounter)
|
||||
End Try
|
||||
End While
|
||||
|
||||
Return oResult
|
||||
End Function
|
||||
End Class
|
||||
End Namespace
|
||||
@ -12,7 +12,7 @@ Imports System.Runtime.InteropServices
|
||||
<Assembly: AssemblyDescription("")>
|
||||
<Assembly: AssemblyCompany("")>
|
||||
<Assembly: AssemblyProduct("Patterns")>
|
||||
<Assembly: AssemblyCopyright("Copyright © 2019")>
|
||||
<Assembly: AssemblyCopyright("Copyright © 2021")>
|
||||
<Assembly: AssemblyTrademark("")>
|
||||
|
||||
<Assembly: ComVisible(False)>
|
||||
|
||||
@ -81,6 +81,8 @@
|
||||
</ItemGroup>
|
||||
<ItemGroup>
|
||||
<Compile Include="Constants.vb" />
|
||||
<Compile Include="Modules\IDB.vb" />
|
||||
<Compile Include="Modules\Windream.vb" />
|
||||
<Compile Include="Modules\User.vb" />
|
||||
<Compile Include="Modules\IModule.vb" />
|
||||
<Compile Include="Modules\Clipboard.vb" />
|
||||
|
||||
@ -91,34 +91,114 @@ Public Class Patterns2
|
||||
Return oResult
|
||||
End Function
|
||||
|
||||
Private Function GetReplaceMapForModule(pModule As IModule, pPanel As Panel, pUser As State.UserState) As Dictionary(Of String, Object)
|
||||
Public Function ReplaceUserValues(pInput As String, pUser As State.UserState) As String
|
||||
Dim oResult = pInput
|
||||
|
||||
Dim oModule = GetModule(Of PatternModule.User)()
|
||||
Dim oArgs = GetReplaceMapForModule(oModule, pUser:=pUser)
|
||||
oResult = DoReplaceForModule(oResult, oModule, oArgs)
|
||||
|
||||
Return oResult
|
||||
End Function
|
||||
|
||||
Public Function ReplaceControlValues(pInput As String, pPanel As Panel) As String
|
||||
Dim oResult = pInput
|
||||
|
||||
Dim oModule = GetModule(Of PatternModule.Controls)()
|
||||
Dim oArgs = GetReplaceMapForModule(oModule, pPanel:=pPanel)
|
||||
oResult = DoReplaceForModule(oResult, oModule, oArgs)
|
||||
|
||||
Return oResult
|
||||
End Function
|
||||
|
||||
Public Function ReplaceWindreamValues(pInput As String, pWMObject As WMObject) As String
|
||||
Dim oResult = pInput
|
||||
|
||||
Dim oModule = GetModule(Of PatternModule.Windream)()
|
||||
Dim oArgs = GetReplaceMapForModule(oModule, pWMObject:=pWMObject)
|
||||
oResult = DoReplaceForModule(oResult, oModule, oArgs)
|
||||
|
||||
Return oResult
|
||||
End Function
|
||||
|
||||
Public Function ReplaceInternalValues(pInput As String) As String
|
||||
Dim oResult = pInput
|
||||
|
||||
Dim oInternalModule = GetModule(Of PatternModule.Internal)()
|
||||
Dim oInternalArgs = GetReplaceMapForModule(oInternalModule)
|
||||
oResult = DoReplaceForModule(oResult, oInternalModule, oInternalArgs)
|
||||
|
||||
Dim oClipboardModule = GetModule(Of PatternModule.Clipboard)()
|
||||
Dim oClipboardArgs = GetReplaceMapForModule(oClipboardModule)
|
||||
oResult = DoReplaceForModule(oResult, oClipboardModule, oClipboardArgs)
|
||||
|
||||
Return oResult
|
||||
End Function
|
||||
|
||||
Private Function DoReplaceForModule(pInput As String, pModule As IModule, pArgs As Dictionary(Of String, Object)) As String
|
||||
Try
|
||||
pInput = pModule.Replace(pInput, pArgs)
|
||||
Catch ex As Exception
|
||||
Logger.Warn("Placeholders for String [{0}] could not be replaced completely in Module [{1}]. Skipping.", pInput, pModule.GetType.Name)
|
||||
Logger.Error(ex)
|
||||
End Try
|
||||
|
||||
Return pInput
|
||||
End Function
|
||||
|
||||
Private Function GetModule(Of ModuleT)() As IModule
|
||||
Return Modules.
|
||||
Where(Function(m) TypeOf m Is ModuleT).
|
||||
SingleOrDefault()
|
||||
End Function
|
||||
|
||||
Private Function GetReplaceMapForModule(pModule As IModule, Optional pPanel As Panel = Nothing, Optional pUser As State.UserState = Nothing, Optional pWMObject As WMObject = Nothing) As Dictionary(Of String, Object)
|
||||
Dim oArgs As New Dictionary(Of String, Object)
|
||||
|
||||
Select Case pModule.GetType()
|
||||
Case GetType(PatternModule.Clipboard)
|
||||
|
||||
|
||||
End Select
|
||||
|
||||
|
||||
If TypeOf pModule Is PatternModule.Clipboard Then
|
||||
oArgs.Add(PatternModule.Clipboard.CLIP_VALUE_BOARD, My.Computer.Clipboard.GetText())
|
||||
Try
|
||||
oArgs.Add(PatternModule.Clipboard.CLIP_VALUE_BOARD, My.Computer.Clipboard.GetText())
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
End Try
|
||||
|
||||
ElseIf TypeOf pModule Is PatternModule.Internal Then
|
||||
oArgs.Add(PatternModule.Internal.INT_VALUE_USERNAME, System.Environment.UserName)
|
||||
oArgs.Add(PatternModule.Internal.INT_VALUE_MACHINE, System.Environment.MachineName)
|
||||
oArgs.Add(PatternModule.Internal.INT_VALUE_DOMAIN, System.Environment.UserDomainName)
|
||||
oArgs.Add(PatternModule.Internal.INT_VALUE_DATE, Now.ToShortDateString)
|
||||
Try
|
||||
oArgs.Add(PatternModule.Internal.INT_VALUE_USERNAME, System.Environment.UserName)
|
||||
oArgs.Add(PatternModule.Internal.INT_VALUE_MACHINE, System.Environment.MachineName)
|
||||
oArgs.Add(PatternModule.Internal.INT_VALUE_DOMAIN, System.Environment.UserDomainName)
|
||||
oArgs.Add(PatternModule.Internal.INT_VALUE_DATE, Now.ToShortDateString)
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
End Try
|
||||
|
||||
ElseIf TypeOf pModule Is PatternModule.User Then
|
||||
oArgs.Add(PatternModule.User.USER_VALUE_EMAIL, pUser.Email)
|
||||
oArgs.Add(PatternModule.User.USER_VALUE_LANGUAGE, pUser.Language)
|
||||
oArgs.Add(PatternModule.User.USER_VALUE_PRENAME, pUser.GivenName)
|
||||
oArgs.Add(PatternModule.User.USER_VALUE_SHORTNAME, pUser.ShortName)
|
||||
oArgs.Add(PatternModule.User.USER_VALUE_SURNAME, pUser.Surname)
|
||||
oArgs.Add(PatternModule.User.USER_VALUE_USER_ID, pUser.UserId)
|
||||
oArgs.Add(PatternModule.User.USER_VALUE_USER_NAME, pUser.UserName)
|
||||
Try
|
||||
oArgs.Add(PatternModule.User.USER_VALUE_EMAIL, pUser.Email)
|
||||
oArgs.Add(PatternModule.User.USER_VALUE_LANGUAGE, pUser.Language)
|
||||
oArgs.Add(PatternModule.User.USER_VALUE_PRENAME, pUser.GivenName)
|
||||
oArgs.Add(PatternModule.User.USER_VALUE_SHORTNAME, pUser.ShortName)
|
||||
oArgs.Add(PatternModule.User.USER_VALUE_SURNAME, pUser.Surname)
|
||||
oArgs.Add(PatternModule.User.USER_VALUE_USER_ID, pUser.UserId)
|
||||
oArgs.Add(PatternModule.User.USER_VALUE_USER_NAME, pUser.UserName)
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
End Try
|
||||
|
||||
ElseIf TypeOf pModule Is PatternModule.Controls Then
|
||||
oArgs.Add(PatternModule.Controls.CTRL_VALUE_PANEL, pPanel)
|
||||
Try
|
||||
oArgs.Add(PatternModule.Controls.CTRL_VALUE_PANEL, pPanel)
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
End Try
|
||||
|
||||
ElseIf TypeOf pModule Is PatternModule.Windream Then
|
||||
Try
|
||||
oArgs.Add(PatternModule.Windream.WM_VALUE_DOCUMENT, pWMObject)
|
||||
Catch ex As Exception
|
||||
Logger.Error(ex)
|
||||
End Try
|
||||
|
||||
End If
|
||||
|
||||
Return oArgs
|
||||
|
||||
@ -13,7 +13,7 @@ Imports System.Runtime.InteropServices
|
||||
<Assembly: AssemblyCompany("Digital Data")>
|
||||
<Assembly: AssemblyProduct("DDZUGFeRDService")>
|
||||
<Assembly: AssemblyCopyright("Copyright © 2021")>
|
||||
<Assembly: AssemblyTrademark("")>
|
||||
<Assembly: AssemblyTrademark("1800")>
|
||||
|
||||
<Assembly: ComVisible(False)>
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user