jj 28.04.16
This commit is contained in:
parent
89275ed3f0
commit
31063ef93c
@ -158,7 +158,9 @@ Public Class ClassControlBuilder
|
|||||||
Continue For
|
Continue For
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
' Versuchen, die RecordId zu ersetzen, falls eine existiert
|
||||||
sqlcommand = sqlcommand.ToUpper.Replace("@RECORD_ID", CURRENT_RECORD_ID)
|
sqlcommand = sqlcommand.ToUpper.Replace("@RECORD_ID", CURRENT_RECORD_ID)
|
||||||
|
' ControlId Platzhalter suchen und ersetzen
|
||||||
Dim regex As New System.Text.RegularExpressions.Regex("(@(\d+)@)")
|
Dim regex As New System.Text.RegularExpressions.Regex("(@(\d+)@)")
|
||||||
Dim match As System.Text.RegularExpressions.Match = regex.Match(sqlcommand)
|
Dim match As System.Text.RegularExpressions.Match = regex.Match(sqlcommand)
|
||||||
If match.Success Then
|
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)
|
Dim dependingControl As Control = panel.Controls.OfType(Of Control)().Where(Function(c As Control)
|
||||||
Return DirectCast(c.Tag, ClassControlMetadata).Id = dependingControlId
|
Return DirectCast(c.Tag, ClassControlMetadata).Id = dependingControlId
|
||||||
End Function).SingleOrDefault()
|
End Function).SingleOrDefault()
|
||||||
|
' Wir ersetzen den platzhalter im sql command mit dem übergebenen wert
|
||||||
sqlcommand = sqlcommand.Replace(match.Groups(1).Value, value)
|
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))
|
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 dt As DataTable = ClassDatabase.Return_Datatable(sqlcommand)
|
||||||
Dim type = dependingControl.GetType().Name
|
Dim type = dependingControl.GetType().Name
|
||||||
If dt.Rows.Count = 1 Then
|
If dt.Rows.Count = 1 Then
|
||||||
|
' Jetzt können wir das dependingControl enablen/disablen
|
||||||
Select Case type
|
Select Case type
|
||||||
Case "DateEdit"
|
Case "DateEdit"
|
||||||
Try
|
Try
|
||||||
|
|||||||
@ -411,8 +411,9 @@ Public Class ClassControlValues
|
|||||||
ClassLogger.Add("Enable_Depending_Controls: Control.ControlCollection is unexpected empty!")
|
ClassLogger.Add("Enable_Depending_Controls: Control.ControlCollection is unexpected empty!")
|
||||||
Exit Sub
|
Exit Sub
|
||||||
End If
|
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 " _
|
' Alle Controls finden, die Abhängigkeiten haben
|
||||||
& "AND LEN(SQL_COMMAND_2) > 10 AND SQL_COMMAND_2 LIKE '%@%@%", FormId)
|
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 SW As Stopwatch = Stopwatch.StartNew()
|
||||||
Dim commands As New List(Of String)
|
Dim commands As New List(Of String)
|
||||||
Dim dt As DataTable = ClassDatabase.Return_Datatable(SQL)
|
Dim dt As DataTable = ClassDatabase.Return_Datatable(SQL)
|
||||||
@ -421,35 +422,47 @@ Public Class ClassControlValues
|
|||||||
Exit Sub
|
Exit Sub
|
||||||
End If
|
End If
|
||||||
|
|
||||||
For Each Ctrl As Control In controls
|
For Each row As DataRow In dt.Rows
|
||||||
Dim controlTagId = DirectCast(Ctrl.Tag, ClassControlMetadata).Id
|
Dim DependingControlId As Integer = row.Item("GUID")
|
||||||
Dim row As DataRow = dt.Select(String.Format("CONTROL_ID={0}", controlTagId)).FirstOrDefault()
|
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()
|
||||||
|
|
||||||
If IsNothing(row) Then
|
Dim regex As New System.Text.RegularExpressions.Regex("(@(\d+)@)")
|
||||||
Continue For
|
Dim match As System.Text.RegularExpressions.Match = regex.Match(DependingControlSQL)
|
||||||
End If
|
|
||||||
|
|
||||||
Dim connID = row.Item("CONTROL_CONNID_1")
|
If match.Success Then
|
||||||
Dim sqlcommand As String = row.Item("SQL")
|
' 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
|
||||||
|
|
||||||
sqlcommand = ReplaceSqlCommandPlaceholders(sqlcommand, RecordId, ParentRecordId, entity_ID)
|
Select Case otherControlType
|
||||||
|
Case "CheckBox"
|
||||||
Select Case Ctrl.GetType()
|
value = DirectCast(otherControl, CheckBox).Checked
|
||||||
Case GetType(CustomComboBox)
|
Case "TextBox"
|
||||||
Dim combobox = DirectCast(Ctrl, CustomComboBox)
|
value = DirectCast(otherControl, TextBox).Text
|
||||||
ControlLoader.Combobox.LoadList(combobox, FormId, connID, sqlcommand)
|
Case "CustomComboBox"
|
||||||
|
value = DirectCast(otherControl, CustomComboBox).SelectedText
|
||||||
Case GetType(DevExpress.XtraEditors.ListBoxControl)
|
Case "DateEdit"
|
||||||
Dim listbox = DirectCast(Ctrl, DevExpress.XtraEditors.ListBoxControl)
|
value = DirectCast(otherControl, DevExpress.XtraEditors.DateEdit).EditValue
|
||||||
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
|
End Select
|
||||||
|
|
||||||
|
CtrlBuilder.Enable_Controls(DependingControl, dt, value)
|
||||||
|
|
||||||
|
End If
|
||||||
Next
|
Next
|
||||||
|
|
||||||
Dim elapsed As Double
|
Dim elapsed As Double
|
||||||
elapsed = SW.Elapsed.TotalSeconds
|
elapsed = SW.Elapsed.TotalSeconds
|
||||||
SW.Stop()
|
SW.Stop()
|
||||||
|
|||||||
@ -370,7 +370,7 @@
|
|||||||
<value>0, 0</value>
|
<value>0, 0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="pnlDetails.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="pnlDetails.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>1072, 316</value>
|
<value>1072, 338</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="pnlDetails.TabIndex" type="System.Int32, mscorlib">
|
<data name="pnlDetails.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
@ -388,7 +388,7 @@
|
|||||||
<value>0</value>
|
<value>0</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TabDetails.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="TabDetails.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>1072, 316</value>
|
<value>1072, 338</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TabDetails.Text" xml:space="preserve">
|
<data name="TabDetails.Text" xml:space="preserve">
|
||||||
<value>Detailansicht</value>
|
<value>Detailansicht</value>
|
||||||
@ -1014,7 +1014,7 @@
|
|||||||
<value>2</value>
|
<value>2</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TabFollowUp.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="TabFollowUp.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>1072, 316</value>
|
<value>1072, 338</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TabFollowUp.Text" xml:space="preserve">
|
<data name="TabFollowUp.Text" xml:space="preserve">
|
||||||
<value>Wiedervorlage</value>
|
<value>Wiedervorlage</value>
|
||||||
@ -1041,7 +1041,7 @@
|
|||||||
<value>Cyan</value>
|
<value>Cyan</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GridControlPos.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="GridControlPos.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>1072, 291</value>
|
<value>1072, 313</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GridControlPos.TabIndex" type="System.Int32, mscorlib">
|
<data name="GridControlPos.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
@ -1065,7 +1065,7 @@
|
|||||||
<value>0, 25</value>
|
<value>0, 25</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Panel1.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="Panel1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>1072, 291</value>
|
<value>1072, 313</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Panel1.TabIndex" type="System.Int32, mscorlib">
|
<data name="Panel1.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>2</value>
|
<value>2</value>
|
||||||
@ -1269,7 +1269,7 @@
|
|||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TabPos.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="TabPos.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>1072, 316</value>
|
<value>1072, 338</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="TabPos.Text" xml:space="preserve">
|
<data name="TabPos.Text" xml:space="preserve">
|
||||||
<value>Positionen</value>
|
<value>Positionen</value>
|
||||||
|
|||||||
@ -1426,8 +1426,10 @@ Public Class frmConstructor_Main
|
|||||||
Sub EnableEditMode()
|
Sub EnableEditMode()
|
||||||
|
|
||||||
Dim EditingUser = ClassRecordState.IsRecordLocked(SELECTED_RECORD_ID)
|
Dim EditingUser = ClassRecordState.IsRecordLocked(SELECTED_RECORD_ID)
|
||||||
|
|
||||||
' Überprüfen, ob der Record gerade bearbeitet wird
|
' Ü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
|
tslblLocked.Visible = True
|
||||||
If USER_LANGUAGE = "de-DE" Then
|
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)
|
MsgBox(String.Format("Dieser Datensatz wird gerade vom Benutzer '{0}' bearbeitet und kann nur lesend abgerufen werden.", EditingUser), MsgBoxStyle.Exclamation)
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user