From 72d2f25bcb089a8a32fab2454f6d7299aa12797a Mon Sep 17 00:00:00 2001 From: JenneJ Date: Tue, 8 Mar 2016 11:01:16 +0100 Subject: [PATCH 1/2] clean up sql connection property --- app/DD-Record-Organiser/ClassControlProperties.vb | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/app/DD-Record-Organiser/ClassControlProperties.vb b/app/DD-Record-Organiser/ClassControlProperties.vb index 48a5b49..9889890 100644 --- a/app/DD-Record-Organiser/ClassControlProperties.vb +++ b/app/DD-Record-Organiser/ClassControlProperties.vb @@ -97,7 +97,6 @@ Module ClassControlProperties Private _required As Boolean = False Private _read_only As Boolean = False ' Database Configurations - Private _sql_connection As String = "" Private _sql_command As String = "" ' Font Configurations Private _font As Font @@ -136,17 +135,6 @@ Module ClassControlProperties End Set End Property - ' - ' - 'Public Property SQLConnection() As SQLValue - ' Get - ' Return New SQLValue(_sql_connection) - ' End Get - ' Set(value As SQLValue) - ' _sql_connection = value.Value - ' End Set - 'End Property - Public Property SQLCommand() As SQLValue From 9e9c1ee150dc491a4c23689ac5ed94201adb1790 Mon Sep 17 00:00:00 2001 From: JenneJ Date: Tue, 8 Mar 2016 15:45:44 +0100 Subject: [PATCH 2/2] =?UTF-8?q?jj=2008.03.2016=20control=20abh=C3=A4ngigke?= =?UTF-8?q?iten?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ClassControlBuilder.vb | 50 +++++++++++++++++++ app/DD-Record-Organiser/ClassControlValues.vb | 4 +- app/DD-Record-Organiser/frmForm_Input.vb | 4 ++ 3 files changed, 56 insertions(+), 2 deletions(-) diff --git a/app/DD-Record-Organiser/ClassControlBuilder.vb b/app/DD-Record-Organiser/ClassControlBuilder.vb index fc0237e..d56501c 100644 --- a/app/DD-Record-Organiser/ClassControlBuilder.vb +++ b/app/DD-Record-Organiser/ClassControlBuilder.vb @@ -78,6 +78,55 @@ Public Class ClassControlBuilder Dim combo As ComboBox = sender combo.BackColor = Color.White End Sub + + Public Sub OnComboBoxValueChanged(sender As Object, ByVal e As EventArgs) + Try + Dim control As ComboBox = DirectCast(sender, ComboBox) + Dim controlId As Integer = DirectCast(control.Tag, ClassControlMetadata).Id + Dim SQL As String = String.Format("SELECT GUID, SQL_COMMAND_1 FROM TBPMO_CONTROL WHERE SQL_COMMAND_1 LIKE '%@{0}@%'", controlId) + Dim value As String = control.SelectedValue + Dim datatable As DataTable = ClassDatabase.Return_Datatable(SQL) + + If datatable.Rows.Count = 0 Then + Exit Sub + End If + + Dim sqlcommand As String = datatable.Rows(0).Item("SQL_COMMAND_1") + + If IsNothing(sqlcommand) Then + Exit Sub + End If + + If String.IsNullOrEmpty(value) Then + Exit Sub + End If + + + + Dim regex As New System.Text.RegularExpressions.Regex("(@(\d+)@)") + Dim match As System.Text.RegularExpressions.Match = regex.Match(sqlcommand) + + If match.Success Then + ' DependingControlId bezeichnet das Control, das die Abhängigkeit enthält + Dim dependingControlId As Integer = datatable.Rows(0).Item("GUID") + Dim panel As Panel = DirectCast(control.Parent, Panel) + ' Über die Id das Control finden + Dim dependingControl As ComboBox = Panel.Controls.OfType(Of ComboBox)().Where(Function(c As ComboBox) + Return DirectCast(c.Tag, ClassControlMetadata).Id = dependingControlId + End Function).SingleOrDefault() + + sqlcommand = sqlcommand.Replace(match.Groups(1).Value, value) + Console.WriteLine("Executing SQL_COMMAND: {0}", sqlcommand) + Dim dt As DataTable = ClassDatabase.Return_Datatable(sqlcommand) + ControlLoader.Combobox.SetDataSource(dependingControl, dt) + End If + + Console.WriteLine("value changed") + Catch ex As Exception + MsgBox("Error in OnComboBoxValueChanged: " & ex.Message) + End Try + End Sub + ' ================================================================================== ' Mouse Up/Down/Move-Handler für LevelDesigner festlegen ' RecordChanged-Handler für Constructor festlegen @@ -104,6 +153,7 @@ Public Class ClassControlBuilder Case "ComboBox" Dim combo As ComboBox = CType(control, ComboBox) AddHandler combo.SelectedValueChanged, AddressOf RecordChanged + AddHandler combo.SelectedValueChanged, AddressOf OnComboBoxValueChanged AddHandler combo.TextChanged, AddressOf RecordChanged AddHandler combo.GotFocus, AddressOf OnComboBoxFocus AddHandler combo.LostFocus, AddressOf OnComboBoxLostFocus diff --git a/app/DD-Record-Organiser/ClassControlValues.vb b/app/DD-Record-Organiser/ClassControlValues.vb index 4a0cac3..77950b4 100644 --- a/app/DD-Record-Organiser/ClassControlValues.vb +++ b/app/DD-Record-Organiser/ClassControlValues.vb @@ -167,7 +167,7 @@ Public Class ClassControlValues Dim groupbox As GroupBox = DirectCast(control, GroupBox) LoadControlValues(RecordId, ParentRecordId, FormId, groupbox.Controls) Else - LoadControlValueNeu(RecordId, ParentRecordId, ControlId, control, value) + LoadControlValue(RecordId, ParentRecordId, ControlId, control, value) End If Next @@ -178,7 +178,7 @@ Public Class ClassControlValues End Sub - Private Shared Sub LoadControlValueNeu(recordId As Integer, parentRecordId As Integer, controlId As Integer, control As Control, value As Object) + Private Shared Sub LoadControlValue(recordId As Integer, parentRecordId As Integer, controlId As Integer, control As Control, value As Object) Try Select Case control.GetType() Case GetType(TextBox) diff --git a/app/DD-Record-Organiser/frmForm_Input.vb b/app/DD-Record-Organiser/frmForm_Input.vb index 18484f2..471cf05 100644 --- a/app/DD-Record-Organiser/frmForm_Input.vb +++ b/app/DD-Record-Organiser/frmForm_Input.vb @@ -409,6 +409,8 @@ Public Class frmFormInput ' SelectedFormID = RowView.Item(1) RefreshRecordByID(SelectedRecordID) + ClassControlValues.LoadControlValuesList(thisformid, pnlView.Controls) + ClassControlValues.LoadControlValuesListWithPlaceholders(thisformid, SelectedRecordID, CURRENT_PARENT_ID, pnlView.Controls) ClassControlValues.LoadControlValues(SelectedRecordID, CURRENT_PARENT_ID, thisformid, pnlView.Controls) End If load_Documents() @@ -457,6 +459,8 @@ Public Class frmFormInput Private Sub tsButtonAdd_Click(sender As Object, e As EventArgs) Handles tsButtonAdd.Click 'CtrlCommandUI.LoadControls(thisformid) + ClassControlValues.UnloadControlValuesList(SelectedRecordID, thisformid, pnlView.Controls) + ClassControlValues.LoadControlValuesList(thisformid, pnlView.Controls) ClassControlValues.LoadDefaultValues(thisformid, SelectedRecordID, pnlView.Controls) 'Das Flag INSERT nach LoadControls setzen