From f24d8ba4cb5c88595352d5808a4ed92bb3f4741a Mon Sep 17 00:00:00 2001 From: Jonathan Jenne Date: Fri, 23 Jun 2017 16:11:10 +0200 Subject: [PATCH] jj 23.06 --- .../ClassControlBuilder.vb | 18 +++++-- .../ClassControlCommands.vb | 54 +++++++++---------- .../ClassControlCommandsUI.vb | 1 + .../ClassControlProperties.vb | 12 +++++ .../Strings/ControlProperties.Designer.vb | 9 ++++ .../Strings/ControlProperties.en.resx | 3 ++ .../Strings/ControlProperties.resx | 3 ++ app/DD-Record-Organizer/frmLevel_Designer.vb | 4 +- 8 files changed, 71 insertions(+), 33 deletions(-) diff --git a/app/DD-Record-Organizer/ClassControlBuilder.vb b/app/DD-Record-Organizer/ClassControlBuilder.vb index 3ef0283..c119ab8 100644 --- a/app/DD-Record-Organizer/ClassControlBuilder.vb +++ b/app/DD-Record-Organizer/ClassControlBuilder.vb @@ -1380,9 +1380,6 @@ Public Class ClassControlBuilder Try Dim control As Label = New Label Dim defaultSize As Size = New Size(200, 27) - If id = 735 Then - Dim i = "Obacht" - End If Dim metadata As New ClassControlMetadata() metadata.Id = id metadata.Name = name @@ -1468,6 +1465,7 @@ Public Class ClassControlBuilder read_only As Boolean, required As Boolean, format As String, + autoSuggest As Boolean, _new As Boolean, Optional parent As GroupBox = Nothing, Optional _designMode As Boolean = False) @@ -1495,6 +1493,20 @@ Public Class ClassControlBuilder 'Console.WriteLine("setting tabindex of control " & name & " to " & tabindex) + If autoSuggest = True Then + control.AutoCompleteMode = AutoCompleteMode.Suggest + control.AutoCompleteSource = AutoCompleteSource.CustomSource + + Dim suggestSource As New AutoCompleteStringCollection() + Dim dt As DataTable = ClassDatabase.Return_Datatable($"SELECT DISTINCT VALUE FROM VWPMO_VALUES WHERE CONTROL_ID = {id}") + + For Each row As DataRow In dt.Rows + suggestSource.Add(row.Item("VALUE")) + Next + + control.AutoCompleteCustomSource = suggestSource + End If + If multiline = True Then control.Multiline = True control.AcceptsReturn = True diff --git a/app/DD-Record-Organizer/ClassControlCommands.vb b/app/DD-Record-Organizer/ClassControlCommands.vb index ce6be79..2fb929b 100644 --- a/app/DD-Record-Organizer/ClassControlCommands.vb +++ b/app/DD-Record-Organizer/ClassControlCommands.vb @@ -196,9 +196,9 @@ End Function Public Shared Function UpdateControl(control As Control, properties As Object) - ' Try - ' Nach Typ den Update Befehl anpassen - Dim type As String = control.GetType.Name + Try + ' Nach Typ den Update Befehl anpassen + Dim type As String = control.GetType.Name Dim SQL As String Dim NAME As String @@ -208,7 +208,7 @@ Dim CHANGED_WHO As String = USER_USERNAME Dim COL_NAME As String Dim SQLCommand As String - Dim EnabledWhen As String + Dim SQL_ENABLED_WHEN As String Dim MULTILINE As Integer Dim MASTER_DATA_ID As Integer Dim DEFAULTVALUE As String @@ -217,6 +217,8 @@ Dim STATIC_LIST As String Dim VISIBLE As Integer Dim TREE_VIEW As Integer + Dim AUTO_SUGGEST As Integer + ' So sollte diese Funktion später mal aussehen :( 'Select Case type @@ -242,6 +244,12 @@ MULTILINE = 0 End If + If propExists(properties, "AutoSuggest") Then + AUTO_SUGGEST = BoolToInt(properties.AutoSuggest) + Else + AUTO_SUGGEST = 0 + End If + If propExists(properties, "ColumnTitle") Then COL_NAME = properties.ColumnTitle Else @@ -307,12 +315,12 @@ If propExists(properties, "EnabledWhen") Then Dim value As SQLValue = DirectCast(properties.EnabledWhen, SQLValue) - EnabledWhen = value.Value - If EnabledWhen.Contains("'") Then - EnabledWhen = EnabledWhen.Replace("'", "''") + SQL_ENABLED_WHEN = value.Value + If SQL_ENABLED_WHEN.Contains("'") Then + SQL_ENABLED_WHEN = SQL_ENABLED_WHEN.Replace("'", "''") End If Else - EnabledWhen = String.Empty + SQL_ENABLED_WHEN = String.Empty End If If propExists(properties, "StaticList") Then @@ -333,33 +341,21 @@ CURRENT_CONTROL_ID = properties.ID End If - SQL = String.Format( - "UPDATE TBPMO_CONTROL SET REQUIRED = {0}, READ_ONLY = {1}, SHOW_COLUMN = {2}, FORMAT_TYPE = '{3}', DEFAULT_VALUE = '{4}', " & - "NAME = '{5}', SQL_COMMAND_1 = '{6}', CHANGED_WHO = '{7}', COL_NAME = '{8}', MULTILINE = {9}, MASTER_DATA_ID = {10}, " & - "STATIC_LIST = '{11}', SQL_COMMAND_2 = '{12}', VISIBLE = {13}, TREE_VIEW = {14}, SELECT_ONLY = {15} " & - "WHERE GUID = {16}", - REQUIRED, READ_ONLY, SHOW_COLUMN, FORMAT_TYPE, DEFAULTVALUE, - NAME, SQLCommand, CHANGED_WHO, COL_NAME, MULTILINE, MASTER_DATA_ID, - STATIC_LIST, EnabledWhen, VISIBLE, TREE_VIEW, SELECT_ONLY, - CURRENT_CONTROL_ID - ) - - 'SQL = "UPDATE TBPMO_CONTROL SET REQUIRED = " & REQUIRED & ", READ_ONLY = " & READ_ONLY & ", SHOW_COLUMN = " & SHOW_COLUMN & _ - ' ", FORMAT_TYPE = '" & FORMAT_TYPE & "', DEFAULT_VALUE = '" & DEFAULTVALUE & "', NAME = '" & NAME & "', SQL_COMMAND_1 = '" & SQLCommand & _ - ' "', CHANGED_WHO = '" & CHANGED_WHO & "', COL_NAME = '" & COL_NAME & "', MULTILINE = " & MULTILINE & ", MASTER_DATA_ID = " & MASTER_DATA_ID & _ - ' ", STATIC_LIST = '" & STATIC_LIST & "', SQL_COMMAND_2 = '" & EnabledWhen & "', VISIBLE = " & VISIBLE & ", TREE_VIEW = " & TREE_VIEW & _ - ' " WHERE GUID = " & CURRENT_CONTROL_ID + SQL = $"UPDATE TBPMO_CONTROL SET REQUIRED = {REQUIRED}, READ_ONLY = {READ_ONLY}, SHOW_COLUMN = {SHOW_COLUMN}, FORMAT_TYPE = '{FORMAT_TYPE}', DEFAULT_VALUE = '{DEFAULTVALUE}', + NAME = '{NAME}', SQL_COMMAND_1 = '{SQLCommand}', CHANGED_WHO = '{CHANGED_WHO}', COL_NAME = '{COL_NAME}', MULTILINE = {MULTILINE}, MASTER_DATA_ID = {MASTER_DATA_ID}, + STATIC_LIST = '{STATIC_LIST}', SQL_COMMAND_2 = '{SQL_ENABLED_WHEN}', VISIBLE = {VISIBLE}, TREE_VIEW = {TREE_VIEW}, SELECT_ONLY = {SELECT_ONLY}, AUTO_SUGGEST = {AUTO_SUGGEST} + WHERE GUID = {CURRENT_CONTROL_ID}" If ClassDatabase.Execute_non_Query(SQL) = True Then Return UpdateControlScreen(control, properties) Else Throw New Exception() End If - 'Catch ex As Exception - ' ClassLogger.Add("Unexpected Error in UpdateControl: " & ex.Message, True) - ' MsgBox("Unexpected Error in UpdateControl:" + vbNewLine + ex.Message, MsgBoxStyle.Critical) - ' Return False - 'End Try + Catch ex As Exception + ClassLogger.Add("Unexpected Error in UpdateControl: " & ex.Message, True) + MsgBox("Unexpected Error in UpdateControl:" + vbNewLine + ex.Message, MsgBoxStyle.Critical) + Return False + End Try End Function Public Shared Function UpdateControlScreen(control As Control, properties As Object) diff --git a/app/DD-Record-Organizer/ClassControlCommandsUI.vb b/app/DD-Record-Organizer/ClassControlCommandsUI.vb index b59aeb0..a40c17e 100644 --- a/app/DD-Record-Organizer/ClassControlCommandsUI.vb +++ b/app/DD-Record-Organizer/ClassControlCommandsUI.vb @@ -93,6 +93,7 @@ Public Class ClassControlCommandsUI dr.Item("CONTROL_READ_ONLY"), dr.Item("CONTROL_REQUIRED"), dr.Item("CONTROL_FORMAT_TYPE"), + dr.Item("CONTROL_AUTO_SUGGEST"), False, parent) control = "Text - " & dr.Item("CONTROL_ID") diff --git a/app/DD-Record-Organizer/ClassControlProperties.vb b/app/DD-Record-Organizer/ClassControlProperties.vb index e653a00..e799d07 100644 --- a/app/DD-Record-Organizer/ClassControlProperties.vb +++ b/app/DD-Record-Organizer/ClassControlProperties.vb @@ -332,6 +332,7 @@ Module ClassControlProperties Inherits InputControlProperties Private _multiline As Boolean + Private _autosuggest As Boolean Private _format As String @@ -355,6 +356,17 @@ Module ClassControlProperties _multiline = value End Set End Property + + + + Public Property AutoSuggest() As Boolean + Get + Return _autosuggest + End Get + Set(value As Boolean) + _autosuggest = value + End Set + End Property End Class Public Class ComboBoxProperties Inherits InputControlProperties diff --git a/app/DD-Record-Organizer/Strings/ControlProperties.Designer.vb b/app/DD-Record-Organizer/Strings/ControlProperties.Designer.vb index 8effc8c..edcfa62 100644 --- a/app/DD-Record-Organizer/Strings/ControlProperties.Designer.vb +++ b/app/DD-Record-Organizer/Strings/ControlProperties.Designer.vb @@ -145,6 +145,15 @@ Namespace My.Resources End Get End Property + ''' + ''' Sucht eine lokalisierte Zeichenfolge, die Schlägt bereits eingegebene Einträge bei der der Eingabe vor. ähnelt. + ''' + Friend Shared ReadOnly Property desc_autosuggest() As String + Get + Return ResourceManager.GetString("desc_autosuggest", resourceCulture) + End Get + End Property + ''' ''' Sucht eine lokalisierte Zeichenfolge, die Gibt die Hintergrundfarbe des Elements an. ähnelt. ''' diff --git a/app/DD-Record-Organizer/Strings/ControlProperties.en.resx b/app/DD-Record-Organizer/Strings/ControlProperties.en.resx index 74339f8..b4e9d0e 100644 --- a/app/DD-Record-Organizer/Strings/ControlProperties.en.resx +++ b/app/DD-Record-Organizer/Strings/ControlProperties.en.resx @@ -144,6 +144,9 @@ View Configuration + + Suggests already entered entries + The element's background color. diff --git a/app/DD-Record-Organizer/Strings/ControlProperties.resx b/app/DD-Record-Organizer/Strings/ControlProperties.resx index e4a5fb0..130f1f6 100644 --- a/app/DD-Record-Organizer/Strings/ControlProperties.resx +++ b/app/DD-Record-Organizer/Strings/ControlProperties.resx @@ -144,6 +144,9 @@ Ansichts Einstellungen + + Schlägt bereits eingegebene Einträge bei der der Eingabe vor. + Gibt die Hintergrundfarbe des Elements an. diff --git a/app/DD-Record-Organizer/frmLevel_Designer.vb b/app/DD-Record-Organizer/frmLevel_Designer.vb index 064504a..f126277 100644 --- a/app/DD-Record-Organizer/frmLevel_Designer.vb +++ b/app/DD-Record-Organizer/frmLevel_Designer.vb @@ -51,7 +51,7 @@ ' Aktuelles Control in die Datenbank speichern ClassControlCommands.InsertControl(DesignerCtrlBuilder.CurrentControl) Case "txt" - DesignerCtrlBuilder.AddTextBox(0, "txt" & random, 0, 0, def_font_family, def_font_color, def_font_size, def_font_style, 0, True, 0, 0, False, False, False, "String", True, Parent) + DesignerCtrlBuilder.AddTextBox(0, "txt" & random, 0, 0, def_font_family, def_font_color, def_font_size, def_font_style, 0, True, 0, 0, False, False, False, "String", False, True, Parent) ' Aktuelles Control in die Datenbank speichern ClassControlCommands.InsertControl(DesignerCtrlBuilder.CurrentControl) Case "cmb" @@ -263,6 +263,7 @@ dr.Item("CONTROL_READ_ONLY"), dr.Item("CONTROL_REQUIRED"), dr.Item("CONTROL_FORMAT_TYPE"), + dr.Item("CONTROL_AUTO_SUGGEST"), False, parent, True) @@ -751,6 +752,7 @@ props.SQLCommand = New SQLValue(NotNull(r.Item("CONTROL_SQLCOMMAND_1"), "")) props.EnabledWhen = New SQLValue(r.Item("CONTROL_SQLCOMMAND_2").ToString()) props.TreeView = CBool(r.Item("CONTROL_TREE_VIEW")) + props.AutoSuggest = CBool(r.Item("CONTROL_AUTO_SUGGEST")) Case "Combobox" props.ControlType = "ComboBox"