diff --git a/Global_Indexer/Global_Indexer.vbproj b/Global_Indexer/Global_Indexer.vbproj index dd73195..38c23fb 100644 --- a/Global_Indexer/Global_Indexer.vbproj +++ b/Global_Indexer/Global_Indexer.vbproj @@ -154,6 +154,9 @@ False ..\..\DDMonorepo\Controls.DocumentViewer\bin\Debug\DigitalData.Controls.DocumentViewer.dll + + ..\..\DDMonorepo\Controls.LookupGrid\bin\Debug\DigitalData.Controls.LookupGrid.dll + ..\..\DDMonorepo\Modules.Config\bin\Debug\DigitalData.Modules.Config.dll diff --git a/Global_Indexer/frmIndex.vb b/Global_Indexer/frmIndex.vb index 6058670..d358b27 100644 --- a/Global_Indexer/frmIndex.vb +++ b/Global_Indexer/frmIndex.vb @@ -531,140 +531,153 @@ Public Class frmIndex Else Dim table As DataTable = NewDataset.Tables(0) - If table.Rows.Count > 0 Then - Dim columnCount = 1 + 'If table.Rows.Count > 0 Then + ' Dim columnCount = 1 - ' Alle bis auf die erste Spalte der Tabelle entfernen - While (table.Columns.Count > columnCount) - table.Columns.RemoveAt(columnCount) - End While - 'table.Columns.Item(0).ReadOnly = True + ' ' Alle bis auf die erste Spalte der Tabelle entfernen + ' While (table.Columns.Count > columnCount) + ' table.Columns.RemoveAt(columnCount) + ' End While + ' 'table.Columns.Item(0).ReadOnly = True - If Multiselect Then - ' Neue Spalte für Selektion einfügen - Dim selectedColumn As New DataColumn() With { - .ColumnName = "SELECTED", - .DataType = GetType(Boolean), - .DefaultValue = False - } - table.Columns.Add(selectedColumn) - ' Spalte an erste Stelle verschieben - selectedColumn.SetOrdinal(0) - End If + ' If Multiselect Then + ' ' Neue Spalte für Selektion einfügen + ' Dim selectedColumn As New DataColumn() With { + ' .ColumnName = "SELECTED", + ' .DataType = GetType(Boolean), + ' .DefaultValue = False + ' } + ' table.Columns.Add(selectedColumn) + ' ' Spalte an erste Stelle verschieben + ' selectedColumn.SetOrdinal(0) + ' End If - Const LOOKUP_NO_RECORDS As String = "Keine Datensätze ausgewählt" - Const LOOKUP_N_RECORDS As String = "{0} Datensätze ausgewählt" - Const LOOKUP_CONTROL_HEIGHT As Integer = 24 + ' Const LOOKUP_NO_RECORDS As String = "Keine Datensätze ausgewählt" + ' Const LOOKUP_N_RECORDS As String = "{0} Datensätze ausgewählt" + ' Const LOOKUP_CONTROL_HEIGHT As Integer = 24 - Dim lookupButton As New Button() - lookupButton.Name = "btnLookup" & indexname - lookupButton.Location = New Point(311, y - 1) - lookupButton.Size = New Size(LOOKUP_CONTROL_HEIGHT, LOOKUP_CONTROL_HEIGHT) - lookupButton.Image = My.Resources.gear_32xSM + ' Dim lookupButton As New Button() + ' lookupButton.Name = "btnLookup" & indexname + ' lookupButton.Location = New Point(311, y - 1) + ' lookupButton.Size = New Size(LOOKUP_CONTROL_HEIGHT, LOOKUP_CONTROL_HEIGHT) + ' lookupButton.Image = My.Resources.gear_32xSM - pnlIndex.Controls.Add(lookupButton) + ' pnlIndex.Controls.Add(lookupButton) - If Multiselect Then - Dim listbox As New ListBox() - Dim gridLookup As New DevExpress.XtraEditors.GridLookUpEdit() + ' If Multiselect Then + ' Dim listbox As New ListBox() + ' Dim gridLookup As New DevExpress.XtraEditors.GridLookUpEdit() - gridLookup.Name = "cmbMulti" & indexname - gridLookup.Font = New Font(gridLookup.Font.FontFamily, 10) - gridLookup.Location = New Point(11, y) - gridLookup.Size = New Size(300, LOOKUP_CONTROL_HEIGHT) + ' gridLookup.Name = "cmbMulti" & indexname + ' gridLookup.Font = New Font(gridLookup.Font.FontFamily, 10) + ' gridLookup.Location = New Point(11, y) + ' gridLookup.Size = New Size(300, LOOKUP_CONTROL_HEIGHT) - ' TODO: Hier noch die Vorbelegung für Vektor Indexe einfügen - gridLookup.Properties.PopupFormSize = New Size(gridLookup.Properties.PopupFormSize.Width, 100) - gridLookup.Properties.NullText = LOOKUP_NO_RECORDS - If Vorgabe.Length > 0 Then - gridLookup.Properties.DataSource = New List(Of String) From {Vorgabe} - gridLookup.Properties.NullText = String.Format(LOOKUP_N_RECORDS, 1) - Else - gridLookup.Properties.DataSource = Nothing - gridLookup.Properties.NullText = LOOKUP_NO_RECORDS - End If + ' ' TODO: Hier noch die Vorbelegung für Vektor Indexe einfügen + ' gridLookup.Properties.PopupFormSize = New Size(gridLookup.Properties.PopupFormSize.Width, 100) + ' gridLookup.Properties.NullText = LOOKUP_NO_RECORDS + ' If Vorgabe.Length > 0 Then + ' gridLookup.Properties.DataSource = New List(Of String) From {Vorgabe} + ' gridLookup.Properties.NullText = String.Format(LOOKUP_N_RECORDS, 1) + ' Else + ' gridLookup.Properties.DataSource = Nothing + ' gridLookup.Properties.NullText = LOOKUP_NO_RECORDS + ' End If - ' Da das gridLookup ein Readonly Control sein soll, - ' sich aber trotzdem öffnen lassen soll, müssen wir so das setzen eines neuen Werts verhindern - AddHandler gridLookup.EditValueChanging, Sub(sender As Object, e As ChangingEventArgs) - e.Cancel = True - End Sub + ' ' Da das gridLookup ein Readonly Control sein soll, + ' ' sich aber trotzdem öffnen lassen soll, müssen wir so das setzen eines neuen Werts verhindern + ' AddHandler gridLookup.EditValueChanging, Sub(sender As Object, e As ChangingEventArgs) + ' e.Cancel = True + ' End Sub - With gridLookup.Properties.View - .OptionsBehavior.ReadOnly = True - .OptionsBehavior.Editable = False - .OptionsView.ShowColumnHeaders = False - End With + ' With gridLookup.Properties.View + ' .OptionsBehavior.ReadOnly = True + ' .OptionsBehavior.Editable = False + ' .OptionsView.ShowColumnHeaders = False + ' End With - AddHandler lookupButton.Click, Sub() - Dim frm As New frmLookupGrid() - frm.MultiSelect = True - frm.DataSource = table - frm.AddNewValues = AddNewValues - frm.PreventDuplicates = PreventDuplicateValues - frm.StartPosition = FormStartPosition.Manual - frm.SelectedValues = gridLookup.Properties.DataSource - frm.Location = pnlIndex.PointToScreen(New Point(340, y)) + ' AddHandler lookupButton.Click, Sub() + ' Dim frm As New frmLookupGrid() + ' frm.MultiSelect = True + ' frm.DataSource = table + ' frm.AddNewValues = AddNewValues + ' frm.PreventDuplicates = PreventDuplicateValues + ' frm.StartPosition = FormStartPosition.Manual + ' frm.SelectedValues = gridLookup.Properties.DataSource + ' frm.Location = pnlIndex.PointToScreen(New Point(340, y)) - Dim result = frm.ShowDialog() + ' Dim result = frm.ShowDialog() - If result = DialogResult.OK Then - Dim values As List(Of String) = frm.SelectedValues - gridLookup.Properties.DataSource = values - gridLookup.Properties.NullText = IIf(values.Count = 0, LOOKUP_NO_RECORDS, String.Format(LOOKUP_N_RECORDS, values.Count)) - End If - End Sub + ' If result = DialogResult.OK Then + ' Dim values As List(Of String) = frm.SelectedValues + ' gridLookup.Properties.DataSource = values + ' gridLookup.Properties.NullText = IIf(values.Count = 0, LOOKUP_NO_RECORDS, String.Format(LOOKUP_N_RECORDS, values.Count)) + ' End If + ' End Sub - pnlIndex.Controls.Add(gridLookup) - Else - Dim textBox As New TextBox() + ' pnlIndex.Controls.Add(gridLookup) + ' Else + ' Dim textBox As New TextBox() - textBox.Name = "cmbSingle" & indexname - textBox.Font = New Font(textBox.Font.FontFamily, 9) - textBox.Location = New Point(11, y) - textBox.Size = New Size(300, LOOKUP_CONTROL_HEIGHT) - textBox.ReadOnly = True - textBox.Text = Vorgabe + ' textBox.Name = "cmbSingle" & indexname + ' textBox.Font = New Font(textBox.Font.FontFamily, 9) + ' textBox.Location = New Point(11, y) + ' textBox.Size = New Size(300, LOOKUP_CONTROL_HEIGHT) + ' textBox.ReadOnly = True + ' textBox.Text = Vorgabe - AddHandler lookupButton.Click, Sub() - Dim frm As New frmLookupGrid() - frm.FormBorderStyle = FormBorderStyle.SizableToolWindow - frm.MultiSelect = False - frm.DataSource = table - frm.AddNewValues = AddNewValues - frm.StartPosition = FormStartPosition.Manual - frm.SelectedValues = New List(Of String) From {textBox.Text} - frm.Location = pnlIndex.PointToScreen(New Point(340, y)) + ' AddHandler lookupButton.Click, Sub() + ' Dim frm As New frmLookupGrid() + ' frm.FormBorderStyle = FormBorderStyle.SizableToolWindow + ' frm.MultiSelect = False + ' frm.DataSource = table + ' frm.AddNewValues = AddNewValues + ' frm.StartPosition = FormStartPosition.Manual + ' frm.SelectedValues = New List(Of String) From {textBox.Text} + ' frm.Location = pnlIndex.PointToScreen(New Point(340, y)) - Dim result = frm.ShowDialog() + ' Dim result = frm.ShowDialog() - If result = DialogResult.OK Then - Dim value = frm.SelectedValues.FirstOrDefault() - textBox.Text = value - End If - End Sub + ' If result = DialogResult.OK Then + ' Dim value = frm.SelectedValues.FirstOrDefault() + ' textBox.Text = value + ' End If + ' End Sub - pnlIndex.Controls.Add(textBox) - End If + ' pnlIndex.Controls.Add(textBox) + ' End If - ' Für ergebnisse die kleiner/gleich MAX_COMBOBOX_ITEMS sind - ' die normale ComboBox verwenden - ' 'Die Standardcombobox anlegen - ' newCMB = addCombobox(indexname, y) - ' newCMB.DataSource = table - ' newCMB.DisplayMember = table.Columns(0).ColumnName - ' newCMB.AutoCompleteSource = AutoCompleteSource.ListItems - ' newCMB.AutoCompleteMode = AutoCompleteMode.Suggest - ' newCMB.DropDownHeight = (newCMB.ItemHeight + 0.2) * 25 - ' If Vorgabe <> "" Then - ' newCMB.SelectedIndex = newCMB.FindStringExact(Vorgabe) - ' newCMB.Text = Vorgabe - ' Get_NextComboBoxResults(newCMB) - ' End If - Else + ' ' Für ergebnisse die kleiner/gleich MAX_COMBOBOX_ITEMS sind + ' ' die normale ComboBox verwenden + ' ' 'Die Standardcombobox anlegen + ' ' newCMB = addCombobox(indexname, y) + ' ' newCMB.DataSource = table + ' ' newCMB.DisplayMember = table.Columns(0).ColumnName + ' ' newCMB.AutoCompleteSource = AutoCompleteSource.ListItems + ' ' newCMB.AutoCompleteMode = AutoCompleteMode.Suggest + ' ' newCMB.DropDownHeight = (newCMB.ItemHeight + 0.2) * 25 + ' ' If Vorgabe <> "" Then + ' ' newCMB.SelectedIndex = newCMB.FindStringExact(Vorgabe) + ' ' newCMB.Text = Vorgabe + ' ' Get_NextComboBoxResults(newCMB) + ' ' End If + 'Else + + 'End If + + Dim oControl As New DigitalData.Controls.LookupGrid.LookupControl2 With { + .DataSource = table, + .MultiSelect = Multiselect, + .AllowAddNewValues = AddNewValues, + .PreventDuplicates = PreventDuplicateValues, + .Location = New Point(11, y), + .Size = New Size(300, 27), + .Name = "cmbMulti" & indexname + } + + pnlIndex.Controls.Add(oControl) - End If If connectionString.Contains("Initial Catalog=") Then Try adapter.Dispose() @@ -928,41 +941,27 @@ Public Class frmIndex End If End If End If + If ctrl.Name.StartsWith("cmbMulti") Then - Dim cmbMulti As DevExpress.XtraEditors.GridLookUpEdit = ctrl - Dim values As List(Of String) = cmbMulti.Properties.DataSource + Dim oLookup = DirectCast(ctrl, DigitalData.Controls.LookupGrid.LookupControl2) + Dim values As List(Of String) = oLookup.SelectedValues If values.Count = 0 Then - Dim optional_index As Boolean = ClassDatabase.Execute_Scalar("SELECT OPTIONAL FROM TBDD_INDEX_MAN WHERE DOK_ID = " & dokartid & " AND NAME = '" & Replace(cmbMulti.Name, "cmbMulti", "") & "'", MyConnectionString, True) + Dim optional_index As Boolean = ClassDatabase.Execute_Scalar("SELECT OPTIONAL FROM TBDD_INDEX_MAN WHERE DOK_ID = " & dokartid & " AND NAME = '" & Replace(oLookup.Name, "cmbMulti", "") & "'", MyConnectionString, True) If optional_index = False Then MsgBox("Bitte wählen Sie einen Wert aus der Combobox.", MsgBoxStyle.Exclamation) - cmbMulti.Focus() + oLookup.Focus() Return False Else - Indexwert_Postprocessing(Replace(cmbMulti.Name, "cmbMulti", ""), "") + Indexwert_Postprocessing(Replace(oLookup.Name, "cmbMulti", ""), "") result = True End If Else Dim vectorValue = String.Join(ClassConstants.VECTORSEPARATOR, values) - Indexwert_Postprocessing(Replace(cmbMulti.Name, "cmbMulti", ""), vectorValue) + Indexwert_Postprocessing(Replace(oLookup.Name, "cmbMulti", ""), vectorValue) + result = True End If - - 'If cmbMulti.Text = "" Then - ' Dim optional_index As Boolean = ClassDatabase.Execute_Scalar("SELECT OPTIONAL FROM TBDD_INDEX_MAN WHERE DOK_ID = " & dokartid & " AND NAME = '" & Replace(cmbMulti.Name, "cmbMulti", "") & "'", MyConnectionString, True) - - ' If optional_index = False Then - ' MsgBox("Bitte wählen Sie einen Wert aus der Combobox.", MsgBoxStyle.Exclamation) - ' cmbMulti.Focus() - ' Return False - ' Else - ' Indexwert_Postprocessing(Replace(cmbMulti.Name, "cmbMulti", ""), "") - ' result = True - ' End If - 'Else - ' Indexwert_Postprocessing(Replace(cmbMulti.Name, "cmbMulti", ""), cmbMulti.Text) - ' result = True - 'End If ElseIf ctrl.Name.StartsWith("cmbSingle") Then Dim cmbSingle As TextBox = ctrl diff --git a/SetupWix/Product.wxs b/SetupWix/Product.wxs index fa46e76..74ffc27 100644 --- a/SetupWix/Product.wxs +++ b/SetupWix/Product.wxs @@ -114,6 +114,7 @@ +