diff --git a/GUIs.ZooFlow/ClassControlCreator.vb b/GUIs.ZooFlow/ClassControlCreator.vb new file mode 100644 index 00000000..de95c676 --- /dev/null +++ b/GUIs.ZooFlow/ClassControlCreator.vb @@ -0,0 +1,739 @@ +Imports DevExpress.XtraGrid +Imports DevExpress.XtraGrid.Views.Grid +Imports DevExpress.XtraTab +Imports DigitalData.Modules.Logging + +Public Class ClassControlCreator + + Private Const DEFAULT_TEXT = "Bezeichnung definieren" + + Private Const DEFAULT_FONT_SIZE As Integer = 10 + Private Const DEFAULT_FONT_FAMILY As String = "Arial" + Private Const DEFAULT_FONT_STYLE As FontStyle = FontStyle.Regular + Private Const DEFAULT_COLOR As Integer = 0 + Private Const DEFAULT_WIDTH As Integer = 170 + Private Const DEFAULT_HEIGHT As Integer = 20 + Private Const DEFAULT_WIDTH_GRIDVIEW As Integer = 150 + Private Const DEFAULT_HEIGHT_GRIDVIEW As Integer = 150 + + + Public Const PREFIX_TEXTBOX = "TXT" + Public Const PREFIX_LABEL = "LBL" + Public Const PREFIX_CHECKBOX = "CHK" + Public Const PREFIX_COMBOBOX = "CMB" + Public Const PREFIX_DATETIMEPICKER = "DTP" + Public Const PREFIX_DATAGRIDVIEW = "DGV" + Public Const PREFIX_LOOKUP = "LU" + Public Const PREFIX_GRIDCONTROL = "GRID" + Public Const PREFIX_LINE = "LINE" + Public Const PREFIX_BUTTON = "BTN" + + Public Shared GridTables As New Dictionary(Of String, DataTable) + + Private Logger As Logger + Private Property Form As frmSearchStart + Private Property TabPage As XtraTabPage + + Public Class ControlMeta + Public Property IndexName As String + Public Property IndexType As String + Public Property MultipleValues As Boolean = False + End Class + ''' + ''' Standard Eigenschaften für alle Controls + ''' + Private Class ControlDBProps + Public Guid As Integer + Public Name As String + Public Location As Point + Public [Font] As Font + Public [Color] As Color + End Class + + Public Class ControlMetadata + Public Guid As Integer + Public [ReadOnly] As Boolean = False + End Class + + Private Shared Function TransformDataRow(row As DataRow, pXPosition As Integer, pYPosition As Integer) As ControlDBProps + Dim oxPos As Integer = pXPosition + Dim oYPos As Integer = pYPosition + ' Dim style As FontStyle = NotNull(row.Item("FONT_STYLE"), DEFAULT_FONT_STYLE) + ' Dim size As Single = NotNull(row.Item("FONT_SIZE"), DEFAULT_FONT_SIZE) + ' Dim familyString As String = NotNull(row.Item("FONT_FAMILY"), DEFAULT_FONT_FAMILY) + 'Dim family As FontFamily = New FontFamily(familyString) + + Dim oGuid As Integer = row.Item("GUID") + Dim oName As String = row.Item("ATTRIBUTE_TITLE") + Dim oLocation As New Point(oxPos, oYPos) + 'Dim oFont As New Font(family, size, style, GraphicsUnit.Point) + 'Dim oColor As Color = IntToColor(NotNull(row.Item("FONT_COLOR"), DEFAULT_COLOR)) + 'Dim oReadOnly As Boolean = row.Item("READ_ONLY") + + Return New ControlDBProps() With { + .Guid = oGuid, + .Name = oName, + .Location = oLocation} + '.Font = oFont, + '.Color = oColor + + End Function + Public Function CreateBaseControl(ctrl As Control, OAttributeRow As DataRow, pXPosition As Integer, pYPosition As Integer) As Control + Try + Dim props As ControlDBProps = TransformDataRow(OAttributeRow, pXPosition, pYPosition) + + ctrl.Tag = New ControlMetadata() With { + .Guid = props.Guid + } + ctrl.Name = props.Name + ctrl.Location = props.Location + ctrl.Font = props.Font + ctrl.ForeColor = props.Color + + + Return ctrl + Catch ex As Exception + Logger.Error(ex) + End Try + + End Function + + Public Sub New(pTabPage As XtraTabPage, pForm As frmSearchStart) + Me.Form = pForm + Me.TabPage = pTabPage + Logger = My.LogConfig.GetLogger() + End Sub + + Public Function CreateExistingDataGridView(row As DataRow, pXPosition As Integer, pYPosition As Integer) As DataGridView + Dim oDataGridView As DataGridView = CreateBaseControl(New DataGridView(), row, pXPosition, pYPosition) + + oDataGridView.Size = New Size(DEFAULT_WIDTH, DEFAULT_HEIGHT_GRIDVIEW) + oDataGridView.AllowUserToAddRows = False + oDataGridView.AllowUserToDeleteRows = False + oDataGridView.AllowUserToResizeColumns = False + oDataGridView.AllowUserToResizeRows = False + oDataGridView.AlternatingRowsDefaultCellStyle.BackColor = Color.Aqua + + Dim col As New DataGridViewTextBoxColumn + col.HeaderText = "" + col.Name = "column1" + col.Width = oDataGridView.Width - 30 + oDataGridView.Columns.Add(col) + + 'If Not designMode Then + ' control.Enabled = Not row.Item("READ_ONLY") + ' control.TabStop = Not row.Item("READ_ONLY") + 'End If + + Return oDataGridView + End Function + Public Function CreateExistingGridControl(pAttributeRow As DataRow, pXPosition As Integer, pYPosition As Integer) As GridControl + Dim oControl As GridControl = CreateBaseControl(New GridControl(), pAttributeRow, pXPosition, pYPosition) + Dim oDatatable As New DataTable + Dim oView As DevExpress.XtraGrid.Views.Grid.GridView + + oControl.ForceInitialize() + + oView = oControl.MainView + oView.OptionsView.ShowGroupPanel = False + oControl.ContextMenu = Nothing + oView.Appearance.EvenRow.BackColor = Color.LightBlue + + oView.OptionsBehavior.Editable = False + oView.OptionsBehavior.ReadOnly = True + + oView.OptionsBehavior.AllowAddRows = False + oView.OptionsBehavior.AllowDeleteRows = False + oView.OptionsView.NewItemRowPosition = NewItemRowPosition.None + oView.OptionsView.ShowAutoFilterRow = True + oView.OptionsView.EnableAppearanceEvenRow = True + + oControl.Size = New Size(DEFAULT_WIDTH_GRIDVIEW, DEFAULT_HEIGHT_GRIDVIEW) + + ' Add and configure navigator to delete rows + oControl.UseEmbeddedNavigator = True + With oControl.EmbeddedNavigator.Buttons + .CancelEdit.Visible = False + .Edit.Visible = False + .EndEdit.Visible = False + .First.Visible = False + .Last.Visible = False + .Next.Visible = False + .NextPage.Visible = False + .PrevPage.Visible = False + .Prev.Visible = False + + End With + + GridTables.Clear() + Dim oSQL As String = pAttributeRow.Item("SOURCE_SQL").ToString + oSQL = oSQL.Replace("@USER_LANGUAGE", My.Application.User.Language) + oSQL = oSQL.Replace("@pUSER_ID", My.Application.User.UserId) + Dim oDTSource As DataTable = My.Database_IDB.GetDatatable(oSQL) + + + Dim oColumn = New DataColumn() With { + .DataType = GetType(String), + .ColumnName = pAttributeRow.Item("ATTRIBUTE_TITLE").ToString, + .Caption = pAttributeRow.Item("ATTRIBUTE_TITLE").ToString, + .ReadOnly = False + } + + oDatatable.Columns.Add(oColumn) + + 'For Each oRow As DataRow In DT_MY_COLUMNS.Rows + ' ' Create Columns in Datatable + + ' Dim oColumn = New DataColumn() With { + ' .DataType = GetType(String), + ' .ColumnName = pAttributeRow.Item("ATTRIBUTE_TITLE").ToString, + ' .Caption = pAttributeRow.Item("ATTRIBUTE_TITLE").ToString, + ' .ReadOnly = False + ' } + + ' oDatatable.Columns.Add(oColumn) + + ' ' Fetch and cache Combobox results + ' Dim oConnectionId As Integer = NotNull(oRow.Item("CONNECTION_ID"), 0) + ' Dim oSqlCommand As String = NotNull(oRow.Item("SQL_COMMAND"), "") + + ' If Not clsPatterns.HasComplexPatterns(oSqlCommand) Then + ' If oConnectionId > 0 And oSqlCommand <> "" Then + ' Try + ' Dim oComboboxDataTable As DataTable = ClassDatabase.Return_Datatable_ConId(oSqlCommand, oConnectionId) + ' GridTables.Add(oRow.Item("SPALTENNAME"), oComboboxDataTable) + ' Catch ex As Exception + ' Logger.Warn("Could not load data for column {0} in control {1}", oRow.Item("SPALTENNAME"), oControl.Name) + ' Logger.Error(ex) + ' End Try + ' End If + ' End If + + + 'Next + + + oView.PopulateColumns() + oControl.DataSource = oDTSource + + + oControl.RefreshDataSource() + oControl.ForceInitialize() + Try + oView.Columns(0).Caption = "Existierende Werte" + Catch ex As Exception + + End Try + + + 'AddHandler oView.CellValueChanged, AddressOf HandleCellValueChanged + 'AddHandler oView.CustomRowCellEdit, Sub(sender As Object, e As CustomRowCellEditEventArgs) + ' For Each oRow As DataRow In DT_MY_COLUMNS.Rows + ' If oRow.Item("SPALTENNAME") = e.Column.FieldName Then + + ' If GridTables.ContainsKey(e.Column.FieldName) Then + ' Dim oComboboxDataTable As DataTable = GridTables.Item(e.Column.FieldName) + ' Dim oEditor As New RepositoryItemComboBox() + ' Dim oItems As New List(Of String) + + ' AddHandler oEditor.Validating, Sub(_sender As ComboBoxEdit, _e As CancelEventArgs) + ' If oItems.Contains(_sender.EditValue) Then + ' _e.Cancel = False + ' Else + ' _e.Cancel = True + ' End If + + ' End Sub + ' For Each oRow2 As DataRow In oComboboxDataTable.Rows + ' Dim oValue = oRow2.Item(0) + + ' Try + ' oValue &= $" | {oRow2.Item(1)}" + ' Catch ex As Exception + ' End Try + + ' oEditor.Items.Add(oValue) + ' oItems.Add(oValue) + ' Next + + ' e.RepositoryItem = oEditor + + ' End If + ' End If + ' Next + ' End Sub + + 'AddHandler oView.CellValueChanged, Sub(sender As Object, e As CellValueChangedEventArgs) + ' Dim oValue = e.Value.ToString() + ' Dim oView2 As GridView = TryCast(sender, GridView) + + + ' If oValue.Contains(" | ") Then + ' oValue = oValue.Split(" | ").ToList().Item(0) + ' oView2.SetRowCellValue(e.RowHandle, e.Column, oValue) + ' End If + ' End Sub + + Return oControl + End Function + Public Function AddCheckBox(indexname As String, y As Integer, vorbelegung As String, caption As String) + Try + Dim value As Boolean = False + Dim chk As New CheckBox + chk.Name = "chk" & indexname + chk.Size = New Size(100, 27) + chk.Location = New Point(11, y) + chk.Tag = New ControlMeta() With { + .IndexName = indexname, + .IndexType = "BOOLEAN" + } + + If caption <> "" Then + chk.Text = caption + chk.Size = New Size(CInt(caption.Length * 15), 27) + End If + + If Boolean.TryParse(vorbelegung, value) = False Then + If vorbelegung = "1" Or vorbelegung = "0" Then + chk.Checked = CBool(vorbelegung) + Else + chk.Checked = False + End If + Else + chk.Checked = value + End If + + AddHandler chk.CheckedChanged, AddressOf Checkbox_CheckedChanged + + Return chk + Catch ex As Exception + Logger.Info("Unhandled Exception in AddCheckBox: " & ex.Message) + Logger.Error(ex.Message) + Return Nothing + End Try + End Function + + Public Sub Checkbox_CheckedChanged(sender As CheckBox, e As EventArgs) + 'PrepareDependingControl(sender) + End Sub + + 'Public Function AddVorschlag_ComboBox(indexname As String, y As Integer, conid As Integer, sql_Vorschlag As String, Multiselect As Boolean, DataType As String, Optional Vorgabe As String = "", Optional AddNewValues As Boolean = False, Optional PreventDuplicateValues As Boolean = False, Optional SQLSuggestion As Boolean = False) As Control + ' Try + ' Dim oSql As String = sql_Vorschlag + ' Dim oConnectionString As String + ' Dim oControl As New DigitalData.Controls.LookupGrid.LookupControl2 With { + ' .Multiselect = Multiselect, + ' .AllowAddNewValues = AddNewValues, + ' .PreventDuplicates = PreventDuplicateValues, + ' .Location = New Point(11, y), + ' .Size = New Size(300, 27), + ' .Name = "cmbMulti" & indexname, + ' .Tag = New ControlMeta() With { + ' .IndexName = indexname, + ' .IndexType = DataType + ' } + ' } + ' oControl.Properties.AppearanceFocused.BackColor = Color.Lime + + ' If Not String.IsNullOrEmpty(Vorgabe) Then + ' Dim oDefaultValues As New List(Of String) + + ' If Vorgabe.Contains(",") Then + ' oDefaultValues = Vorgabe. + ' Split(",").ToList(). + ' Select(Function(item) item.Trim()). + ' ToList() + ' Else + ' oDefaultValues = Vorgabe. + ' Split(ClassConstants.VECTORSEPARATOR).ToList(). + ' Select(Function(item) item.Trim()). + ' ToList() + ' End If + ' oControl.SelectedValues = oDefaultValues + ' End If + + ' AddHandler oControl.SelectedValuesChanged, AddressOf Lookup_SelectedValuesChanged + + ' oConnectionString = ClassFormFunctions.GetConnectionString(conid) + + ' If oConnectionString IsNot Nothing And oSql.Length > 0 And SQLSuggestion = True Then + ' Logger.Debug("Connection String (redacted): [{0}]", oConnectionString.Substring(0, 30)) + + ' If ClassPatterns.HasComplexPatterns(oSql) Then + ' Logger.Debug(" >>sql enthält Platzhalter und wird erst während der Laufzeit gefüllt!", False) + ' Else + ' Dim oDatatable = ClassDatabase.Return_Datatable_Combined(oSql, oConnectionString, False) + ' oControl.DataSource = oDatatable + ' End If + ' Else + ' Logger.Warn("Connection String for control [{0}] is empty!", oControl.Name) + ' End If + + ' Return oControl + ' Catch ex As Exception + ' Logger.Info(" - Unvorhergesehener Unexpected error in AddVorschlag_ComboBox - Indexname: " & indexname & " - Fehler: " & vbNewLine & ex.Message) + ' Logger.Error(ex.Message) + ' MsgBox(ex.Message, MsgBoxStyle.Critical, "Unvorhergesehener Unexpected error in AddVorschlag_ComboBox:") + ' Return Nothing + ' End Try + 'End Function + + 'Private Sub Lookup_SelectedValuesChanged(sender As LookupControl2, SelectedValues As List(Of String)) + ' PrepareDependingControl(sender) + 'End Sub + + Function AddCombobox(indexname As String, y As Integer) + Dim cmb As New ComboBox + cmb.Name = "cmb" & indexname + cmb.AutoSize = True + cmb.Size = New Size(300, 27) + cmb.Location = New Point(11, y) + + cmb.Tag = New ControlMeta() With { + .IndexName = indexname + } + + + AddHandler cmb.SelectedIndexChanged, AddressOf OncmbSIndexChanged + AddHandler cmb.GotFocus, AddressOf OncmbGotFocus + AddHandler cmb.LostFocus, AddressOf OncmbLostFocus + AddHandler cmb.KeyDown, AddressOf OncmbKeyDown + Return cmb + End Function + + Public Sub OncmbKeyDown(sender As System.Object, e As System.EventArgs) + Dim cmb As ComboBox = sender + + ' Verhindert, dass Auswahlliste und Autocompleteliste übereinander liegen + If cmb.DroppedDown = True Then + cmb.DroppedDown = False + End If + End Sub + + Public Sub OncmbGotFocus(sender As System.Object, e As System.EventArgs) + Dim cmb As ComboBox = sender + cmb.BackColor = Color.Lime + End Sub + + Public Sub OncmbLostFocus(sender As System.Object, e As System.EventArgs) + Dim cmb As ComboBox = sender + cmb.BackColor = Color.White + End Sub + + Public Sub OncmbSIndexChanged(sender As System.Object, e As System.EventArgs) + If Form.FormLoaded = False Then + Exit Sub + End If + + Dim cmb As ComboBox = sender + If cmb.SelectedIndex <> -1 Then + If cmb.Text.Length > 15 Then + Dim g As Graphics = cmb.CreateGraphics + cmb.Width = g.MeasureString(cmb.Text, cmb.Font).Width + 30 + g.Dispose() + End If + ' Get_NextComboBoxResults(cmb) + + + SendKeys.Send("{TAB}") + End If + End Sub + + 'Private Sub Get_NextComboBoxResults(cmb As ComboBox) + ' Try + ' Dim indexname = cmb.Name.Replace("cmb", "") + ' Dim sql = "SELECT GUID,NAME,SQL_RESULT FROM TBDD_INDEX_MAN where SUGGESTION = 1 AND SQL_RESULT like '%@" & indexname & "%' and DOK_ID = " & CURRENT_DOKART_ID & " ORDER BY SEQUENCE" + ' Dim DT As DataTable = ClassDatabase.Return_Datatable(sql, True) + ' If Not IsNothing(DT) Then + ' If DT.Rows.Count > 0 Then + ' Dim cmbname = "cmb" & DT.Rows(0).Item("NAME") + ' Renew_ComboboxResults(DT.Rows(0).Item("GUID"), indexname, cmb.Text) + ' End If + + ' End If + ' Catch ex As Exception + ' MsgBox("Error in Get_NextComboBoxResults:" & vbNewLine & ex.Message, MsgBoxStyle.Critical) + ' End Try + 'End Sub + + 'Private Sub Renew_ComboboxResults(INDEX_GUID As Integer, SearchString As String, Resultvalue As String) + ' Try + ' Dim connectionString As String + ' Dim sqlCnn As SqlConnection + ' Dim sqlCmd As SqlCommand + ' Dim adapter As New SqlDataAdapter + + ' Dim oracleConn As OracleConnection + ' Dim oracleCmd As OracleCommand + ' Dim oracleadapter As New OracleDataAdapter + + ' Dim NewDataset As New DataSet + ' Dim i As Integer + + ' Dim DT_INDEX As DataTable = ClassDatabase.Return_Datatable("select * FROM TBDD_INDEX_MAN WHERE GUID = " & INDEX_GUID, True) + ' If IsNothing(DT_INDEX) Then + ' Exit Sub + ' End If + + ' Dim conid = DT_INDEX.Rows(0).Item("CONNECTION_ID") + ' Dim sql_result = DT_INDEX.Rows(0).Item("SQL_RESULT") + ' Dim NAME = DT_INDEX.Rows(0).Item("NAME") + ' If Not IsNothing(conid) And Not IsNothing(sql_result) And Not IsNothing(NAME) Then + ' For Each ctrl As Control In Me.Panel.Controls + ' If ctrl.Name = "cmb" & NAME.ToString Then + ' Dim cmb As ComboBox = ctrl + ' Dim sql As String = sql_result.ToString.ToUpper.Replace("@" & SearchString.ToUpper, Resultvalue) + + ' connectionString = ClassFormFunctions.GetConnectionString(conid) + ' If connectionString Is Nothing = False Then + ' 'SQL Befehl füllt die Auswahlliste + + ' If connectionString.Contains("Initial Catalog=") Then + ' sqlCnn = New SqlConnection(connectionString) + ' sqlCnn.Open() + ' sqlCmd = New SqlCommand(sql, sqlCnn) + ' adapter.SelectCommand = sqlCmd + ' adapter.Fill(NewDataset) + ' ElseIf connectionString.StartsWith("Data Source=") And connectionString.Contains("SERVICE_NAME") Then + ' oracleConn = New OracleConnection(connectionString) + ' ' Try + ' oracleConn.Open() + ' oracleCmd = New OracleCommand(sql, oracleConn) + ' oracleadapter.SelectCommand = oracleCmd + ' oracleadapter.Fill(NewDataset) + ' End If + ' If NewDataset.Tables(0).Rows.Count > 0 Then + ' cmb.Items.Clear() + ' 'Die Standargrösse definieren + ' Dim newWidth As Integer = 300 + ' For i = 0 To NewDataset.Tables(0).Rows.Count - 1 + ' 'MsgBox(NewDataset.Tables(0).Rows(i).Item(0)) + ' cmb.Items.Add(NewDataset.Tables(0).Rows(i).Item(0)) + ' Try + ' Dim text As String = NewDataset.Tables(0).Rows(i).Item(0) + ' If text.Length > 15 Then + ' Dim g As Graphics = cmb.CreateGraphics + ' If g.MeasureString(text, cmb.Font).Width + 30 > newWidth Then + ' newWidth = g.MeasureString(text, cmb.Font).Width + 30 + ' End If + ' g.Dispose() + ' End If + ' Catch ex As Exception + ' MsgBox(ex.Message, MsgBoxStyle.Critical, "Unexpected error in Anpassung Breite ComboBox:") + ' End Try + + ' Next + ' cmb.Size = New Size(newWidth, 27) + ' cmb.AutoCompleteSource = AutoCompleteSource.ListItems + ' cmb.AutoCompleteMode = AutoCompleteMode.Suggest + ' End If + ' If connectionString.Contains("Initial Catalog=") Then + ' Try + ' adapter.Dispose() + ' sqlCmd.Dispose() + ' sqlCnn.Close() + ' Catch ex As Exception + + ' End Try + ' Else + ' Try + ' oracleadapter.Dispose() + ' oracleCmd.Dispose() + ' oracleConn.Close() + ' Catch ex As Exception + + ' End Try + ' End If + ' End If + ' End If + ' Next + ' End If + ' Catch ex As Exception + ' Logger.Info(" - Unvorhergesehener Unexpected error in Renew_ComboboxResults - Fehler: " & vbNewLine & ex.Message) + ' Logger.Error(ex.Message) + ' MsgBox(ex.Message, MsgBoxStyle.Critical, "Unvorhergesehener Unexpected error in Renew_ComboboxResults:") + ' End Try + 'End Sub + + Public Function AddTextBox(pAttrName As String, y As Integer, text As String, pAttrDataType As String) As DevExpress.XtraEditors.TextEdit + Dim oEdit As New DevExpress.XtraEditors.TextEdit With { + .Name = "txt" & pAttrName, + .Size = New Size(260, 27), + .Location = New Point(11, y), + .Tag = New ControlMeta() With { + .IndexName = pAttrName, + .IndexType = pAttrDataType + } + } + + Select Case pAttrDataType + Case "INTEGER" + oEdit.Properties.Mask.MaskType = DevExpress.XtraEditors.Mask.MaskType.Numeric + oEdit.Properties.Mask.EditMask = "d" + Console.WriteLine() + End Select + + If text IsNot Nothing Then + oEdit.Text = text + oEdit.SelectAll() + End If + + AddHandler oEdit.GotFocus, AddressOf OnTextBoxFocus + AddHandler oEdit.LostFocus, AddressOf OnTextBoxLostFocus + AddHandler oEdit.KeyUp, AddressOf OnTextBoxKeyUp + AddHandler oEdit.TextChanged, AddressOf OnTextBoxTextChanged + + Return oEdit + End Function + + Public Sub OnTextBoxFocus(sender As System.Object, e As System.EventArgs) + Dim oTextbox As DevExpress.XtraEditors.TextEdit = sender + oTextbox.BackColor = Color.Lime + oTextbox.SelectAll() + End Sub + + Public Sub OnTextBoxTextChanged(sender As System.Object, e As System.EventArgs) + Dim oTextbox As DevExpress.XtraEditors.TextEdit = sender + Using oGraphics As Graphics = oTextbox.CreateGraphics() + oTextbox.Width = oGraphics.MeasureString(oTextbox.Text, oTextbox.Font).Width + 15 + End Using + End Sub + + Public Sub OnTextBoxLostFocus(sender As System.Object, e As System.EventArgs) + Dim oTextbox As DevExpress.XtraEditors.TextEdit = sender + oTextbox.BackColor = Color.White + End Sub + + Public Sub OnTextBoxKeyUp(sender As System.Object, e As System.Windows.Forms.KeyEventArgs) + Dim oTextbox As DevExpress.XtraEditors.TextEdit = sender + + If oTextbox.Text = String.Empty Then + Exit Sub + End If + + If e.KeyCode = Keys.Return Or e.KeyCode = Keys.Enter Or e.KeyCode = Keys.Tab Then + 'PrepareDependingControl(oTextbox) + End If + + If (e.KeyCode = Keys.Return) Then + SendKeys.Send("{TAB}") + End If + End Sub + + + Public Function AddDateTimePicker(indexname As String, y As Integer, DataType As String) As DevExpress.XtraEditors.DateEdit + Dim oPicker As New DevExpress.XtraEditors.DateEdit With { + .Name = "dtp" & indexname, + .Size = New Size(260, 27), + .Location = New Point(11, y), + .Tag = New ControlMeta() With { + .IndexName = indexname, + .IndexType = DataType + } + } + oPicker.Properties.AppearanceFocused.BackColor = Color.Lime + + Return oPicker + End Function + Sub OndtpChanged() + 'offen was hier zu tun ist + End Sub + + 'Private Sub PrepareDependingControl(Control As Control) + ' If TypeOf Control Is Label Then + ' Exit Sub + ' End If + + ' Try + ' Dim oMeta = DirectCast(Control.Tag, ClassControls.ControlMeta) + ' Dim oIndexName As String = oMeta.IndexName + ' Dim oSQL = $"SELECT * FROM TBDD_INDEX_MAN WHERE SQL_RESULT LIKE '%{oIndexName}%'" + ' Dim oDatatable As DataTable = ClassDatabase.Return_Datatable(oSQL) + + ' If Not IsNothing(oDatatable) Then + ' Logger.Debug("Found [{0}] depending controls for [{1}]", oDatatable.Rows.Count, Control.Name) + + ' For Each oRow As DataRow In oDatatable.Rows + ' Dim oControlName As String = NotNull(oRow.Item("NAME"), "") + ' Dim oConnectionId As Integer = NotNull(oRow.Item("CONNECTION_ID"), -1) + ' Dim oControlSql As String = NotNull(oRow.Item("SQL_RESULT"), "") + + ' If oConnectionId = -1 Or oControlSql = String.Empty Then + ' Logger.Warn("Missing SQL Query or ConnectionId for Control [{0}]! Continuing.", oControlName) + ' Continue For + ' End If + + ' oControlSql = ClassPatterns.ReplaceUserValues(oControlSql, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_LANGUAGE, USER_EMAIL, USER_ID, CURRENT_DOKART_ID) + ' oControlSql = ClassPatterns.ReplaceInternalValues(oControlSql) + ' oControlSql = ClassPatterns.ReplaceControlValues(oControlSql, Panel) + + + ' Logger.Debug("SQL After Preparing: [{0}]", oControlSql) + ' Logger.Debug("Setting new value for [{0}]", oControlName) + ' SetDependingControlResult(oControlName, oControlSql, oConnectionId) + ' Next + ' End If + ' Catch ex As Exception + ' Logger.Error(ex) + ' End Try + 'End Sub + + 'Private Sub SetDependingControlResult(IndexName As String, SqlCommand As String, SqlConnectionId As Integer) + ' Try + ' If SqlCommand Is Nothing OrElse SqlCommand = String.Empty Then + ' Logger.Warn("New Value for Index [{0}] could not be set. Supplied SQL is empty.") + ' Exit Sub + ' End If + + ' Dim oConnectionString = ClassFormFunctions.GetConnectionString(SqlConnectionId) + ' Dim oDatatable As DataTable = ClassDatabase.Return_Datatable_CS(SqlCommand, oConnectionString) + ' Dim oFoundControl As Control = Nothing + + ' For Each oControl As Control In Panel.Controls + ' If TypeOf oControl Is Label Then + ' Continue For + ' End If + + ' Dim oMeta = DirectCast(oControl.Tag, ClassControls.ControlMeta) + ' Dim oIndex As String = oMeta.IndexName + + ' If oIndex = IndexName Then + ' oFoundControl = oControl + ' Exit For + ' End If + ' Next + + ' If oFoundControl Is Nothing Then + ' Logger.Warn("Depending Control for Index [{0}] not found!", IndexName) + ' End If + + ' If oDatatable Is Nothing Then + ' Logger.Warn("Error in SQL Command: {0}", SqlCommand) + ' End If + + ' Select Case oFoundControl.GetType.Name + ' Case GetType(DevExpress.XtraEditors.TextEdit).Name + ' If oDatatable.Rows.Count > 0 Then + ' Dim oFirstRow As DataRow = oDatatable.Rows.Item(0) + + ' If oFirstRow.ItemArray.Length > 0 Then + ' Dim oValue = oFirstRow.Item(0).ToString() + + ' Logger.Debug("Setting Value for TextEdit [{0}]: [{1}]", oFoundControl.Name, oValue) + ' DirectCast(oFoundControl, DevExpress.XtraEditors.TextEdit).Text = oValue + ' End If + ' End If + ' Case GetType(LookupControl2).Name + ' Logger.Debug("Setting Value for LookupControl [{0}]: [{1}]", oFoundControl.Name, "DATATABLE") + ' DirectCast(oFoundControl, LookupControl2).DataSource = oDatatable + ' Case GetType(ComboBox).Name + ' Logger.Debug("Setting Value for Combobox [{0}]: [{1}]", oFoundControl.Name, "DATATABLE") + ' DirectCast(oFoundControl, ComboBox).DataSource = oDatatable + ' Case Else + ' Logger.Debug("Could not set depending control result for [{0}]", oFoundControl.GetType.Name) + ' End Select + ' Catch ex As Exception + ' Logger.Error(ex) + ' End Try + 'End Sub +End Class diff --git a/GUIs.ZooFlow/My Project/Resources.Designer.vb b/GUIs.ZooFlow/My Project/Resources.Designer.vb index 12a26232..3649f8b8 100644 --- a/GUIs.ZooFlow/My Project/Resources.Designer.vb +++ b/GUIs.ZooFlow/My Project/Resources.Designer.vb @@ -80,6 +80,16 @@ Namespace My.Resources End Get End Property + ''' + ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. + ''' + Friend ReadOnly Property Find_5650() As System.Drawing.Bitmap + Get + Dim obj As Object = ResourceManager.GetObject("Find_5650", resourceCulture) + Return CType(obj,System.Drawing.Bitmap) + End Get + End Property + ''' ''' Sucht eine lokalisierte Ressource vom Typ System.Drawing.Bitmap. ''' diff --git a/GUIs.ZooFlow/My Project/Resources.resx b/GUIs.ZooFlow/My Project/Resources.resx index ef521859..75aeebdb 100644 --- a/GUIs.ZooFlow/My Project/Resources.resx +++ b/GUIs.ZooFlow/My Project/Resources.resx @@ -121,22 +121,25 @@ ..\Resources\CW_GEFUNDEN_klein.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\CW_klein.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\ZOOFLOW_Home_klein_Eckig.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a ..\Resources\GLOBIX_GEFUNDEN_klein.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\GLOBIX_klein.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - ..\Resources\ZOOFLOW_Home_klein.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\CW_klein.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + + ..\Resources\GLOBIX_klein.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + ..\Resources\ZOOFLOW_Home_klein_Cropped.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a - - ..\Resources\ZOOFLOW_Home_klein_Eckig.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a + + ..\Resources\Find_5650.png;System.Drawing.Bitmap, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a \ No newline at end of file diff --git a/GUIs.ZooFlow/Resources/Find_5650.png b/GUIs.ZooFlow/Resources/Find_5650.png new file mode 100644 index 00000000..a007a651 Binary files /dev/null and b/GUIs.ZooFlow/Resources/Find_5650.png differ diff --git a/GUIs.ZooFlow/ZooFlow.vbproj b/GUIs.ZooFlow/ZooFlow.vbproj index 468f66dd..378790d4 100644 --- a/GUIs.ZooFlow/ZooFlow.vbproj +++ b/GUIs.ZooFlow/ZooFlow.vbproj @@ -88,6 +88,7 @@ + @@ -99,6 +100,12 @@ Form + + frmSearchStart.vb + + + Form + @@ -155,6 +162,9 @@ frmFlowForm_Test1.vb + + frmSearchStart.vb + frmSettings.vb @@ -234,6 +244,7 @@ + diff --git a/GUIs.ZooFlow/frmFlowForm.Designer.vb b/GUIs.ZooFlow/frmFlowForm.Designer.vb index be68d2f5..2c5fcaf8 100644 --- a/GUIs.ZooFlow/frmFlowForm.Designer.vb +++ b/GUIs.ZooFlow/frmFlowForm.Designer.vb @@ -37,9 +37,10 @@ Partial Class frmFlowForm ' 'SucheToolStripMenuItem ' + Me.SucheToolStripMenuItem.Image = Global.DigitalData.GUIs.ZooFlow.My.Resources.Resources.Find_5650 Me.SucheToolStripMenuItem.Name = "SucheToolStripMenuItem" - Me.SucheToolStripMenuItem.Size = New System.Drawing.Size(106, 22) - Me.SucheToolStripMenuItem.Text = "Suche" + Me.SucheToolStripMenuItem.Size = New System.Drawing.Size(180, 22) + Me.SucheToolStripMenuItem.Text = "Suchen" ' 'FlowFormTest1ToolStripMenuItem ' diff --git a/GUIs.ZooFlow/frmFlowForm.vb b/GUIs.ZooFlow/frmFlowForm.vb index b04e2715..5233cb0f 100644 --- a/GUIs.ZooFlow/frmFlowForm.vb +++ b/GUIs.ZooFlow/frmFlowForm.vb @@ -11,6 +11,9 @@ Public Class frmFlowForm Private ESCHitCount As Integer = 0 Private CurrentState As OnFlowFormStateChangedEvent.FlowFormState = OnFlowFormStateChangedEvent.FlowFormState.Default + Private DTIDB_SEARCHES As DataTable + Private IDBSearchActive As Boolean = False + Const WS_EX_LAYERED As Int32 = &H80000 Public Event ClipboardChanged As EventHandler(Of IDataObject) @@ -47,7 +50,7 @@ Public Class frmFlowForm AddHandler MouseClick, New MouseEventHandler(AddressOf Form_MouseClick) AddHandler MouseMove, New MouseEventHandler(AddressOf Form_MouseMove) - AddHandler KeyUp, New KeyEventHandler(AddressOf Form_KeyUp) + AddHandler KeyUp, AddressOf Form_KeyUp ' === Register As Event Listener === EventBus.Instance.Register(Me) @@ -59,6 +62,19 @@ Public Class frmFlowForm .Text = "yes" } Controls.Add(oButton) + + Dim oSQL = $"SELECT * FROM [dbo].[FNIDB_GET_SEARCH_PROFILES] ({My.Application.User.UserId},'{My.Application.User.Language}')" + Dim oDT As DataTable = My.Database_IDB.GetDatatable(oSQL) + SucheToolStripMenuItem.Visible = False + If Not IsNothing(oDT) Then + If oDT.Rows.Count > 0 Then + IDBSearchActive = True + DTIDB_SEARCHES = oDT + SucheToolStripMenuItem.Visible = True + End If + + End If + End Sub Private Sub frmFlowForm_Closed(sender As Object, e As EventArgs) Handles Me.Closed @@ -226,4 +242,15 @@ Public Class frmFlowForm Private Sub FlowFormTest1ToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles FlowFormTest1ToolStripMenuItem.Click frmFlowForm_Test1.Show() End Sub + + Private Sub ContextMenuStrip1_Opening(sender As Object, e As CancelEventArgs) Handles ContextMenuStrip1.Opening + + End Sub + + Private Sub SucheToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles SucheToolStripMenuItem.Click + Dim oForm As New frmSearchStart(DTIDB_SEARCHES) + oForm.Show() + + + End Sub End Class \ No newline at end of file diff --git a/GUIs.ZooFlow/frmSearchStart.Designer.vb b/GUIs.ZooFlow/frmSearchStart.Designer.vb new file mode 100644 index 00000000..befeb935 --- /dev/null +++ b/GUIs.ZooFlow/frmSearchStart.Designer.vb @@ -0,0 +1,267 @@ + _ +Partial Class frmSearchStart + Inherits System.Windows.Forms.Form + + 'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen. + _ + Protected Overrides Sub Dispose(ByVal disposing As Boolean) + Try + If disposing AndAlso components IsNot Nothing Then + components.Dispose() + End If + Finally + MyBase.Dispose(disposing) + End Try + End Sub + + 'Wird vom Windows Form-Designer benötigt. + Private components As System.ComponentModel.IContainer + + 'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich. + 'Das Bearbeiten ist mit dem Windows Form-Designer möglich. + 'Das Bearbeiten mit dem Code-Editor ist nicht möglich. + _ + Private Sub InitializeComponent() + Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmSearchStart)) + Dim WindowsUIButtonImageOptions1 As DevExpress.XtraBars.Docking2010.WindowsUIButtonImageOptions = New DevExpress.XtraBars.Docking2010.WindowsUIButtonImageOptions() + Dim WindowsUIButtonImageOptions2 As DevExpress.XtraBars.Docking2010.WindowsUIButtonImageOptions = New DevExpress.XtraBars.Docking2010.WindowsUIButtonImageOptions() + Me.RibbonControl1 = New DevExpress.XtraBars.Ribbon.RibbonControl() + Me.BarButtonItem1 = New DevExpress.XtraBars.BarButtonItem() + Me.BarButtonItem2 = New DevExpress.XtraBars.BarButtonItem() + Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage() + Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup() + Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar() + Me.Panel1 = New System.Windows.Forms.Panel() + Me.cmbProfile = New System.Windows.Forms.ComboBox() + Me.Label1 = New System.Windows.Forms.Label() + Me.WindowsUIButtonPanel1 = New DevExpress.XtraBars.Docking2010.WindowsUIButtonPanel() + Me.XtraTabControl1 = New DevExpress.XtraTab.XtraTabControl() + Me.XtraTabPage1 = New DevExpress.XtraTab.XtraTabPage() + Me.XtraTabPage2 = New DevExpress.XtraTab.XtraTabPage() + Me.XtraTabPage3 = New DevExpress.XtraTab.XtraTabPage() + Me.XtraTabPage4 = New DevExpress.XtraTab.XtraTabPage() + Me.XtraTabPage5 = New DevExpress.XtraTab.XtraTabPage() + Me.XtraTabPage6 = New DevExpress.XtraTab.XtraTabPage() + Me.XtraTabPage7 = New DevExpress.XtraTab.XtraTabPage() + Me.XtraTabPage8 = New DevExpress.XtraTab.XtraTabPage() + Me.XtraTabPage9 = New DevExpress.XtraTab.XtraTabPage() + Me.XtraTabPage10 = New DevExpress.XtraTab.XtraTabPage() + CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.Panel1.SuspendLayout() + CType(Me.XtraTabControl1, System.ComponentModel.ISupportInitialize).BeginInit() + Me.XtraTabControl1.SuspendLayout() + Me.SuspendLayout() + ' + 'RibbonControl1 + ' + Me.RibbonControl1.ExpandCollapseItem.Id = 0 + Me.RibbonControl1.Items.AddRange(New DevExpress.XtraBars.BarItem() {Me.RibbonControl1.ExpandCollapseItem, Me.RibbonControl1.SearchEditItem, Me.BarButtonItem1, Me.BarButtonItem2}) + Me.RibbonControl1.Location = New System.Drawing.Point(0, 0) + Me.RibbonControl1.MaxItemId = 3 + 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(874, 150) + Me.RibbonControl1.StatusBar = Me.RibbonStatusBar1 + ' + 'BarButtonItem1 + ' + Me.BarButtonItem1.Caption = "Neue Suche" + Me.BarButtonItem1.Id = 1 + Me.BarButtonItem1.ImageOptions.Image = CType(resources.GetObject("BarButtonItem1.ImageOptions.Image"), System.Drawing.Image) + Me.BarButtonItem1.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonItem1.ImageOptions.LargeImage"), System.Drawing.Image) + Me.BarButtonItem1.Name = "BarButtonItem1" + ' + 'BarButtonItem2 + ' + Me.BarButtonItem2.Caption = "Suche speichern" + Me.BarButtonItem2.Id = 2 + Me.BarButtonItem2.ImageOptions.Image = CType(resources.GetObject("BarButtonItem2.ImageOptions.Image"), System.Drawing.Image) + Me.BarButtonItem2.ImageOptions.LargeImage = CType(resources.GetObject("BarButtonItem2.ImageOptions.LargeImage"), System.Drawing.Image) + Me.BarButtonItem2.Name = "BarButtonItem2" + ' + 'RibbonPage1 + ' + Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup1}) + Me.RibbonPage1.Name = "RibbonPage1" + Me.RibbonPage1.Text = "Start" + ' + 'RibbonPageGroup1 + ' + Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonItem1) + Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonItem2) + Me.RibbonPageGroup1.Name = "RibbonPageGroup1" + Me.RibbonPageGroup1.Text = "RibbonPageGroup1" + ' + 'RibbonStatusBar1 + ' + Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 574) + Me.RibbonStatusBar1.Name = "RibbonStatusBar1" + Me.RibbonStatusBar1.Ribbon = Me.RibbonControl1 + Me.RibbonStatusBar1.Size = New System.Drawing.Size(874, 27) + ' + 'Panel1 + ' + Me.Panel1.BackColor = System.Drawing.Color.Transparent + Me.Panel1.Controls.Add(Me.cmbProfile) + Me.Panel1.Controls.Add(Me.Label1) + Me.Panel1.Dock = System.Windows.Forms.DockStyle.Top + Me.Panel1.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Panel1.Location = New System.Drawing.Point(0, 150) + Me.Panel1.Margin = New System.Windows.Forms.Padding(2, 3, 2, 3) + Me.Panel1.Name = "Panel1" + Me.Panel1.Size = New System.Drawing.Size(874, 57) + Me.Panel1.TabIndex = 5 + ' + 'cmbProfile + ' + Me.cmbProfile.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Left) _ + Or System.Windows.Forms.AnchorStyles.Right), System.Windows.Forms.AnchorStyles) + Me.cmbProfile.DisplayMember = "DOKART_ID" + Me.cmbProfile.FormattingEnabled = True + Me.cmbProfile.Location = New System.Drawing.Point(3, 23) + Me.cmbProfile.Name = "cmbProfile" + Me.cmbProfile.Size = New System.Drawing.Size(869, 21) + Me.cmbProfile.TabIndex = 2 + Me.cmbProfile.ValueMember = "DOKART_ID" + ' + 'Label1 + ' + Me.Label1.AutoSize = True + Me.Label1.ImeMode = System.Windows.Forms.ImeMode.NoControl + Me.Label1.Location = New System.Drawing.Point(3, 3) + Me.Label1.Name = "Label1" + Me.Label1.Size = New System.Drawing.Size(131, 13) + Me.Label1.TabIndex = 1 + Me.Label1.Text = "Bitte wählen Sie ein Profil:" + ' + 'WindowsUIButtonPanel1 + ' + WindowsUIButtonImageOptions1.Image = CType(resources.GetObject("WindowsUIButtonImageOptions1.Image"), System.Drawing.Image) + WindowsUIButtonImageOptions2.Image = CType(resources.GetObject("WindowsUIButtonImageOptions2.Image"), System.Drawing.Image) + Me.WindowsUIButtonPanel1.Buttons.AddRange(New DevExpress.XtraEditors.ButtonPanel.IBaseButton() {New DevExpress.XtraBars.Docking2010.WindowsUIButton("Suche ausführen", True, WindowsUIButtonImageOptions1, DevExpress.XtraBars.Docking2010.ButtonStyle.PushButton, "", -1, True, Nothing, True, False, True, "Run", -1, False), New DevExpress.XtraBars.Docking2010.WindowsUIButton("Button", True, WindowsUIButtonImageOptions2, DevExpress.XtraBars.Docking2010.ButtonStyle.PushButton, "", -1, True, Nothing, True, False, True, Nothing, -1, False)}) + Me.WindowsUIButtonPanel1.Dock = System.Windows.Forms.DockStyle.Bottom + Me.WindowsUIButtonPanel1.Location = New System.Drawing.Point(0, 506) + Me.WindowsUIButtonPanel1.Name = "WindowsUIButtonPanel1" + Me.WindowsUIButtonPanel1.Size = New System.Drawing.Size(874, 68) + Me.WindowsUIButtonPanel1.TabIndex = 9 + Me.WindowsUIButtonPanel1.Text = "WindowsUIButtonPanel1" + ' + 'XtraTabControl1 + ' + Me.XtraTabControl1.Dock = System.Windows.Forms.DockStyle.Fill + Me.XtraTabControl1.HeaderLocation = DevExpress.XtraTab.TabHeaderLocation.Bottom + Me.XtraTabControl1.Location = New System.Drawing.Point(0, 207) + Me.XtraTabControl1.Name = "XtraTabControl1" + Me.XtraTabControl1.SelectedTabPage = Me.XtraTabPage1 + Me.XtraTabControl1.Size = New System.Drawing.Size(874, 299) + Me.XtraTabControl1.TabIndex = 12 + Me.XtraTabControl1.TabPages.AddRange(New DevExpress.XtraTab.XtraTabPage() {Me.XtraTabPage1, Me.XtraTabPage2, Me.XtraTabPage3, Me.XtraTabPage4, Me.XtraTabPage5, Me.XtraTabPage6, Me.XtraTabPage7, Me.XtraTabPage8, Me.XtraTabPage9, Me.XtraTabPage10}) + ' + 'XtraTabPage1 + ' + Me.XtraTabPage1.Name = "XtraTabPage1" + Me.XtraTabPage1.Size = New System.Drawing.Size(872, 274) + Me.XtraTabPage1.Text = "Search#1" + ' + 'XtraTabPage2 + ' + Me.XtraTabPage2.Name = "XtraTabPage2" + Me.XtraTabPage2.Size = New System.Drawing.Size(872, 274) + Me.XtraTabPage2.Text = "Search#2" + ' + 'XtraTabPage3 + ' + Me.XtraTabPage3.Name = "XtraTabPage3" + Me.XtraTabPage3.Size = New System.Drawing.Size(714, 274) + Me.XtraTabPage3.Text = "Search#3" + ' + 'XtraTabPage4 + ' + Me.XtraTabPage4.Name = "XtraTabPage4" + Me.XtraTabPage4.Size = New System.Drawing.Size(714, 274) + Me.XtraTabPage4.Text = "Search#4" + ' + 'XtraTabPage5 + ' + Me.XtraTabPage5.Name = "XtraTabPage5" + Me.XtraTabPage5.Size = New System.Drawing.Size(714, 274) + Me.XtraTabPage5.Text = "Search#5" + ' + 'XtraTabPage6 + ' + Me.XtraTabPage6.Name = "XtraTabPage6" + Me.XtraTabPage6.Size = New System.Drawing.Size(714, 274) + Me.XtraTabPage6.Text = "Search#6" + ' + 'XtraTabPage7 + ' + Me.XtraTabPage7.Name = "XtraTabPage7" + Me.XtraTabPage7.Size = New System.Drawing.Size(714, 274) + Me.XtraTabPage7.Text = "Search#7" + ' + 'XtraTabPage8 + ' + Me.XtraTabPage8.Name = "XtraTabPage8" + Me.XtraTabPage8.Size = New System.Drawing.Size(714, 274) + Me.XtraTabPage8.Text = "Search#8" + ' + 'XtraTabPage9 + ' + Me.XtraTabPage9.Name = "XtraTabPage9" + Me.XtraTabPage9.Size = New System.Drawing.Size(872, 274) + Me.XtraTabPage9.Text = "Search#9" + ' + 'XtraTabPage10 + ' + Me.XtraTabPage10.Name = "XtraTabPage10" + Me.XtraTabPage10.Size = New System.Drawing.Size(872, 274) + Me.XtraTabPage10.Text = "Search#10" + ' + 'frmSearchStart + ' + Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!) + Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font + Me.ClientSize = New System.Drawing.Size(874, 601) + Me.Controls.Add(Me.XtraTabControl1) + Me.Controls.Add(Me.WindowsUIButtonPanel1) + Me.Controls.Add(Me.Panel1) + Me.Controls.Add(Me.RibbonStatusBar1) + Me.Controls.Add(Me.RibbonControl1) + Me.Font = New System.Drawing.Font("Tahoma", 8.25!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte)) + Me.Icon = CType(resources.GetObject("$this.Icon"), System.Drawing.Icon) + Me.Name = "frmSearchStart" + Me.Text = "frmSearchStart" + Me.TopMost = True + CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).EndInit() + Me.Panel1.ResumeLayout(False) + Me.Panel1.PerformLayout() + CType(Me.XtraTabControl1, System.ComponentModel.ISupportInitialize).EndInit() + Me.XtraTabControl1.ResumeLayout(False) + Me.ResumeLayout(False) + Me.PerformLayout() + + End Sub + + 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 RibbonStatusBar1 As DevExpress.XtraBars.Ribbon.RibbonStatusBar + Friend WithEvents Panel1 As Panel + Friend WithEvents cmbProfile As ComboBox + Friend WithEvents Label1 As Label + Friend WithEvents WindowsUIButtonPanel1 As DevExpress.XtraBars.Docking2010.WindowsUIButtonPanel + Friend WithEvents BarButtonItem1 As DevExpress.XtraBars.BarButtonItem + Friend WithEvents BarButtonItem2 As DevExpress.XtraBars.BarButtonItem + Friend WithEvents XtraTabControl1 As DevExpress.XtraTab.XtraTabControl + Friend WithEvents XtraTabPage1 As DevExpress.XtraTab.XtraTabPage + Friend WithEvents XtraTabPage2 As DevExpress.XtraTab.XtraTabPage + Friend WithEvents XtraTabPage3 As DevExpress.XtraTab.XtraTabPage + Friend WithEvents XtraTabPage4 As DevExpress.XtraTab.XtraTabPage + Friend WithEvents XtraTabPage5 As DevExpress.XtraTab.XtraTabPage + Friend WithEvents XtraTabPage6 As DevExpress.XtraTab.XtraTabPage + Friend WithEvents XtraTabPage7 As DevExpress.XtraTab.XtraTabPage + Friend WithEvents XtraTabPage8 As DevExpress.XtraTab.XtraTabPage + Friend WithEvents XtraTabPage9 As DevExpress.XtraTab.XtraTabPage + Friend WithEvents XtraTabPage10 As DevExpress.XtraTab.XtraTabPage +End Class diff --git a/GUIs.ZooFlow/frmSearchStart.resx b/GUIs.ZooFlow/frmSearchStart.resx new file mode 100644 index 00000000..2dbd68ce --- /dev/null +++ b/GUIs.ZooFlow/frmSearchStart.resx @@ -0,0 +1,288 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAbdEVYdFRpdGxlAEFkZDtQbHVzO0JhcnM7UmliYm9u + O5UGMy8AAACYSURBVDhPpZPRDYAgDEQZxUH4ZjqZwmFYh8QBtI/YBEzBmH68RHvXwwKGGOObJGShCPWB + Z2pog79/2YRdOIVrAhoevEMAhUOwmizwthANINUyrqCnBTDX7LN1AUujJyGyOZYBVgGQEdlhS4SvgILI + MfVFbZrReysFd4B7BPcmuo8RXBcJ3FdZQ0idjQNoeFoz9AHKj985hhsZRV9cJDh5ygAAAABJRU5ErkJg + gg== + + + + + iVBORw0KGgoAAAANSUhEUgAAACAAAAAgCAYAAABzenr0AAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAAbdEVYdFRpdGxlAEFkZDtQbHVzO0JhcnM7UmliYm9u + O5UGMy8AAAFASURBVFhHzZexEcIwDEWZgIpxUtDRMQMDMEi2oaVkCzo6Vkhr9DjsI+Gb2AEiinfnC9L3 + x5blZBFCcEU+nJM0aJpmjKWxNVrjaFyM7gFjnvEbMcQqjUSNgZWxN05GKIRYcshVmsUGNsbBUJOUQC4a + L9olBnbG2VDCNaCBVk9/zAAJV0MJTgGtnol3Bliyb/zzIWim7cgZoGhK93xtxDzGKmYI2vfCzBmgclWi + IuZEVIyCOaQBzm7NUZtqgDmWygANRCXkmGoAtsoAXUwF5/jEQKsM0EpVcI5PDByVAfq5Cn6u9lpyp+Oi + DHCpqOChaC1Ks/tLA+5b4F6E7sfQvRG5t2JwvYzA/ToG1xeSiOsrWYSEb6wEGr3JocQAsGSlNaEgNy37 + M6UGgKKhcmuOKLHk3AtOUWMg8ttPMy/kw/kIixsQHeuLUpLJLQAAAABJRU5ErkJggg== + + + + + iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAALGPC/xhBQAAABl0RVh0U29m + dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAASdEVYdFRpdGxlAFNhdmUgQXM7U2F2ZZVZ6PsAAAB0 + SURBVDhPzYxRDoAgDEO9ERfYvf3ibLgSqtsUxA8SSR5rm62biGSlAH3wVVtCnuGJOwiLp3/KydoCw3wB + UO1m0+8Fs6wpsCHQrBLzyHQB9wwJ+acCqxtpWBC8jksTZ3rEAoIM387FHlzmIUHmghH/KLgj5QBN+0Aj + rFmxMgAAAABJRU5ErkJggg== + + + + + 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 + On2zdlYAAAAASUVORK5CYII= + + + + + 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 + AAAgAAAAAQAEAAAAAACAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAIAAAIAAAACAgACAAAAAgACAAICA + AACAgIAAwMDAAAAA/wAA/wAAAP//AP8AAAD/AP8A//8AAP///wAAAAAAAAAAAAAP8AAAAAAAAPd/AAAA + AAAPd3fwAAAAAA93d38AAAAAAPd3d///8AAAD3d3d3d/8AAA93d3d3fwAAAPd3//d38AAA93///3fwAA + D3f///d/AAAPd///938AAA93f/93fwAAAPd3d3fwAAAA/3d3f/AAAAAA///wAP//AADn/wAAw/8AAIH/ + AACA/wAAwAcAAOABAADwAQAA+AAAAPgAAAD4AAAA+AAAAPgAAAD8AQAA/AEAAP8HAAAoAAAAEAAAACAA + AAABAAgAAAAAAAABAAAAAAAAAAAAAAABAAAAAQAAAAAAAEJCQgBNTU0AWFhYAGRkZABubW4AeXl5AIaG + hgDg4OAA5uTlAOvr6wDx7/AA9vb2APr6+gAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA////AAAAAAAAAAAAAAAAAAAAAAAAAAAMDAAAAAAA + AAAAAAAAAAAKBAcMAAAAAAAAAAAAAAAMBAEBBwwAAAAAAAAAAAAADAQBAQEHDAAAAAAAAAAAAAAKBAEB + AQcMDAwMDAAAAAAAAAoEAQEBBAEBAQYIDQAAAAAACgQBAQEBAQEBAggAAAAAAAAKAwEGCAsIBQEGDAAA + AAAADAEBCAsLCwgBAQwAAAAAAAgBAQsLCwsLAwEMAAAAAAAMAQEICwsLCAEBDAAAAAAADAYBBggLCAUB + BgwAAAAAAAAIAgEBAQEBAggAAAAAAAAADQgGAQEBBggNAAAAAAAAAAAADAwMDAwAAAD//wAA5/8AAMP/ + AACB/wAAgP8AAMAHAADgAQAA8AEAAPgAAAD4AAAA+AAAAPgAAAD4AAAA/AEAAPwBAAD/BwAAKAAAABAA + AAAgAAAAAQAgAAAAAABABAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPb29jD29vYwAAAAAAAA + AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPb29jD29vbv9vb27/b2 + 9jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPb29jDq6urvZGRk/4aG + hv/29vbv9vb2MAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPb29jD29vbvZGRk/0JC + Qv9CQkL/hoaG//b29u/29vYwAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAD29vYw9vb272Rk + ZP9CQkL/QkJC/0JCQv+Ghob/9vb27/b29jAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAPb2 + 9jDq6urvZGRk/0JCQv9CQkL/QkJC/4aGhv/29vb/9vb2//b29v/29vb/9vb2z/b29lAAAAAAAAAAAAAA + AAAAAAAA9vb2MOrq6u9kZGT/QkJC/0JCQv9CQkL/ZGRk/0JCQv9CQkL/QkJC/3p6ev/g4OD/9vb2gAAA + AAAAAAAAAAAAAAAAAAD29vYw6urq72RkZP9CQkL/QkJC/0JCQv9CQkL/QkJC/0JCQv9CQkL/TU1N/+Dg + 4P/29vZQAAAAAAAAAAAAAAAAAAAAAPb29jDr6+v/WVlZ/0JCQv95eHj/5uTl//Hv8P/m5OX/bm1u/0JC + Qv96enr/9vb2zwAAAAAAAAAAAAAAAAAAAAAAAAAA9vb2/0JCQv9CQkL/5uTl//Hv8P/x7/D/8e/w/+bk + 5f9CQkL/QkJC//b29v8AAAAAAAAAAAAAAAAAAAAAAAAAAODg4P9CQkL/QkJC//Hv8P/x7/D/8e/w//Hv + 8P/x7/D/WFhY/0JCQv/29vb/AAAAAAAAAAAAAAAAAAAAAAAAAAD29vb/QkJC/0JCQv/m5OX/8e/w//Hv + 8P/x7/D/5uTl/0JCQv9CQkL/9vb2/wAAAAAAAAAAAAAAAAAAAAAAAAAA9vb2z3p6ev9CQkL/eXh4/+bk + 5f/x7/D/5uTl/25tbv9CQkL/enp6//b29s8AAAAAAAAAAAAAAAAAAAAAAAAAAPb29lDg4OD/TU1N/0JC + Qv9CQkL/QkJC/0JCQv9CQkL/TU1N/+Dg4P/29vZQAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA9vb2gODg + 4P96enr/QkJC/0JCQv9CQkL/enp6/+Dg4P/29vaAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA + AAD29vZQ9vb2z/b29v/29vb/9vb2//b29s/29vZQAAAAAAAAAADn/wAAw/8AAIH/AAAA/wAAAH8AAIAD + AADAAQAA4AAAAPAAAAD4AAAA+AAAAPgAAAD4AAAA+AAAAPwBAAD+AwAA + + + \ No newline at end of file diff --git a/GUIs.ZooFlow/frmSearchStart.vb b/GUIs.ZooFlow/frmSearchStart.vb new file mode 100644 index 00000000..c7e72b9b --- /dev/null +++ b/GUIs.ZooFlow/frmSearchStart.vb @@ -0,0 +1,125 @@ +Imports DigitalData.Modules.Logging +Imports DevExpress.XtraTab +Public Class frmSearchStart + Private Logger As Logger + Private DTSearchProfiles As DataTable + Private TabSelected As XtraTabPage + Private PSEARCH_ID As Integer = 0 + Public FormLoaded As Boolean = False + Private Const DEFAULT_X As Integer = 10 + Private Const DEFAULT_Y As Integer = 10 + + Public Sub New(pDTSearchProfiles As DataTable) + ' Dieser Aufruf ist für den Designer erforderlich. + InitializeComponent() + + ' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu. + DTSearchProfiles = pDTSearchProfiles + Logger = My.LogConfig.GetLogger() + End Sub + + Private Sub WindowsUIButtonPanel1_Click(sender As Object, e As EventArgs) Handles WindowsUIButtonPanel1.Click + + End Sub + + Private Sub frmSearchStart_Load(sender As Object, e As EventArgs) Handles Me.Load + Try + Me.Panel1.Visible = False + For Each oTab As XtraTabPage In XtraTabControl1.TabPages + oTab.PageVisible = False + Next + If DTSearchProfiles.Rows.Count > 1 Then + cmbProfile.DataSource = DTSearchProfiles + cmbProfile.ValueMember = DTSearchProfiles.Columns("SEARCH_PROFILE_ID").ColumnName + cmbProfile.DisplayMember = DTSearchProfiles.Columns("TITLE").ColumnName + cmbProfile.AutoCompleteMode = AutoCompleteMode.Suggest + cmbProfile.AutoCompleteSource = AutoCompleteSource.ListItems + cmbProfile.SelectedIndex = -1 + Me.Panel1.Visible = True + Else + TabSelected = XtraTabControl1.TabPages(0) + TabSelected.PageVisible = True + PSEARCH_ID = DTSearchProfiles.Rows(0).Item("SEARCH_PROFILE_ID") + TabSelected.Text = DTSearchProfiles.Rows(0).Item("TITLE") + Load_Search_Attributes() + End If + + Catch ex As Exception + Logger.Error(ex.Message) + MsgBox(ex.Message, MsgBoxStyle.Critical, "Unexpected error while loading ProfileSearches:") + End Try + FormLoaded = True + End Sub + Sub Load_Search_Attributes() + Dim oSQL = $"SELECT * FROM VWIDB_SEARCH_PROFILE_ATTRIBUTES WHERE SEARCH_PROFIL_ID = {PSEARCH_ID} ORDER BY [SEQUENCE]" + Dim oDT As DataTable = My.Database_IDB.GetDatatable(oSQL) + Dim oXPosition As Integer = 10 + Dim oYPosition As Integer = 10 + Dim oControlXPosition As Integer = 33 + Dim oControlCount As Integer = 1 + Dim oControlRow As Integer = 0 + Dim oControls As New ClassControlCreator(TabSelected, Me) + For Each oAttributeRow As DataRow In oDT.Rows + Dim oAttriName As String = oAttributeRow.Item("ATTRIBUTE_TITLE").ToString + Dim oAttriID As String = oAttributeRow.Item("ATTRIBUTE_ID").ToString + Dim oAttriTYPE As String = oAttributeRow.Item("ATTRIBUTE_TYPE").ToString + If oControlCount = 1 Or oControlCount = 3 Or oControlCount = 5 Then + 'linke Spalte + oControlRow += 1 + End If + Select Case oControlCount + Case 2 + oXPosition = oXPosition + 150 + 20 + End Select + Select Case oControlRow + Case 1 + oYPosition = DEFAULT_Y + If oControlCount > 1 Then + oXPosition = DEFAULT_X + 170 + End If + Case 2 + oYPosition = DEFAULT_Y + 150 + 20 + If oControlCount = 4 Then + oXPosition = DEFAULT_X + 170 + End If + + End Select + + addLabel(oAttriName, oXPosition, oYPosition) + + + + + Dim oMyControl As Control + Select Case oAttriTYPE + Case "VARCHAR" + oMyControl = oControls.CreateExistingGridControl(oAttributeRow, oXPosition, oYPosition + 25) + Case "DATE" + End Select + TabSelected.Controls.Add(oMyControl) + + + oControlCount += 1 + Next + End Sub + Sub addLabel(pAttrName As String, pXPos As Integer, ylbl As Integer) + Dim lbl As New Label With { + .Name = "lbl" & pAttrName, + .AutoSize = True, + .Text = pAttrName, + .Location = New Point(pXPos, ylbl) + } + + TabSelected.Controls.Add(lbl) + End Sub + Private Sub WindowsUIButtonPanel1_ButtonClick(sender As Object, e As DevExpress.XtraBars.Docking2010.ButtonEventArgs) Handles WindowsUIButtonPanel1.ButtonClick + Select Case e.Button.Properties.Tag.ToString + Case "Run" + MsgBox("Start Search") + End Select + End Sub + + Private Sub XtraTabControl1_SelectedPageChanged(sender As Object, e As DevExpress.XtraTab.TabPageChangedEventArgs) Handles XtraTabControl1.SelectedPageChanged + TabSelected = XtraTabControl1.SelectedTabPage + End Sub +End Class \ No newline at end of file