MS19042016

This commit is contained in:
SchreiberM 2016-04-19 16:10:56 +02:00
parent add1a19324
commit fa5397cd24
7 changed files with 315 additions and 202 deletions

View File

@ -76,7 +76,6 @@ 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

View File

@ -562,9 +562,11 @@ Public Class ClassControlCommandsUI
End Sub
Function GetControlValue(ctrl As Control) As String
Dim CONTROL_ID As Integer
Try
Dim type = ctrl.GetType().Name
Dim CONTROL_ID As Integer = DirectCast(ctrl.Tag, ClassControlMetadata).Id ' GetControlID_for_RecordID(ctrl.Name, CURRENT_RECORD_ID)
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)
@ -608,6 +610,10 @@ Public Class ClassControlCommandsUI
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
@ -627,11 +633,18 @@ Public Class ClassControlCommandsUI
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
Next
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
@ -657,11 +670,21 @@ Public Class ClassControlCommandsUI
End Try
Next
Else
For Each item As Object In DirectCast(ctrl, DevExpress.XtraEditors.CheckedListBoxControl).CheckedItems
Dim row As DataRowView = CType(item, DataRowView)
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 Then
If ClassDatabase.Execute_Scalar(sql) = 0 And checked_Count > 0 Then
InsertControlValue(CONTROL_ID, CURRENT_RECORD_ID, "")
End If
Return checked_result_string
@ -691,6 +714,11 @@ Public Class ClassControlCommandsUI
Case Else
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 Function
Public Shared Function InsertControlValue(ControlID As Integer, RecordID As Integer, Value As String)

View File

@ -15,9 +15,13 @@
'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
Dim ControlId As Integer = DirectCast(control.Tag, ClassControlMetadata).Id
ControlId = 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)
@ -39,7 +43,7 @@
Return AutoValue
Catch ex As Exception
ClassLogger.Add("Unexpected Error in LoadAutoValue: " & ex.Message, True)
ClassLogger.Add("Unexpected Error in LoadAutoValue - Control-ID: " & ControlId.ToString & " - ERROR: " & ex.Message, True)
Return Nothing
End Try
@ -52,7 +56,9 @@
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)
@ -79,6 +85,9 @@
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
@ -108,36 +117,68 @@
End Function
Overloads Shared Sub SetDataSource(control As CustomComboBox, dt As DataTable)
Dim sw As Stopwatch = Stopwatch.StartNew()
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)
' 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
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
control.DisplayMember = dt.Columns(1).ColumnName
control.ValueMember = dt.Columns(0).ColumnName
'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
'If control.Name = "cmbverantwortlich" Then
'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
' Als letztes setzen wir die DataSource
control.DataSource = dt
'control.DataSource = dt
control.EndUpdate()
Catch ex As Exception
ClassLogger.Add("unexpected Error in SetDataSource for ControlName: " & control.Name & " - Error: " & ex.Message)
End Try
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
' Damit beim Setzen von DisplayMember und ValueMember kein Fehler auftritt,
@ -145,6 +186,7 @@
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
@ -154,12 +196,20 @@
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
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
' Damit beim Setzen von DisplayMember und ValueMember kein Fehler auftritt,
@ -171,7 +221,7 @@
' 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
'control.ValueMember = dt.Columns(0).ColumnName
ElseIf columnCount = 2 Then
control.DisplayMember = dt.Columns(1).ColumnName
control.ValueMember = dt.Columns(0).ColumnName
@ -179,10 +229,20 @@
' 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
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
End Sub
End Class
@ -297,11 +357,17 @@
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
@ -319,6 +385,9 @@
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
@ -359,6 +428,8 @@
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)
@ -390,7 +461,9 @@
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,7 +163,9 @@ 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
@ -223,7 +225,9 @@ 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
@ -273,7 +277,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: " & ex.Message, True)
ClassLogger.Add("Unexpected Error in LoadControlValue - ControlID: " & controlId.ToString & " - Error: " & ex.Message, True)
MsgBox("Error in LoadControlValue:" & vbNewLine & ex.Message)
End Try
@ -454,7 +458,7 @@ Public Class ClassControlValues
Case GetType(CustomComboBox)
Dim combo As CustomComboBox = DirectCast(control, CustomComboBox)
combo.SelectedIndex = -1
combo.Text = String.Empty
' combo.Text = String.Empty
Case GetType(CheckBox)
DirectCast(control, CheckBox).Checked = False

View File

@ -22,6 +22,7 @@ Partial Class frmConstructor_Main
'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
<System.Diagnostics.DebuggerStepThrough()> _
Private Sub InitializeComponent()
Me.components = New System.ComponentModel.Container()
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmConstructor_Main))
Dim GridLevelNode1 As DevExpress.XtraGrid.GridLevelNode = New DevExpress.XtraGrid.GridLevelNode()
Dim GridLevelNode2 As DevExpress.XtraGrid.GridLevelNode = New DevExpress.XtraGrid.GridLevelNode()
@ -29,12 +30,12 @@ Partial Class frmConstructor_Main
Me.SplitContainerMain = New DevExpress.XtraEditors.SplitContainerControl()
Me.SplitContainerTop = New DevExpress.XtraEditors.SplitContainerControl()
Me.TreeViewMain = New System.Windows.Forms.TreeView()
Me.CMSEntity = New System.Windows.Forms.ContextMenuStrip()
Me.CMSEntity = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.ResetEbenenAuswahlToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.DateiimportEntitätToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.FormDesignerToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.GridControlMain = New DevExpress.XtraGrid.GridControl()
Me.ContextMenuGrid = New System.Windows.Forms.ContextMenuStrip()
Me.ContextMenuGrid = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.FunktionenDataGridToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
Me.ToolStripSeparator1 = New System.Windows.Forms.ToolStripSeparator()
Me.AnsichtUmschaltenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
@ -81,7 +82,7 @@ Partial Class frmConstructor_Main
Me.Panel1 = New System.Windows.Forms.Panel()
Me.GridControlPos = New DevExpress.XtraGrid.GridControl()
Me.grvwGridPos = New DevExpress.XtraGrid.Views.Grid.GridView()
Me.BindingNavigatorPOS = New System.Windows.Forms.BindingNavigator()
Me.BindingNavigatorPOS = New System.Windows.Forms.BindingNavigator(Me.components)
Me.BindingNavigatorAddNewItem = New System.Windows.Forms.ToolStripButton()
Me.BindingNavigatorCountItem = New System.Windows.Forms.ToolStripLabel()
Me.BindingNavigatorDeleteItem = New System.Windows.Forms.ToolStripButton()
@ -123,20 +124,20 @@ Partial Class frmConstructor_Main
Me.tsslblStatus = New System.Windows.Forms.ToolStripStatusLabel()
Me.tsslblRecord = New System.Windows.Forms.ToolStripStatusLabel()
Me.tsslblWorkflowstate = New System.Windows.Forms.ToolStripStatusLabel()
Me.BindingSource_Entity = New System.Windows.Forms.BindingSource()
Me.BindingSource_Entity = New System.Windows.Forms.BindingSource(Me.components)
Me.DD_ECMAdmin = New DD_Record_Organiser.DD_ECMAdmin()
Me.ImageCollection1 = New DevExpress.Utils.ImageCollection()
Me.ttToolTip = New System.Windows.Forms.ToolTip()
Me.ContextMenuDetails = New System.Windows.Forms.ContextMenuStrip()
Me.ImageCollection1 = New DevExpress.Utils.ImageCollection(Me.components)
Me.ttToolTip = New System.Windows.Forms.ToolTip(Me.components)
Me.ContextMenuDetails = New System.Windows.Forms.ContextMenuStrip(Me.components)
Me.DD_DMSDataSet = New DD_Record_Organiser.DD_DMSDataSet()
Me.VWPMO_WF_USER_ACTIVEBindingSource = New System.Windows.Forms.BindingSource()
Me.VWPMO_WF_USER_ACTIVEBindingSource = New System.Windows.Forms.BindingSource(Me.components)
Me.VWPMO_WF_USER_ACTIVETableAdapter = New DD_Record_Organiser.DD_DMSDataSetTableAdapters.VWPMO_WF_ACTIVETableAdapter()
Me.TableAdapterManager = New DD_Record_Organiser.DD_DMSDataSetTableAdapters.TableAdapterManager()
Me.TBPMO_FILES_USERTableAdapter = New DD_Record_Organiser.DD_DMSDataSetTableAdapters.TBPMO_FILES_USERTableAdapter()
Me.VWPMO_WF_ACTIVEBindingSource = New System.Windows.Forms.BindingSource()
Me.VWPMO_WF_ACTIVEBindingSource = New System.Windows.Forms.BindingSource(Me.components)
Me.VWPMO_WF_ACTIVETableAdapter = New DD_Record_Organiser.DD_DMSDataSetTableAdapters.VWPMO_WF_ACTIVETableAdapter()
Me.TBPMO_FILES_USERBindingSource = New System.Windows.Forms.BindingSource()
Me.ToolTipController = New DevExpress.Utils.ToolTipController()
Me.TBPMO_FILES_USERBindingSource = New System.Windows.Forms.BindingSource(Me.components)
Me.ToolTipController = New DevExpress.Utils.ToolTipController(Me.components)
CType(Me.SplitContainerMain, System.ComponentModel.ISupportInitialize).BeginInit()
Me.SplitContainerMain.SuspendLayout()
CType(Me.SplitContainerTop, System.ComponentModel.ISupportInitialize).BeginInit()

View File

@ -621,6 +621,8 @@ 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()
@ -736,6 +738,9 @@ Public Class frmConstructor_Main
End Try
End If
If TCDetails.SelectedTabPage Is Nothing Then
Exit Sub
End If
If TabPos.PageVisible = True And TCDetails.SelectedTabPage.Text.StartsWith("Posi") Then
Clear_GridPos_View()
Dim POS_GRID_RECORD = Get_Focused_Row_Cell_Value_pos("Record-ID")
@ -1987,6 +1992,14 @@ 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
@ -3183,15 +3196,27 @@ Public Class frmConstructor_Main
elapsed = sw.Elapsed.TotalSeconds
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
File.Delete(filename)
files_deleted = +1
Catch ex As Exception
ClassLogger.Add("Unexpected Error in Delete windream-file '" & filename & "- Error: " & ex.Message)
End Try
Dim msg = "Es wurden (" & files_deleted.ToString & ") Dateien gelöscht!"
If USER_LANGUAGE <> "de-DE" Then
msg = "(" & files_deleted.ToString & ") files were deleted!"
End If
MsgBox(msg, MsgBoxStyle.Information)
Next
Else
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
MsgBox(msg, MsgBoxStyle.Information)
End If

View File

@ -440,23 +440,6 @@ 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