MS_22042016

This commit is contained in:
SchreiberM 2016-04-25 13:39:03 +02:00
commit 944dcd330a
12 changed files with 404 additions and 335 deletions

View File

@ -76,6 +76,7 @@ Public Class ClassControlBuilder
Public Sub MouseHover(sender As Object, e As EventArgs)
Dim onMouseHoverHandler As EventHandler = CType(Me.Events(_onMouseHoverName), EventHandler)
If onMouseHoverHandler IsNot Nothing Then
onMouseHoverHandler.Invoke(sender, e)
End If
@ -147,16 +148,20 @@ Public Class ClassControlBuilder
Dim SQL As String = String.Format("SELECT GUID, SQL_COMMAND_1 FROM TBPMO_CONTROL WHERE SQL_COMMAND_1 LIKE '%@{0}@%'", controlId)
Dim value
Select Case control.GetType()
Case GetType(CustomComboBox)
If IsNothing(DirectCast(control, CustomComboBox).ValueMember) Then
value = DirectCast(control, CustomComboBox).Text
Else
value = DirectCast(control, CustomComboBox).SelectedValue
End If
Case Else
Exit Sub
End Select
' Diese Befehle führen dazu, dass auch der ValueMember als Wert ausgelesen wird
' Das kann zu unerwarteten Ergebnissen führen, da der Benutzer nur den DisplayMember sieht.
'Select Case control.GetType()
' Case GetType(CustomComboBox)
' If IsNothing(DirectCast(control, CustomComboBox).ValueMember) Then
' value = DirectCast(control, CustomComboBox).Text
' Else
' value = DirectCast(control, CustomComboBox).SelectedValue
' End If
' Case Else
' Exit Sub
'End Select
' Die bessere Lösung ist für jetzt, einfach den angezeigten Wert auszulesen:
value = DirectCast(control, CustomComboBox).Text
If String.IsNullOrEmpty(value) Then
Exit Sub
@ -175,10 +180,24 @@ Public Class ClassControlBuilder
Continue For
End If
sqlcommand = sqlcommand.ToUpper.Replace("@RECORD_ID", CURRENT_RECORD_ID)
Dim regex As New System.Text.RegularExpressions.Regex("(@(\d+)@)")
Dim match As System.Text.RegularExpressions.Match = regex.Match(sqlcommand)
If match.Success Then
Dim sqlguid = String.Format("SELECT GUID FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {0} AND RECORD_ID = {1}", controlId, CURRENT_RECORD_ID)
Dim ctrlvalID = ClassDatabase.Execute_Scalar(sqlguid)
If Not IsNothing(ctrlvalID) Then
Dim upd1 = String.Format("UPDATE TBPMO_CONTROL_VALUE SET VALUE = '{0}' WHERE CONTROL_ID = {1} AND RECORD_ID = {2}", value.ToString, controlId, CURRENT_RECORD_ID)
ClassDatabase.Execute_non_Query(upd1)
Else
Dim ins = String.Format("INSERT INTO TBPMO_CONTROL_VALUE (CONTROL_ID,RECORD_ID,VALUE,ADDED_WHO) VALUES ({0},{1},'{2}','{3}')", controlId, CURRENT_RECORD_ID, value, Environment.UserName)
If ClassDatabase.Execute_non_Query(ins) = True Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> Value was nothing - Inserted the ControlValue '" & ins & "'")
End If
End If
' DependingControlId bezeichnet das Control, das die Abhängigkeit enthält
Dim dependingControlId As Integer = row.Item("GUID")
Dim panel As Panel = DirectCast(control.Parent, Panel)
@ -189,19 +208,52 @@ Public Class ClassControlBuilder
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))
Dim dt As DataTable = ClassDatabase.Return_Datatable(sqlcommand)
Dim obj
obj = dependingControl.GetType.ToString
Select Case dependingControl.GetType().Name
Case "ComboBox"
Dim dt As DataTable = ClassDatabase.Return_Datatable(sqlcommand)
Dim type = dependingControl.GetType().Name
Select Case type
Case "DateEdit"
If dt.Rows.Count = 1 Then
Try
Dim dateValue As String = dt.Rows(0).Item(0)
If dateValue = "1900-01-01" Then
Continue For
End If
ControlLoader.DateTimePicker.LoadValue(dependingControl, dateValue)
Dim sql1 = String.Format("SELECT GUID FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {0} AND RECORD_ID = {1}", dependingControlId, CURRENT_RECORD_ID)
Dim id = ClassDatabase.Execute_Scalar(sql1)
If Not IsNothing(id) Then
Dim upd = String.Format("UPDATE TBPMO_CONTROL_VALUE SET VALUE = '{0}' WHERE GUID = {1}", dateValue, id)
If ClassDatabase.Execute_non_Query(upd) = True Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> Value was not nothing - Updated the ControlValue '" & upd)
Else
ClassLogger.Add(" >> Check Update depending control value as it was nothing and Update was not successful - Update-Command '" & upd & "'")
End If
Else
Dim ins = String.Format("INSERT INTO TBPMO_CONTROL_VALUE (CONTROL_ID,RECORD_ID,VALUE,ADDED_WHO) VALUES ({0},{1},'{2}','{3}')", dependingControlId, CURRENT_RECORD_ID, dateValue, Environment.UserName)
If ClassDatabase.Execute_non_Query(ins) = True Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> Value was nothing - Inserted the ControlValue '" & ins & "'")
Else
ClassLogger.Add(" >> Check Insert depending control value as it was nothing and Insert was not successful- Insert-Command '" & ins & "'")
End If
End If
Catch ex As Exception
ClassLogger.Add("Unexpectet Error in OnComboBoxValueChanged - TextBox: " & ex.Message, True)
End Try
Else
ClassLogger.Add(" >> Attention: RowCount for depending control was '" & dt.Rows.Count.ToString & "' and not 1 as expected - Check SQL: '" & sqlcommand & "'")
End If
Case "CustomComboBox"
ControlLoader.Combobox.SetDataSource(DirectCast(dependingControl, CustomComboBox), dt)
Case "Label"
If dt.Rows.Count = 1 Then
Try
ControlLoader.Label.LoadValue(DirectCast(dependingControl, Label), 9999, 9999, dt.Rows(0).Item(0).ToString, True)
Catch ex As Exception
ClassLogger.Add(ex.Message)
ClassLogger.Add("Unexpectet Error in OnComboBoxValueChanged - Label: " & ex.Message, True)
End Try
End If
Case "TextBox"
@ -214,7 +266,7 @@ Public Class ClassControlBuilder
If Not IsNothing(id) Then
Dim upd = String.Format("UPDATE TBPMO_CONTROL_VALUE SET VALUE = '{0}' WHERE GUID = {1}", value1, id)
If ClassDatabase.Execute_non_Query(sql1) = True Then
If ClassDatabase.Execute_non_Query(upd) = True Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> Value was not nothing - Updated the ControlValue '" & upd)
Else
ClassLogger.Add(" >> Check Update depending control value as it was nothing and Update was not successful - Update-Command '" & upd & "'")
@ -230,7 +282,7 @@ Public Class ClassControlBuilder
End If
Catch ex As Exception
ClassLogger.Add(ex.Message)
ClassLogger.Add("Unexpectet Error in OnComboBoxValueChanged - TextBox: " & ex.Message, True)
End Try
Else
ClassLogger.Add(" >> Attention: RowCount for depending control was '" & dt.Rows.Count.ToString & "' and not 1 as expected - Check SQL: '" & sqlcommand & "'")
@ -312,7 +364,7 @@ Public Class ClassControlBuilder
AddHandler textbox.TextChanged, AddressOf OnTextBoxTextChanged
AddHandler textbox.ReadOnlyChanged, AddressOf OnReadOnlyChanged
Case "ComboBox"
Case "CustomComboBox"
Dim combo As CustomComboBox = CType(control, CustomComboBox)
AddHandler combo.SelectedValueChanged, AddressOf RecordChanged
AddHandler combo.SelectedValueChanged, AddressOf OnComboBoxValueChanged
@ -603,7 +655,7 @@ Public Class ClassControlBuilder
Select Case CurrentType
Case "TextBox"
ActiveControl.BackColor = ActiveColor
Case "ComboBox"
Case "CustomComboBox"
'Case "System.Windows.Forms.ComboBox"
ActiveControl.BackColor = ActiveColor
Case "Label"
@ -635,7 +687,7 @@ Public Class ClassControlBuilder
Select Case Type
Case "TextBox"
inctrl.BackColor = Color.White
Case "ComboBox"
Case "CustomComboBox"
'Case "System.Windows.Forms.ComboBox"
inctrl.BackColor = Color.White
Case "Label"
@ -664,7 +716,7 @@ Public Class ClassControlBuilder
Select Case gbType
Case "TextBox"
gbctrl.BackColor = Color.White
Case "ComboBox"
Case "CustomComboBox"
'Case "System.Windows.Forms.ComboBox"
gbctrl.BackColor = Color.White
Case "Label"

View File

@ -489,10 +489,11 @@ Public Class ClassControlCommandsUI
Private Sub UpdateAllControls(FormID As Integer, RecordID As Integer, controls As Control.ControlCollection)
Try
For Each ctrl As Control In controls
Dim CONTROL_ID As Integer = DirectCast(ctrl.Tag, ClassControlMetadata).Id 'GetControlID_for_RecordID(ctrl.Name, RecordID)
If LogErrorsOnly = False Then ClassLogger.Add(" >> CONTROL_ID: " & CONTROL_ID, False)
Dim CONTROL_VALUE As String = GetControlValue(ctrl)
Dim controltype = ctrl.GetType.ToString
If TypeOf ctrl Is PictureBox Then
Dim id As Integer = DirectCast(ctrl.Tag, ClassControlMetadata).Id 'GetControlID_for_Name(ctrl.Name, FormID)
UpsertImage(id, RecordID, ctrl.BackgroundImage)
@ -520,8 +521,14 @@ Public Class ClassControlCommandsUI
Dim ValueExists = ClassDatabase.Execute_Scalar(String.Format("SELECT RECORD_ID FROM VWPMO_VALUES WHERE RECORD_ID = {0} AND CONTROL_ID = {1}", RecordID, CONTROL_ID))
If IsNothing(ValueExists) Then ' Neues Control
If CONTROL_ID = 995 Or CONTROL_ID = 996 Or CONTROL_ID = 997 Or CONTROL_ID = 810 Then
Console.WriteLine("sdasd")
End If
If LogErrorsOnly = False Then ClassLogger.Add(" >> InsertControlValue: " & CONTROL_ID & "|" & RecordID & "|" & CONTROL_VALUE, False)
If Not IsNothing(CONTROL_VALUE) Then
If TypeOf ctrl Is CustomComboBox And CONTROL_VALUE = "" Then
Exit Sub
End If
InsertControlValue(CONTROL_ID, RecordID, CONTROL_VALUE)
End If
Else ' Update Control
@ -538,8 +545,14 @@ Public Class ClassControlCommandsUI
Public Sub UpdateMultipleValues(ControlId As Integer, RecordId As Integer, value As String)
Try
If IsNothing(value) Then
Exit Sub
End If
Dim values As New List(Of String)(value.Split(";"))
Dim dt As DataTable = ClassDatabase.Return_Datatable(String.Format("SELECT VALUE FROM TBPMO_CONTROL_VALUE WHERE CONTROL_ID = {0} AND RECORD_ID = {1}", ControlId, RecordId))
If IsNothing(dt) Then
Exit Sub
End If
' Konvertiere datatable zu liste
Dim oldValues = dt.AsEnumerable().Select(Of String)(Function(r)
Return r.Item("VALUE")
@ -562,163 +575,159 @@ Public Class ClassControlCommandsUI
End Sub
Function GetControlValue(ctrl As Control) As String
Dim CONTROL_ID As Integer
Try
Dim type = ctrl.GetType().Name
CONTROL_ID = DirectCast(ctrl.Tag, ClassControlMetadata).Id ' GetControlID_for_RecordID(ctrl.Name, CURRENT_RECORD_ID)
If LogErrorsOnly = False Then ClassLogger.Add(" >> GetControlValue CONTROL_ID: " & CONTROL_ID, False)
Dim CONTROL_VALUE As String = Nothing
If LogErrorsOnly = False Then ClassLogger.Add(" >> type = " & type.ToString, False)
Select Case type
Case "TextBox"
Return DirectCast(ctrl, TextBox).Text
Case "ComboBox"
If LogErrorsOnly = False Then ClassLogger.Add(" >> Return Value: " & DirectCast(ctrl, CustomComboBox).Text, False)
Return DirectCast(ctrl, CustomComboBox).Text
Case "CheckBox"
Return DirectCast(ctrl, CheckBox).Checked.ToString()
Case "RadioButton"
Return DirectCast(ctrl, RadioButton).Checked.ToString()
Case "DateEdit"
Dim Value = DirectCast(ctrl, DevExpress.XtraEditors.DateEdit).EditValue
Dim type = ctrl.GetType().Name
Dim CONTROL_ID As Integer = DirectCast(ctrl.Tag, ClassControlMetadata).Id ' GetControlID_for_RecordID(ctrl.Name, CURRENT_RECORD_ID)
If LogErrorsOnly = False Then ClassLogger.Add(" >> GetControlValue CONTROL_ID: " & CONTROL_ID, False)
Dim CONTROL_VALUE As String = Nothing
If LogErrorsOnly = False Then ClassLogger.Add(" >> type = " & type.ToString, False)
Select Case type
Case "TextBox"
Return DirectCast(ctrl, TextBox).Text
Case "CustomComboBox"
If LogErrorsOnly = False Then ClassLogger.Add(" >> Return Value: " & DirectCast(ctrl, CustomComboBox).Text, False)
Return DirectCast(ctrl, CustomComboBox).Text
Case "CheckBox"
Return DirectCast(ctrl, CheckBox).Checked.ToString()
Case "RadioButton"
Return DirectCast(ctrl, RadioButton).Checked.ToString()
Case "DateEdit"
Dim Value = DirectCast(ctrl, DevExpress.XtraEditors.DateEdit).EditValue
If IsDBNull(Value) Then
Return ""
Else
Return DirectCast(ctrl, DevExpress.XtraEditors.DateEdit).DateTime.ToString("yyyy-MM-dd")
End If
Case "PictureBox"
'Return "PictureBox" 'Es ist egal was für ein String hier zurückgegeben wird, hauptsache nicht Nothing
Case "CheckedListBoxControl"
Dim chklbx As DevExpress.XtraEditors.CheckedListBoxControl
chklbx = DirectCast(ctrl, DevExpress.XtraEditors.CheckedListBoxControl)
If IsDBNull(Value) Then
Return ""
Else
Return DirectCast(ctrl, DevExpress.XtraEditors.DateEdit).DateTime.ToString("yyyy-MM-dd")
End If
Case "PictureBox"
'Return "PictureBox" 'Es ist egal was für ein String hier zurückgegeben wird, hauptsache nicht Nothing
Case "CheckedListBoxControl"
Dim chklbx As DevExpress.XtraEditors.CheckedListBoxControl
chklbx = DirectCast(ctrl, DevExpress.XtraEditors.CheckedListBoxControl)
Dim SQL_COMAMND = ClassDatabase.Execute_Scalar("SELECT UPPER(SQL_COMMAND_1) FROM TBPMO_CONTROL WHERE GUID = " & CONTROL_ID)
'TODO: Wenn keine Datasource vorhanden, angecheckte einträge als string speichern
If IsNothing(chklbx.DataSource) Then
Dim result As New List(Of String)
Dim result_string As String
'TODO: Wenn keine Datasource vorhanden, angecheckte einträge als string speichern
If IsNothing(chklbx.DataSource) Then
Dim result As New List(Of String)
Dim result_string As String
For Each item As DevExpress.XtraEditors.Controls.CheckedListBoxItem In chklbx.CheckedItems
result.Add(item.Value.ToString.Trim)
Next
For Each item As DevExpress.XtraEditors.Controls.CheckedListBoxItem In chklbx.CheckedItems
result.Add(item.Value.ToString.Trim)
Next
result_string = String.Join(";", result)
result_string = String.Join(";", result)
' Hier wird ein String zurückgegeben, der als VALUE gespeichert werden soll
' Überspringt den Rest der funktion
Return result_string
End If
' Hier wird ein String zurückgegeben, der als VALUE gespeichert werden soll
' Überspringt den Rest der funktion
Return result_string
End If
Dim SQL_Datasource = "SELECT SQL_COMMAND_1 FROM TBPMO_CONTROL WHERE GUID = " & CONTROL_ID
SQL_Datasource = ClassDatabase.Execute_Scalar(SQL_Datasource)
If SQL_Datasource.ToUpper.Contains("SELECT [RECORD-ID],") Then
'Alle Recorddatensätze durchlaufen und überprüfen ob nicht angehakt
'Wenn nicht angehakt dann Record löschen
Dim index As Integer = 0
For i As Integer = 0 To chklbx.ItemCount - 1
Dim item = chklbx.GetItem(i)
Dim row As DataRowView = CType(item, DataRowView)
If chklbx.GetItemCheckState(i) = 0 Then
If CInt(row(0)) > 0 Then
'Überprüfen ob es den Record gibt
Dim SQL = "SELECT COUNT(*) FROM TBPMO_RECORD_CONNECT WHERE RECORD1_ID = " & CURRENT_RECORD_ID & " AND RECORD2_ID = " & CInt(row(0))
If ClassDatabase.Execute_Scalar(SQL) = 1 Then
SQL = "DELETE FROM TBPMO_RECORD_CONNECT WHERE RECORD1_ID = " & CURRENT_RECORD_ID & " AND RECORD2_ID = " & CInt(row(0))
If ClassDatabase.Execute_non_Query(SQL) = True Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> TBPMO_RECORD_CONNECT-Entry after 'deselect CheckedListBox' deleted", False)
End If
If SQL_COMAMND.ToString.StartsWith("SELECT [RECORD_ID]") Or SQL_COMAMND.ToString.StartsWith("SELECT [RECORD-ID]") Then
'Alle Recorddatensätze durchlaufen und überprüfen ob nicht angehakt
'Wenn nicht angehakt dann Record löschen
Dim index As Integer = 0
For i As Integer = 0 To chklbx.ItemCount - 1
Dim item = chklbx.GetItem(i)
Dim row As DataRowView = CType(item, DataRowView)
If chklbx.GetItemCheckState(i) = 0 Then
If CInt(row(0)) > 0 Then
'Überprüfen ob es den Record gibt
Dim SQL = "SELECT COUNT(*) FROM TBPMO_RECORD_CONNECT WHERE RECORD1_ID = " & CURRENT_RECORD_ID & " AND RECORD2_ID = " & CInt(row(0))
If ClassDatabase.Execute_Scalar(SQL) = 1 Then
SQL = "DELETE FROM TBPMO_RECORD_CONNECT WHERE RECORD1_ID = " & CURRENT_RECORD_ID & " AND RECORD2_ID = " & CInt(row(0))
If ClassDatabase.Execute_non_Query(SQL) = True Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> TBPMO_RECORD_CONNECT-Entry after 'deselect CheckedListBox' deleted", False)
End If
End If
End If
Next
End If
'Für jeden gecheckten Eintrag den Record der Stammentität mit dem selektierten linken
Dim checked_result As New List(Of String)
Dim checked_result_string As String
Dim checked_Count As Integer = 0
For Each item As Object In DirectCast(ctrl, DevExpress.XtraEditors.CheckedListBoxControl).CheckedItems
checked_Count += 1
End If
Next
End If
If SQL_Datasource.ToUpper.Contains("SELECT [RECORD-ID],") Then
For Each item As Object In DirectCast(ctrl, DevExpress.XtraEditors.CheckedListBoxControl).CheckedItems
Dim row As DataRowView = CType(item, DataRowView)
Try
If CInt(row(0)) > 0 Then
Dim rid = CInt(row(0))
Dim checked_value = row(1)
checked_result.Add(checked_value)
checked_result_string = String.Join(";", checked_result)
Dim SQL = "SELECT COUNT(*) FROM TBPMO_RECORD_CONNECT WHERE RECORD1_ID = " & CURRENT_RECORD_ID & " AND RECORD2_ID = " & CInt(row(0))
If ClassDatabase.Execute_Scalar(SQL) = 0 Then
If CURRENT_RECORD_ID = 0 Then
MsgBox("Attention: no current record Selected!", MsgBoxStyle.Exclamation)
Else
If ConnectRecord(CURRENT_RECORD_ID, CInt(row(0)), "CheckedListBox;" & ctrl.Name) = True Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> Checked ListBox record '" & rid.ToString & "' was linked successfully.", False)
End If
'Für jeden gecheckten Eintrag den Record der Stammentität mit dem selektierten linken
Dim checked_result As New List(Of String)
Dim checked_result_string As String
If SQL_COMAMND.ToString.StartsWith("SELECT [RECORD_ID]") Or SQL_COMAMND.ToString.StartsWith("SELECT [RECORD-ID]") Then
For Each item As Object In DirectCast(ctrl, DevExpress.XtraEditors.CheckedListBoxControl).CheckedItems
Dim row As DataRowView = CType(item, DataRowView)
Try
If CInt(row(0)) > 0 Then
Dim rid = CInt(row(0))
Dim checked_value = row(1)
checked_result.Add(checked_value)
checked_result_string = String.Join(";", checked_result)
Dim SQL = "SELECT COUNT(*) FROM TBPMO_RECORD_CONNECT WHERE RECORD1_ID = " & CURRENT_RECORD_ID & " AND RECORD2_ID = " & CInt(row(0))
If ClassDatabase.Execute_Scalar(SQL) = 0 Then
If CURRENT_RECORD_ID = 0 Then
MsgBox("Attention: no current record Selected!", MsgBoxStyle.Exclamation)
Else
If ConnectRecord(CURRENT_RECORD_ID, CInt(row(0)), "CheckedListBox;" & ctrl.Name) = True Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> Checked ListBox record '" & rid.ToString & "' was linked successfully.", False)
End If
End If
End If
Catch ex As Exception
ClassLogger.Add("Error in CheckedListBoxGetControlValue: " & ex.Message, True)
End Try
Next
Else
For Each item As Object In DirectCast(ctrl, DevExpress.XtraEditors.CheckedListBoxControl).CheckedItems
Dim row As DataRowView = CType(item, DataRowView)
End If
End If
Catch ex As Exception
ClassLogger.Add("Error in CheckedListBoxGetControlValue: " & ex.Message, True)
End Try
Next
Else
For Each item As Object In DirectCast(ctrl, DevExpress.XtraEditors.CheckedListBoxControl).CheckedItems
Dim row As DataRowView = CType(item, DataRowView)
If row.DataView.Table.Columns.Count = 1 Then
Dim checked_value = row(0)
checked_result.Add(checked_value)
ElseIf row.DataView.Table.Columns.Count = 2 Then
Dim checked_value = row(1)
checked_result.Add(checked_value)
checked_result_string = String.Join(";", checked_result)
Next
End If
' Hier wird ein String zurückgegeben, der als VALUE gespeichert werden soll
' Überspringt den Rest der funktion
If Not IsNothing(checked_result_string) Then
Dim sql = String.Format("select count(*) from TBPMO_CONTROL_VALUE where CONTROL_ID = {0} and RECORD_ID = {1}", CONTROL_ID, CURRENT_RECORD_ID)
If ClassDatabase.Execute_Scalar(sql) = 0 And checked_Count > 0 Then
InsertControlValue(CONTROL_ID, CURRENT_RECORD_ID, "")
End If
Return checked_result_string
Else
'In jedem Fall Nothing zurückgeben
Return Nothing
End If
Case "ListBoxControl"
Dim listbox As DevExpress.XtraEditors.ListBoxControl = DirectCast(ctrl, DevExpress.XtraEditors.ListBoxControl)
Return listbox.SelectedValue
Case "DataGridView"
Dim list As New List(Of String)
Dim dgv As DataGridView = DirectCast(ctrl, DataGridView)
For Each row As DataGridViewRow In dgv.Rows
Dim cell As DataGridViewCell = row.Cells(0)
If Not IsNothing(cell.Value) Then
list.Add(cell.Value)
End If
checked_result_string = String.Join(";", checked_result)
Next
Return String.Join(";", list)
Case Else
End If
' Hier wird ein String zurückgegeben, der als VALUE gespeichert werden soll
' Überspringt den Rest der funktion
If Not IsNothing(checked_result_string) Then
'Dim sql = String.Format("select count(*) from TBPMO_CONTROL_VALUE where CONTROL_ID = {0} and RECORD_ID = {1}", CONTROL_ID, CURRENT_RECORD_ID)
'If ClassDatabase.Execute_Scalar(sql) = 0 Then
' InsertControlValue(CONTROL_ID, CURRENT_RECORD_ID, "")
'End If
Return checked_result_string
Else
'In jedem Fall Nothing zurückgeben
Return Nothing
End Select
Catch ex As Exception
ClassLogger.Add("Unexpected error in GetControlValue for Control-ID: " & CONTROL_ID & " - error: " & ex.Message)
Return Nothing
End Try
End If
Case "ListBoxControl"
Dim listbox As DevExpress.XtraEditors.ListBoxControl = DirectCast(ctrl, DevExpress.XtraEditors.ListBoxControl)
Return listbox.SelectedValue
Case "DataGridView"
Dim list As New List(Of String)
Dim dgv As DataGridView = DirectCast(ctrl, DataGridView)
For Each row As DataGridViewRow In dgv.Rows
Dim cell As DataGridViewCell = row.Cells(0)
If Not IsNothing(cell.Value) Then
list.Add(cell.Value)
End If
Next
Return String.Join(";", list)
Case Else
Return Nothing
End Select
End Function
Public Shared Function InsertControlValue(ControlID As Integer, RecordID As Integer, Value As String)

View File

@ -15,16 +15,15 @@
'End Function
Public Shared Function LoadAutoValue(control As Windows.Forms.Control, RecordId As Integer, ParentRecordId As Integer, entity_ID As Integer)
Dim ControlId As Integer
Try
If ControlId = 810 Then
Console.WriteLine("Obacht")
End If
Dim AutoValue As String = String.Empty
ControlId = DirectCast(control.Tag, ClassControlMetadata).Id
Dim ControlId As Integer = DirectCast(control.Tag, ClassControlMetadata).Id
Dim CONNID = ClassDatabase.Execute_Scalar(String.Format("SELECT CONNECTION_ID_1 FROM TBPMO_CONTROL WHERE GUID = {0}", ControlId))
Dim SQL As String = ClassDatabase.Execute_Scalar(String.Format("SELECT SQL_COMMAND_1 FROM TBPMO_CONTROL WHERE GUID = {0}", ControlId))
SQL = ClassControlValues.ReplaceSqlCommandPlaceholders(SQL, RecordId, ParentRecordId, entity_ID)
If ControlId = 984 Then
Console.WriteLine("VertragsNr")
End If
If SQL = "" Or IsDBNull(SQL) Then
Return Nothing
@ -43,7 +42,7 @@
Return AutoValue
Catch ex As Exception
ClassLogger.Add("Unexpected Error in LoadAutoValue - Control-ID: " & ControlId.ToString & " - ERROR: " & ex.Message, True)
ClassLogger.Add("Unexpected Error in LoadAutoValue: " & ex.Message, True)
Return Nothing
End Try
@ -56,9 +55,7 @@
Public Shared Function GetDynamicValue(controlId As Integer, formId As Integer, connID As Object, sqlCommand As String) As DynamicValue
Dim returnValue As DynamicValue
If controlId = 810 Then
Console.WriteLine("Obacht")
End If
returnValue.StaticList = CheckForStaticList(controlId)
returnValue.DataTable = GetSqlList(controlId, formId, connID, sqlCommand)
@ -85,9 +82,6 @@
Public Shared Function GetSqlList(controlId As Integer, formId As Integer, connection_Id As Object, sqlCommand As String) As DataTable
Try
If controlId = 810 Then
Console.WriteLine("Obacht")
End If
If sqlCommand Is Nothing Or sqlCommand = String.Empty Then
Return Nothing
End If
@ -117,132 +111,81 @@
End Function
Overloads Shared Sub SetDataSource(control As CustomComboBox, dt As DataTable)
Try
If control.Name = "cmbverantwortlich" Then
Console.WriteLine("Obacht")
End If
Dim Name1 = dt.Columns(0).ColumnName.ToString
Dim Name2
Try
Name2 = dt.Columns(1).ColumnName.ToString
Catch ex As Exception
Name2 = dt.Columns(0).ColumnName.ToString
End Try
Dim columnCount As Integer = dt.Columns.Count
control.BeginUpdate()
' Damit beim Setzen von DisplayMember und ValueMember kein Fehler auftritt,
' muss die Datasource zunächst geleert werden und der selected index auf -1 gesetzt werden.
control.DataSource = Nothing
control.SelectedIndex = -1
ClassControlValues.ClearControlValue(control)
Dim sw As Stopwatch = Stopwatch.StartNew()
Dim columnCount As Integer = dt.Columns.Count
' Es ist wichtig, dass DisplayMember und ValueMember VOR der DataSource festgelegt werden,
' Dadurch ist das Laden der Datasource um einiges SCHNELLER
If columnCount = 1 Then
For Each row As DataRow In dt.Rows
control.Items.Add(row.Item(0).ToString)
Next
'control.ValueMember = Name1
'control.DisplayMember = Name1
ElseIf columnCount = 2 Then
'If control.Name = "cmbverantwortlich" Then
' control.ValueMember = Name1
' control.DisplayMember = Name2
'Else
For Each row As DataRow In dt.Rows
control.Items.Add(row.Item(1).ToString)
Next
'End If
control.BeginUpdate()
'If control.Name = "cmbverantwortlich" Then
' Damit beim Setzen von DisplayMember und ValueMember kein Fehler auftritt,
' muss die Datasource zunächst geleert werden und der selected index auf -1 gesetzt werden.
control.DataSource = Nothing
control.SelectedIndex = -1
'Else
' control.ValueMember = Name1
' control.DisplayMember = Name2
'End If
End If
' Als Erstes setzen wir die DataSource
'If control.Name = "cmbverantwortlich" Then
' control.DataSource = dt
'End If
' Es ist wichtig, dass DisplayMember und ValueMember VOR der DataSource festgelegt werden,
' Dadurch ist das Laden der Datasource um einiges SCHNELLER
If columnCount = 1 Then
control.DisplayMember = dt.Columns(0).ColumnName
control.ValueMember = dt.Columns(0).ColumnName
ElseIf columnCount = 2 Then
control.DisplayMember = dt.Columns(1).ColumnName
control.ValueMember = dt.Columns(0).ColumnName
End If
'control.DataSource = dt
control.EndUpdate()
Catch ex As Exception
ClassLogger.Add("unexpected Error in SetDataSource for ControlName: " & control.Name & " - Error: " & ex.Message)
End Try
' Als letztes setzen wir die DataSource
control.DataSource = dt
control.EndUpdate()
sw.Stop()
Console.WriteLine("SetDataSource for {0} took {1}ms", control.Name, sw.ElapsedMilliseconds)
End Sub
Overloads Shared Sub SetDataSource(control As DevExpress.XtraEditors.CheckedListBoxControl, dt As DataTable)
Try
If control.Name = "cmbverantwortlich" Then
Console.WriteLine("Obacht")
End If
Dim columnCount As Integer = dt.Columns.Count
Dim columnCount As Integer = dt.Columns.Count
' Damit beim Setzen von DisplayMember und ValueMember kein Fehler auftritt,
' muss die Datasource zunächst geleert werden und der selected index auf -1 gesetzt werden.
control.DataSource = Nothing
control.SelectedIndex = -1
' Damit beim Setzen von DisplayMember und ValueMember kein Fehler auftritt,
' muss die Datasource zunächst geleert werden und der selected index auf -1 gesetzt werden.
control.DataSource = Nothing
control.SelectedIndex = -1
' Es ist wichtig, dass DisplayMember und ValueMember VOR der DataSource festgelegt werden,
' Dadurch ist das Laden der Datasource um einiges SCHNELLER
If columnCount = 1 Then
control.DisplayMember = dt.Columns(0).ColumnName
control.ValueMember = dt.Columns(0).ColumnName
ElseIf columnCount = 2 Then
control.DisplayMember = dt.Columns(1).ColumnName
control.ValueMember = dt.Columns(0).ColumnName
End If
' Als letztes setzen wir die DataSource
control.DataSource = dt
control.EndUpdate()
Catch ex As Exception
ClassLogger.Add("unexpected Error in SetDataSource2 for ControlName: " & control.Name & " - Error: " & ex.Message)
End Try
' Es ist wichtig, dass DisplayMember und ValueMember VOR der DataSource festgelegt werden,
' Dadurch ist das Laden der Datasource um einiges SCHNELLER
If columnCount = 1 Then
control.DisplayMember = dt.Columns(0).ColumnName
control.ValueMember = dt.Columns(0).ColumnName
ElseIf columnCount = 2 Then
control.DisplayMember = dt.Columns(1).ColumnName
control.ValueMember = dt.Columns(0).ColumnName
End If
' Als letztes setzen wir die DataSource
control.DataSource = dt
End Sub
Overloads Shared Sub SetDataSource(control As DevExpress.XtraEditors.ListBoxControl, dt As DataTable)
Try
If control.Name = "cmbverantwortlich" Then
Console.WriteLine("Obacht")
End If
Dim columnCount As Integer = dt.Columns.Count
Dim columnCount As Integer = dt.Columns.Count
' Damit beim Setzen von DisplayMember und ValueMember kein Fehler auftritt,
' muss die Datasource zunächst geleert werden und der selected index auf -1 gesetzt werden.
control.DataSource = Nothing
control.SelectedIndex = -1
' Damit beim Setzen von DisplayMember und ValueMember kein Fehler auftritt,
' muss die Datasource zunächst geleert werden und der selected index auf -1 gesetzt werden.
control.DataSource = Nothing
control.SelectedIndex = -1
' Es ist wichtig, dass DisplayMember und ValueMember VOR der DataSource festgelegt werden,
' Dadurch ist das Laden der Datasource um einiges SCHNELLER
If columnCount = 1 Then
control.DisplayMember = dt.Columns(0).ColumnName
'control.ValueMember = dt.Columns(0).ColumnName
ElseIf columnCount = 2 Then
control.DisplayMember = dt.Columns(1).ColumnName
control.ValueMember = dt.Columns(0).ColumnName
End If
' Es ist wichtig, dass DisplayMember und ValueMember VOR der DataSource festgelegt werden,
' Dadurch ist das Laden der Datasource um einiges SCHNELLER
If columnCount = 1 Then
control.DisplayMember = dt.Columns(0).ColumnName
control.ValueMember = dt.Columns(0).ColumnName
ElseIf columnCount = 2 Then
control.DisplayMember = dt.Columns(1).ColumnName
control.ValueMember = dt.Columns(0).ColumnName
End If
' Als letztes setzen wir die DataSource
control.DataSource = dt
Catch ex As Exception
ClassLogger.Add("unexpected Error in SetDataSource3 for ControlName: " & control.Name & " - Error: " & ex.Message)
End Try
' Als letztes setzen wir die DataSource
control.DataSource = dt
End Sub
Overloads Shared Sub SetDataSource(control As Windows.Forms.DataGridView, dt As DataTable)
Try
If control.Name = "cmbverantwortlich" Then
Console.WriteLine("Obacht")
End If
control.DataSource = dt
Catch ex As Exception
ClassLogger.Add("unexpected Error in SetDataSource4 for ControlName: " & control.Name & " - Error: " & ex.Message)
End Try
control.DataSource = dt
End Sub
End Class
@ -263,6 +206,10 @@
control.Text = value
Else
Dim ControlId As Integer = DirectCast(control.Tag, ClassControlMetadata).Id
If ControlId = 984 Then
Console.WriteLine("VertragsNr")
End If
Dim SQL = String.Format("SELECT GUID FROM TBPMO_CONTROL_SCREEN WHERE CONTROL_ID = {0} AND SCREEN_ID = {1}", ControlId, CURRENT_SCREEN_ID)
Dim ctrl_screen_id = ClassDatabase.Execute_Scalar(SQL, True)
If ctrl_screen_id > 0 Then
@ -357,17 +304,11 @@
Public Class Combobox : Inherits _ListControl
Public Shared Sub LoadValue(control As CustomComboBox, recordId As Integer, parentRecordId As Integer, value As String)
If control.Name = "cmbverantwortlich" Then
Console.WriteLine("Obacht")
End If
control.Text = value
End Sub
Public Shared Sub LoadList(control As CustomComboBox, formId As Integer, connID As Object, SQLCommand As String)
Try
If control.Name = "cmbverantwortlich" Then
Console.WriteLine("Obacht")
End If
Dim dynamic As DynamicValue = GetDynamicValue(DirectCast(control.Tag, ClassControlMetadata).Id, formId, connID, SQLCommand)
If dynamic.StaticList IsNot Nothing Then
@ -385,9 +326,6 @@
Private Shared Sub CalculateDropdownWidth(control As CustomComboBox, dt As DataTable)
Try
If control.Name = "cmbverantwortlich" Then
Console.WriteLine("Obacht")
End If
Const WIDEST_WIDTH As Integer = 300
Dim FinalWidth As Integer = WIDEST_WIDTH
Dim index As Integer = 1
@ -428,8 +366,6 @@
control.SetItemCheckState(pos, CheckState.Checked)
End If
Next
control.Refresh()
' control.Invoke(control)
End Sub
Public Shared Sub LoadList(control As DevExpress.XtraEditors.CheckedListBoxControl, formId As Integer, conn_Id As Object, SQLCommand As String)
@ -461,9 +397,7 @@
If IsNothing(value) Then
Exit Sub
End If
If control.Name = "cmbverantwortlich" Then
Console.WriteLine("Obacht")
End If
control.SelectedIndex = control.FindStringExact(value)
End Sub

View File

@ -163,9 +163,7 @@ Public Class ClassControlValues
For Each control As Control In controls
Dim ControlId As Integer = DirectCast(control.Tag, ClassControlMetadata).Id
If ControlId = 810 Then
Console.WriteLine("Obacht")
End If
' Wert per LINQ aus DT_ControlValues suchen der zur aktuellen controlId passt
Dim values As List(Of Object) = (From row In DT_ControlValues.AsEnumerable()
Where row.Item("CONTROL_ID") = ControlId
@ -225,9 +223,7 @@ Public Class ClassControlValues
Try
' Für die meisten Controls wird nur das erste Element der Liste benötigt
Dim value As String = Nothing
If controlId = 810 Then
Console.WriteLine("Obacht")
End If
If values.Count > 0 Then
value = values.Item(0)
End If
@ -277,7 +273,7 @@ Public Class ClassControlValues
ClassLogger.Add(" >> Sub LoadControlValue - Control-Type nicht berücksichtigt: " & GetType(Control).ToString(), False)
End Select
Catch ex As Exception
ClassLogger.Add("Unexpected Error in LoadControlValue - ControlID: " & controlId.ToString & " - Error: " & ex.Message, True)
ClassLogger.Add("Unexpected Error in LoadControlValue: " & ex.Message, True)
MsgBox("Error in LoadControlValue:" & vbNewLine & ex.Message)
End Try
@ -483,16 +479,25 @@ Public Class ClassControlValues
Case GetType(DataGridView)
Dim dgv As DataGridView = DirectCast(control, DataGridView)
dgv.Rows.Clear()
Dim ds = dgv.DataSource
If (IsNothing(ds)) Then
dgv.Rows.Clear()
dgv.Refresh()
Else
dgv.DataSource = Nothing
dgv.Refresh()
End If
Console.WriteLine("Clearing DataGridView")
End Select
End Sub
#End Region
#Region "LoadDefaultValue"
Public Shared Sub LoadDefaultValues(FormID As Integer, RecordID As Integer, controls As Control.ControlCollection)
Public Shared Sub LoadDefaultValues(FormID As Integer, RecordID As Integer, controls As Control.ControlCollection, ParentRecordId As Integer, entity_ID As Integer)
'' Zuerst alle Controls leeren
'ClearControlValues(controls)
ClearControlValues(controls)
Dim i = 0
For Each control As Control In controls
@ -503,10 +508,10 @@ Public Class ClassControlValues
End If
If TypeOf control Is GroupBox Then
LoadDefaultValues(FormID, RecordID, DirectCast(control, GroupBox).Controls)
LoadDefaultValues(FormID, RecordID, DirectCast(control, GroupBox).Controls, ParentRecordId, entity_ID)
End If
LoadDefaultValue(CONTROL_ID, RecordID, control)
LoadDefaultValue(CONTROL_ID, RecordID, control, ParentRecordId, entity_ID)
'Den Focus auf das erste Steuerelement setzen
If i = 1 Then
@ -516,7 +521,7 @@ Public Class ClassControlValues
Next
End Sub
Public Shared Sub LoadDefaultValue(ControlID As Integer, RecordID As Integer, control As Control)
Public Shared Sub LoadDefaultValue(ControlID As Integer, RecordID As Integer, control As Control, ParentRecordId As Integer, entity_ID As Integer)
Try
Dim SQL = String.Format("SELECT CONTROL_DEF_VALUE FROM VWPMO_CONTROL_SCREEN WHERE CONTROL_ID = {0}", ControlID)
Dim autoValue = ClassDatabase.Execute_Scalar(SQL)
@ -586,6 +591,33 @@ Public Class ClassControlValues
' Mit EditValue kann man auch den angezeigten Wert leeren
'datepicker.DateTime = autoValue
datepicker.EditValue = autoValue
Case GetType(Label)
Dim lbl As Label = DirectCast(control, Label)
Dim CONNID = ClassDatabase.Execute_Scalar(String.Format("SELECT CONNECTION_ID_1 FROM TBPMO_CONTROL WHERE GUID = {0}", ControlID))
Dim SQL_AUTOVALUE As String = ClassDatabase.Execute_Scalar(String.Format("SELECT SQL_COMMAND_1 FROM TBPMO_CONTROL WHERE GUID = {0}", ControlID))
SQL_AUTOVALUE = ClassControlValues.ReplaceSqlCommandPlaceholders(SQL_AUTOVALUE, RecordID, ParentRecordId, entity_ID)
If ControlID = 984 Then
Console.WriteLine("VertragsNr")
End If
If SQL_AUTOVALUE = "" Or IsDBNull(SQL_AUTOVALUE) Then
Exit Sub
End If
If SQL_AUTOVALUE.ToUpper.StartsWith("select RECORD_ENTITY_ID FROM TBPMO_RECORD WHERE".ToUpper) Then
SQL_AUTOVALUE = "SELECT MAX(RECORD_ENTITY_ID) + 1 FROM TBPMO_RECORD WHERE FORM_ID = " & entity_ID
End If
If Not IsNothing(CONNID) Then
autoValue = ClassDatabase.Execute_ScalarWithConnection(CONNID, SQL_AUTOVALUE)
Else
autoValue = ClassDatabase.Execute_Scalar(SQL_AUTOVALUE, True)
End If
' AutoValue = ClassDatabase.Execute_Scalar(SQL)
If Not String.IsNullOrEmpty(autoValue) And Not IsDBNull(autoValue) Then
lbl.Text = autoValue
End If
End Select
Catch ex As Exception
MsgBox("Unexpected Error in LoadDefaultValue:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)

View File

@ -7,23 +7,37 @@
DrawMode = Windows.Forms.DrawMode.OwnerDrawFixed
End Sub
Protected Overrides Sub OnEnabledChanged(e As EventArgs)
'MyBase.OnEnabledChanged(e)
'Protected Overrides Sub OnEnabledChanged(e As EventArgs)
' 'MyBase.OnEnabledChanged(e)
If Me.Enabled Then
Me.DropDownStyle = ComboBoxStyle.DropDown
Else
Me.DropDownStyle = ComboBoxStyle.DropDownList
End If
End Sub
' If Me.Enabled Then
' Me.DropDownStyle = ComboBoxStyle.DropDown
' Else
' Me.DropDownStyle = ComboBoxStyle.DropDownList
' End If
'End Sub
Protected Overrides Sub OnDrawItem(e As DrawItemEventArgs)
Dim g As System.Drawing.Graphics = e.Graphics
Dim rect As Rectangle = e.Bounds
If e.Index >= 0 Then
Dim label As String = Me.Items(e.Index).ToString()
Dim label As String
' Wenn die Items eine Static List ist, wird der String ausgelesen
If (Me.Items(e.Index).GetType() = GetType(String)) Then
label = Me.Items(e.Index).ToString()
Else
'Wenn die Items aus einer Datatable kommen, wird der DisplayMember ausgelesen
Dim rowView As DataRowView = Me.Items(e.Index)
Dim rowCount As Integer = rowView.Row.ItemArray.Count
If rowCount = 1 Then
label = rowView.Item(0)
ElseIf rowCount = 2 Then
label = rowView.Item(1)
End If
End If
If e.State = (DrawItemState.Disabled Or DrawItemState.NoAccelerator Or DrawItemState.NoFocusRect Or DrawItemState.ComboBoxEdit) Then
' DISABLED STATE

View File

@ -140,7 +140,7 @@ Public Class ClassDatabase
Try
Dim SQLconnect As New SqlClient.SqlConnection
Dim SQLcommand As SqlClient.SqlCommand
SQLconnect.ConnectionString = connectionString
SQLconnect.ConnectionString = MyConnectionString
SQLconnect.Open()
SQLcommand = SQLconnect.CreateCommand
'Update Last Created Record in Foo

View File

@ -33,7 +33,7 @@ Imports System.Runtime.InteropServices
' übernehmen, indem Sie "*" eingeben:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("2.4.4.9")>
<Assembly: AssemblyVersion("2.4.5.0")>
<Assembly: AssemblyFileVersion("1.0.0.0")>
<Assembly: NeutralResourcesLanguageAttribute("")>

View File

@ -30,6 +30,7 @@ Public Class frmConfig_Basic
CONNECTION_CHANGED = True
'Set the construction string
MyConnectionString = con 'csb.ConnectionString
ClassDatabase.Init()
My.Settings.Save()
If chkbxUserAut.Checked = False Then
Dim wrapper As New ClassEncryption("!35452didalog=")

View File

@ -621,8 +621,6 @@ Public Class frmConstructor_Main
Me.Cursor = Cursors.WaitCursor
Column_Row_Handler()
Me.Cursor = Cursors.Default
Me.Refresh()
' pnlDetails.Invoke(sender, e)
'If dataloaded = True Then
' If LogErrorsOnly = False Then ClassLogger.Add(" >> grvwSelection_FocusedRowChanged - EditState: " & EDIT_STATE, False)
' Dim selRecID = GetSelected_RecordID()
@ -722,7 +720,8 @@ Public Class frmConstructor_Main
RIGHT_ONLY_READ = False
End Try
If RIGHT_ONLY_READ = True Then
tsButtonAdd.Enabled = False
' Hinzufügen sollte auch bei RIGHT_ONLY_READ verfügbar sein
tsButtonAdd.Enabled = True
tsButtonEdit.Enabled = False
tsButtonSave.Enabled = False
tsButtonDelete.Enabled = False
@ -1154,9 +1153,11 @@ Public Class frmConstructor_Main
Lock_RecordControls(False)
tsButtonShowWorkflowTasks.Enabled = True
CURRENT_PARENT_ID = PARENT_ID
ClassControlValues.LoadDefaultValues(ENTITY_ID, SELECTED_RECORD_ID, pnlDetails.Controls)
ClassControlValues.LoadDefaultValues(ENTITY_ID, SELECTED_RECORD_ID, pnlDetails.Controls, CURRENT_PARENT_ID, ENTITY_ID)
' Im gegensatz zu EnableEditMode muss hier nur der save button enabled werden
tsButtonSave.Enabled = True
' Muss aktiviert werden, sonst funktionieren die Combobox Abhängigkeits Events nicht
CURRENT_RECORD_ENABLED = True
EDIT_STATE = EditState.Insert
RECORD_CHANGED = True
tsslblRecord.Text = "Adding record ......"
@ -1333,7 +1334,7 @@ Public Class frmConstructor_Main
msg = "The record and all dependencies for '" & SELECTED_RECORD_ID & "' were deleted - " & Now
End If
Update_Status_Label(True, msg, EditState.Update)
msg = "Wollen Sie die zugehörigen windream-Dateien ebenfalls löschen?"
If USER_LANGUAGE <> "de-DE" Then
msg = "Do You want to delete the related windream-documents?"
@ -1992,14 +1993,6 @@ Public Class frmConstructor_Main
Case GetType(Windows.Forms.TextBox)
Dim txt As TextBox = CType(Control, TextBox)
txt.ReadOnly = state
Case GetType(DevExpress.XtraEditors.CheckedListBoxControl)
'Dim chlb As DevExpress.XtraEditors.CheckedListBoxControl = CType(Control, DevExpress.XtraEditors.CheckedListBoxControl)
'If state = True Then
' chlb.Enabled = False
'Else
' chlb.Enabled = True
'End If
Case Else
Control.Enabled = Not state
@ -3197,6 +3190,7 @@ Public Class frmConstructor_Main
If LogErrorsOnly = False Then ClassLogger.Add(" >> GetSearchDocuments took " & Format(elapsed, "0.000000000") & " seconds", False)
If windreamSucheErgebnisse.Count > 0 Then
Dim files_deleted As Integer = 0
For Each dok As WMObject In windreamSucheErgebnisse
Dim filename = "W:" & dok.aPath
Try
@ -3212,7 +3206,7 @@ Public Class frmConstructor_Main
MsgBox(msg, MsgBoxStyle.Information)
Next
Else
Dim msg = "Es wurden keine Dateien für diesen Datensatz gefunden!"
Dim msg = "Es wurden keine Dateien für diesen Datensatz gefunden!"
If USER_LANGUAGE <> "de-DE" Then
msg = "No files found for record!"
End If
@ -3530,9 +3524,13 @@ Public Class frmConstructor_Main
CURRENT_RECORD_ID = RECORD_ID
CURRENT_FORM_ID = ENTITY_ID
CURRENT_FORMVIEW_ID = FORMVIEW_ID
frmWD_Index_Dokart.ShowDialog()
RUN_WD_SEARCH(WD_Suche, "RECORD")
If ClassDatabase.Execute_Scalar("SELECT COUNT(*) FROM TBPMO_FILES_USER WHERE GUID = " & CURRENT_FILEID & " AND WORKED = 0") = 1 Then
frmWD_Index_Dokart.ShowDialog()
Else
If LogErrorsOnly = False Then ClassLogger.Add(" >> File was deleted or worked meanwhile!")
End If
Next
RUN_WD_SEARCH(WD_Suche, "RECORD")
End If
End If
Else
@ -4302,11 +4300,21 @@ Public Class frmConstructor_Main
Console.WriteLine("Filter changed: " & Now)
End Sub
Public Sub New()
' Dieser Aufruf ist für den Designer erforderlich.
InitializeComponent()
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
End Sub
Private Sub AxObjectListControl_CausesValidationChanged(sender As Object, e As EventArgs) Handles AxObjectListControl.CausesValidationChanged
Console.WriteLine("CausesValidationChanged")
End Sub
Private Sub AxObjectListControl_SettingFlagChanged(sender As Object, e As EventArgs) Handles AxObjectListControl.SettingFlagChanged
Console.WriteLine("SettingFlagChanged")
End Sub
Private Sub AxObjectListControl_Validated(sender As Object, e As EventArgs) Handles AxObjectListControl.Validated
Console.WriteLine("Validated")
End Sub
End Class

View File

@ -440,6 +440,23 @@ Public Class frmFormInput
System.Windows.Forms.MessageBox.Show(ex.Message)
End Try
End Sub
Private Sub BindingNavigatorDeleteItem_Click(sender As Object, e As EventArgs)
Dim result As MsgBoxResult
result = MessageBox.Show("Möchten Sie den Datensatz wirklich löschen?", "Bestätigung erforderlich:", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
If result = MsgBoxResult.Yes Then
Dim sql As String = "DELETE FROM TBPMO_CONTROL_VALUE WHERE RECORD_ID = " & SelectedRecordID
If ClassDatabase.Execute_non_Query(sql) = True Then ' Delete der Controls erfolgreich ausgeführt, jetzt der Record
sql = "DELETE FROM TBPMO_RECORD WHERE GUID = " & SelectedRecordID
If ClassDatabase.Execute_non_Query(sql) = True Then
LoadOverview_Grid()
ToolStrip_Notice("Der Datensatz wurde erfolgreich gelöscht - " & Now)
End If
End If
End If
End Sub
Private Sub tsbtnrefresh_Click(sender As Object, e As EventArgs) Handles tsbtnrefresh.Click
LoadOverview_Grid()
End Sub
@ -449,7 +466,7 @@ Public Class frmFormInput
ClassControlValues.ClearControlValues(pnlView.Controls)
ClassControlValues.UnloadControlValuesList(SelectedRecordID, thisformid, pnlView.Controls)
ClassControlValues.LoadControlValuesList(thisformid, pnlView.Controls)
ClassControlValues.LoadDefaultValues(thisformid, SelectedRecordID, pnlView.Controls)
ClassControlValues.LoadDefaultValues(thisformid, SelectedRecordID, pnlView.Controls, 99, 99)
'Das Flag INSERT nach LoadControls setzen
CtrlCommandUI.IsInsert = True

View File

@ -774,6 +774,7 @@
props.ShowColumn = NotNull(CBool(r.Item("CONTROL_SHOW_COLUMN")), True)
props.TabStop = r.Item("CTRLSCR_TAB_STOP")
props.TabIndex = r.Item("CTRLSCR_TAB_INDEX")
props.SQLCommand = New SQLValue(NotNull(r.Item("CONTROL_SQLCOMMAND_1"), ""))
Case "Datagridview"
props.ControlType = "DataGridView/Table"
@ -820,6 +821,7 @@
CType(r.Item("CTRLSCR_FONT_STYLE"), FontStyle))
props.ColumnTitle = ClassConverter.ToStringOrDefault(r.Item("CONTROL_COL_NAME"), ctrl.Name)
props.ShowColumn = ClassConverter.ToBooleanOrDefault(r.Item("CONTROL_SHOW_COLUMN"), True)
props.SQLCommand = New SQLValue(NotNull(r.Item("CONTROL_SQLCOMMAND_1"), ""))
Case "F_AddAppointment"
props.ControlType = "Function.AddToCalendar"

View File

@ -50,7 +50,7 @@
Select Case type
Case "Label" : props = New LabelProperties()
Case "Textbox" : props = New TextBoxProperties()
Case "Combobox" : props = New ComboBoxProperties()
Case "CustomComboBox" : props = New ComboBoxProperties()
Case "Checkbox" : props = New CheckBoxProperties()
Case "RadioButton" : props = New RadioButtonProperties()
Case "Datepicker" : props = New DateTimePickerProperties()
@ -97,7 +97,7 @@
props.Multiline = r.Item("CONTROL_MULTILINE")
props.SQLCommand = New SQLValue(NotNull(r.Item("CONTROL_SQLCOMMAND_1"), ""))
Case "Combobox"
Case "CustomComboBox"
props.FontColor = IntToColor(r.Item("CTRLSCR_FONT_COLOR"))
props.Font = New Font(r.Item("CTRLSCR_FONT_FAMILY").ToString(),
CType(r.Item("CTRLSCR_FONT_SIZE"), Single),
@ -303,7 +303,7 @@
' Else
' props.Format = "String"
' End If
' Case "Combobox"
' Case "CustomComboBox"
' props = New ComboBoxProperties()
' props.MasterDataId = row.Item("CTRLSCR_MASTER_DATA_ID")
' props.DefaultValue = ClassConverter.ToStringOrDefault(row.Item("CONTROL_DEF_VALUE"))