diff --git a/app/DD-Record-Organiser/ClassControlBuilder.vb b/app/DD-Record-Organiser/ClassControlBuilder.vb
index 9f317e6..10cc35a 100644
--- a/app/DD-Record-Organiser/ClassControlBuilder.vb
+++ b/app/DD-Record-Organiser/ClassControlBuilder.vb
@@ -158,7 +158,9 @@ Public Class ClassControlBuilder
Continue For
End If
+ ' Versuchen, die RecordId zu ersetzen, falls eine existiert
sqlcommand = sqlcommand.ToUpper.Replace("@RECORD_ID", CURRENT_RECORD_ID)
+ ' ControlId Platzhalter suchen und ersetzen
Dim regex As New System.Text.RegularExpressions.Regex("(@(\d+)@)")
Dim match As System.Text.RegularExpressions.Match = regex.Match(sqlcommand)
If match.Success Then
@@ -169,13 +171,15 @@ Public Class ClassControlBuilder
Dim dependingControl As Control = panel.Controls.OfType(Of Control)().Where(Function(c As Control)
Return DirectCast(c.Tag, ClassControlMetadata).Id = dependingControlId
End Function).SingleOrDefault()
-
+ ' Wir ersetzen den platzhalter im sql command mit dem übergebenen wert
sqlcommand = sqlcommand.Replace(match.Groups(1).Value, value)
If LogErrorsOnly = False Then ClassLogger.Add(" >> " & String.Format("Executing SQL_COMMAND: '{0}' for controlID '{1}'", sqlcommand, dependingControlId))
+ ' Jetzt wird das SQL Command ausgeführt, es MUSS einen Boolschen Wert zurückgeben, True, False, 0, 1
Dim dt As DataTable = ClassDatabase.Return_Datatable(sqlcommand)
Dim type = dependingControl.GetType().Name
If dt.Rows.Count = 1 Then
+ ' Jetzt können wir das dependingControl enablen/disablen
Select Case type
Case "DateEdit"
Try
diff --git a/app/DD-Record-Organiser/ClassControlValues.vb b/app/DD-Record-Organiser/ClassControlValues.vb
index 61e1628..cb7bb06 100644
--- a/app/DD-Record-Organiser/ClassControlValues.vb
+++ b/app/DD-Record-Organiser/ClassControlValues.vb
@@ -411,8 +411,9 @@ Public Class ClassControlValues
ClassLogger.Add("Enable_Depending_Controls: Control.ControlCollection is unexpected empty!")
Exit Sub
End If
- Dim SQL As String = String.Format("select GUID,SQL_COMMAND_2 from TBPMO_CONTROL where FORM_ID = {0} AND SQL_COMMAND_2 IS NOT NULL " _
- & "AND LEN(SQL_COMMAND_2) > 10 AND SQL_COMMAND_2 LIKE '%@%@%", FormId)
+ ' Alle Controls finden, die Abhängigkeiten haben
+ Dim SQL As String = String.Format("select GUID,NAME,SQL_COMMAND_2 from TBPMO_CONTROL where FORM_ID = {0} AND SQL_COMMAND_2 IS NOT NULL " _
+ & "AND LEN(SQL_COMMAND_2) > 10 AND SQL_COMMAND_2 LIKE '%@%@%'", FormId)
Dim SW As Stopwatch = Stopwatch.StartNew()
Dim commands As New List(Of String)
Dim dt As DataTable = ClassDatabase.Return_Datatable(SQL)
@@ -421,35 +422,47 @@ Public Class ClassControlValues
Exit Sub
End If
- For Each Ctrl As Control In controls
- Dim controlTagId = DirectCast(Ctrl.Tag, ClassControlMetadata).Id
- Dim row As DataRow = dt.Select(String.Format("CONTROL_ID={0}", controlTagId)).FirstOrDefault()
+ For Each row As DataRow In dt.Rows
+ Dim DependingControlId As Integer = row.Item("GUID")
+ Dim DependingControlSQL As String = row.Item("SQL_COMMAND_2")
+ Dim DependingControl As Control = controls.OfType(Of Control)().Where(Function(c As Control)
+ Return DirectCast(c.Tag, ClassControlMetadata).Id = DependingControlId
+ End Function).SingleOrDefault()
+
+ Dim regex As New System.Text.RegularExpressions.Regex("(@(\d+)@)")
+ Dim match As System.Text.RegularExpressions.Match = regex.Match(DependingControlSQL)
+
+ If match.Success Then
+ ' Wir suchen aus dem SQL Befehl die ControlId heraus,
+ ' von dem das aktuelle Control abhängt
+ Dim otherControlId As Integer
+ Integer.TryParse(match.Groups(2).Value, otherControlId)
+ ' Jetzt suchen wir das Control, das zu dieser ControlId passt
+ Dim otherControl As Control = controls.OfType(Of Control)().Where(Function(c As Control)
+ Return DirectCast(c.Tag, ClassControlMetadata).Id = otherControlId
+ End Function).SingleOrDefault()
+ Dim otherControlType As String = otherControl.GetType().Name
+
+ ' Jetzt holen wir uns den Wert von dem 'OtherControl'
+ ' und geben seinen Value zusammen mit dem dependingControl weiter
+ Dim value As Object
+
+ Select Case otherControlType
+ Case "CheckBox"
+ value = DirectCast(otherControl, CheckBox).Checked
+ Case "TextBox"
+ value = DirectCast(otherControl, TextBox).Text
+ Case "CustomComboBox"
+ value = DirectCast(otherControl, CustomComboBox).SelectedText
+ Case "DateEdit"
+ value = DirectCast(otherControl, DevExpress.XtraEditors.DateEdit).EditValue
+ End Select
+
+ CtrlBuilder.Enable_Controls(DependingControl, dt, value)
- If IsNothing(row) Then
- Continue For
End If
-
- Dim connID = row.Item("CONTROL_CONNID_1")
- Dim sqlcommand As String = row.Item("SQL")
-
-
- sqlcommand = ReplaceSqlCommandPlaceholders(sqlcommand, RecordId, ParentRecordId, entity_ID)
-
- Select Case Ctrl.GetType()
- Case GetType(CustomComboBox)
- Dim combobox = DirectCast(Ctrl, CustomComboBox)
- ControlLoader.Combobox.LoadList(combobox, FormId, connID, sqlcommand)
-
- Case GetType(DevExpress.XtraEditors.ListBoxControl)
- Dim listbox = DirectCast(Ctrl, DevExpress.XtraEditors.ListBoxControl)
- ControlLoader.ListBox.LoadList(listbox, FormId, connID, sqlcommand)
-
- Case GetType(DevExpress.XtraEditors.CheckedListBoxControl)
- Dim chlistbox = DirectCast(Ctrl, DevExpress.XtraEditors.CheckedListBoxControl)
- ControlLoader.CheckedListBox.LoadList(chlistbox, FormId, connID, sqlcommand)
-
- End Select
Next
+
Dim elapsed As Double
elapsed = SW.Elapsed.TotalSeconds
SW.Stop()
diff --git a/app/DD-Record-Organiser/frmConstructor_Main.resx b/app/DD-Record-Organiser/frmConstructor_Main.resx
index e388d74..8394ebb 100644
--- a/app/DD-Record-Organiser/frmConstructor_Main.resx
+++ b/app/DD-Record-Organiser/frmConstructor_Main.resx
@@ -132,7 +132,7 @@
0, 0
- 17, 128
+ 1693, 54
194, 22
@@ -192,192 +192,8 @@
Panel1
-
- 502, 128
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAFKSURBVDhPYxi84O4C9v+35nH+vzqH6//FGbz/ocLEg+tA
- jX8eNf7/87Dh/8nJAqQbcH46L9yAgz0ipBtwfJIgUHPd/z8Pqv7vaBcnbMClmTz/z07l+38SqPFIv9D/
- fd0iQM3l///eK/q/vkHm/6oauf9LKxX/zy9V/j+rSBXTwFNAf/55WA/UVAvElf//3CsB4rz/f+9m/v97
- J/n/39tx///djADikP+TcjQxDTjUKwx27t/7pUCNBUCN2UCNqUCNCf//3YoGagz7/+9G0P9/1/3+d6Xp
- Yhqws13i/5Zmqf/rwM6V/7+kQvH/31sxQI3h/6fmafyfkKX1vztD9397qv7/5kRDwmEyG+hPkHP/3Qj4
- 35OhQ1gDOgD5898NfyD2+9+arE+6Ad3pumD/gnB9nBHpBrQkGfxviDf8XxNr/L8y2oR0A+gEGBgAJCPY
- nnX8iGkAAAAASUVORK5CYII=
-
-
-
- True
-
-
- 23, 22
-
-
- Neu hinzufügen
-
-
- 162, 11
-
-
- 44, 22
-
-
- von {0}
-
-
- Die Gesamtanzahl der Elemente.
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAFvSURBVDhPtZBNKMNhHMd3Vd5K7eKCWjkgk7yEZDKksciE
- yMwkBw6LhHZxcCDlQg64SA4kJeVE4jRv89qaWn8tUtoF/7g8H2Ootb+x4nt56nm+38/v+/xUfyJcJ9Bt
- BMcOH1eRiZV5RGcVwqyHrfWwELweWJoJ9rC2AL0mRLse0VEBcxOKkLeGwlwGIz2h75w6ApC6bERjAdia
- gkxiyIow5cKkPWxDFYvTiMrUdxDDVnCfwVh/AOo/P2zhhccFzcWBLxmzEPV50Nfyu/Cn2N/1V85DGNKh
- Rhth+EaCxkLISUDWxvOgjYXa7F/Wv7kGUz4UJeKzGODi6H25d2l+yPLsDwu8v4NWHY8lSbhL0/HtbX8F
- GLXh1MQgnxwoQ3h5hkEL6JI5TlPj21gNMd6WZyC1VSN7r0Mh7G4i56pxpkQhdTWA/KQ4aUcTh+x0KACm
- RpBSo3HrM0G6Uq7pl2zvhvNDBcClE8YH4HDv2/A/SKV6BYojAxyEJtLJAAAAAElFTkSuQmCC
-
-
-
- True
-
-
- 23, 22
-
-
- Löschen
-
-
- None
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEqSURBVDhPYxg8oHDW8/9NC57/z5z4+D9UCAOEtz/AKceQ
- O/PZ/1VH3v/HpSi++8H/4IZruA3ImPL0/8J9H7Aqiu95+H/p/v///asv4DYgoefJ/2lb3mMoimi/D9ac
- Oev/f6/SE7gNiOx69L939QcURaGt98CaW9cBbe/8+98l/wBuAwKbH/6vm/8Orii45e7/RXv//+8Aas6Y
- 8/O/Xd3P//YZ23Eb4FF1/3/+tDcoiuyKb/9Pn/P7v3/Xt/86he/+WySsx22Afend/9mTX2Mo0k85/9+k
- 6MV/laxP/40jl+E2wCLvzv/U/tdYFRkknfgvm/b1v27wPNwGGGbd/h/W8hKnIv3Uy/81fKfhNkAn7cZ/
- v+qHeBWpeEzAbYBT7pX/IAV4FQ1CwMAAAPB2wKul5ZpwAAAAAElFTkSuQmCC
-
-
-
- True
-
-
- 23, 22
-
-
- Erste verschieben
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAC2SURBVDhPYxg6ILz9wX8ok3QQ3/3gf3DDNfIMiO95+H/p
- /v///asvkG5ARPt9sObMWf//e5WeIM2A0NZ7YM2t64C2d/7975J/gHgDglvu/l+09///DqDmjDk//9vV
- /fxvn7GdNBfYFd/+nz7n93//rm//dQrf/bdIWE96GOinnP9vUvTiv0rWp//GkctINwAEDJJO/JdN+/pf
- N3geeQaAgH7q5f8avtPINwAEVDwmUGbAYAUMDADQFGCYBLpQVQAAAABJRU5ErkJggg==
-
-
-
- True
-
-
- 23, 22
-
-
- Vorherige verschieben
-
-
- 6, 25
-
-
- Position
-
-
- False
-
-
- 50, 23
-
-
- 0
-
-
- Aktuelle Position
-
-
- 6, 25
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAACjSURBVDhPYxh8oHDW8/9QJnkgd+az/wnd98g3JGPK0//z
- 9v/+n9B1hzxDEnqe/J+979f/zq1//7uVXibdkMiuR/+nbPv1v2Tp3/8J0//+t8k9S5ohgc0P/7eufQ/W
- bFzy5b909LX/xpHLiDfEo+r+/5K57+CaFV16SHOBfend/4Etz8jTDAIWeXf+2xRcIU8zCBhm3SZfMwjo
- pN0gX/NQBAwMAKB+X6AHNEI4AAAAAElFTkSuQmCC
-
-
-
- True
-
-
- 23, 22
-
-
- Nächste verschieben
-
-
-
- iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8
- YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAAEsSURBVDhPYxhcoHDW8/9QJgYAyTUteP4/c+JjnGoYcmc+
- +5/QfQ+rApDcqiPv/4e3P8BtQMaUp//n7f/9P6HrDoYikNzCfR/+Bzdcw21AQs+T/7P3/frfufXvf7fS
- yygKQXLTtrz/7199AbcBkV2P/k/Z9ut/ydK//xOm//1vk3sWrhgk17v6w3+v0hO4DQhsfvi/de17sGbj
- ki//paOv/TeOXAbWAJKrm//uv0v+AdwGeFTd/18y9x1cs6JLD1wxSC5/2pv/9hnbcRtgX3r3f2DLMwzN
- IACSy578+r9FwnrcBljk3flvU3AFQzMIgORS+1/DvYQVGGbdxqoZBEByYS0v/+sGz8NtgE7aDZySIDm/
- 6of/NXyn4TYAH3DKvfJfxWMCGEOFBgVgYAAAvtG/s7kMTpwAAAAASUVORK5CYII=
-
-
-
- True
-
-
- 23, 22
-
-
- Letzte verschieben
-
-
- 6, 25
-
-
- 40, 196
-
-
- 295, 25
-
-
- 1
-
-
- BindingNavigator1
-
-
- BindingNavigator1
-
-
- System.Windows.Forms.BindingNavigator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- SplitContainerTop.Panel2
-
-
- 0
-
- 463, 11
+ 477, 15
Segoe UI, 9pt, style=Bold
@@ -497,7 +313,7 @@
SplitContainerTop.Panel2
- 1
+ 0
Panel2
@@ -596,7 +412,7 @@
1
- 124, 128
+ 187, 65
148, 22
@@ -703,7 +519,7 @@
1
- 17, 50
+ 1157, 15
Segoe UI, 8.25pt, style=Bold, Italic
@@ -1267,7 +1083,7 @@
0
- 332, 128
+ 17, 93
@@ -1483,7 +1299,7 @@
0
- 759, 11
+ 773, 15
False
@@ -1895,11 +1711,14 @@
5
+
+ 162, 11
+
- 328, 11
+ 342, 15
- 612, 11
+ 626, 15
@@ -1910,10 +1729,10 @@
- 880, 11
+ 894, 15
- 981, 11
+ 995, 15
61, 4
@@ -1925,31 +1744,31 @@
System.Windows.Forms.ContextMenuStrip, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
- 182, 50
+ 1322, 15
- 472, 50
+ 17, 54
- 750, 50
+ 295, 54
- 17, 89
+ 567, 54
- 910, 89
+ 1460, 54
- 190, 89
+ 740, 54
- 434, 89
+ 984, 54
- 672, 89
+ 1222, 54
- 325, 50
+ 1465, 15
True
@@ -2916,72 +2735,6 @@
DevExpress.Utils.ToolTipController, DevExpress.Utils.v15.1, Version=15.1.7.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a
-
- BindingNavigatorMoveFirstItem1
-
-
- System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- BindingNavigatorMovePreviousItem1
-
-
- System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- BindingNavigatorSeparator3
-
-
- System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- BindingNavigatorPositionItem1
-
-
- System.Windows.Forms.ToolStripTextBox, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- BindingNavigatorCountItem1
-
-
- System.Windows.Forms.ToolStripLabel, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- BindingNavigatorSeparator4
-
-
- System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- BindingNavigatorMoveNextItem1
-
-
- System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- BindingNavigatorMoveLastItem1
-
-
- System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- BindingNavigatorSeparator5
-
-
- System.Windows.Forms.ToolStripSeparator, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- BindingNavigatorAddNewItem1
-
-
- System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
-
- BindingNavigatorDeleteItem1
-
-
- System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
-
frmConstructor_Main
diff --git a/app/DD-Record-Organiser/frmConstructor_Main.vb b/app/DD-Record-Organiser/frmConstructor_Main.vb
index ee42ccf..de4d534 100644
--- a/app/DD-Record-Organiser/frmConstructor_Main.vb
+++ b/app/DD-Record-Organiser/frmConstructor_Main.vb
@@ -1426,8 +1426,10 @@ Public Class frmConstructor_Main
Sub EnableEditMode()
Dim EditingUser = ClassRecordState.IsRecordLocked(SELECTED_RECORD_ID)
+
' Überprüfen, ob der Record gerade bearbeitet wird
- If Not IsNothing(EditingUser) Then
+ If Not IsNothing(EditingUser) And EditingUser <> Environment.UserName Then
+
tslblLocked.Visible = True
If USER_LANGUAGE = "de-DE" Then
MsgBox(String.Format("Dieser Datensatz wird gerade vom Benutzer '{0}' bearbeitet und kann nur lesend abgerufen werden.", EditingUser), MsgBoxStyle.Exclamation)