Compare commits
3 Commits
3a44abf77b
...
master
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
e9cb352674 | ||
|
|
1469063ad7 | ||
|
|
a50e7e3c55 |
@@ -527,7 +527,7 @@ Public Class ClassDOC_SEARCH
|
|||||||
Return False
|
Return False
|
||||||
End Try
|
End Try
|
||||||
End Function
|
End Function
|
||||||
Public Shared Function SET_WD_RIGHTS(oWMObject As WINDREAMLib.WMObject, RESULT_DOCID As Integer, RESULT_DOC_PATH As String, DeleteRightsBefore As Boolean)
|
Public Shared Function SET_WD_RIGHTS(oWMObject As WINDREAMLib.WMObject, pDocID As Integer, RESULT_DOC_PATH As String, DeleteRightsBefore As Boolean)
|
||||||
Try
|
Try
|
||||||
If CURRENT_RECORD_ID = 0 Then
|
If CURRENT_RECORD_ID = 0 Then
|
||||||
MsgBox("No Record selected - Please select one!", MsgBoxStyle.Exclamation)
|
MsgBox("No Record selected - Please select one!", MsgBoxStyle.Exclamation)
|
||||||
@@ -535,7 +535,7 @@ Public Class ClassDOC_SEARCH
|
|||||||
End If
|
End If
|
||||||
LOGGER.Debug("#### SETTING RIGHTS FOR FILE ######")
|
LOGGER.Debug("#### SETTING RIGHTS FOR FILE ######")
|
||||||
If ClassWDRights.Init = True Then
|
If ClassWDRights.Init = True Then
|
||||||
If ClassWDRights.Doc_Renew_Rights(oWMObject, RESULT_DOCID, RESULT_DOC_PATH, DeleteRightsBefore) Then
|
If ClassWDRights.Doc_Renew_Rights(oWMObject, pDocID, RESULT_DOC_PATH, DeleteRightsBefore) Then
|
||||||
If ClassWDRights.MSG_RESULT <> "" Then
|
If ClassWDRights.MSG_RESULT <> "" Then
|
||||||
Dim msg = "Achtung: einige Rechte konnten nicht gesetzt werden: " & vbCrLf & ClassWDRights.MSG_RESULT
|
Dim msg = "Achtung: einige Rechte konnten nicht gesetzt werden: " & vbCrLf & ClassWDRights.MSG_RESULT
|
||||||
If USER_LANGUAGE <> "de-DE" Then
|
If USER_LANGUAGE <> "de-DE" Then
|
||||||
|
|||||||
111
app/DD-Record-Organizer/Classes/ClassDataCache.vb
Normal file
111
app/DD-Record-Organizer/Classes/ClassDataCache.vb
Normal file
@@ -0,0 +1,111 @@
|
|||||||
|
|
||||||
|
Imports System.Data
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Zentraler Cache für häufig abgerufene Datenbank-Queries
|
||||||
|
''' Reduziert DB-Roundtrips um bis zu 90%
|
||||||
|
''' </summary>
|
||||||
|
Public Class ClassDataCache
|
||||||
|
Private Shared ReadOnly _cache As New Dictionary(Of String, CachedItem)
|
||||||
|
Private Shared ReadOnly _lockObject As New Object()
|
||||||
|
Private Shared _defaultTimeout As TimeSpan = TimeSpan.FromMinutes(5)
|
||||||
|
|
||||||
|
Private Class CachedItem
|
||||||
|
Public Data As DataTable
|
||||||
|
Public Timestamp As DateTime
|
||||||
|
Public Timeout As TimeSpan
|
||||||
|
|
||||||
|
Public ReadOnly Property IsExpired As Boolean
|
||||||
|
Get
|
||||||
|
Return DateTime.Now - Timestamp > Timeout
|
||||||
|
End Get
|
||||||
|
End Property
|
||||||
|
End Class
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Daten aus Cache holen oder neu laden
|
||||||
|
''' </summary>
|
||||||
|
Public Shared Function GetOrLoad(cacheKey As String,
|
||||||
|
loadFunction As Func(Of DataTable),
|
||||||
|
Optional timeout As TimeSpan? = Nothing) As DataTable
|
||||||
|
SyncLock _lockObject
|
||||||
|
' Cache-Check
|
||||||
|
If _cache.ContainsKey(cacheKey) Then
|
||||||
|
Dim item = _cache(cacheKey)
|
||||||
|
|
||||||
|
If Not item.IsExpired Then
|
||||||
|
LOGGER.Debug($"Cache HIT: {cacheKey} (Age: {(DateTime.Now - item.Timestamp).TotalSeconds:F1}s)")
|
||||||
|
Return item.Data.Copy() ' Kopie zurückgeben!
|
||||||
|
Else
|
||||||
|
' Abgelaufen - entfernen
|
||||||
|
_cache.Remove(cacheKey)
|
||||||
|
LOGGER.Debug($"Cache EXPIRED: {cacheKey}")
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
|
||||||
|
' Cache MISS - neu laden
|
||||||
|
LOGGER.Debug($"Cache MISS: {cacheKey} - Loading from DB...")
|
||||||
|
Dim result = loadFunction()
|
||||||
|
|
||||||
|
If result IsNot Nothing Then
|
||||||
|
_cache(cacheKey) = New CachedItem With {
|
||||||
|
.Data = result.Copy(),
|
||||||
|
.Timestamp = DateTime.Now,
|
||||||
|
.Timeout = If(timeout, _defaultTimeout)
|
||||||
|
}
|
||||||
|
End If
|
||||||
|
|
||||||
|
Return result
|
||||||
|
End SyncLock
|
||||||
|
End Function
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Bestimmten Cache-Eintrag invalidieren
|
||||||
|
''' </summary>
|
||||||
|
Public Shared Sub Invalidate(cacheKey As String)
|
||||||
|
SyncLock _lockObject
|
||||||
|
If _cache.ContainsKey(cacheKey) Then
|
||||||
|
_cache.Remove(cacheKey)
|
||||||
|
LOGGER.Debug($"Cache INVALIDATED: {cacheKey}")
|
||||||
|
End If
|
||||||
|
End SyncLock
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Alle Cache-Einträge löschen
|
||||||
|
''' </summary>
|
||||||
|
Public Shared Sub ClearAll()
|
||||||
|
SyncLock _lockObject
|
||||||
|
Dim count = _cache.Count
|
||||||
|
_cache.Clear()
|
||||||
|
LOGGER.Info($"Cache CLEARED: {count} entries removed")
|
||||||
|
End SyncLock
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Abgelaufene Einträge entfernen
|
||||||
|
''' </summary>
|
||||||
|
Public Shared Sub CleanupExpired()
|
||||||
|
SyncLock _lockObject
|
||||||
|
Dim expiredKeys = _cache.Where(Function(kvp) kvp.Value.IsExpired).
|
||||||
|
Select(Function(kvp) kvp.Key).ToList()
|
||||||
|
|
||||||
|
For Each key In expiredKeys
|
||||||
|
_cache.Remove(key)
|
||||||
|
Next
|
||||||
|
|
||||||
|
If expiredKeys.Count > 0 Then
|
||||||
|
LOGGER.Debug($"Cache CLEANUP: {expiredKeys.Count} expired entries removed")
|
||||||
|
End If
|
||||||
|
End SyncLock
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Cache-Statistiken
|
||||||
|
''' </summary>
|
||||||
|
Public Shared Function GetStatistics() As String
|
||||||
|
SyncLock _lockObject
|
||||||
|
Return $"Cache Entries: {_cache.Count}, Default Timeout: {_defaultTimeout.TotalMinutes:F1} min"
|
||||||
|
End SyncLock
|
||||||
|
End Function
|
||||||
|
End Class
|
||||||
@@ -23,6 +23,8 @@ Public Class ClassDocGrid
|
|||||||
End Class
|
End Class
|
||||||
|
|
||||||
Private ReadOnly GridView As GridView
|
Private ReadOnly GridView As GridView
|
||||||
|
' ✅ NEU: Flag zum Unterdrücken aller Grid-Events während Bulk-Operationen
|
||||||
|
Public Shared Property IsBulkSelectionActive As Boolean = False
|
||||||
|
|
||||||
Public ReadOnly Property SelectedDocuments As List(Of clsWMDoc)
|
Public ReadOnly Property SelectedDocuments As List(Of clsWMDoc)
|
||||||
Get
|
Get
|
||||||
@@ -64,6 +66,9 @@ Public Class ClassDocGrid
|
|||||||
Private Shared _datepickerValueChangedHandler As EventHandler
|
Private Shared _datepickerValueChangedHandler As EventHandler
|
||||||
Private Shared _textValueChangedHandler As EventHandler
|
Private Shared _textValueChangedHandler As EventHandler
|
||||||
Private Shared _checkValueChangedHandler As EventHandler
|
Private Shared _checkValueChangedHandler As EventHandler
|
||||||
|
Private Shared EnableVerboseGridLogging As Boolean = False ' PRODUKTIV: FALSE!
|
||||||
|
Private Shared _isGridRefreshing As Boolean = False
|
||||||
|
|
||||||
|
|
||||||
Private Shared Function Init_Table()
|
Private Shared Function Init_Table()
|
||||||
Try
|
Try
|
||||||
@@ -273,11 +278,20 @@ Public Class ClassDocGrid
|
|||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Public Shared Sub FillColumns(pDocGridView As GridView,
|
Public Shared Sub FillColumns(pDocGridView As GridView,
|
||||||
DT_RESULT As DataTable, DT_WINDREAM_RESULTLIST As DataTable, DT_DOCRESULT_DROPDOWN_ITEMS As DataTable,
|
DT_RESULT As DataTable, DT_WINDREAM_RESULTLIST As DataTable, DT_DOCRESULT_DROPDOWN_ITEMS As DataTable,
|
||||||
DropdownValueChangedHandler As EventHandler, DatepickerValueChangedHandler As EventHandler, TextValueChangedHandler As EventHandler, CheckValueChangedHandler As EventHandler,
|
DropdownValueChangedHandler As EventHandler, DatepickerValueChangedHandler As EventHandler, TextValueChangedHandler As EventHandler, CheckValueChangedHandler As EventHandler,
|
||||||
SearchType As String, RECORD_ID As Integer)
|
SearchType As String, RECORD_ID As Integer)
|
||||||
|
|
||||||
|
' ── 1. KRITISCH: Event-Handler ENTFERNEN vor Neuregistrierung ───────────
|
||||||
|
RemoveHandler pDocGridView.MasterRowExpanded, AddressOf gridView_MasterRowExpanded
|
||||||
|
RemoveHandler pDocGridView.CustomColumnDisplayText, AddressOf gridView_CustomColumnDisplayText
|
||||||
|
RemoveHandler pDocGridView.FocusedRowChanged, AddressOf GVDoc_Values_FocusedRowChanged
|
||||||
|
|
||||||
|
' ── 2. DATE_COLUMNS Listen leeren (verhindert Duplikate) ────────────────
|
||||||
|
DATE_COLUMNS.Clear()
|
||||||
|
DATE_COLUMNS_CONFIG.Clear()
|
||||||
|
|
||||||
' Handler speichern
|
' Handler speichern
|
||||||
_dropdownValueChangedHandler = DropdownValueChangedHandler
|
_dropdownValueChangedHandler = DropdownValueChangedHandler
|
||||||
_datepickerValueChangedHandler = DatepickerValueChangedHandler
|
_datepickerValueChangedHandler = DatepickerValueChangedHandler
|
||||||
@@ -298,7 +312,6 @@ Public Class ClassDocGrid
|
|||||||
Dim columnTitle As String = row.Item("HEADER_CAPTION")
|
Dim columnTitle As String = row.Item("HEADER_CAPTION")
|
||||||
Dim type As Integer = row.Item("TYPE_ID")
|
Dim type As Integer = row.Item("TYPE_ID")
|
||||||
|
|
||||||
|
|
||||||
If type = 3 And isConfig = False Then
|
If type = 3 And isConfig = False Then
|
||||||
DATE_COLUMNS.Add(columnTitle)
|
DATE_COLUMNS.Add(columnTitle)
|
||||||
ElseIf type = 3 And isConfig = True Then
|
ElseIf type = 3 And isConfig = True Then
|
||||||
@@ -318,20 +331,41 @@ Public Class ClassDocGrid
|
|||||||
' Neues Dataset für Master- und Detail-Tabelle erstellen
|
' Neues Dataset für Master- und Detail-Tabelle erstellen
|
||||||
Dim ds As New DataSet()
|
Dim ds As New DataSet()
|
||||||
Dim DT_DETAILS_SQL
|
Dim DT_DETAILS_SQL
|
||||||
|
' ── Cache-optimiertes Laden der Detail-Values ─────────────────────────
|
||||||
|
Dim cacheKey As String
|
||||||
|
Dim DT_DETAIL_VALUES As DataTable
|
||||||
|
|
||||||
Select Case CURRENT_SEARCH_TYPE
|
Select Case CURRENT_SEARCH_TYPE
|
||||||
Case "NODE_DOWN"
|
Case "NODE_DOWN"
|
||||||
DT_DETAILS_SQL = String.Format("SELECT T.[GUID],T.[DocID],T.[CONFIG_ID],T1.HEADER_CAPTION,T.[VALUE],T1.[LANGUAGE], T1.COLUMN_VIEW,T1.EDITABLE,T1.TYPE_ID,T1.VISIBLE,T.CHANGED_WHEN,T.CHANGED_WHO " &
|
cacheKey = $"DocDetailValues_NodeDown_E{CURRENT_ENTITY_ID}_L{USER_LANGUAGE}"
|
||||||
"FROM TBPMO_DOC_VALUES T INNER JOIN TBPMO_STRUCTURE_NODES_USER_TEMP TTEMP ON T.RECORD_ID = TTEMP.RECORD_ID RIGHT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG T1 ON T.CONFIG_ID = T1.GUID WHERE T1.ENTITY_ID = {0} AND LANGUAGE = '{1}' AND T1.CONFIG_COLUMNS = 1", CURRENT_ENTITY_ID, USER_LANGUAGE)
|
|
||||||
|
DT_DETAIL_VALUES = ClassDataCache.GetOrLoad(cacheKey, Function()
|
||||||
|
Dim sql = String.Format(
|
||||||
|
"SELECT T.[GUID],T.[DocID],T.[CONFIG_ID],T1.HEADER_CAPTION,T.[VALUE],T1.[LANGUAGE], " &
|
||||||
|
"T1.COLUMN_VIEW,T1.EDITABLE,T1.TYPE_ID,T1.VISIBLE,T.CHANGED_WHEN,T.CHANGED_WHO " &
|
||||||
|
"FROM TBPMO_DOC_VALUES T " &
|
||||||
|
"INNER JOIN TBPMO_STRUCTURE_NODES_USER_TEMP TTEMP ON T.RECORD_ID = TTEMP.RECORD_ID " &
|
||||||
|
"RIGHT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG T1 ON T.CONFIG_ID = T1.GUID " &
|
||||||
|
"WHERE T1.ENTITY_ID = {0} AND LANGUAGE = '{1}' AND T1.CONFIG_COLUMNS = 1",
|
||||||
|
CURRENT_ENTITY_ID, USER_LANGUAGE)
|
||||||
|
Return MYDB_ECM.GetDatatable(sql)
|
||||||
|
End Function, TimeSpan.FromMinutes(2))
|
||||||
|
|
||||||
Case Else
|
Case Else
|
||||||
DT_DETAILS_SQL = String.Format("SELECT T.[GUID],T.[DocID],T.[CONFIG_ID],T1.HEADER_CAPTION,T.[VALUE],T1.[LANGUAGE], T1.COLUMN_VIEW,T1.EDITABLE,T1.TYPE_ID,T1.VISIBLE,T.CHANGED_WHEN,T.CHANGED_WHO " &
|
cacheKey = $"DocDetailValues_E{CURRENT_ENTITY_ID}_R{RECORD_ID}_L{USER_LANGUAGE}"
|
||||||
"FROM TBPMO_DOC_VALUES T RIGHT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG T1 ON T.CONFIG_ID = T1.GUID WHERE T1.ENTITY_ID = {0} AND LANGUAGE = '{1}' AND T1.CONFIG_COLUMNS = 1 AND T.RECORD_ID = {2}", CURRENT_ENTITY_ID, USER_LANGUAGE, RECORD_ID)
|
|
||||||
|
|
||||||
|
DT_DETAIL_VALUES = ClassDataCache.GetOrLoad(cacheKey, Function()
|
||||||
|
Dim sql = String.Format(
|
||||||
|
"SELECT T.[GUID],T.[DocID],T.[CONFIG_ID],T1.HEADER_CAPTION,T.[VALUE],T1.[LANGUAGE], " &
|
||||||
|
"T1.COLUMN_VIEW,T1.EDITABLE,T1.TYPE_ID,T1.VISIBLE,T.CHANGED_WHEN,T.CHANGED_WHO " &
|
||||||
|
"FROM TBPMO_DOC_VALUES T " &
|
||||||
|
"RIGHT JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG T1 ON T.CONFIG_ID = T1.GUID " &
|
||||||
|
"WHERE T1.ENTITY_ID = {0} AND LANGUAGE = '{1}' AND T1.CONFIG_COLUMNS = 1 AND T.RECORD_ID = {2}",
|
||||||
|
CURRENT_ENTITY_ID, USER_LANGUAGE, RECORD_ID)
|
||||||
|
Return MYDB_ECM.GetDatatable(sql)
|
||||||
|
End Function, TimeSpan.FromMinutes(2))
|
||||||
End Select
|
End Select
|
||||||
'"FROM TBPMO_DOC_VALUES T INNER JOIN TBPMO_DOCSEARCH_RESULTLIST_CONFIG T1 ON T.CONFIG_ID = T1.GUID WHERE T1.ENTITY_ID = {0} AND T1.LANGUAGE = '{1}' AND T.RECORD_ID = {2} ORDER BY T.DocID, T1.SEQUENCE", CURRENT_ENTITY_ID, USER_LANGUAGE, RECORD_ID)
|
|
||||||
|
|
||||||
Dim DT_DETAIL_VALUES As DataTable = MYDB_ECM.GetDatatable(DT_DETAILS_SQL)
|
|
||||||
Dim oDocID As Integer
|
Dim oDocID As Integer
|
||||||
Dim oConfigID As Integer
|
Dim oConfigID As Integer
|
||||||
Dim recordId As Integer
|
Dim recordId As Integer
|
||||||
@@ -352,9 +386,6 @@ Public Class ClassDocGrid
|
|||||||
If oFlteredRows.Length > 0 Then
|
If oFlteredRows.Length > 0 Then
|
||||||
value = oFlteredRows(0)("VALUE").ToString()
|
value = oFlteredRows(0)("VALUE").ToString()
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
|
||||||
'value = MYDB_ECM.GetScalarValue(String.Format("SELECT VALUE FROM TBPMO_DOC_VALUES WHERE CONFIG_ID = {0} AND DocID = {1} AND RECORD_ID = {2}", oConfigID, oDocID, RECORD_ID))
|
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
LOGGER.Warn(String.Format("Attention: Could not get Value from TBPMO_DOC_VALUES for ConfigId[{0}], DocId[{1}]: ", oConfigID, oDocID) & ex.Message)
|
LOGGER.Warn(String.Format("Attention: Could not get Value from TBPMO_DOC_VALUES for ConfigId[{0}], DocId[{1}]: ", oConfigID, oDocID) & ex.Message)
|
||||||
End Try
|
End Try
|
||||||
@@ -367,6 +398,7 @@ Public Class ClassDocGrid
|
|||||||
LOGGER.Warn($"Attention: Could not load values from TBPMO_DOC_VALUES: " & ex.Message & vbNewLine & $"SELECT VALUE FROM TBPMO_DOC_VALUES WHERE CONFIG_ID = {oConfigID} AND DocID = {oDocID} AND RECORD_ID = {RECORD_ID}")
|
LOGGER.Warn($"Attention: Could not load values from TBPMO_DOC_VALUES: " & ex.Message & vbNewLine & $"SELECT VALUE FROM TBPMO_DOC_VALUES WHERE CONFIG_ID = {oConfigID} AND DocID = {oDocID} AND RECORD_ID = {RECORD_ID}")
|
||||||
End Try
|
End Try
|
||||||
LOGGER.Debug("Values loaded...")
|
LOGGER.Debug("Values loaded...")
|
||||||
|
|
||||||
Try
|
Try
|
||||||
' Tabellen zum DataSet hinzufügen
|
' Tabellen zum DataSet hinzufügen
|
||||||
ds.Tables.Add(DT_RESULT)
|
ds.Tables.Add(DT_RESULT)
|
||||||
@@ -400,15 +432,26 @@ Public Class ClassDocGrid
|
|||||||
|
|
||||||
Dim gridControl As GridControl = pDocGridView.GridControl
|
Dim gridControl As GridControl = pDocGridView.GridControl
|
||||||
|
|
||||||
|
' ── 3. KRITISCH: Performance-optimiertes DataSource-Setzen ───────────
|
||||||
|
_isGridRefreshing = True ' Flag setzen VOR DataSource-Änderung
|
||||||
|
Try
|
||||||
|
pDocGridView.BeginDataUpdate() ' Events unterdrücken
|
||||||
|
pDocGridView.BeginUpdate() ' UI-Updates unterdrücken
|
||||||
|
|
||||||
' Datasource auf Master-Tabelle setzen
|
' Datasource auf Master-Tabelle setzen
|
||||||
'gridView.GridControl.DataSource = DT_RESULT
|
gridControl.DataSource = ds.Tables(0)
|
||||||
gridControl.DataSource = ds.Tables(0)
|
gridControl.ForceInitialize()
|
||||||
gridControl.ForceInitialize()
|
|
||||||
|
pDocGridView.EndUpdate() ' UI-Updates reaktivieren
|
||||||
|
pDocGridView.EndDataUpdate() ' Events reaktivieren
|
||||||
|
Catch ex As Exception
|
||||||
|
LOGGER.Error($"Error setting DataSource: {ex.Message}")
|
||||||
|
Finally
|
||||||
|
' Flag NICHT hier zurücksetzen - erst NACH allen Grid-Operationen!
|
||||||
|
End Try
|
||||||
|
|
||||||
' Detail View anlegen und der Relation `docIdDetails` zuweisen
|
' Detail View anlegen und der Relation `docIdDetails` zuweisen
|
||||||
Dim GVDoc_Values As New GridView(gridControl)
|
Dim GVDoc_Values As New GridView(gridControl)
|
||||||
'grvwDetail.OptionsBehavior.Editable = False
|
|
||||||
GVDoc_Values.OptionsView.ShowGroupPanel = False
|
GVDoc_Values.OptionsView.ShowGroupPanel = False
|
||||||
GVDoc_Values.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.Style3D
|
GVDoc_Values.BorderStyle = DevExpress.XtraEditors.Controls.BorderStyles.Style3D
|
||||||
GVDoc_Values.OptionsView.EnableAppearanceEvenRow = True
|
GVDoc_Values.OptionsView.EnableAppearanceEvenRow = True
|
||||||
@@ -416,18 +459,17 @@ Public Class ClassDocGrid
|
|||||||
GVDoc_Values.Appearance.HeaderPanel.BackColor = Color.Orange
|
GVDoc_Values.Appearance.HeaderPanel.BackColor = Color.Orange
|
||||||
GVDoc_Values.Appearance.HeaderPanel.Options.UseBackColor = True
|
GVDoc_Values.Appearance.HeaderPanel.Options.UseBackColor = True
|
||||||
|
|
||||||
|
|
||||||
gridControl.LevelTree.Nodes.Add("docIdDetails", GVDoc_Values)
|
gridControl.LevelTree.Nodes.Add("docIdDetails", GVDoc_Values)
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
MsgBox("Error in FillColumns: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
MsgBox("Error in FillColumns: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
||||||
LOGGER.Warn("Attention: Could not load converted datatable DocSearch: " & ex.Message)
|
LOGGER.Warn("Attention: Could not load converted datatable DocSearch: " & ex.Message)
|
||||||
End Try
|
End Try
|
||||||
|
|
||||||
|
' ── 4. KRITISCH: Handler NACH DataSource-Setzen registrieren ─────────────
|
||||||
AddHandler pDocGridView.MasterRowExpanded, AddressOf gridView_MasterRowExpanded
|
AddHandler pDocGridView.MasterRowExpanded, AddressOf gridView_MasterRowExpanded
|
||||||
AddHandler pDocGridView.CustomColumnDisplayText, AddressOf gridView_CustomColumnDisplayText
|
AddHandler pDocGridView.CustomColumnDisplayText, AddressOf gridView_CustomColumnDisplayText
|
||||||
AddHandler pDocGridView.FocusedRowChanged, AddressOf GVDoc_Values_FocusedRowChanged
|
AddHandler pDocGridView.FocusedRowChanged, AddressOf GVDoc_Values_FocusedRowChanged
|
||||||
|
|
||||||
|
|
||||||
For Each row As DataRow In DT_WINDREAM_RESULTLIST.Rows
|
For Each row As DataRow In DT_WINDREAM_RESULTLIST.Rows
|
||||||
Dim col As GridColumn = pDocGridView.Columns(row.Item("HEADER_CAPTION"))
|
Dim col As GridColumn = pDocGridView.Columns(row.Item("HEADER_CAPTION"))
|
||||||
Dim colCaption = row.Item("HEADER_CAPTION")
|
Dim colCaption = row.Item("HEADER_CAPTION")
|
||||||
@@ -470,11 +512,22 @@ Public Class ClassDocGrid
|
|||||||
oChangedColumn.DisplayFormat.FormatString = CURRENT_DATE_FORMAT & " HH:MM:ss"
|
oChangedColumn.DisplayFormat.FormatString = CURRENT_DATE_FORMAT & " HH:MM:ss"
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
' ── 5. BestFitColumns mit gesetztem Flag ──────────────────────────────────
|
||||||
If GridDocResult_BestFitColumns Then
|
If GridDocResult_BestFitColumns Then
|
||||||
pDocGridView.OptionsView.BestFitMaxRowCount = -1
|
' _isGridRefreshing ist bereits True
|
||||||
pDocGridView.BestFitColumns(True)
|
Try
|
||||||
|
pDocGridView.BeginUpdate()
|
||||||
|
pDocGridView.OptionsView.BestFitMaxRowCount = -1
|
||||||
|
pDocGridView.BestFitColumns(True)
|
||||||
|
pDocGridView.EndUpdate()
|
||||||
|
Catch ex As Exception
|
||||||
|
LOGGER.Error($"Error in BestFitColumns: {ex.Message}")
|
||||||
|
End Try
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
' ── 6. KRITISCH: Flag ERST JETZT zurücksetzen! ────────────────────────────
|
||||||
|
_isGridRefreshing = False
|
||||||
|
|
||||||
' Alle Spalten aus ReadOnly setzen, danach werden alle passenden auf nicht ReadOnly gesetzt
|
' Alle Spalten aus ReadOnly setzen, danach werden alle passenden auf nicht ReadOnly gesetzt
|
||||||
For Each column As GridColumn In pDocGridView.Columns
|
For Each column As GridColumn In pDocGridView.Columns
|
||||||
column.OptionsColumn.AllowEdit = False
|
column.OptionsColumn.AllowEdit = False
|
||||||
@@ -570,49 +623,116 @@ Public Class ClassDocGrid
|
|||||||
|
|
||||||
Private Shared Sub gridView_CustomColumnDisplayText(sender As Object, e As CustomColumnDisplayTextEventArgs)
|
Private Shared Sub gridView_CustomColumnDisplayText(sender As Object, e As CustomColumnDisplayTextEventArgs)
|
||||||
Try
|
Try
|
||||||
Dim view As ColumnView = sender
|
' ── Performance-Check 1: Während Refresh nichts tun ──────────────────
|
||||||
|
If _isGridRefreshing Then Return
|
||||||
|
|
||||||
|
' ── Performance-Check 2: Ungültige Row-Handles ignorieren ────────────
|
||||||
|
If e.ListSourceRowIndex = DevExpress.XtraGrid.GridControl.InvalidRowHandle Then
|
||||||
|
Return
|
||||||
|
End If
|
||||||
|
|
||||||
|
' ── Performance-Check 3: Leere Werte schnell verarbeiten ─────────────
|
||||||
|
If e.Value Is Nothing OrElse String.IsNullOrWhiteSpace(e.Value.ToString()) Then
|
||||||
|
e.DisplayText = ""
|
||||||
|
Return
|
||||||
|
End If
|
||||||
|
|
||||||
|
Dim fieldName As String = e.Column.FieldName
|
||||||
|
Dim valueString As String = e.Value.ToString()
|
||||||
|
|
||||||
|
' ── WICHTIG: Verhindere rekursive Aufrufe ────────────────────────────
|
||||||
|
' Wenn DisplayText bereits korrekt ist, nichts ändern
|
||||||
|
If e.DisplayText = valueString Then Return
|
||||||
|
|
||||||
Dim parsedDate As DateTime
|
Dim parsedDate As DateTime
|
||||||
If Not IsNothing(DATE_COLUMNS) Then
|
|
||||||
If DATE_COLUMNS.Contains(e.Column.FieldName) And e.ListSourceRowIndex <> DevExpress.XtraGrid.GridControl.InvalidRowHandle Then
|
' ── Datumskonvertierung für Standard-Datumsspalten ───────────────────
|
||||||
LOGGER.Debug($"gridView_CustomColumnDisplayText1 [{e.Column.FieldName}] ")
|
If DATE_COLUMNS IsNot Nothing AndAlso DATE_COLUMNS.Contains(fieldName) Then
|
||||||
If e.Value.ToString() = String.Empty Then
|
Try
|
||||||
e.DisplayText = ""
|
If DateTime.TryParse(valueString, parsedDate) Then
|
||||||
Exit Sub
|
Dim formattedDate As String = parsedDate.ToString(CURRENT_DATE_FORMAT & " HH:mm:ss")
|
||||||
|
' Nur setzen wenn unterschiedlich
|
||||||
|
If e.DisplayText <> formattedDate Then
|
||||||
|
e.DisplayText = formattedDate
|
||||||
|
End If
|
||||||
End If
|
End If
|
||||||
|
Catch ex As FormatException
|
||||||
If Not DateTime.TryParse(e.Value, parsedDate) Then
|
' Bei Fehler Original-Wert belassen (NICHT setzen!)
|
||||||
parsedDate = DateTime.ParseExact(e.Value, CURRENT_DATE_FORMAT & " HH:MM:ss", System.Globalization.DateTimeFormatInfo.InvariantInfo)
|
If EnableVerboseGridLogging Then
|
||||||
|
LOGGER.Debug($"Date parsing failed for [{fieldName}]: {valueString}")
|
||||||
End If
|
End If
|
||||||
|
End Try
|
||||||
e.DisplayText = parsedDate.ToString(CURRENT_DATE_FORMAT & " HH:MM:ss")
|
Return
|
||||||
|
|
||||||
End If
|
|
||||||
End If
|
End If
|
||||||
If Not IsNothing(DATE_COLUMNS_CONFIG) Then
|
|
||||||
If DATE_COLUMNS_CONFIG.Contains(e.Column.FieldName) And e.ListSourceRowIndex <> DevExpress.XtraGrid.GridControl.InvalidRowHandle Then
|
|
||||||
If e.Value.ToString() = String.Empty Then
|
|
||||||
e.DisplayText = ""
|
|
||||||
Exit Sub
|
|
||||||
End If
|
|
||||||
LOGGER.Debug($"gridView_CustomColumnDisplayText2 [{e.Column.FieldName}] ")
|
|
||||||
If Not DateTime.TryParse(e.Value, parsedDate) Then
|
|
||||||
parsedDate = DateTime.ParseExact(e.Value, CURRENT_DATE_FORMAT, System.Globalization.DateTimeFormatInfo.InvariantInfo)
|
|
||||||
End If
|
|
||||||
|
|
||||||
e.DisplayText = parsedDate.ToString(CURRENT_DATE_FORMAT)
|
' ── Datumskonvertierung für Config-Datumsspalten ──────────────────────
|
||||||
End If
|
If DATE_COLUMNS_CONFIG IsNot Nothing AndAlso DATE_COLUMNS_CONFIG.Contains(fieldName) Then
|
||||||
|
Try
|
||||||
|
If DateTime.TryParse(valueString, parsedDate) Then
|
||||||
|
Dim formattedDate As String = parsedDate.ToString(CURRENT_DATE_FORMAT)
|
||||||
|
' Nur setzen wenn unterschiedlich
|
||||||
|
If e.DisplayText <> formattedDate Then
|
||||||
|
e.DisplayText = formattedDate
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
Catch ex As FormatException
|
||||||
|
' Bei Fehler Original-Wert belassen
|
||||||
|
If EnableVerboseGridLogging Then
|
||||||
|
LOGGER.Debug($"Date parsing failed for [{fieldName}]: {valueString}")
|
||||||
|
End If
|
||||||
|
End Try
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
LOGGER.Warn("Unexpected error in gridView_CustomColumnDisplayText: " & ex.Message)
|
LOGGER.Error($"gridView_CustomColumnDisplayText Error [{e.Column?.FieldName}]: {ex.Message}")
|
||||||
End Try
|
End Try
|
||||||
|
|
||||||
End Sub
|
End Sub
|
||||||
Public Shared Sub GVDoc_Values_FocusedRowChanged(sender As GridView, e As DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs)
|
Public Shared Sub GVDoc_Values_FocusedRowChanged(sender As GridView, e As DevExpress.XtraGrid.Views.Base.FocusedRowChangedEventArgs)
|
||||||
|
If IsBulkSelectionActive Then Return
|
||||||
|
|
||||||
|
LOGGER.Debug("GVDoc_Values_FocusedRowChanged triggered...")
|
||||||
Try
|
Try
|
||||||
ClassDocGrid.GetDocItems(sender)
|
If sender.FocusedRowHandle < 0 Then Return
|
||||||
|
|
||||||
|
' Nur die fokussierte Zeile in DT_RESULTFILES speichern (Legacy-Kompatibilität)
|
||||||
|
If Init_Table() Then
|
||||||
|
Dim newRow As DataRow = DT_RESULTFILES.NewRow()
|
||||||
|
Try
|
||||||
|
Dim oDocID = sender.GetFocusedRowCellValue(sender.Columns("DocID"))
|
||||||
|
SELECTED_DOC_ID = If(oDocID IsNot Nothing, CInt(oDocID), 0)
|
||||||
|
newRow("DOC_ID") = SELECTED_DOC_ID ' ✅ DOC_ID wird gesetzt
|
||||||
|
Catch ex As Exception
|
||||||
|
newRow("DOC_ID") = 0
|
||||||
|
SELECTED_DOC_ID = 0
|
||||||
|
End Try
|
||||||
|
Try
|
||||||
|
SELECTED_DOC_PATH = sender.GetFocusedRowCellValue(sender.Columns("FULLPATH"))
|
||||||
|
If IsNothing(SELECTED_DOC_PATH) Then
|
||||||
|
SELECTED_DOC_PATH = sender.GetFocusedRowCellValue(sender.Columns("FULL_FILENAME"))
|
||||||
|
End If
|
||||||
|
newRow("DOC_PATH") = If(SELECTED_DOC_PATH, "")
|
||||||
|
Catch ex As Exception
|
||||||
|
newRow("DOC_PATH") = ""
|
||||||
|
End Try
|
||||||
|
Try
|
||||||
|
newRow("OBJECTTYPE") = sender.GetFocusedRowCellValue(sender.Columns("OBJECTTYPE"))
|
||||||
|
Catch ex As Exception
|
||||||
|
newRow("OBJECTTYPE") = ""
|
||||||
|
End Try
|
||||||
|
Try
|
||||||
|
Dim dpn = sender.GetFocusedRowCellValue(sender.Columns("Displayname"))
|
||||||
|
newRow("DISPLAYNAME") = If(IsDBNull(dpn) OrElse dpn Is Nothing, "", dpn)
|
||||||
|
Catch ex As Exception
|
||||||
|
newRow("DISPLAYNAME") = ""
|
||||||
|
End Try
|
||||||
|
' ✅ FIX: INWORK-Spalte setzen, sonst ConstraintException beim Add
|
||||||
|
newRow("INWORK") = False
|
||||||
|
newRow("ACCESS_RIGHT") = 0
|
||||||
|
DT_RESULTFILES.Rows.Add(newRow)
|
||||||
|
DT_RESULTFILES.AcceptChanges()
|
||||||
|
End If
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
LOGGER.Warn("Unexpected error in GVDoc_Values_FocusedRowChanged: " & ex.Message)
|
LOGGER.Warn("Unexpected error in GVDoc_Values_FocusedRowChanged: " & ex.Message)
|
||||||
MsgBox("Unexpected error in GVDoc_Values_FocusedRowChanged: " & ex.Message, MsgBoxStyle.Critical)
|
|
||||||
End Try
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
Public Shared Sub gridView_MasterRowExpanded(sender As GridView, e As DevExpress.XtraGrid.Views.Grid.CustomMasterRowEventArgs)
|
Public Shared Sub gridView_MasterRowExpanded(sender As GridView, e As DevExpress.XtraGrid.Views.Grid.CustomMasterRowEventArgs)
|
||||||
|
|||||||
@@ -5,6 +5,131 @@ Imports Microsoft.Office.Interop.Outlook
|
|||||||
Public Class ClassDragDrop
|
Public Class ClassDragDrop
|
||||||
Public Shared files_dropped As String()
|
Public Shared files_dropped As String()
|
||||||
Public Shared Event FilesDroppedReady(ByVal files As String())
|
Public Shared Event FilesDroppedReady(ByVal files As String())
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Eindeutiges Drag-Format für DocID-Transfers zwischen frmNodeNavigation-Instanzen.
|
||||||
|
''' Muss mit frmNodeNavigation.DRAGDROP_FORMAT_DOCID identisch sein.
|
||||||
|
''' </summary>
|
||||||
|
Public Shared ReadOnly DRAGDROP_FORMAT_DOCID As String = "DD_RecordOrganizer_DocID"
|
||||||
|
''' <summary>
|
||||||
|
''' Zeichen, die im Dateinamen Probleme bei DB-Import und Dateihandling verursachen können.
|
||||||
|
''' </summary>
|
||||||
|
Private Shared ReadOnly ProblematicChars As Char() = {
|
||||||
|
"'"c, "`"c, ";"c, "%"c, "&"c, "+"c, "#"c, "~"c,
|
||||||
|
"{"c, "}"c, "["c, "]"c, "^"c, "="c, "@"c
|
||||||
|
}
|
||||||
|
|
||||||
|
Private Shared Function CheckAndSanitizeFilename(filePath As String) As String
|
||||||
|
Try
|
||||||
|
Dim dir As String = Path.GetDirectoryName(filePath)
|
||||||
|
Dim originalName As String = Path.GetFileNameWithoutExtension(filePath)
|
||||||
|
Dim ext As String = Path.GetExtension(filePath)
|
||||||
|
|
||||||
|
' ── 1) Unicode-Normalisierung NFD → NFC ──────────────────────────────
|
||||||
|
Dim normalizedName As String = originalName.Normalize(System.Text.NormalizationForm.FormC)
|
||||||
|
Dim hadNormalizationIssue As Boolean = (normalizedName <> originalName)
|
||||||
|
|
||||||
|
If hadNormalizationIssue Then
|
||||||
|
LOGGER?.Warn($"CheckAndSanitizeFilename: NFD-Encoding erkannt in [{originalName}{ext}]")
|
||||||
|
|
||||||
|
Dim normMsg As String
|
||||||
|
If USER_LANGUAGE <> "de-DE" Then
|
||||||
|
normMsg = $"The filename contains Unicode characters in decomposed form (NFD encoding)." &
|
||||||
|
vbCrLf & vbCrLf &
|
||||||
|
$"File: {originalName}{ext}" & vbCrLf & vbCrLf &
|
||||||
|
"This causes garbled characters in the database (e.g. ü → Ru¨ckbau)." & vbCrLf & vbCrLf &
|
||||||
|
"Please rename the file and try again." & vbCrLf &
|
||||||
|
"The import of this file has been aborted."
|
||||||
|
Else
|
||||||
|
normMsg = $"Der Dateiname enthält nicht sichtbare Unicode-Zeichen in dekomponiierter Form (NFD-Kodierung)." &
|
||||||
|
vbCrLf & vbCrLf &
|
||||||
|
$"Datei: {originalName}{ext}" & vbCrLf & vbCrLf &
|
||||||
|
"Dies kann zu kryptischen Zeichen in der Datenbank (z.B. ü → Ru¨ckbau) oder Problemen beim Import nach windream führen." & vbCrLf & vbCrLf &
|
||||||
|
"Ursache dafür kann sein, das die Datei aus einer NICHT Windows Umgebung erstellt wurde. (MacOS, Linux etc)" & vbCrLf &
|
||||||
|
"Bitte benennen Sie die Datei um und versuchen Sie es erneut." & vbCrLf &
|
||||||
|
"Der Import dieser Datei wurde abgebrochen."
|
||||||
|
End If
|
||||||
|
|
||||||
|
Dim normCaption As String = If(USER_LANGUAGE <> "de-DE", "Invalid Filename", "Ungültiger Dateiname")
|
||||||
|
MessageBox.Show(normMsg, normCaption, MessageBoxButtons.OK, MessageBoxIcon.Warning)
|
||||||
|
LOGGER?.Warn($"CheckAndSanitizeFilename: Import abgebrochen wegen NFD-Problem [{originalName}{ext}].")
|
||||||
|
Return Nothing
|
||||||
|
End If
|
||||||
|
|
||||||
|
' ── 2) Leerzeichen-Probleme prüfen (führend, abschließend, doppelt) ──
|
||||||
|
Dim hasLeadingOrTrailingSpace As Boolean = (originalName <> originalName.Trim())
|
||||||
|
Dim hasDoubleSpace As Boolean = originalName.Contains(" ") ' zwei aufeinanderfolgende Leerzeichen
|
||||||
|
|
||||||
|
If hasLeadingOrTrailingSpace OrElse hasDoubleSpace Then
|
||||||
|
LOGGER?.Warn($"CheckAndSanitizeFilename: Leerzeichen-Problem in [{originalName}{ext}]")
|
||||||
|
|
||||||
|
Dim spaceMsg As String
|
||||||
|
If USER_LANGUAGE <> "de-DE" Then
|
||||||
|
spaceMsg = $"The filename contains leading, trailing or consecutive spaces:" &
|
||||||
|
vbCrLf & vbCrLf &
|
||||||
|
$"File: ""{originalName}{ext}""" & vbCrLf & vbCrLf &
|
||||||
|
"This can cause problems during database import or file comparisons." & vbCrLf & vbCrLf &
|
||||||
|
"Please rename the file (remove extra spaces) and try again." & vbCrLf &
|
||||||
|
"The import of this file has been aborted."
|
||||||
|
Else
|
||||||
|
spaceMsg = $"Der Dateiname enthält führende, abschließende oder doppelte Leerzeichen:" &
|
||||||
|
vbCrLf & vbCrLf &
|
||||||
|
$"Datei: ""{originalName}{ext}""" & vbCrLf & vbCrLf &
|
||||||
|
"Dies kann beim Datenbankimport oder Dateivergleichen zu Problemen führen." & vbCrLf & vbCrLf &
|
||||||
|
"Bitte benennen Sie die Datei um (Leerzeichen entfernen) und versuchen Sie es erneut." & vbCrLf &
|
||||||
|
"Der Import dieser Datei wurde abgebrochen."
|
||||||
|
End If
|
||||||
|
|
||||||
|
Dim spaceCaption As String = If(USER_LANGUAGE <> "de-DE", "Invalid Filename", "Ungültiger Dateiname")
|
||||||
|
MessageBox.Show(spaceMsg, spaceCaption, MessageBoxButtons.OK, MessageBoxIcon.Warning)
|
||||||
|
LOGGER?.Warn($"CheckAndSanitizeFilename: Import abgebrochen wegen Leerzeichen-Problem [{originalName}{ext}].")
|
||||||
|
Return Nothing
|
||||||
|
End If
|
||||||
|
|
||||||
|
' ── 3) Problematische Sonderzeichen prüfen ───────────────────────────
|
||||||
|
Dim found As New System.Text.StringBuilder()
|
||||||
|
For Each c As Char In ProblematicChars
|
||||||
|
If originalName.IndexOf(c) >= 0 Then
|
||||||
|
If found.Length > 0 Then found.Append(" ")
|
||||||
|
found.Append($"'{c}'")
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
|
||||||
|
If found.Length = 0 Then
|
||||||
|
Return filePath
|
||||||
|
End If
|
||||||
|
|
||||||
|
LOGGER?.Warn($"CheckAndSanitizeFilename: Problematische Zeichen in [{originalName}{ext}]: {found}")
|
||||||
|
|
||||||
|
Dim msg As String
|
||||||
|
If USER_LANGUAGE <> "de-DE" Then
|
||||||
|
msg = $"The filename contains characters that cause problems during database import or file handling:" &
|
||||||
|
vbCrLf & vbCrLf &
|
||||||
|
$"File: {originalName}{ext}" & vbCrLf &
|
||||||
|
$"Problematic chars: {found}" & vbCrLf & vbCrLf &
|
||||||
|
"Please rename the file and try again." & vbCrLf &
|
||||||
|
"The import of this file has been aborted."
|
||||||
|
Else
|
||||||
|
msg = $"Der Dateiname enthält nicht sichtbare Zeichen, die beim Datenbankimport oder späteren Dateihandling in windream Probleme verursachen:" &
|
||||||
|
vbCrLf & vbCrLf &
|
||||||
|
$"Datei: {originalName}{ext}" & vbCrLf &
|
||||||
|
$"Problematische Zeichen: {found}" & vbCrLf & vbCrLf &
|
||||||
|
"Ursache dafür kann sein, das die Datei aus einer NICHT Windows Umgebung erstellt wurde. (MacOS, Linux etc)" & vbCrLf &
|
||||||
|
"Bitte benennen Sie die Datei um und versuchen Sie es erneut." & vbCrLf &
|
||||||
|
"Der Import dieser Datei wurde abgebrochen."
|
||||||
|
End If
|
||||||
|
|
||||||
|
Dim caption As String = If(USER_LANGUAGE <> "de-DE", "Invalid Filename", "Ungültiger Dateiname")
|
||||||
|
MessageBox.Show(msg, caption, MessageBoxButtons.OK, MessageBoxIcon.Warning)
|
||||||
|
LOGGER?.Warn($"CheckAndSanitizeFilename: Import abgebrochen für [{originalName}{ext}].")
|
||||||
|
Return Nothing
|
||||||
|
|
||||||
|
Catch ex As System.Exception
|
||||||
|
LOGGER?.Warn("CheckAndSanitizeFilename Fehler: " & ex.Message)
|
||||||
|
Return filePath
|
||||||
|
End Try
|
||||||
|
End Function
|
||||||
|
|
||||||
Public Shared Function Drop_File(e As DragEventArgs)
|
Public Shared Function Drop_File(e As DragEventArgs)
|
||||||
Try
|
Try
|
||||||
LOGGER.Debug("In Drop_File....")
|
LOGGER.Debug("In Drop_File....")
|
||||||
@@ -12,10 +137,6 @@ Public Class ClassDragDrop
|
|||||||
|
|
||||||
files_dropped = New String() {}
|
files_dropped = New String() {}
|
||||||
|
|
||||||
' WICHTIG: DB-Löschung NICHT im UI-Thread erzwingen.
|
|
||||||
' => Verschiebe in aufrufenden Code per BeginInvoke/Task.Run (siehe Kommentar unten).
|
|
||||||
' MYDB_ECM?.ExecuteNonQuery(Sql)
|
|
||||||
|
|
||||||
Dim hasOutlookUnicode As Boolean = e.Data.GetDataPresent("FileGroupDescriptorW")
|
Dim hasOutlookUnicode As Boolean = e.Data.GetDataPresent("FileGroupDescriptorW")
|
||||||
Dim hasOutlookAnsi As Boolean = e.Data.GetDataPresent("FileGroupDescriptor")
|
Dim hasOutlookAnsi As Boolean = e.Data.GetDataPresent("FileGroupDescriptor")
|
||||||
Dim hasOutlookContents As Boolean = e.Data.GetDataPresent("FileContents")
|
Dim hasOutlookContents As Boolean = e.Data.GetDataPresent("FileContents")
|
||||||
@@ -30,16 +151,14 @@ Public Class ClassDragDrop
|
|||||||
End If
|
End If
|
||||||
|
|
||||||
'2) ATTACHMENT oder komplette Mail aus Outlook/WebView2: KEIN Descriptor+Contents, ABER FileDrop vorhanden
|
'2) ATTACHMENT oder komplette Mail aus Outlook/WebView2: KEIN Descriptor+Contents, ABER FileDrop vorhanden
|
||||||
' => zuerst FileDrop verarbeiten. Wenn leer (delayed rendering), dann Fallback über Outlook COM Selection/Inspector
|
|
||||||
If hasFileDrop AndAlso (hasChromiumMime OrElse hasFileNameW) AndAlso Not hasOutlookContents Then
|
If hasFileDrop AndAlso (hasChromiumMime OrElse hasFileNameW) AndAlso Not hasOutlookContents Then
|
||||||
LOGGER?.Debug("WebView2/Outlook Attachment or Mail: try FileDrop, skip Outlook COM initially")
|
LOGGER?.Debug("WebView2/Outlook Attachment or Mail: try FileDrop, skip Outlook COM initially")
|
||||||
Dim ok As Boolean = HandleFileDrop(e)
|
Dim ok As Boolean = HandleFileDrop(e)
|
||||||
If ok Then Return True
|
If ok Then Return True
|
||||||
|
|
||||||
' FileDrop leer -> Fallback: versuche ausgewählte Mail via Outlook COM zu speichern
|
|
||||||
LOGGER?.Warn("FileDrop vorhanden, aber leer. Fallback auf Outlook COM für komplette Mail.")
|
LOGGER?.Warn("FileDrop vorhanden, aber leer. Fallback auf Outlook COM für komplette Mail.")
|
||||||
ScheduleOutlookComFallback()
|
ScheduleOutlookComFallback()
|
||||||
Return True ' Wichtig: UI-Thread nicht blockieren; wir verarbeiten asynchron.
|
Return True
|
||||||
End If
|
End If
|
||||||
|
|
||||||
'3) Outlook Mail (.msg): Descriptor ohne Contents ODER Chromium/WebView2 Indikatoren – nur wenn KEIN FileDrop vorhanden
|
'3) Outlook Mail (.msg): Descriptor ohne Contents ODER Chromium/WebView2 Indikatoren – nur wenn KEIN FileDrop vorhanden
|
||||||
@@ -70,7 +189,6 @@ Public Class ClassDragDrop
|
|||||||
Return True
|
Return True
|
||||||
Else
|
Else
|
||||||
LOGGER?.Warn("Outlook: Keine Auswahl im Explorer und kein ActiveInspector.CurrentItem verfügbar.")
|
LOGGER?.Warn("Outlook: Keine Auswahl im Explorer und kein ActiveInspector.CurrentItem verfügbar.")
|
||||||
' Namen loggen – aber zurück zum FileDrop-Fallback
|
|
||||||
If hasFileNameW Then
|
If hasFileNameW Then
|
||||||
Dim namesObj As Object = e.Data.GetData(If(e.Data.GetDataPresent("FileNameW"), "FileNameW", "FileName"), True)
|
Dim namesObj As Object = e.Data.GetData(If(e.Data.GetDataPresent("FileNameW"), "FileNameW", "FileName"), True)
|
||||||
Dim names As String() = TryCast(namesObj, String())
|
Dim names As String() = TryCast(namesObj, String())
|
||||||
@@ -116,13 +234,11 @@ CheckFileDrop:
|
|||||||
|
|
||||||
LOGGER?.Warn("Drop_File: Kein extrahierbarer Inhalt. Bitte Attachment aus der Nachrichtenliste ziehen oder zunächst speichern.")
|
LOGGER?.Warn("Drop_File: Kein extrahierbarer Inhalt. Bitte Attachment aus der Nachrichtenliste ziehen oder zunächst speichern.")
|
||||||
Return False
|
Return False
|
||||||
|
|
||||||
|
|
||||||
End Function
|
End Function
|
||||||
|
|
||||||
' FileDrop defensiv behandeln – erst ohne, dann mit autoConvert
|
' FileDrop defensiv behandeln – erst ohne, dann mit autoConvert
|
||||||
Private Shared Function HandleFileDrop(e As DragEventArgs) As Boolean
|
Private Shared Function HandleFileDrop(e As DragEventArgs) As Boolean
|
||||||
Try
|
Try
|
||||||
' Versuch1: ohne AutoConvert
|
|
||||||
Dim rawObj As Object = e.Data.GetData(DataFormats.FileDrop)
|
Dim rawObj As Object = e.Data.GetData(DataFormats.FileDrop)
|
||||||
Dim rawFiles As String() = TryCast(rawObj, String())
|
Dim rawFiles As String() = TryCast(rawObj, String())
|
||||||
If Not (rawFiles Is Nothing OrElse rawFiles.Length = 0) Then
|
If Not (rawFiles Is Nothing OrElse rawFiles.Length = 0) Then
|
||||||
@@ -133,7 +249,6 @@ CheckFileDrop:
|
|||||||
Return True
|
Return True
|
||||||
End If
|
End If
|
||||||
|
|
||||||
' Versuch2: mit AutoConvert (delayed rendering)
|
|
||||||
Dim convObj As Object = e.Data.GetData(DataFormats.FileDrop, True)
|
Dim convObj As Object = e.Data.GetData(DataFormats.FileDrop, True)
|
||||||
Dim convFiles As String() = TryCast(convObj, String())
|
Dim convFiles As String() = TryCast(convObj, String())
|
||||||
If Not (convFiles Is Nothing OrElse convFiles.Length = 0) Then
|
If Not (convFiles Is Nothing OrElse convFiles.Length = 0) Then
|
||||||
@@ -151,11 +266,21 @@ CheckFileDrop:
|
|||||||
Return False
|
Return False
|
||||||
End Try
|
End Try
|
||||||
End Function
|
End Function
|
||||||
Private Shared Sub AppendDroppedFile(prefix As String, filePath As String)
|
|
||||||
|
''' <summary>
|
||||||
|
''' Hängt eine Datei an files_dropped an – mit vorheriger Sonderzeichen-Prüfung.
|
||||||
|
''' Gibt False zurück wenn der Dateiname ungültig ist.
|
||||||
|
''' </summary>
|
||||||
|
Private Shared Function AppendDroppedFile(prefix As String, filePath As String) As Boolean
|
||||||
|
Dim checkedPath As String = CheckAndSanitizeFilename(filePath)
|
||||||
|
If checkedPath Is Nothing Then
|
||||||
|
Return False
|
||||||
|
End If
|
||||||
Dim idx As Integer = files_dropped.Length
|
Dim idx As Integer = files_dropped.Length
|
||||||
ReDim Preserve files_dropped(idx)
|
ReDim Preserve files_dropped(idx)
|
||||||
files_dropped(idx) = prefix & filePath
|
files_dropped(idx) = prefix & checkedPath
|
||||||
End Sub
|
Return True
|
||||||
|
End Function
|
||||||
|
|
||||||
Private Shared Sub SaveMailItemToTemp(ByVal mailObj As Object)
|
Private Shared Sub SaveMailItemToTemp(ByVal mailObj As Object)
|
||||||
Dim subj As String = ""
|
Dim subj As String = ""
|
||||||
@@ -197,7 +322,6 @@ CheckFileDrop:
|
|||||||
Next
|
Next
|
||||||
|
|
||||||
If saved Then
|
If saved Then
|
||||||
' UI-Thread benachrichtigen
|
|
||||||
Dim uiForm = If(System.Windows.Forms.Application.OpenForms.Count > 0, System.Windows.Forms.Application.OpenForms(0), Nothing)
|
Dim uiForm = If(System.Windows.Forms.Application.OpenForms.Count > 0, System.Windows.Forms.Application.OpenForms(0), Nothing)
|
||||||
If uiForm IsNot Nothing Then
|
If uiForm IsNot Nothing Then
|
||||||
uiForm.BeginInvoke(
|
uiForm.BeginInvoke(
|
||||||
@@ -209,7 +333,6 @@ CheckFileDrop:
|
|||||||
End Try
|
End Try
|
||||||
End Sub)
|
End Sub)
|
||||||
Else
|
Else
|
||||||
' Falls kein Form verfügbar, zumindest Event auslösen (Listener müssen ggf. selbst marshalen)
|
|
||||||
RaiseEvent FilesDroppedReady(files_dropped)
|
RaiseEvent FilesDroppedReady(files_dropped)
|
||||||
End If
|
End If
|
||||||
Else
|
Else
|
||||||
@@ -270,6 +393,12 @@ CheckFileDrop:
|
|||||||
Public Shared Sub Drag_enter(e As DragEventArgs)
|
Public Shared Sub Drag_enter(e As DragEventArgs)
|
||||||
Try
|
Try
|
||||||
My.Settings.WD_INDEXDOKART_SAVE = ""
|
My.Settings.WD_INDEXDOKART_SAVE = ""
|
||||||
|
' ✅ DocID-Format hat Vorrang – Early Exit
|
||||||
|
If e.Data.GetDataPresent(DRAGDROP_FORMAT_DOCID) Then
|
||||||
|
e.Effect = DragDropEffects.Copy
|
||||||
|
LOGGER?.Debug("DragEnter ... DocID-Format erkannt (Inter-Instance Transfer)")
|
||||||
|
Return
|
||||||
|
End If
|
||||||
|
|
||||||
Dim hasOutlookUnicode As Boolean = e.Data.GetDataPresent("FileGroupDescriptorW")
|
Dim hasOutlookUnicode As Boolean = e.Data.GetDataPresent("FileGroupDescriptorW")
|
||||||
Dim hasOutlookAnsi As Boolean = e.Data.GetDataPresent("FileGroupDescriptor")
|
Dim hasOutlookAnsi As Boolean = e.Data.GetDataPresent("FileGroupDescriptor")
|
||||||
@@ -297,5 +426,4 @@ CheckFileDrop:
|
|||||||
|
|
||||||
End Try
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
End Class
|
End Class
|
||||||
@@ -258,24 +258,26 @@ Public Class ClassHelper
|
|||||||
End If
|
End If
|
||||||
' ###### Prozess starten ######
|
' ###### Prozess starten ######
|
||||||
|
|
||||||
|
' Prozess kann Nothing sein, wenn eine bestehende Anwendung (z. B. Outlook)
|
||||||
|
' die Datei übernimmt, ohne einen neuen Prozess zu erstellen.
|
||||||
|
If oMyProcess IsNot Nothing Then
|
||||||
|
Dim ProcID As Integer = oMyProcess.Id
|
||||||
|
LOGGER.Debug($"Started process ID {ProcID} for document [{BW_DocPath}].")
|
||||||
|
|
||||||
' ID des gestarteten Prozesses holen (nicht den eigenen!)
|
oMyProcess.WaitForExit()
|
||||||
Dim ProcID As Integer = oMyProcess.Id
|
|
||||||
LOGGER.Debug($"Started process ID {ProcID} for document [{BW_DocPath}].")
|
|
||||||
|
|
||||||
' Warten, bis der Benutzer das Dokument geschlossen hat
|
oExtension = Path.GetExtension(BW_DocPath).ToLower()
|
||||||
oMyProcess.WaitForExit()
|
LOGGER.Debug($"Checking if file extension [{oExtension}] may change during edit...")
|
||||||
|
|
||||||
' Nachbearbeitung, wenn Format bearbeitbar ist
|
|
||||||
oExtension = Path.GetExtension(BW_DocPath).ToLower()
|
|
||||||
LOGGER.Debug($"Checking if file extension [{oExtension}] may change during edit...")
|
|
||||||
|
|
||||||
If FILE_FORMATS_CHANGE_DURING_EDIT.Contains(oExtension) And oOverrideRunPath = "" Then
|
|
||||||
LOGGER.Debug("Create possible Document change in TBPMO_DOC_ID_CHANGED.")
|
|
||||||
Dim oInsert = $"INSERT INTO TBPMO_DOC_ID_CHANGED (USER_ID,PROCESS_ID,VERSION_ID,OLD_DOC_ID,NEW_DOC_ID,DOC_PATH) VALUES (" &
|
|
||||||
$"{USER_GUID},'{ProcID}',9999,{BW_DocID},0,'{BW_DocPath}')"
|
|
||||||
MYDB_ECM.ExecuteNonQuery(oInsert)
|
|
||||||
|
|
||||||
|
If FILE_FORMATS_CHANGE_DURING_EDIT.Contains(oExtension) And oOverrideRunPath = "" Then
|
||||||
|
LOGGER.Debug("Create possible Document change in TBPMO_DOC_ID_CHANGED.")
|
||||||
|
Dim oInsert = $"INSERT INTO TBPMO_DOC_ID_CHANGED (USER_ID,PROCESS_ID,VERSION_ID,OLD_DOC_ID,NEW_DOC_ID,DOC_PATH) VALUES (" &
|
||||||
|
$"{USER_GUID},'{ProcID}',9999,{BW_DocID},0,'{BW_DocPath}')"
|
||||||
|
MYDB_ECM.ExecuteNonQuery(oInsert)
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
' Kein neuer Prozess gestartet – Datei wurde von bestehender Anwendung übernommen
|
||||||
|
LOGGER.Debug($"No new process created for [{BW_DocPath}]. File likely handled by existing application (e.g. Outlook).")
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
@@ -301,68 +303,7 @@ Public Class ClassHelper
|
|||||||
End Try
|
End Try
|
||||||
End Try
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
'Private Shared Sub BWFileHandler_DoWork()
|
|
||||||
' Try
|
|
||||||
' Dim oOverrideRunPath As String = ""
|
|
||||||
' Dim oExtension = Path.GetExtension(BW_DocPath).ToLower
|
|
||||||
' For Each oROW As DataRow In CURRENT_TBFILE_EXTENSION_OVERRIDE.Rows
|
|
||||||
' If oExtension.Replace(".", "") = oROW.Item("FILE_EXTENSION") Then
|
|
||||||
' LOGGER.Debug($"Specific fileextension override for extension [{oExtension}] found! ")
|
|
||||||
' oOverrideRunPath = oROW.Item("PROCESS")
|
|
||||||
' End If
|
|
||||||
' Next
|
|
||||||
' Dim oMyProcess = New Process()
|
|
||||||
' Dim oSql
|
|
||||||
' Try
|
|
||||||
' '######
|
|
||||||
' Dim startInfo As New ProcessStartInfo()
|
|
||||||
' If oOverrideRunPath <> "" Then
|
|
||||||
' startInfo.FileName = oOverrideRunPath
|
|
||||||
' startInfo.Arguments = """" & BW_DocPath & """"
|
|
||||||
' startInfo.UseShellExecute = True
|
|
||||||
' startInfo.RedirectStandardOutput = False
|
|
||||||
' Else
|
|
||||||
' startInfo.FileName = BW_DocPath
|
|
||||||
' startInfo.UseShellExecute = True
|
|
||||||
' startInfo.RedirectStandardOutput = False
|
|
||||||
' End If
|
|
||||||
' '#####
|
|
||||||
' oMyProcess.Start(startInfo)
|
|
||||||
' Dim myViewerProcessID = oMyProcess.Id
|
|
||||||
' oMyProcess.WaitForExit()
|
|
||||||
' oExtension = Path.GetExtension(BW_DocPath).ToLower
|
|
||||||
' LOGGER.Debug($"Checking oExtension [{oExtension}]...")
|
|
||||||
' If FILE_FORMATS_CHANGE_DURING_EDIT.Contains(oExtension) Then
|
|
||||||
' oSql = $"SELECT * FROM VWOF_DOCID_HANDLE WHERE dwParentID = {BW_ParentID} and [Filename] = '{BW_Filename}'"
|
|
||||||
' Dim oDTNEWDoc As DataTable = MYDB_ECM.GetDatatable(oSql)
|
|
||||||
|
|
||||||
' If Not IsNothing(oDTNEWDoc) Then
|
|
||||||
' If oDTNEWDoc.Rows.Count = 1 Then
|
|
||||||
|
|
||||||
' Dim oInsert = $"INSERT INTO TBPMO_DOC_ID_CHANGED (USER_ID,PROCESS_ID,VERSION_ID,OLD_DOC_ID,NEW_DOC_ID, DOC_PATH) VALUES (
|
|
||||||
' {USER_GUID},'{myViewerProcessID.ToString}',{oDTNEWDoc.Rows(0).Item("dwVersionID")},{BW_DocID},{oDTNEWDoc.Rows(0).Item("NewDocID")}, '{BW_DocPath}')"
|
|
||||||
' MYDB_ECM.ExecuteNonQuery(oInsert)
|
|
||||||
' End If
|
|
||||||
|
|
||||||
|
|
||||||
' End If
|
|
||||||
' End If
|
|
||||||
|
|
||||||
' Catch ex As Exception
|
|
||||||
' LOGGER.Warn("Error in Process1.Start(): " & ex.Message & vBCrlf & " - Path: " & BW_DocPath & " - DocID: " & BW_DocID)
|
|
||||||
' MsgBox("Error in OpenFile: " & ex.Message & vBCrlf & " - Path: " & BW_DocPath & " - DocID: " & BW_DocID, MsgBoxStyle.Exclamation)
|
|
||||||
' Exit Sub
|
|
||||||
' End Try
|
|
||||||
|
|
||||||
' Catch ex As Exception
|
|
||||||
' LOGGER.Warn("Error in Process.Start(): " & ex.Message & vBCrlf & " - Path: " & BW_DocPath & " - DocID: " & BW_DocID)
|
|
||||||
' Try
|
|
||||||
' Process.Start(BW_DocPath)
|
|
||||||
' Catch ex1 As Exception
|
|
||||||
' LOGGER.Warn("Error in Process.Start(1): " & ex1.Message & vBCrlf & " - Path: " & BW_DocPath & " - DocID: " & BW_DocID)
|
|
||||||
' End Try
|
|
||||||
' End Try
|
|
||||||
'End Sub
|
|
||||||
Private Shared Sub FOLDER_OPEN(PATH As Object, DocID As String)
|
Private Shared Sub FOLDER_OPEN(PATH As Object, DocID As String)
|
||||||
Try
|
Try
|
||||||
If PATH <> Nothing Then
|
If PATH <> Nothing Then
|
||||||
@@ -461,12 +402,35 @@ Public Class ClassHelper
|
|||||||
End Function
|
End Function
|
||||||
Public Shared Sub REMOVE_OLD_DROP_FILES()
|
Public Shared Sub REMOVE_OLD_DROP_FILES()
|
||||||
Try
|
Try
|
||||||
|
' ✅ NEU: Pre-Check - welche Dateien sind betroffen?
|
||||||
|
Dim preCheckSQL = $"SELECT GUID, FILENAME_ONLY, ADDED_WHEN, DATEDIFF(MINUTE, ADDED_WHEN, GETDATE()) AS AGE_MINUTES " &
|
||||||
|
$"FROM TBPMO_FILES_USER " &
|
||||||
|
$"WHERE ADDED_WHEN < DATEADD(MINUTE, -15, GETDATE()) " &
|
||||||
|
$"AND WORKED = 0 AND USER_WORK = '{USER_USERNAME}'"
|
||||||
|
|
||||||
|
Dim preCheckDT = MYDB_ECM.GetDatatable(preCheckSQL)
|
||||||
|
|
||||||
|
If preCheckDT IsNot Nothing AndAlso preCheckDT.Rows.Count > 0 Then
|
||||||
|
LOGGER.Warn($"REMOVE_OLD_DROP_FILES: {preCheckDT.Rows.Count} Dateien werden als TIMEOUT markiert:")
|
||||||
|
For Each row As DataRow In preCheckDT.Rows
|
||||||
|
LOGGER.Warn($" - GUID={row("GUID")}, Datei={row("FILENAME_ONLY")}, Alter={row("AGE_MINUTES")} Minuten")
|
||||||
|
Next
|
||||||
|
Else
|
||||||
|
LOGGER.Debug($"REMOVE_OLD_DROP_FILES: Keine Dateien älter als 15 Minuten (User: {USER_USERNAME})")
|
||||||
|
End If
|
||||||
|
|
||||||
|
' ✅ Dann UPDATE
|
||||||
Dim oDEL = String.Format("UPDATE [DD_ECM].[dbo].[TBPMO_FILES_USER]
|
Dim oDEL = String.Format("UPDATE [DD_ECM].[dbo].[TBPMO_FILES_USER]
|
||||||
SET [USER_WORK] = [USER_WORK] + '_TIMEOUT',
|
SET [USER_WORK] = [USER_WORK] + '_TIMEOUT',
|
||||||
WORKED = 1
|
WORKED = 1
|
||||||
WHERE ADDED_WHEN < DATEADD(MINUTE, -5, GETDATE())
|
WHERE ADDED_WHEN < DATEADD(MINUTE, -15, GETDATE())
|
||||||
AND WORKED = 0 AND USER_WORK = '{0}' ;", USER_USERNAME)
|
AND WORKED = 0 AND USER_WORK = '{0}' ;", USER_USERNAME)
|
||||||
MYDB_ECM.ExecuteNonQuery(oDEL)
|
|
||||||
|
Dim rowsAffected = MYDB_ECM.ExecuteNonQuery(oDEL)
|
||||||
|
|
||||||
|
If rowsAffected > 0 Then
|
||||||
|
LOGGER.Warn($"REMOVE_OLD_DROP_FILES: {rowsAffected} Dateien wurden als TIMEOUT markiert")
|
||||||
|
End If
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
MsgBox(ex.Message, MsgBoxStyle.Critical, "Unexpected error while REMOVE_OLD_DROP_FILES")
|
MsgBox(ex.Message, MsgBoxStyle.Critical, "Unexpected error while REMOVE_OLD_DROP_FILES")
|
||||||
End Try
|
End Try
|
||||||
@@ -475,7 +439,19 @@ Public Class ClassHelper
|
|||||||
Try
|
Try
|
||||||
Dim sql = String.Format("SELECT *, CONVERT(BIT,0) AS DELETE_FILE FROM TBPMO_FILES_USER WHERE (USER_WORK = '{0}') AND WORKED = 0", USER_USERNAME)
|
Dim sql = String.Format("SELECT *, CONVERT(BIT,0) AS DELETE_FILE FROM TBPMO_FILES_USER WHERE (USER_WORK = '{0}') AND WORKED = 0", USER_USERNAME)
|
||||||
CURRENT_TBPMO_FILES_USER = MYDB_ECM.GetDatatable(sql)
|
CURRENT_TBPMO_FILES_USER = MYDB_ECM.GetDatatable(sql)
|
||||||
|
' ✅ NEU: Logging
|
||||||
|
If CURRENT_TBPMO_FILES_USER Is Nothing Then
|
||||||
|
LOGGER.Warn($"Create_USER_FILE_TABLE: GetDatatable gab Nothing zurück (User: {USER_USERNAME})")
|
||||||
|
Else
|
||||||
|
LOGGER.Debug($"Create_USER_FILE_TABLE: {CURRENT_TBPMO_FILES_USER.Rows.Count} Dateien geladen (User: {USER_USERNAME})")
|
||||||
|
|
||||||
|
' ✅ DEBUG: Zeige GUIDs der geladenen Dateien
|
||||||
|
For Each row As DataRow In CURRENT_TBPMO_FILES_USER.Rows
|
||||||
|
LOGGER.Debug($" - GUID={row("GUID")}, WORKED={row("WORKED")}, Datei={row("FILENAME2WORK")}")
|
||||||
|
Next
|
||||||
|
End If
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
|
LOGGER.Error($"Create_USER_FILE_TABLE Exception: {ex.Message}")
|
||||||
MsgBox(ex.Message, MsgBoxStyle.Critical, "Unexpected error while creating User_File_Table")
|
MsgBox(ex.Message, MsgBoxStyle.Critical, "Unexpected error while creating User_File_Table")
|
||||||
End Try
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
@@ -534,7 +510,7 @@ Public Class ClassHelper
|
|||||||
End Function
|
End Function
|
||||||
Public Shared Function Insert_USER_File(pFilename As String, handleType As String)
|
Public Shared Function Insert_USER_File(pFilename As String, handleType As String)
|
||||||
Try
|
Try
|
||||||
Dim filename_only As String = Path.GetFileName(pFilename)
|
Dim oImport_filename_only As String = Path.GetFileName(pFilename)
|
||||||
Dim CURRENT_FILE_HASH = ""
|
Dim CURRENT_FILE_HASH = ""
|
||||||
|
|
||||||
If File.Exists(pFilename) Then
|
If File.Exists(pFilename) Then
|
||||||
@@ -551,9 +527,11 @@ Public Class ClassHelper
|
|||||||
Else
|
Else
|
||||||
LOGGER.Warn($"File does not exist: [{pFilename}] - Cannot compute hash.")
|
LOGGER.Warn($"File does not exist: [{pFilename}] - Cannot compute hash.")
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Dim oSQL = $"SELECT Filename, ADDED_WHO, FORMAT(ADDED_WHEN, 'dd-MM-yyyy HH:mm') AS ADDED_WHEN_STRING FROM TBPMO_DOCRESULT_LIST WHERE FILE_HASH = '{CURRENT_FILE_HASH}' ORDER BY ADDED_WHEN DESC"
|
Dim oSQL = $"SELECT Filename, ADDED_WHO, FORMAT(ADDED_WHEN, 'dd-MM-yyyy HH:mm') AS ADDED_WHEN_STRING FROM TBPMO_DOCRESULT_LIST WHERE FILE_HASH = '{CURRENT_FILE_HASH}' ORDER BY ADDED_WHEN DESC"
|
||||||
LOGGER.Debug($"Inserting File - hash is [{CURRENT_FILE_HASH}]")
|
LOGGER.Debug($"Inserting File - hash is [{CURRENT_FILE_HASH}]")
|
||||||
Dim oDTCHECK As DataTable = MYDB_ECM.GetDatatable(oSQL)
|
Dim oDTCHECK As DataTable = MYDB_ECM.GetDatatable(oSQL)
|
||||||
|
|
||||||
If Not IsNothing(oDTCHECK) Then
|
If Not IsNothing(oDTCHECK) Then
|
||||||
If oDTCHECK.Rows.Count >= 1 Then
|
If oDTCHECK.Rows.Count >= 1 Then
|
||||||
LOGGER.Info($"We got a file with the same hash [{CURRENT_FILE_HASH}]")
|
LOGGER.Info($"We got a file with the same hash [{CURRENT_FILE_HASH}]")
|
||||||
@@ -561,34 +539,74 @@ Public Class ClassHelper
|
|||||||
Dim oUSER = oDTCHECK.Rows(0).Item(1)
|
Dim oUSER = oDTCHECK.Rows(0).Item(1)
|
||||||
Dim oADDED_WHEN = oDTCHECK.Rows(0).Item(2)
|
Dim oADDED_WHEN = oDTCHECK.Rows(0).Item(2)
|
||||||
Dim oMSG As String
|
Dim oMSG As String
|
||||||
|
|
||||||
If USER_LANGUAGE <> "de-DE" Then
|
If USER_LANGUAGE <> "de-DE" Then
|
||||||
oMSG = $"This file has already been imported into orgFLOW!" & vbCrLf &
|
oMSG = $"This file [{oImport_filename_only}] has already been imported into orgFLOW!" & vbCrLf &
|
||||||
$"File: [{oFilename}]" & vbCrLf &
|
$"File already imported: [{oFilename}]" & vbCrLf &
|
||||||
$"Imported on: {oADDED_WHEN}" & vbCrLf &
|
$"Imported on: {oADDED_WHEN}" & vbCrLf &
|
||||||
$"Imported by: {oUSER}" & vbCrLf &
|
$"Imported by: {oUSER}" & vbCrLf &
|
||||||
$"Total imports with identical content: {oDTCHECK.Rows.Count}" & vbCrLf & vbCrLf &
|
$"Total imports with identical content: {oDTCHECK.Rows.Count}" & vbCrLf & vbCrLf &
|
||||||
"Do you want to import this file again?" & vbCrLf &
|
"Do you want to import this file again?" & vbCrLf &
|
||||||
"NO → Teh complete Import will be cancelled."
|
"NO → The complete import will be cancelled."
|
||||||
Else
|
Else
|
||||||
oMSG = $"Diese Datei wurde bereits in orgFLOW importiert!" & vbCrLf &
|
oMSG = $"Diese Datei [{oImport_filename_only}] wurde bereits in orgFLOW importiert!" & vbCrLf &
|
||||||
$"Datei: [{oFilename}]" & vbCrLf &
|
$"Bereits vorhandene Datei: [{oFilename}]" & vbCrLf &
|
||||||
$"Importiert am: {oADDED_WHEN}" & vbCrLf &
|
$"Importiert am: {oADDED_WHEN}" & vbCrLf &
|
||||||
$"Importiert von: {oUSER}" & vbCrLf &
|
$"Importiert von: {oUSER}" & vbCrLf &
|
||||||
$"Anzahl Importe mit identischem Inhalt: {oDTCHECK.Rows.Count}" & vbCrLf & vbCrLf &
|
$"Anzahl Importe mit identischem Inhalt: {oDTCHECK.Rows.Count}" & vbCrLf & vbCrLf &
|
||||||
"Möchten Sie die Datei dennoch erneut importieren?" & vbCrLf &
|
"Möchten Sie die Datei dennoch erneut importieren?" & vbCrLf &
|
||||||
"NEIN → Der gesamte Import (alle folgenden) wird abgebrochen."
|
"NEIN → Der gesamte Import (alle folgenden) wird abgebrochen."
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Dim result As MsgBoxResult
|
Dim result As MsgBoxResult
|
||||||
result = MessageBox.Show(oMSG, CAPTION_CONFIRMATION, MessageBoxButtons.YesNo, MessageBoxIcon.Question)
|
result = MessageBox.Show(oMSG, CAPTION_CONFIRMATION, MessageBoxButtons.YesNo, MessageBoxIcon.Question)
|
||||||
|
|
||||||
If result = MsgBoxResult.No Then
|
If result = MsgBoxResult.No Then
|
||||||
|
LOGGER.Info($"User wählte NEIN bei Hash-Duplikat-Check für [{oImport_filename_only}] - Import abgebrochen")
|
||||||
Return False
|
Return False
|
||||||
|
Else
|
||||||
|
LOGGER.Info($"User wählte JA bei Hash-Duplikat-Check für [{oImport_filename_only}] - fahre fort")
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Dim ins As String = String.Format("INSERT INTO TBPMO_FILES_USER (FILENAME2WORK, USER_WORK,HANDLE_TYPE,FILENAME_ONLY,FILE_HASH) VALUES ('{0}','{1}','{2}','{3}','{4}')", pFilename, USER_USERNAME, handleType, filename_only, CURRENT_FILE_HASH)
|
' ✅ NEU: Pre-Check - gibt es bereits einen Eintrag mit diesem Hash?
|
||||||
Return MYDB_ECM.ExecuteNonQuery(ins)
|
Dim preCheckSQL = $"SELECT GUID, USER_WORK, WORKED FROM TBPMO_FILES_USER WHERE FILE_HASH = '{CURRENT_FILE_HASH}' AND USER_WORK = '{USER_USERNAME}'"
|
||||||
|
Dim preCheckDT = MYDB_ECM.GetDatatable(preCheckSQL)
|
||||||
|
|
||||||
|
If preCheckDT IsNot Nothing AndAlso preCheckDT.Rows.Count > 0 Then
|
||||||
|
LOGGER.Warn($"WARNUNG: Datei mit Hash [{CURRENT_FILE_HASH}] bereits in TBPMO_FILES_USER vorhanden:")
|
||||||
|
For Each row As DataRow In preCheckDT.Rows
|
||||||
|
LOGGER.Warn($" - GUID={row("GUID")}, USER_WORK={row("USER_WORK")}, WORKED={row("WORKED")}")
|
||||||
|
Next
|
||||||
|
End If
|
||||||
|
|
||||||
|
' ✅ INSERT mit explizitem Logging
|
||||||
|
Dim ins As String = String.Format("INSERT INTO TBPMO_FILES_USER (FILENAME2WORK, USER_WORK, HANDLE_TYPE, FILENAME_ONLY, FILE_HASH) VALUES ('{0}','{1}','{2}','{3}','{4}')", pFilename, USER_USERNAME, handleType, oImport_filename_only, CURRENT_FILE_HASH)
|
||||||
|
|
||||||
|
LOGGER.Debug($"Führe INSERT aus: [{ins}]")
|
||||||
|
Dim insertResult = MYDB_ECM.ExecuteNonQuery(ins)
|
||||||
|
|
||||||
|
If insertResult Then
|
||||||
|
' ✅ VERIFY - wurde wirklich eingefügt?
|
||||||
|
Dim verifySQL = $"SELECT TOP 1 GUID, ADDED_WHEN FROM TBPMO_FILES_USER WHERE FILE_HASH = '{CURRENT_FILE_HASH}' AND USER_WORK = '{USER_USERNAME}' ORDER BY GUID DESC"
|
||||||
|
Dim verifyDT = MYDB_ECM.GetDatatable(verifySQL)
|
||||||
|
|
||||||
|
If verifyDT IsNot Nothing AndAlso verifyDT.Rows.Count > 0 Then
|
||||||
|
Dim insertedGUID = verifyDT.Rows(0)("GUID")
|
||||||
|
Dim insertedADDED_WHEN = verifyDT.Rows(0)("ADDED_WHEN")
|
||||||
|
LOGGER.Info($"INSERT ERFOLGREICH: GUID={insertedGUID}, ADDED_WHEN={insertedADDED_WHEN}, Datei=[{oImport_filename_only}]")
|
||||||
|
Else
|
||||||
|
LOGGER.Error($"INSERT fehlgeschlagen (VERIFY)! Datei=[{oImport_filename_only}], Hash=[{CURRENT_FILE_HASH}]")
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
LOGGER.Error($"INSERT fehlgeschlagen (ExecuteNonQuery)! Datei=[{oImport_filename_only}]")
|
||||||
|
End If
|
||||||
|
|
||||||
|
Return insertResult
|
||||||
|
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
|
LOGGER.Error($"Insert_USER_File Exception: {ex.Message}")
|
||||||
MsgBox("Unexpected Error in Insert file for user (TBPMO_FILES_USER): " & ex.Message, MsgBoxStyle.Critical)
|
MsgBox("Unexpected Error in Insert file for user (TBPMO_FILES_USER): " & ex.Message, MsgBoxStyle.Critical)
|
||||||
Return False
|
Return False
|
||||||
End Try
|
End Try
|
||||||
|
|||||||
@@ -230,8 +230,8 @@ Public Class ClassWDRights
|
|||||||
End Select
|
End Select
|
||||||
MSG_RESULT &= String.Format("Error while working on RightChange:" & vbNewLine & "Fileright: {0}" & vbNewLine & "User: {1} " & vbNewLine & "File: {2}", _right, oFileRightString, reldocpath) & vbNewLine
|
MSG_RESULT &= String.Format("Error while working on RightChange:" & vbNewLine & "Fileright: {0}" & vbNewLine & "User: {1} " & vbNewLine & "File: {2}", _right, oFileRightString, reldocpath) & vbNewLine
|
||||||
LOGGER.Warn(ex.Message)
|
LOGGER.Warn(ex.Message)
|
||||||
End Try
|
End Try
|
||||||
Next
|
Next
|
||||||
|
|
||||||
|
|
||||||
'Für jede Gruppe das Recht einzeln hinzufügen
|
'Für jede Gruppe das Recht einzeln hinzufügen
|
||||||
|
|||||||
BIN
app/DD-Record-Organizer/Log_ewa.txt
Normal file
BIN
app/DD-Record-Organizer/Log_ewa.txt
Normal file
Binary file not shown.
@@ -46,9 +46,9 @@ Module ModuleRuntimeVariables
|
|||||||
|
|
||||||
Public CURRENT_SCREEN_ID As Integer = 1
|
Public CURRENT_SCREEN_ID As Integer = 1
|
||||||
Public CURRENT_CONTROL_ID As Integer
|
Public CURRENT_CONTROL_ID As Integer
|
||||||
Public CURRENT_RECORD_ID As Integer
|
|
||||||
Public CURRENT_NODE_GUID As Integer
|
Public CURRENT_RECORD_ID As Integer = 0
|
||||||
Public CURRENT_NODEID As Integer
|
Public CURRENT_DOC_ID As Integer = 0
|
||||||
|
|
||||||
Public CURRENT_CHANGE_STEP As Integer = 0
|
Public CURRENT_CHANGE_STEP As Integer = 0
|
||||||
|
|
||||||
@@ -73,7 +73,7 @@ Module ModuleRuntimeVariables
|
|||||||
Public CURRENT_REDUNDANT_FORMVIEW_ID As Integer
|
Public CURRENT_REDUNDANT_FORMVIEW_ID As Integer
|
||||||
'Public CURRENT_MASTER_FORM_ID As Integer
|
'Public CURRENT_MASTER_FORM_ID As Integer
|
||||||
Public CURRENT_FILEIN_WD As String
|
Public CURRENT_FILEIN_WD As String
|
||||||
Public CURRENT_DOC_ID
|
'Public CURRENT_DOC_ID
|
||||||
|
|
||||||
Public CURRENT_NAVIGATION_TYPE As String = "DEFAULT"
|
Public CURRENT_NAVIGATION_TYPE As String = "DEFAULT"
|
||||||
Public CURRENT_SELECTED_NODE As TreeNode
|
Public CURRENT_SELECTED_NODE As TreeNode
|
||||||
|
|||||||
@@ -33,7 +33,7 @@ Imports System.Runtime.InteropServices
|
|||||||
' übernehmen, indem Sie "*" eingeben:
|
' übernehmen, indem Sie "*" eingeben:
|
||||||
' <Assembly: AssemblyVersion("1.0.*")>
|
' <Assembly: AssemblyVersion("1.0.*")>
|
||||||
|
|
||||||
<Assembly: AssemblyVersion("3.7.2.0")>
|
<Assembly: AssemblyVersion("3.7.3.0")>
|
||||||
<Assembly: AssemblyFileVersion("1.0.0.0")>
|
<Assembly: AssemblyFileVersion("1.0.0.0")>
|
||||||
|
|
||||||
<Assembly: NeutralResourcesLanguageAttribute("")>
|
<Assembly: NeutralResourcesLanguageAttribute("")>
|
||||||
@@ -386,6 +386,7 @@
|
|||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
<ItemGroup>
|
<ItemGroup>
|
||||||
<Compile Include="Classes\ClassConfig.vb" />
|
<Compile Include="Classes\ClassConfig.vb" />
|
||||||
|
<Compile Include="Classes\ClassDataCache.vb" />
|
||||||
<Compile Include="Classes\ClassTreeListViewState.vb" />
|
<Compile Include="Classes\ClassTreeListViewState.vb" />
|
||||||
<Compile Include="Classes\Commands\ClassNodeCommands.vb" />
|
<Compile Include="Classes\Commands\ClassNodeCommands.vb" />
|
||||||
<Compile Include="Classes\NodeNavigation\ClassAsyncNodeBuild.vb" />
|
<Compile Include="Classes\NodeNavigation\ClassAsyncNodeBuild.vb" />
|
||||||
@@ -549,6 +550,12 @@
|
|||||||
<Compile Include="frmNodeNavigation.vb">
|
<Compile Include="frmNodeNavigation.vb">
|
||||||
<SubType>Form</SubType>
|
<SubType>Form</SubType>
|
||||||
</Compile>
|
</Compile>
|
||||||
|
<Compile Include="frmNodeNavigation_RenameNode.Designer.vb">
|
||||||
|
<DependentUpon>frmNodeNavigation_RenameNode.vb</DependentUpon>
|
||||||
|
</Compile>
|
||||||
|
<Compile Include="frmNodeNavigation_RenameNode.vb">
|
||||||
|
<SubType>Form</SubType>
|
||||||
|
</Compile>
|
||||||
<Compile Include="frmRight_Management.Designer.vb">
|
<Compile Include="frmRight_Management.Designer.vb">
|
||||||
<DependentUpon>frmRight_Management.vb</DependentUpon>
|
<DependentUpon>frmRight_Management.vb</DependentUpon>
|
||||||
</Compile>
|
</Compile>
|
||||||
@@ -1005,6 +1012,9 @@
|
|||||||
<DependentUpon>frmNodeNavigation.vb</DependentUpon>
|
<DependentUpon>frmNodeNavigation.vb</DependentUpon>
|
||||||
<SubType>Designer</SubType>
|
<SubType>Designer</SubType>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
|
<EmbeddedResource Include="frmNodeNavigation_RenameNode.resx">
|
||||||
|
<DependentUpon>frmNodeNavigation_RenameNode.vb</DependentUpon>
|
||||||
|
</EmbeddedResource>
|
||||||
<EmbeddedResource Include="frmRecordView.en-US.resx">
|
<EmbeddedResource Include="frmRecordView.en-US.resx">
|
||||||
<DependentUpon>frmRecordView.vb</DependentUpon>
|
<DependentUpon>frmRecordView.vb</DependentUpon>
|
||||||
</EmbeddedResource>
|
</EmbeddedResource>
|
||||||
@@ -1716,6 +1726,7 @@
|
|||||||
<None Include="MailLicense.xml">
|
<None Include="MailLicense.xml">
|
||||||
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
<CopyToOutputDirectory>PreserveNewest</CopyToOutputDirectory>
|
||||||
</None>
|
</None>
|
||||||
|
<Content Include="Log_ewa.txt" />
|
||||||
<Content Include="ORGFLOW_Icon_16x16.ico" />
|
<Content Include="ORGFLOW_Icon_16x16.ico" />
|
||||||
<Content Include="ORGFLOW_Icon_256x256.ico" />
|
<Content Include="ORGFLOW_Icon_256x256.ico" />
|
||||||
<Content Include="Resources\cube.ico" />
|
<Content Include="Resources\cube.ico" />
|
||||||
|
|||||||
@@ -33,41 +33,11 @@ Public Class frmDocRecordLink
|
|||||||
If CURRENT_LINK_ENTITY_ID = 0 Then
|
If CURRENT_LINK_ENTITY_ID = 0 Then
|
||||||
CURRENT_LINK_ENTITY_ID = CURRENT_ENTITY_ID
|
CURRENT_LINK_ENTITY_ID = CURRENT_ENTITY_ID
|
||||||
End If
|
End If
|
||||||
'Try
|
|
||||||
' DT_RECORDS.Columns.Add("already linked", Type.GetType("System.Boolean")).SetOrdinal(0)
|
|
||||||
' DT_RECORDS.Columns("already linked").DefaultValue = False
|
|
||||||
'Catch ex As Exception
|
|
||||||
|
|
||||||
'End Try
|
|
||||||
|
|
||||||
'Try
|
|
||||||
' For Each row As DataRow In CURRENT_DT_SELECTED_FILES.Rows
|
|
||||||
' Dim DOC_ID = row.Item("DOC_ID")
|
|
||||||
|
|
||||||
' Dim sel = String.Format("select T.RECORD_ID FROM TBPMO_DOC_RECORD_LINK T, TBPMO_RECORD T1 WHERE T.RECORD_ID = T1.GUID AND T1.FORM_ID = {0} AND T.DOC_ID = {1}", CURRENT_LINK_ENTITY_ID, DOC_ID)
|
|
||||||
' Dim DTRECS_LINKED As DataTable = MYDB_ECM.GetDatatable(sel)
|
|
||||||
' For Each recrow As DataRow In DTRECS_LINKED.Rows
|
|
||||||
' For Each rowrecsdisplay As DataRow In DT_RECORDS.Rows
|
|
||||||
' If rowrecsdisplay.Item("Record-ID") = recrow.Item("RECORD_ID") Then
|
|
||||||
' rowrecsdisplay.Item("already linked") = True
|
|
||||||
' Else
|
|
||||||
' rowrecsdisplay.Item("already linked") = False
|
|
||||||
' End If
|
|
||||||
' Next
|
|
||||||
' Next
|
|
||||||
' Next
|
|
||||||
'Catch ex As Exception
|
|
||||||
' ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error in displaying already linked", ex.Message, ex.StackTrace)
|
|
||||||
'End Try
|
|
||||||
Try
|
Try
|
||||||
grvwGrid.Columns.Clear()
|
grvwGrid.Columns.Clear()
|
||||||
dgEntityRecords.DataSource = DT_RECORDS
|
dgEntityRecords.DataSource = DT_RECORDS
|
||||||
' grvwGrid.Columns.Item("already linked").Fixed = True
|
|
||||||
'grvwGrid.PopulateColumns()
|
|
||||||
'dgEntityRecords.RefreshDataSource()
|
|
||||||
'grvwGrid.OptionsView.ColumnAutoWidth = False
|
|
||||||
'grvwGrid.Columns(0).Fixed = FixedStyle.Left
|
|
||||||
'grvwGrid.BestFitColumns()
|
|
||||||
|
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error in format grid", ex.Message, ex.StackTrace)
|
ClassHelper.MSGBOX_Handler("ERROR", "Unexpected Error in format grid", ex.Message, ex.StackTrace)
|
||||||
@@ -306,17 +276,17 @@ Public Class frmDocRecordLink
|
|||||||
End If
|
End If
|
||||||
Try
|
Try
|
||||||
For Each oRow As DataRow In CURRENT_DT_SELECTED_FILES.Rows
|
For Each oRow As DataRow In CURRENT_DT_SELECTED_FILES.Rows
|
||||||
|
Dim oDocID As Integer
|
||||||
CURRENT_DOC_ID = oRow.Item("DOC_ID")
|
oDocID = oRow.Item("DOC_ID")
|
||||||
LOGGER.Info("DocID {0} will be linked with Record {1} ", CURRENT_DOC_ID.ToString, oSelectedRecordID.ToString)
|
LOGGER.Info("DocID {0} will be linked with Record {1} ", oDocID.ToString, oSelectedRecordID.ToString)
|
||||||
Dim DOC_PATH = oRow.Item("FILEPATH")
|
Dim DOC_PATH = oRow.Item("FILEPATH")
|
||||||
Dim _objecttype = oRow.Item("OBJECTTYPE")
|
Dim _objecttype = oRow.Item("OBJECTTYPE")
|
||||||
WMOBJECTTYPE = _objecttype
|
WMOBJECTTYPE = _objecttype
|
||||||
Dim sql_Exec = String.Format("EXEC PRPMO_CHECK_DOC_RECORD_LINK {0},{1},'{2}','{3}'", oSelectedRecordID, CURRENT_DOC_ID, "MANUAL RECORD-LINK", USER_USERNAME)
|
Dim sql_Exec = String.Format("EXEC PRPMO_CHECK_DOC_RECORD_LINK {0},{1},'{2}','{3}'", oSelectedRecordID, oDocID, "MANUAL RECORD-LINK", USER_USERNAME)
|
||||||
If MYDB_ECM.ExecuteNonQuery(sql_Exec) = False Then
|
If MYDB_ECM.ExecuteNonQuery(sql_Exec) = False Then
|
||||||
MsgBox("Unexpected Error in Inserting Record-Doc Link. Please check logfile!", MsgBoxStyle.Critical)
|
MsgBox("Unexpected Error in Inserting Record-Doc Link. Please check logfile!", MsgBoxStyle.Critical)
|
||||||
Else
|
Else
|
||||||
ClassHelper.InsertEssential_Log(CURRENT_DOC_ID, "DOC-ID", "FILE LINK CREATED FOR RECORD: " & oSelectedRecordID.ToString)
|
ClassHelper.InsertEssential_Log(oDocID, "DOC-ID", "FILE LINK CREATED FOR RECORD: " & oSelectedRecordID.ToString)
|
||||||
oLinkCount += 1
|
oLinkCount += 1
|
||||||
End If
|
End If
|
||||||
Dim sql = String.Format("SELECT * FROM TBPMO_WD_OBJECTTYPE WHERE OBJECT_TYPE = '{0}'", _objecttype)
|
Dim sql = String.Format("SELECT * FROM TBPMO_WD_OBJECTTYPE WHERE OBJECT_TYPE = '{0}'", _objecttype)
|
||||||
|
|||||||
@@ -62,6 +62,8 @@ Partial Class frmNodeNavigation
|
|||||||
Me.GridControlDocSearch = New DevExpress.XtraGrid.GridControl()
|
Me.GridControlDocSearch = New DevExpress.XtraGrid.GridControl()
|
||||||
Me.cmsResultFileDetail = New System.Windows.Forms.ContextMenuStrip(Me.components)
|
Me.cmsResultFileDetail = New System.Windows.Forms.ContextMenuStrip(Me.components)
|
||||||
Me.tsmiFileProperties = New System.Windows.Forms.ToolStripMenuItem()
|
Me.tsmiFileProperties = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
|
Me.AlleDateienAuswählenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
|
Me.AlleDateienEntwaehlenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
Me.ToolStripSeparator5 = New System.Windows.Forms.ToolStripSeparator()
|
Me.ToolStripSeparator5 = New System.Windows.Forms.ToolStripSeparator()
|
||||||
Me.tsmiFileOpen = New System.Windows.Forms.ToolStripMenuItem()
|
Me.tsmiFileOpen = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
Me.tsmiFileFolderOpen = New System.Windows.Forms.ToolStripMenuItem()
|
Me.tsmiFileFolderOpen = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
@@ -127,6 +129,7 @@ Partial Class frmNodeNavigation
|
|||||||
Me.PopupMenu4 = New DevExpress.XtraBars.PopupMenu(Me.components)
|
Me.PopupMenu4 = New DevExpress.XtraBars.PopupMenu(Me.components)
|
||||||
Me.PopupMenu5 = New DevExpress.XtraBars.PopupMenu(Me.components)
|
Me.PopupMenu5 = New DevExpress.XtraBars.PopupMenu(Me.components)
|
||||||
Me.DD_DMSDataSet1 = New DD_Record_Organizer.DD_DMSDataSet()
|
Me.DD_DMSDataSet1 = New DD_Record_Organizer.DD_DMSDataSet()
|
||||||
|
Me.KnotenUmbenennenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
CType(Me.ribbonNodeNavigation, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.ribbonNodeNavigation, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
CType(Me.RepositoryItemTextEdit1, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.RepositoryItemTextEdit1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
CType(Me.SplitContainerTreeList, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.SplitContainerTreeList, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
@@ -178,7 +181,7 @@ Partial Class frmNodeNavigation
|
|||||||
Me.ribbonNodeNavigation.ShowExpandCollapseButton = DevExpress.Utils.DefaultBoolean.[True]
|
Me.ribbonNodeNavigation.ShowExpandCollapseButton = DevExpress.Utils.DefaultBoolean.[True]
|
||||||
Me.ribbonNodeNavigation.ShowMoreCommandsButton = DevExpress.Utils.DefaultBoolean.[False]
|
Me.ribbonNodeNavigation.ShowMoreCommandsButton = DevExpress.Utils.DefaultBoolean.[False]
|
||||||
Me.ribbonNodeNavigation.ShowToolbarCustomizeItem = False
|
Me.ribbonNodeNavigation.ShowToolbarCustomizeItem = False
|
||||||
Me.ribbonNodeNavigation.Size = New System.Drawing.Size(1151, 147)
|
Me.ribbonNodeNavigation.Size = New System.Drawing.Size(1151, 158)
|
||||||
Me.ribbonNodeNavigation.StatusBar = Me.RibbonStatusBar1
|
Me.ribbonNodeNavigation.StatusBar = Me.RibbonStatusBar1
|
||||||
Me.ribbonNodeNavigation.Toolbar.ShowCustomizeItem = False
|
Me.ribbonNodeNavigation.Toolbar.ShowCustomizeItem = False
|
||||||
'
|
'
|
||||||
@@ -389,10 +392,10 @@ Partial Class frmNodeNavigation
|
|||||||
Me.RibbonStatusBar1.ItemLinks.Add(Me.BarStaticItemLocked)
|
Me.RibbonStatusBar1.ItemLinks.Add(Me.BarStaticItemLocked)
|
||||||
Me.RibbonStatusBar1.ItemLinks.Add(Me.bsitmtInfoDoc)
|
Me.RibbonStatusBar1.ItemLinks.Add(Me.bsitmtInfoDoc)
|
||||||
Me.RibbonStatusBar1.ItemLinks.Add(Me.bsiDocIDChanged)
|
Me.RibbonStatusBar1.ItemLinks.Add(Me.bsiDocIDChanged)
|
||||||
Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 566)
|
Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 567)
|
||||||
Me.RibbonStatusBar1.Name = "RibbonStatusBar1"
|
Me.RibbonStatusBar1.Name = "RibbonStatusBar1"
|
||||||
Me.RibbonStatusBar1.Ribbon = Me.ribbonNodeNavigation
|
Me.RibbonStatusBar1.Ribbon = Me.ribbonNodeNavigation
|
||||||
Me.RibbonStatusBar1.Size = New System.Drawing.Size(1151, 23)
|
Me.RibbonStatusBar1.Size = New System.Drawing.Size(1151, 22)
|
||||||
'
|
'
|
||||||
'RibbonPage2
|
'RibbonPage2
|
||||||
'
|
'
|
||||||
@@ -414,7 +417,7 @@ Partial Class frmNodeNavigation
|
|||||||
'
|
'
|
||||||
Me.SplitContainerTreeList.Panel2.Controls.Add(Me.SplitContainerDocumentSearch)
|
Me.SplitContainerTreeList.Panel2.Controls.Add(Me.SplitContainerDocumentSearch)
|
||||||
Me.SplitContainerTreeList.Panel2.Text = "Panel2"
|
Me.SplitContainerTreeList.Panel2.Text = "Panel2"
|
||||||
Me.SplitContainerTreeList.Size = New System.Drawing.Size(776, 419)
|
Me.SplitContainerTreeList.Size = New System.Drawing.Size(776, 409)
|
||||||
Me.SplitContainerTreeList.SplitterPosition = 229
|
Me.SplitContainerTreeList.SplitterPosition = 229
|
||||||
Me.SplitContainerTreeList.TabIndex = 2
|
Me.SplitContainerTreeList.TabIndex = 2
|
||||||
'
|
'
|
||||||
@@ -456,7 +459,7 @@ Partial Class frmNodeNavigation
|
|||||||
Me.TreeListDevexpress.OptionsView.ShowVertLines = False
|
Me.TreeListDevexpress.OptionsView.ShowVertLines = False
|
||||||
Me.TreeListDevexpress.OptionsView.TreeLineStyle = DevExpress.XtraTreeList.LineStyle.Dark
|
Me.TreeListDevexpress.OptionsView.TreeLineStyle = DevExpress.XtraTreeList.LineStyle.Dark
|
||||||
Me.TreeListDevexpress.ParentFieldName = "PARENT_GUID"
|
Me.TreeListDevexpress.ParentFieldName = "PARENT_GUID"
|
||||||
Me.TreeListDevexpress.Size = New System.Drawing.Size(229, 419)
|
Me.TreeListDevexpress.Size = New System.Drawing.Size(229, 409)
|
||||||
Me.TreeListDevexpress.StateImageList = Me.ImageCollection1
|
Me.TreeListDevexpress.StateImageList = Me.ImageCollection1
|
||||||
Me.TreeListDevexpress.TabIndex = 1
|
Me.TreeListDevexpress.TabIndex = 1
|
||||||
'
|
'
|
||||||
@@ -480,7 +483,7 @@ Partial Class frmNodeNavigation
|
|||||||
'
|
'
|
||||||
Me.SplitContainerDocumentSearch.Panel2.Controls.Add(Me.GridControlDocSearch)
|
Me.SplitContainerDocumentSearch.Panel2.Controls.Add(Me.GridControlDocSearch)
|
||||||
Me.SplitContainerDocumentSearch.Panel2.Text = "Panel2"
|
Me.SplitContainerDocumentSearch.Panel2.Text = "Panel2"
|
||||||
Me.SplitContainerDocumentSearch.Size = New System.Drawing.Size(535, 419)
|
Me.SplitContainerDocumentSearch.Size = New System.Drawing.Size(537, 409)
|
||||||
Me.SplitContainerDocumentSearch.SplitterPosition = 133
|
Me.SplitContainerDocumentSearch.SplitterPosition = 133
|
||||||
Me.SplitContainerDocumentSearch.TabIndex = 1
|
Me.SplitContainerDocumentSearch.TabIndex = 1
|
||||||
'
|
'
|
||||||
@@ -491,7 +494,7 @@ Partial Class frmNodeNavigation
|
|||||||
Me.pnlControls.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.pnlControls.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.pnlControls.Location = New System.Drawing.Point(0, 0)
|
Me.pnlControls.Location = New System.Drawing.Point(0, 0)
|
||||||
Me.pnlControls.Name = "pnlControls"
|
Me.pnlControls.Name = "pnlControls"
|
||||||
Me.pnlControls.Size = New System.Drawing.Size(535, 133)
|
Me.pnlControls.Size = New System.Drawing.Size(537, 133)
|
||||||
Me.pnlControls.TabIndex = 0
|
Me.pnlControls.TabIndex = 0
|
||||||
'
|
'
|
||||||
'GridControlDocSearch
|
'GridControlDocSearch
|
||||||
@@ -505,7 +508,7 @@ Partial Class frmNodeNavigation
|
|||||||
Me.GridControlDocSearch.Location = New System.Drawing.Point(0, 0)
|
Me.GridControlDocSearch.Location = New System.Drawing.Point(0, 0)
|
||||||
Me.GridControlDocSearch.MainView = Me.GridViewDoc_Search
|
Me.GridControlDocSearch.MainView = Me.GridViewDoc_Search
|
||||||
Me.GridControlDocSearch.Name = "GridControlDocSearch"
|
Me.GridControlDocSearch.Name = "GridControlDocSearch"
|
||||||
Me.GridControlDocSearch.Size = New System.Drawing.Size(535, 274)
|
Me.GridControlDocSearch.Size = New System.Drawing.Size(537, 266)
|
||||||
Me.GridControlDocSearch.TabIndex = 8
|
Me.GridControlDocSearch.TabIndex = 8
|
||||||
Me.GridControlDocSearch.TabStop = False
|
Me.GridControlDocSearch.TabStop = False
|
||||||
Me.GridControlDocSearch.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridViewDoc_Search})
|
Me.GridControlDocSearch.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridViewDoc_Search})
|
||||||
@@ -513,9 +516,9 @@ Partial Class frmNodeNavigation
|
|||||||
'cmsResultFileDetail
|
'cmsResultFileDetail
|
||||||
'
|
'
|
||||||
Me.cmsResultFileDetail.ImageScalingSize = New System.Drawing.Size(18, 18)
|
Me.cmsResultFileDetail.ImageScalingSize = New System.Drawing.Size(18, 18)
|
||||||
Me.cmsResultFileDetail.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.tsmiFileProperties, Me.ToolStripSeparator5, Me.tsmiFileOpen, Me.tsmiFileFolderOpen, Me.ToolStripSeparator1, Me.tsmiFileInWorkMultiple_Lock, Me.tsmiFileInWorkMultiple_Free, Me.tsmiFileInWork, Me.ToolStripSeparator3, Me.tsmiFileLink_Add, Me.tsmiFileLinkRemove, Me.tsmiFileLink_ShowAll, Me.TsmitmJumpToFilestore, Me.LinkPerMailVersendenToolStripMenuItem, Me.ToolStripSeparator2, Me.tsmiFileRename, Me.DokumentartÄndernToolStripMenuItem, Me.tsmiFileVersion, Me.tsmiFileRightsShow, Me.ToolStripSeparator4, Me.tsmiFileDelete})
|
Me.cmsResultFileDetail.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.tsmiFileProperties, Me.AlleDateienAuswählenToolStripMenuItem, Me.AlleDateienEntwaehlenToolStripMenuItem, Me.ToolStripSeparator5, Me.tsmiFileOpen, Me.tsmiFileFolderOpen, Me.ToolStripSeparator1, Me.tsmiFileInWorkMultiple_Lock, Me.tsmiFileInWorkMultiple_Free, Me.tsmiFileInWork, Me.ToolStripSeparator3, Me.tsmiFileLink_Add, Me.tsmiFileLinkRemove, Me.tsmiFileLink_ShowAll, Me.TsmitmJumpToFilestore, Me.LinkPerMailVersendenToolStripMenuItem, Me.ToolStripSeparator2, Me.tsmiFileRename, Me.DokumentartÄndernToolStripMenuItem, Me.tsmiFileVersion, Me.tsmiFileRightsShow, Me.ToolStripSeparator4, Me.tsmiFileDelete})
|
||||||
Me.cmsResultFileDetail.Name = "ContextMenuStripResultFiles"
|
Me.cmsResultFileDetail.Name = "ContextMenuStripResultFiles"
|
||||||
Me.cmsResultFileDetail.Size = New System.Drawing.Size(315, 440)
|
Me.cmsResultFileDetail.Size = New System.Drawing.Size(315, 466)
|
||||||
'
|
'
|
||||||
'tsmiFileProperties
|
'tsmiFileProperties
|
||||||
'
|
'
|
||||||
@@ -524,6 +527,19 @@ Partial Class frmNodeNavigation
|
|||||||
Me.tsmiFileProperties.Size = New System.Drawing.Size(314, 24)
|
Me.tsmiFileProperties.Size = New System.Drawing.Size(314, 24)
|
||||||
Me.tsmiFileProperties.Text = "Eigenschaften"
|
Me.tsmiFileProperties.Text = "Eigenschaften"
|
||||||
'
|
'
|
||||||
|
'AlleDateienAuswählenToolStripMenuItem
|
||||||
|
'
|
||||||
|
Me.AlleDateienAuswählenToolStripMenuItem.Image = Global.DD_Record_Organizer.My.Resources.Resources.checkbox_16xLG
|
||||||
|
Me.AlleDateienAuswählenToolStripMenuItem.Name = "AlleDateienAuswählenToolStripMenuItem"
|
||||||
|
Me.AlleDateienAuswählenToolStripMenuItem.Size = New System.Drawing.Size(314, 24)
|
||||||
|
Me.AlleDateienAuswählenToolStripMenuItem.Text = "Alle Dateien auswählen"
|
||||||
|
'
|
||||||
|
'AlleDateienEntwaehlenToolStripMenuItem
|
||||||
|
'
|
||||||
|
Me.AlleDateienEntwaehlenToolStripMenuItem.Name = "AlleDateienEntwaehlenToolStripMenuItem"
|
||||||
|
Me.AlleDateienEntwaehlenToolStripMenuItem.Size = New System.Drawing.Size(314, 24)
|
||||||
|
Me.AlleDateienEntwaehlenToolStripMenuItem.Text = "Nicht auswählen"
|
||||||
|
'
|
||||||
'ToolStripSeparator5
|
'ToolStripSeparator5
|
||||||
'
|
'
|
||||||
Me.ToolStripSeparator5.Name = "ToolStripSeparator5"
|
Me.ToolStripSeparator5.Name = "ToolStripSeparator5"
|
||||||
@@ -731,7 +747,7 @@ Partial Class frmNodeNavigation
|
|||||||
'
|
'
|
||||||
Me.SplitContainerDocView.CollapsePanel = DevExpress.XtraEditors.SplitCollapsePanel.Panel2
|
Me.SplitContainerDocView.CollapsePanel = DevExpress.XtraEditors.SplitCollapsePanel.Panel2
|
||||||
Me.SplitContainerDocView.Dock = System.Windows.Forms.DockStyle.Fill
|
Me.SplitContainerDocView.Dock = System.Windows.Forms.DockStyle.Fill
|
||||||
Me.SplitContainerDocView.Location = New System.Drawing.Point(0, 147)
|
Me.SplitContainerDocView.Location = New System.Drawing.Point(0, 158)
|
||||||
Me.SplitContainerDocView.Name = "SplitContainerDocView"
|
Me.SplitContainerDocView.Name = "SplitContainerDocView"
|
||||||
'
|
'
|
||||||
'SplitContainerDocView.Panel1
|
'SplitContainerDocView.Panel1
|
||||||
@@ -743,7 +759,7 @@ Partial Class frmNodeNavigation
|
|||||||
'
|
'
|
||||||
Me.SplitContainerDocView.Panel2.Controls.Add(Me.DocumentViewer)
|
Me.SplitContainerDocView.Panel2.Controls.Add(Me.DocumentViewer)
|
||||||
Me.SplitContainerDocView.Panel2.Text = "Panel2"
|
Me.SplitContainerDocView.Panel2.Text = "Panel2"
|
||||||
Me.SplitContainerDocView.Size = New System.Drawing.Size(1151, 419)
|
Me.SplitContainerDocView.Size = New System.Drawing.Size(1151, 409)
|
||||||
Me.SplitContainerDocView.SplitterPosition = 776
|
Me.SplitContainerDocView.SplitterPosition = 776
|
||||||
Me.SplitContainerDocView.TabIndex = 0
|
Me.SplitContainerDocView.TabIndex = 0
|
||||||
'
|
'
|
||||||
@@ -754,7 +770,7 @@ Partial Class frmNodeNavigation
|
|||||||
Me.DocumentViewer.FileLoaded = False
|
Me.DocumentViewer.FileLoaded = False
|
||||||
Me.DocumentViewer.Location = New System.Drawing.Point(0, 0)
|
Me.DocumentViewer.Location = New System.Drawing.Point(0, 0)
|
||||||
Me.DocumentViewer.Name = "DocumentViewer"
|
Me.DocumentViewer.Name = "DocumentViewer"
|
||||||
Me.DocumentViewer.Size = New System.Drawing.Size(363, 419)
|
Me.DocumentViewer.Size = New System.Drawing.Size(365, 409)
|
||||||
Me.DocumentViewer.TabIndex = 0
|
Me.DocumentViewer.TabIndex = 0
|
||||||
Me.DocumentViewer.Viewer_ForceTemporaryMode = False
|
Me.DocumentViewer.Viewer_ForceTemporaryMode = False
|
||||||
'
|
'
|
||||||
@@ -770,9 +786,9 @@ Partial Class frmNodeNavigation
|
|||||||
'
|
'
|
||||||
'CMSAdmin_Treeview
|
'CMSAdmin_Treeview
|
||||||
'
|
'
|
||||||
Me.CMSAdmin_Treeview.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.KnotenLöschenadminToolStripMenuItem, Me.KnotenVerschiebenToolStripMenuItem})
|
Me.CMSAdmin_Treeview.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.KnotenLöschenadminToolStripMenuItem, Me.KnotenVerschiebenToolStripMenuItem, Me.KnotenUmbenennenToolStripMenuItem})
|
||||||
Me.CMSAdmin_Treeview.Name = "CMSAdmin_Treeview"
|
Me.CMSAdmin_Treeview.Name = "CMSAdmin_Treeview"
|
||||||
Me.CMSAdmin_Treeview.Size = New System.Drawing.Size(202, 48)
|
Me.CMSAdmin_Treeview.Size = New System.Drawing.Size(202, 92)
|
||||||
'
|
'
|
||||||
'KnotenLöschenadminToolStripMenuItem
|
'KnotenLöschenadminToolStripMenuItem
|
||||||
'
|
'
|
||||||
@@ -1062,6 +1078,13 @@ Partial Class frmNodeNavigation
|
|||||||
Me.DD_DMSDataSet1.DataSetName = "DD_DMSDataSet"
|
Me.DD_DMSDataSet1.DataSetName = "DD_DMSDataSet"
|
||||||
Me.DD_DMSDataSet1.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema
|
Me.DD_DMSDataSet1.SchemaSerializationMode = System.Data.SchemaSerializationMode.IncludeSchema
|
||||||
'
|
'
|
||||||
|
'KnotenUmbenennenToolStripMenuItem
|
||||||
|
'
|
||||||
|
Me.KnotenUmbenennenToolStripMenuItem.Image = Global.DD_Record_Organizer.My.Resources.Resources.brick
|
||||||
|
Me.KnotenUmbenennenToolStripMenuItem.Name = "KnotenUmbenennenToolStripMenuItem"
|
||||||
|
Me.KnotenUmbenennenToolStripMenuItem.Size = New System.Drawing.Size(201, 22)
|
||||||
|
Me.KnotenUmbenennenToolStripMenuItem.Text = "Knoten umbenennen"
|
||||||
|
'
|
||||||
'frmNodeNavigation
|
'frmNodeNavigation
|
||||||
'
|
'
|
||||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||||
@@ -1220,4 +1243,7 @@ Partial Class frmNodeNavigation
|
|||||||
Friend WithEvents bsiDocIDChanged As DevExpress.XtraBars.BarStaticItem
|
Friend WithEvents bsiDocIDChanged As DevExpress.XtraBars.BarStaticItem
|
||||||
Friend WithEvents TsmitmJumpToFilestore As ToolStripMenuItem
|
Friend WithEvents TsmitmJumpToFilestore As ToolStripMenuItem
|
||||||
Friend WithEvents RepositoryItemTextEdit1 As DevExpress.XtraEditors.Repository.RepositoryItemTextEdit
|
Friend WithEvents RepositoryItemTextEdit1 As DevExpress.XtraEditors.Repository.RepositoryItemTextEdit
|
||||||
|
Friend WithEvents AlleDateienAuswählenToolStripMenuItem As ToolStripMenuItem
|
||||||
|
Friend WithEvents AlleDateienEntwaehlenToolStripMenuItem As ToolStripMenuItem
|
||||||
|
Friend WithEvents KnotenUmbenennenToolStripMenuItem As ToolStripMenuItem
|
||||||
End Class
|
End Class
|
||||||
|
|||||||
File diff suppressed because it is too large
Load Diff
92
app/DD-Record-Organizer/frmNodeNavigation_RenameNode.Designer.vb
generated
Normal file
92
app/DD-Record-Organizer/frmNodeNavigation_RenameNode.Designer.vb
generated
Normal file
@@ -0,0 +1,92 @@
|
|||||||
|
<Global.Microsoft.VisualBasic.CompilerServices.DesignerGenerated()> _
|
||||||
|
Partial Class frmNodeNavigation_RenameNode
|
||||||
|
Inherits DevExpress.XtraEditors.XtraForm
|
||||||
|
|
||||||
|
'Das Formular überschreibt den Löschvorgang, um die Komponentenliste zu bereinigen.
|
||||||
|
<System.Diagnostics.DebuggerNonUserCode()> _
|
||||||
|
Protected Overrides Sub Dispose(ByVal disposing As Boolean)
|
||||||
|
Try
|
||||||
|
If disposing AndAlso components IsNot Nothing Then
|
||||||
|
components.Dispose()
|
||||||
|
End If
|
||||||
|
Finally
|
||||||
|
MyBase.Dispose(disposing)
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
'Wird vom Windows Form-Designer benötigt.
|
||||||
|
Private components As System.ComponentModel.IContainer
|
||||||
|
|
||||||
|
'Hinweis: Die folgende Prozedur ist für den Windows Form-Designer erforderlich.
|
||||||
|
'Das Bearbeiten ist mit dem Windows Form-Designer möglich.
|
||||||
|
'Das Bearbeiten mit dem Code-Editor ist nicht möglich.
|
||||||
|
<System.Diagnostics.DebuggerStepThrough()> _
|
||||||
|
Private Sub InitializeComponent()
|
||||||
|
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmNodeNavigation_RenameNode))
|
||||||
|
Me.LabelControl1 = New DevExpress.XtraEditors.LabelControl()
|
||||||
|
Me.txtNode_Caption = New DevExpress.XtraEditors.TextEdit()
|
||||||
|
Me.btnRename = New DevExpress.XtraEditors.SimpleButton()
|
||||||
|
Me.btncancel = New DevExpress.XtraEditors.SimpleButton()
|
||||||
|
CType(Me.txtNode_Caption.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
|
Me.SuspendLayout()
|
||||||
|
'
|
||||||
|
'LabelControl1
|
||||||
|
'
|
||||||
|
Me.LabelControl1.Location = New System.Drawing.Point(23, 6)
|
||||||
|
Me.LabelControl1.Name = "LabelControl1"
|
||||||
|
Me.LabelControl1.Size = New System.Drawing.Size(60, 13)
|
||||||
|
Me.LabelControl1.TabIndex = 0
|
||||||
|
Me.LabelControl1.Text = "Knoten-Text"
|
||||||
|
'
|
||||||
|
'txtNode_Caption
|
||||||
|
'
|
||||||
|
Me.txtNode_Caption.Location = New System.Drawing.Point(23, 25)
|
||||||
|
Me.txtNode_Caption.Name = "txtNode_Caption"
|
||||||
|
Me.txtNode_Caption.Size = New System.Drawing.Size(264, 20)
|
||||||
|
Me.txtNode_Caption.TabIndex = 1
|
||||||
|
'
|
||||||
|
'btnRename
|
||||||
|
'
|
||||||
|
Me.btnRename.DialogResult = System.Windows.Forms.DialogResult.OK
|
||||||
|
Me.btnRename.ImageOptions.SvgImage = CType(resources.GetObject("btnRename.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
|
||||||
|
Me.btnRename.Location = New System.Drawing.Point(23, 61)
|
||||||
|
Me.btnRename.Name = "btnRename"
|
||||||
|
Me.btnRename.Size = New System.Drawing.Size(151, 36)
|
||||||
|
Me.btnRename.TabIndex = 2
|
||||||
|
Me.btnRename.Text = "Umbenennen"
|
||||||
|
'
|
||||||
|
'btncancel
|
||||||
|
'
|
||||||
|
Me.btncancel.DialogResult = System.Windows.Forms.DialogResult.Cancel
|
||||||
|
Me.btncancel.ImageOptions.SvgImage = CType(resources.GetObject("btncancel.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
|
||||||
|
Me.btncancel.Location = New System.Drawing.Point(180, 61)
|
||||||
|
Me.btncancel.Name = "btncancel"
|
||||||
|
Me.btncancel.Size = New System.Drawing.Size(107, 36)
|
||||||
|
Me.btncancel.TabIndex = 3
|
||||||
|
Me.btncancel.Text = "Abbrechen"
|
||||||
|
'
|
||||||
|
'frmNodeNavigation_RenameNode
|
||||||
|
'
|
||||||
|
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||||
|
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||||
|
Me.ClientSize = New System.Drawing.Size(318, 109)
|
||||||
|
Me.Controls.Add(Me.btncancel)
|
||||||
|
Me.Controls.Add(Me.btnRename)
|
||||||
|
Me.Controls.Add(Me.txtNode_Caption)
|
||||||
|
Me.Controls.Add(Me.LabelControl1)
|
||||||
|
Me.IconOptions.SvgImage = CType(resources.GetObject("frmNodeNavigation_RenameNode.IconOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
|
||||||
|
Me.MaximizeBox = False
|
||||||
|
Me.MinimizeBox = False
|
||||||
|
Me.Name = "frmNodeNavigation_RenameNode"
|
||||||
|
Me.Text = "Umbenennen Knoten-Text"
|
||||||
|
CType(Me.txtNode_Caption.Properties, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
|
Me.ResumeLayout(False)
|
||||||
|
Me.PerformLayout()
|
||||||
|
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Friend WithEvents LabelControl1 As DevExpress.XtraEditors.LabelControl
|
||||||
|
Friend WithEvents txtNode_Caption As DevExpress.XtraEditors.TextEdit
|
||||||
|
Friend WithEvents btnRename As DevExpress.XtraEditors.SimpleButton
|
||||||
|
Friend WithEvents btncancel As DevExpress.XtraEditors.SimpleButton
|
||||||
|
End Class
|
||||||
196
app/DD-Record-Organizer/frmNodeNavigation_RenameNode.resx
Normal file
196
app/DD-Record-Organizer/frmNodeNavigation_RenameNode.resx
Normal file
@@ -0,0 +1,196 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<root>
|
||||||
|
<!--
|
||||||
|
Microsoft ResX Schema
|
||||||
|
|
||||||
|
Version 2.0
|
||||||
|
|
||||||
|
The primary goals of this format is to allow a simple XML format
|
||||||
|
that is mostly human readable. The generation and parsing of the
|
||||||
|
various data types are done through the TypeConverter classes
|
||||||
|
associated with the data types.
|
||||||
|
|
||||||
|
Example:
|
||||||
|
|
||||||
|
... ado.net/XML headers & schema ...
|
||||||
|
<resheader name="resmimetype">text/microsoft-resx</resheader>
|
||||||
|
<resheader name="version">2.0</resheader>
|
||||||
|
<resheader name="reader">System.Resources.ResXResourceReader, System.Windows.Forms, ...</resheader>
|
||||||
|
<resheader name="writer">System.Resources.ResXResourceWriter, System.Windows.Forms, ...</resheader>
|
||||||
|
<data name="Name1"><value>this is my long string</value><comment>this is a comment</comment></data>
|
||||||
|
<data name="Color1" type="System.Drawing.Color, System.Drawing">Blue</data>
|
||||||
|
<data name="Bitmap1" mimetype="application/x-microsoft.net.object.binary.base64">
|
||||||
|
<value>[base64 mime encoded serialized .NET Framework object]</value>
|
||||||
|
</data>
|
||||||
|
<data name="Icon1" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>[base64 mime encoded string representing a byte array form of the .NET Framework object]</value>
|
||||||
|
<comment>This is a comment</comment>
|
||||||
|
</data>
|
||||||
|
|
||||||
|
There are any number of "resheader" rows that contain simple
|
||||||
|
name/value pairs.
|
||||||
|
|
||||||
|
Each data row contains a name, and value. The row also contains a
|
||||||
|
type or mimetype. Type corresponds to a .NET class that support
|
||||||
|
text/value conversion through the TypeConverter architecture.
|
||||||
|
Classes that don't support this are serialized and stored with the
|
||||||
|
mimetype set.
|
||||||
|
|
||||||
|
The mimetype is used for serialized objects, and tells the
|
||||||
|
ResXResourceReader how to depersist the object. This is currently not
|
||||||
|
extensible. For a given mimetype the value must be set accordingly:
|
||||||
|
|
||||||
|
Note - application/x-microsoft.net.object.binary.base64 is the format
|
||||||
|
that the ResXResourceWriter will generate, however the reader can
|
||||||
|
read any of the formats listed below.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.binary.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Binary.BinaryFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.soap.base64
|
||||||
|
value : The object must be serialized with
|
||||||
|
: System.Runtime.Serialization.Formatters.Soap.SoapFormatter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
|
||||||
|
mimetype: application/x-microsoft.net.object.bytearray.base64
|
||||||
|
value : The object must be serialized into a byte array
|
||||||
|
: using a System.ComponentModel.TypeConverter
|
||||||
|
: and then encoded with base64 encoding.
|
||||||
|
-->
|
||||||
|
<xsd:schema id="root" xmlns="" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:msdata="urn:schemas-microsoft-com:xml-msdata">
|
||||||
|
<xsd:import namespace="http://www.w3.org/XML/1998/namespace" />
|
||||||
|
<xsd:element name="root" msdata:IsDataSet="true">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:choice maxOccurs="unbounded">
|
||||||
|
<xsd:element name="metadata">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" use="required" type="xsd:string" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="assembly">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:attribute name="alias" type="xsd:string" />
|
||||||
|
<xsd:attribute name="name" type="xsd:string" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="data">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
<xsd:element name="comment" type="xsd:string" minOccurs="0" msdata:Ordinal="2" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" msdata:Ordinal="1" />
|
||||||
|
<xsd:attribute name="type" type="xsd:string" msdata:Ordinal="3" />
|
||||||
|
<xsd:attribute name="mimetype" type="xsd:string" msdata:Ordinal="4" />
|
||||||
|
<xsd:attribute ref="xml:space" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
<xsd:element name="resheader">
|
||||||
|
<xsd:complexType>
|
||||||
|
<xsd:sequence>
|
||||||
|
<xsd:element name="value" type="xsd:string" minOccurs="0" msdata:Ordinal="1" />
|
||||||
|
</xsd:sequence>
|
||||||
|
<xsd:attribute name="name" type="xsd:string" use="required" />
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:choice>
|
||||||
|
</xsd:complexType>
|
||||||
|
</xsd:element>
|
||||||
|
</xsd:schema>
|
||||||
|
<resheader name="resmimetype">
|
||||||
|
<value>text/microsoft-resx</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="version">
|
||||||
|
<value>2.0</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="reader">
|
||||||
|
<value>System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<resheader name="writer">
|
||||||
|
<value>System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
|
||||||
|
</resheader>
|
||||||
|
<assembly alias="DevExpress.Data.v21.2" name="DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||||
|
<data name="btnRename.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40
|
||||||
|
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
|
||||||
|
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAAIIFAAAC77u/
|
||||||
|
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
|
||||||
|
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
|
||||||
|
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
|
||||||
|
Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
|
||||||
|
MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJ
|
||||||
|
LlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuQmx1ZXtmaWxsOiMxMTc3
|
||||||
|
RDc7fQoJLldoaXRle2ZpbGw6I0ZGRkZGRjt9CgkuR3JlZW57ZmlsbDojMDM5QzIzO30KCS5zdDB7b3Bh
|
||||||
|
Y2l0eTowLjc1O30KCS5zdDF7b3BhY2l0eTowLjU7fQoJLnN0MntvcGFjaXR5OjAuMjU7fQoJLnN0M3tm
|
||||||
|
aWxsOiNGRkIxMTU7fQo8L3N0eWxlPg0KICA8ZyAvPg0KICA8ZyBpZD0iUmVuYW1lIj4NCiAgICA8cGF0
|
||||||
|
aCBkPSJNMjEuNiwxMC4zYzAtMC43LTAuMy0xLjMtMC45LTEuN0MyMC4xLDguMiwxOS4xLDgsMTcuOSw4
|
||||||
|
SDE0djkuOVYxOGg0YzEuMiwwLDIuMi0wLjIsMi45LTAuOCAgIEMyMS43LDE2LjYsMjIsMTYsMjIsMTVj
|
||||||
|
MC0wLjYtMC4yLTEuMi0wLjctMS42Yy0wLjUtMC40LTEuMS0wLjctMS44LTAuOGMwLjYtMC4yLDEuMS0w
|
||||||
|
LjUsMS41LTAuOUMyMS40LDExLjMsMjEuNiwxMC45LDIxLjYsMTAuM3ogICAgTTE2LjQsOS43aDAuOWMx
|
||||||
|
LjEsMCwxLjcsMC40LDEuNywxLjFjMCwwLjQtMC4xLDAuNy0wLjQsMC45QzE4LjQsMTEuOSwxOCwxMiwx
|
||||||
|
Ny41LDEyaC0xLjFWOS43eiBNMTksMTUuOGMtMC4zLDAuMi0wLjgsMC40LTEuMywwLjQgICBoLTEuM3Yt
|
||||||
|
Mi42aDEuM2MwLjUsMCwwLjksMC4xLDEuMywwLjNjMC4zLDAuMiwwLjUsMC42LDAuNSwwLjlDMTkuNSwx
|
||||||
|
NS4zLDE5LjQsMTUuNiwxOSwxNS44eiBNMTcuMiwyMkgxYy0wLjUsMC0xLTAuNS0xLTFWNSAgIGMwLTAu
|
||||||
|
NSwwLjUtMSwxLTFoMjRjMC41LDAsMSwwLjUsMSwxdjguMmwtMiwyVjZIMnYxNGgxNy4yTDE3LjIsMjJ6
|
||||||
|
IE00LjEsMThoMi4ybDAuNi0yLjNoMy4ybDAuNiwyLjNIMTNMOS44LDhINy40TDQuMSwxOHogICAgTTgu
|
||||||
|
NCwxMC43YzAuMS0wLjMsMC4xLTAuNiwwLjEtMC45aDAuMWMwLDAuMywwLjEsMC42LDAuMSwwLjlsMSwz
|
||||||
|
LjNINy40TDguNCwxMC43eiIgY2xhc3M9IkJsYWNrIiAvPg0KICAgIDxwYXRoIGQ9Ik0yOSwyMWwtOCw4
|
||||||
|
bC00LTRsOC04TDI5LDIxeiBNMzAsMjBsMS43LTEuN2MwLjQtMC40LDAuNC0xLDAtMS4zTDI5LDE0LjNj
|
||||||
|
LTAuNC0wLjQtMS0wLjQtMS4zLDBMMjYsMTZMMzAsMjB6ICAgIE0xNiwyNnY0aDRMMTYsMjZ6IiBjbGFz
|
||||||
|
cz0iQmx1ZSIgLz4NCiAgPC9nPg0KPC9zdmc+Cw==
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="btncancel.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40
|
||||||
|
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
|
||||||
|
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAANcBAAAC77u/
|
||||||
|
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
|
||||||
|
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
|
||||||
|
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
|
||||||
|
Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
|
||||||
|
MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlJlZHtmaWxsOiNEMTFDMUM7fQo8L3N0
|
||||||
|
eWxlPg0KICA8cGF0aCBkPSJNMTYsMkM4LjMsMiwyLDguMywyLDE2czYuMywxNCwxNCwxNHMxNC02LjMs
|
||||||
|
MTQtMTRTMjMuNywyLDE2LDJ6IE0yMywyMGwtMywzbC00LTRsLTQsNGwtMy0zbDQtNGwtNC00bDMtM2w0
|
||||||
|
LDQgIGw0LTRsMywzbC00LDRMMjMsMjB6IiBjbGFzcz0iUmVkIiAvPg0KPC9zdmc+Cw==
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<data name="frmNodeNavigation_RenameNode.IconOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
AAEAAAD/////AQAAAAAAAAAMAgAAAFlEZXZFeHByZXNzLkRhdGEudjIxLjIsIFZlcnNpb249MjEuMi40
|
||||||
|
LjAsIEN1bHR1cmU9bmV1dHJhbCwgUHVibGljS2V5VG9rZW49Yjg4ZDE3NTRkNzAwZTQ5YQUBAAAAHURl
|
||||||
|
dkV4cHJlc3MuVXRpbHMuU3ZnLlN2Z0ltYWdlAQAAAAREYXRhBwICAAAACQMAAAAPAwAAABwFAAAC77u/
|
||||||
|
PD94bWwgdmVyc2lvbj0nMS4wJyBlbmNvZGluZz0nVVRGLTgnPz4NCjxzdmcgeD0iMHB4IiB5PSIwcHgi
|
||||||
|
IHZpZXdCb3g9IjAgMCAzMiAzMiIgdmVyc2lvbj0iMS4xIiB4bWxucz0iaHR0cDovL3d3dy53My5vcmcv
|
||||||
|
MjAwMC9zdmciIHhtbG5zOnhsaW5rPSJodHRwOi8vd3d3LnczLm9yZy8xOTk5L3hsaW5rIiB4bWw6c3Bh
|
||||||
|
Y2U9InByZXNlcnZlIiBpZD0iTGF5ZXJfMSIgc3R5bGU9ImVuYWJsZS1iYWNrZ3JvdW5kOm5ldyAwIDAg
|
||||||
|
MzIgMzIiPg0KICA8c3R5bGUgdHlwZT0idGV4dC9jc3MiPgoJLlllbGxvd3tmaWxsOiNGRkIxMTU7fQoJ
|
||||||
|
LlJlZHtmaWxsOiNEMTFDMUM7fQoJLkJsYWNre2ZpbGw6IzcyNzI3Mjt9CgkuQmx1ZXtmaWxsOiMxMTc3
|
||||||
|
RDc7fQoJLldoaXRle2ZpbGw6I0ZGRkZGRjt9CgkuR3JlZW57ZmlsbDojMDM5QzIzO30KCS5zdDB7b3Bh
|
||||||
|
Y2l0eTowLjc1O30KCS5zdDF7b3BhY2l0eTowLjU7fQoJLnN0MntvcGFjaXR5OjAuMjU7fQoJLnN0M3tm
|
||||||
|
aWxsOiNGRkIxMTU7fQo8L3N0eWxlPg0KICA8ZyAvPg0KICA8ZyBpZD0iUmVuYW1lXzFfIj4NCiAgICA8
|
||||||
|
cGF0aCBkPSJNMi4xLDE2aDIuMmwwLjYtMi4zaDMuMkw4LjgsMTZIMTFMNy44LDZINS40TDIuMSwxNnog
|
||||||
|
TTYuNCw4LjdjMC4xLTAuMywwLjEtMC42LDAuMS0wLjloMC4xICAgYzAsMC4zLDAuMSwwLjYsMC4xLDAu
|
||||||
|
OWwxLDMuM0g1LjRMNi40LDguN3ogTTE3LjUsMTAuNmMwLjYtMC4yLDEuMS0wLjUsMS41LTAuOWMwLjQt
|
||||||
|
MC40LDAuNi0wLjksMC42LTEuNGMwLTAuNy0wLjMtMS4zLTAuOS0xLjcgICBDMTguMSw2LjIsMTcuMSw2
|
||||||
|
LDE1LjksNkgxMnY5LjlWMTZoNGMxLjIsMCwyLjItMC4yLDIuOS0wLjhDMTkuNywxNC42LDIwLDE0LDIw
|
||||||
|
LDEzYzAtMC42LTAuMi0xLjItMC43LTEuNiAgIEMxOC45LDExLDE4LjMsMTAuNywxNy41LDEwLjZ6IE0x
|
||||||
|
NC40LDcuN2gwLjljMS4xLDAsMS43LDAuNCwxLjcsMS4xYzAsMC40LTAuMSwwLjctMC40LDAuOUMxNi40
|
||||||
|
LDkuOSwxNiwxMCwxNS41LDEwaC0xLjFWNy43eiAgICBNMTcsMTMuOGMtMC4zLDAuMi0wLjgsMC40LTEu
|
||||||
|
MywwLjRoLTEuM3YtMi42aDEuM2MwLjUsMCwwLjksMC4xLDEuMywwLjNjMC4zLDAuMiwwLjUsMC42LDAu
|
||||||
|
NSwwLjlDMTcuNSwxMy4zLDE3LjQsMTMuNiwxNywxMy44eiIgY2xhc3M9IkJsYWNrIiAvPg0KICAgIDxw
|
||||||
|
YXRoIGQ9Ik0yNywxOWwtOCw4bC00LTRsOC04TDI3LDE5eiBNMjgsMThsMS43LTEuN2MwLjQtMC40LDAu
|
||||||
|
NC0xLDAtMS4zTDI3LDEyLjNjLTAuNC0wLjQtMS0wLjQtMS4zLDBMMjQsMTRMMjgsMTh6ICAgIE0xNCwy
|
||||||
|
NHY0aDRMMTQsMjR6IiBjbGFzcz0iQmx1ZSIgLz4NCiAgPC9nPg0KPC9zdmc+Cw==
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
</root>
|
||||||
24
app/DD-Record-Organizer/frmNodeNavigation_RenameNode.vb
Normal file
24
app/DD-Record-Organizer/frmNodeNavigation_RenameNode.vb
Normal file
@@ -0,0 +1,24 @@
|
|||||||
|
Public Class frmNodeNavigation_RenameNode
|
||||||
|
''' <summary>
|
||||||
|
''' Die initiale Beschriftung des Knotens – vor dem Öffnen setzen.
|
||||||
|
''' </summary>
|
||||||
|
Public Property NodeCaption As String = ""
|
||||||
|
|
||||||
|
''' <summary>
|
||||||
|
''' Die neue Beschriftung nach erfolgreichem Umbenennen.
|
||||||
|
''' </summary>
|
||||||
|
Public Property NewNodeCaption As String = ""
|
||||||
|
Private Sub frmNodeNavigation_RenameNode_Load(sender As Object, e As EventArgs) Handles Me.Load
|
||||||
|
txtNode_Caption.Text = NodeCaption
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub txtNode_Caption_EditValueChanged(sender As Object, e As EventArgs) Handles txtNode_Caption.EditValueChanged
|
||||||
|
btnRename.Enabled = Not String.IsNullOrWhiteSpace(txtNode_Caption.Text)
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub btnRename_Click(sender As Object, e As EventArgs) Handles btnRename.Click
|
||||||
|
NewNodeCaption = txtNode_Caption.Text.Trim()
|
||||||
|
Me.DialogResult = DialogResult.OK
|
||||||
|
Me.Close()
|
||||||
|
End Sub
|
||||||
|
End Class
|
||||||
@@ -33,6 +33,7 @@ Partial Class frmStructureNodeConfig
|
|||||||
Dim COMMENTLabel As System.Windows.Forms.Label
|
Dim COMMENTLabel As System.Windows.Forms.Label
|
||||||
Dim Label1 As System.Windows.Forms.Label
|
Dim Label1 As System.Windows.Forms.Label
|
||||||
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmStructureNodeConfig))
|
Dim resources As System.ComponentModel.ComponentResourceManager = New System.ComponentModel.ComponentResourceManager(GetType(frmStructureNodeConfig))
|
||||||
|
Dim GridLevelNode1 As DevExpress.XtraGrid.GridLevelNode = New DevExpress.XtraGrid.GridLevelNode()
|
||||||
Me.TBPMO_STRUCTURE_NODES_CONFIGURATIONBindingSource = New System.Windows.Forms.BindingSource(Me.components)
|
Me.TBPMO_STRUCTURE_NODES_CONFIGURATIONBindingSource = New System.Windows.Forms.BindingSource(Me.components)
|
||||||
Me.DD_DMSDataSet = New DD_Record_Organizer.DD_DMSDataSet()
|
Me.DD_DMSDataSet = New DD_Record_Organizer.DD_DMSDataSet()
|
||||||
Me.GUIDTextBox = New System.Windows.Forms.TextBox()
|
Me.GUIDTextBox = New System.Windows.Forms.TextBox()
|
||||||
@@ -63,16 +64,38 @@ Partial Class frmStructureNodeConfig
|
|||||||
Me.RibbonControl1 = New DevExpress.XtraBars.Ribbon.RibbonControl()
|
Me.RibbonControl1 = New DevExpress.XtraBars.Ribbon.RibbonControl()
|
||||||
Me.BarButtonItem1 = New DevExpress.XtraBars.BarButtonItem()
|
Me.BarButtonItem1 = New DevExpress.XtraBars.BarButtonItem()
|
||||||
Me.BarButtonItem2 = New DevExpress.XtraBars.BarButtonItem()
|
Me.BarButtonItem2 = New DevExpress.XtraBars.BarButtonItem()
|
||||||
Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage()
|
|
||||||
Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
|
|
||||||
Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
|
|
||||||
Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar()
|
|
||||||
Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage()
|
|
||||||
Me.BarButtonItem3 = New DevExpress.XtraBars.BarButtonItem()
|
Me.BarButtonItem3 = New DevExpress.XtraBars.BarButtonItem()
|
||||||
Me.BarButtonItem5 = New DevExpress.XtraBars.BarButtonItem()
|
Me.BarButtonItem5 = New DevExpress.XtraBars.BarButtonItem()
|
||||||
Me.bsitmSave = New DevExpress.XtraBars.BarStaticItem()
|
Me.bsitmSave = New DevExpress.XtraBars.BarStaticItem()
|
||||||
|
Me.RibbonPage1 = New DevExpress.XtraBars.Ribbon.RibbonPage()
|
||||||
|
Me.RibbonPageGroup2 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
|
||||||
|
Me.RibbonPageGroup1 = New DevExpress.XtraBars.Ribbon.RibbonPageGroup()
|
||||||
|
Me.RibbonStatusBar1 = New DevExpress.XtraBars.Ribbon.RibbonStatusBar()
|
||||||
|
Me.RibbonPage2 = New DevExpress.XtraBars.Ribbon.RibbonPage()
|
||||||
Me.Label3 = New System.Windows.Forms.Label()
|
Me.Label3 = New System.Windows.Forms.Label()
|
||||||
Me.CheckEdit1 = New DevExpress.XtraEditors.CheckEdit()
|
Me.CheckEdit1 = New DevExpress.XtraEditors.CheckEdit()
|
||||||
|
Me.GridControl_Right_AddmanNode_User = New DevExpress.XtraGrid.GridControl()
|
||||||
|
Me.TBWH_Users1BindingSource = New System.Windows.Forms.BindingSource(Me.components)
|
||||||
|
Me.GridViewRight_AddmanNode_User = New DevExpress.XtraGrid.Views.Grid.GridView()
|
||||||
|
Me.GridColumn3 = New DevExpress.XtraGrid.Columns.GridColumn()
|
||||||
|
Me.colSurname1 = New DevExpress.XtraGrid.Columns.GridColumn()
|
||||||
|
Me.GridColumn7 = New DevExpress.XtraGrid.Columns.GridColumn()
|
||||||
|
Me.GridColumn8 = New DevExpress.XtraGrid.Columns.GridColumn()
|
||||||
|
Me.GridColumn9 = New DevExpress.XtraGrid.Columns.GridColumn()
|
||||||
|
Me.Label5 = New System.Windows.Forms.Label()
|
||||||
|
Me.btndeleteUser = New System.Windows.Forms.Button()
|
||||||
|
Me.btnAddUser = New System.Windows.Forms.Button()
|
||||||
|
Me.TBAD_UsersBindingSource = New System.Windows.Forms.BindingSource(Me.components)
|
||||||
|
Me.GridControlFreeUsers = New DevExpress.XtraGrid.GridControl()
|
||||||
|
Me.GridViewFreeUsers = New DevExpress.XtraGrid.Views.Grid.GridView()
|
||||||
|
Me.colSelect = New DevExpress.XtraGrid.Columns.GridColumn()
|
||||||
|
Me.colSurname = New DevExpress.XtraGrid.Columns.GridColumn()
|
||||||
|
Me.GridColumn1 = New DevExpress.XtraGrid.Columns.GridColumn()
|
||||||
|
Me.GridColumn2 = New DevExpress.XtraGrid.Columns.GridColumn()
|
||||||
|
Me.colID = New DevExpress.XtraGrid.Columns.GridColumn()
|
||||||
|
Me.ContextMenuStrip1 = New System.Windows.Forms.ContextMenuStrip(Me.components)
|
||||||
|
Me.AlleUserAuswählenToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
|
Me.KeineAuswahlToolStripMenuItem = New System.Windows.Forms.ToolStripMenuItem()
|
||||||
GUIDLabel = New System.Windows.Forms.Label()
|
GUIDLabel = New System.Windows.Forms.Label()
|
||||||
TYPE_NODELabel = New System.Windows.Forms.Label()
|
TYPE_NODELabel = New System.Windows.Forms.Label()
|
||||||
ADDED_WHOLabel = New System.Windows.Forms.Label()
|
ADDED_WHOLabel = New System.Windows.Forms.Label()
|
||||||
@@ -92,6 +115,13 @@ Partial Class frmStructureNodeConfig
|
|||||||
CType(Me.DD_ECMAdmin, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.DD_ECMAdmin, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
CType(Me.CheckEdit1.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
|
CType(Me.CheckEdit1.Properties, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
|
CType(Me.GridControl_Right_AddmanNode_User, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
|
CType(Me.TBWH_Users1BindingSource, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
|
CType(Me.GridViewRight_AddmanNode_User, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
|
CType(Me.TBAD_UsersBindingSource, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
|
CType(Me.GridControlFreeUsers, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
|
CType(Me.GridViewFreeUsers, System.ComponentModel.ISupportInitialize).BeginInit()
|
||||||
|
Me.ContextMenuStrip1.SuspendLayout()
|
||||||
Me.SuspendLayout()
|
Me.SuspendLayout()
|
||||||
'
|
'
|
||||||
'GUIDLabel
|
'GUIDLabel
|
||||||
@@ -109,7 +139,7 @@ Partial Class frmStructureNodeConfig
|
|||||||
TYPE_NODELabel.AutoSize = True
|
TYPE_NODELabel.AutoSize = True
|
||||||
TYPE_NODELabel.Location = New System.Drawing.Point(633, 327)
|
TYPE_NODELabel.Location = New System.Drawing.Point(633, 327)
|
||||||
TYPE_NODELabel.Name = "TYPE_NODELabel"
|
TYPE_NODELabel.Name = "TYPE_NODELabel"
|
||||||
TYPE_NODELabel.Size = New System.Drawing.Size(93, 13)
|
TYPE_NODELabel.Size = New System.Drawing.Size(92, 13)
|
||||||
TYPE_NODELabel.TabIndex = 5
|
TYPE_NODELabel.TabIndex = 5
|
||||||
TYPE_NODELabel.Text = "Node Type/Level:"
|
TYPE_NODELabel.Text = "Node Type/Level:"
|
||||||
'
|
'
|
||||||
@@ -340,12 +370,10 @@ Partial Class frmStructureNodeConfig
|
|||||||
'
|
'
|
||||||
'TreeView1
|
'TreeView1
|
||||||
'
|
'
|
||||||
Me.TreeView1.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
|
|
||||||
Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
|
|
||||||
Me.TreeView1.Font = New System.Drawing.Font("Tahoma", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
Me.TreeView1.Font = New System.Drawing.Font("Tahoma", 9.75!, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||||
Me.TreeView1.Location = New System.Drawing.Point(15, 203)
|
Me.TreeView1.Location = New System.Drawing.Point(15, 203)
|
||||||
Me.TreeView1.Name = "TreeView1"
|
Me.TreeView1.Name = "TreeView1"
|
||||||
Me.TreeView1.Size = New System.Drawing.Size(324, 285)
|
Me.TreeView1.Size = New System.Drawing.Size(324, 273)
|
||||||
Me.TreeView1.TabIndex = 90
|
Me.TreeView1.TabIndex = 90
|
||||||
'
|
'
|
||||||
'TBPMO_STRUCTURE_NODES_CONFIGURATIONTableAdapter
|
'TBPMO_STRUCTURE_NODES_CONFIGURATIONTableAdapter
|
||||||
@@ -455,7 +483,7 @@ Partial Class frmStructureNodeConfig
|
|||||||
Me.RibbonControl1.Name = "RibbonControl1"
|
Me.RibbonControl1.Name = "RibbonControl1"
|
||||||
Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1})
|
Me.RibbonControl1.Pages.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPage() {Me.RibbonPage1})
|
||||||
Me.RibbonControl1.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False]
|
Me.RibbonControl1.ShowApplicationButton = DevExpress.Utils.DefaultBoolean.[False]
|
||||||
Me.RibbonControl1.Size = New System.Drawing.Size(972, 158)
|
Me.RibbonControl1.Size = New System.Drawing.Size(959, 158)
|
||||||
Me.RibbonControl1.StatusBar = Me.RibbonStatusBar1
|
Me.RibbonControl1.StatusBar = Me.RibbonStatusBar1
|
||||||
'
|
'
|
||||||
'BarButtonItem1
|
'BarButtonItem1
|
||||||
@@ -472,39 +500,6 @@ Partial Class frmStructureNodeConfig
|
|||||||
Me.BarButtonItem2.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItem2.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
|
Me.BarButtonItem2.ImageOptions.SvgImage = CType(resources.GetObject("BarButtonItem2.ImageOptions.SvgImage"), DevExpress.Utils.Svg.SvgImage)
|
||||||
Me.BarButtonItem2.Name = "BarButtonItem2"
|
Me.BarButtonItem2.Name = "BarButtonItem2"
|
||||||
'
|
'
|
||||||
'RibbonPage1
|
|
||||||
'
|
|
||||||
Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup2, Me.RibbonPageGroup1})
|
|
||||||
Me.RibbonPage1.Name = "RibbonPage1"
|
|
||||||
Me.RibbonPage1.Text = "Start"
|
|
||||||
'
|
|
||||||
'RibbonPageGroup1
|
|
||||||
'
|
|
||||||
Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonItem1)
|
|
||||||
Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonItem2)
|
|
||||||
Me.RibbonPageGroup1.Name = "RibbonPageGroup1"
|
|
||||||
Me.RibbonPageGroup1.Text = "Knoten-Definition"
|
|
||||||
'
|
|
||||||
'RibbonPageGroup2
|
|
||||||
'
|
|
||||||
Me.RibbonPageGroup2.ItemLinks.Add(Me.BarButtonItem3)
|
|
||||||
Me.RibbonPageGroup2.ItemLinks.Add(Me.BarButtonItem5)
|
|
||||||
Me.RibbonPageGroup2.Name = "RibbonPageGroup2"
|
|
||||||
Me.RibbonPageGroup2.Text = "Ansicht"
|
|
||||||
'
|
|
||||||
'RibbonStatusBar1
|
|
||||||
'
|
|
||||||
Me.RibbonStatusBar1.ItemLinks.Add(Me.bsitmSave)
|
|
||||||
Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 494)
|
|
||||||
Me.RibbonStatusBar1.Name = "RibbonStatusBar1"
|
|
||||||
Me.RibbonStatusBar1.Ribbon = Me.RibbonControl1
|
|
||||||
Me.RibbonStatusBar1.Size = New System.Drawing.Size(972, 22)
|
|
||||||
'
|
|
||||||
'RibbonPage2
|
|
||||||
'
|
|
||||||
Me.RibbonPage2.Name = "RibbonPage2"
|
|
||||||
Me.RibbonPage2.Text = "RibbonPage2"
|
|
||||||
'
|
|
||||||
'BarButtonItem3
|
'BarButtonItem3
|
||||||
'
|
'
|
||||||
Me.BarButtonItem3.Caption = "Ausklappen"
|
Me.BarButtonItem3.Caption = "Ausklappen"
|
||||||
@@ -528,12 +523,45 @@ Partial Class frmStructureNodeConfig
|
|||||||
Me.bsitmSave.Name = "bsitmSave"
|
Me.bsitmSave.Name = "bsitmSave"
|
||||||
Me.bsitmSave.Visibility = DevExpress.XtraBars.BarItemVisibility.OnlyInCustomizing
|
Me.bsitmSave.Visibility = DevExpress.XtraBars.BarItemVisibility.OnlyInCustomizing
|
||||||
'
|
'
|
||||||
|
'RibbonPage1
|
||||||
|
'
|
||||||
|
Me.RibbonPage1.Groups.AddRange(New DevExpress.XtraBars.Ribbon.RibbonPageGroup() {Me.RibbonPageGroup2, Me.RibbonPageGroup1})
|
||||||
|
Me.RibbonPage1.Name = "RibbonPage1"
|
||||||
|
Me.RibbonPage1.Text = "Start"
|
||||||
|
'
|
||||||
|
'RibbonPageGroup2
|
||||||
|
'
|
||||||
|
Me.RibbonPageGroup2.ItemLinks.Add(Me.BarButtonItem3)
|
||||||
|
Me.RibbonPageGroup2.ItemLinks.Add(Me.BarButtonItem5)
|
||||||
|
Me.RibbonPageGroup2.Name = "RibbonPageGroup2"
|
||||||
|
Me.RibbonPageGroup2.Text = "Ansicht"
|
||||||
|
'
|
||||||
|
'RibbonPageGroup1
|
||||||
|
'
|
||||||
|
Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonItem1)
|
||||||
|
Me.RibbonPageGroup1.ItemLinks.Add(Me.BarButtonItem2)
|
||||||
|
Me.RibbonPageGroup1.Name = "RibbonPageGroup1"
|
||||||
|
Me.RibbonPageGroup1.Text = "Knoten-Definition"
|
||||||
|
'
|
||||||
|
'RibbonStatusBar1
|
||||||
|
'
|
||||||
|
Me.RibbonStatusBar1.ItemLinks.Add(Me.bsitmSave)
|
||||||
|
Me.RibbonStatusBar1.Location = New System.Drawing.Point(0, 772)
|
||||||
|
Me.RibbonStatusBar1.Name = "RibbonStatusBar1"
|
||||||
|
Me.RibbonStatusBar1.Ribbon = Me.RibbonControl1
|
||||||
|
Me.RibbonStatusBar1.Size = New System.Drawing.Size(959, 22)
|
||||||
|
'
|
||||||
|
'RibbonPage2
|
||||||
|
'
|
||||||
|
Me.RibbonPage2.Name = "RibbonPage2"
|
||||||
|
Me.RibbonPage2.Text = "RibbonPage2"
|
||||||
|
'
|
||||||
'Label3
|
'Label3
|
||||||
'
|
'
|
||||||
Me.Label3.AutoSize = True
|
Me.Label3.AutoSize = True
|
||||||
Me.Label3.Location = New System.Drawing.Point(12, 161)
|
Me.Label3.Location = New System.Drawing.Point(12, 161)
|
||||||
Me.Label3.Name = "Label3"
|
Me.Label3.Name = "Label3"
|
||||||
Me.Label3.Size = New System.Drawing.Size(889, 26)
|
Me.Label3.Size = New System.Drawing.Size(895, 26)
|
||||||
Me.Label3.TabIndex = 96
|
Me.Label3.TabIndex = 96
|
||||||
Me.Label3.Text = resources.GetString("Label3.Text")
|
Me.Label3.Text = resources.GetString("Label3.Text")
|
||||||
'
|
'
|
||||||
@@ -546,12 +574,229 @@ Partial Class frmStructureNodeConfig
|
|||||||
Me.CheckEdit1.Size = New System.Drawing.Size(112, 18)
|
Me.CheckEdit1.Size = New System.Drawing.Size(112, 18)
|
||||||
Me.CheckEdit1.TabIndex = 97
|
Me.CheckEdit1.TabIndex = 97
|
||||||
'
|
'
|
||||||
|
'GridControl_Right_AddmanNode_User
|
||||||
|
'
|
||||||
|
Me.GridControl_Right_AddmanNode_User.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
|
||||||
|
Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
|
||||||
|
Me.GridControl_Right_AddmanNode_User.ContextMenuStrip = Me.ContextMenuStrip1
|
||||||
|
Me.GridControl_Right_AddmanNode_User.DataSource = Me.TBWH_Users1BindingSource
|
||||||
|
GridLevelNode1.RelationName = "Level1"
|
||||||
|
Me.GridControl_Right_AddmanNode_User.LevelTree.Nodes.AddRange(New DevExpress.XtraGrid.GridLevelNode() {GridLevelNode1})
|
||||||
|
Me.GridControl_Right_AddmanNode_User.Location = New System.Drawing.Point(15, 498)
|
||||||
|
Me.GridControl_Right_AddmanNode_User.MainView = Me.GridViewRight_AddmanNode_User
|
||||||
|
Me.GridControl_Right_AddmanNode_User.Name = "GridControl_Right_AddmanNode_User"
|
||||||
|
Me.GridControl_Right_AddmanNode_User.ShowOnlyPredefinedDetails = True
|
||||||
|
Me.GridControl_Right_AddmanNode_User.Size = New System.Drawing.Size(364, 268)
|
||||||
|
Me.GridControl_Right_AddmanNode_User.TabIndex = 101
|
||||||
|
Me.GridControl_Right_AddmanNode_User.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridViewRight_AddmanNode_User})
|
||||||
|
'
|
||||||
|
'TBWH_Users1BindingSource
|
||||||
|
'
|
||||||
|
Me.TBWH_Users1BindingSource.DataMember = "TBWH_Users1"
|
||||||
|
Me.TBWH_Users1BindingSource.DataSource = Me.DD_ECMAdmin
|
||||||
|
'
|
||||||
|
'GridViewRight_AddmanNode_User
|
||||||
|
'
|
||||||
|
Me.GridViewRight_AddmanNode_User.Appearance.EvenRow.BackColor = System.Drawing.Color.LightBlue
|
||||||
|
Me.GridViewRight_AddmanNode_User.Appearance.EvenRow.Options.UseBackColor = True
|
||||||
|
Me.GridViewRight_AddmanNode_User.Appearance.FocusedRow.BackColor = System.Drawing.Color.Fuchsia
|
||||||
|
Me.GridViewRight_AddmanNode_User.Appearance.FocusedRow.Options.UseBackColor = True
|
||||||
|
Me.GridViewRight_AddmanNode_User.Columns.AddRange(New DevExpress.XtraGrid.Columns.GridColumn() {Me.GridColumn3, Me.colSurname1, Me.GridColumn7, Me.GridColumn8, Me.GridColumn9})
|
||||||
|
Me.GridViewRight_AddmanNode_User.GridControl = Me.GridControl_Right_AddmanNode_User
|
||||||
|
Me.GridViewRight_AddmanNode_User.Name = "GridViewRight_AddmanNode_User"
|
||||||
|
Me.GridViewRight_AddmanNode_User.OptionsBehavior.AllowAddRows = DevExpress.Utils.DefaultBoolean.[False]
|
||||||
|
Me.GridViewRight_AddmanNode_User.OptionsBehavior.AllowDeleteRows = DevExpress.Utils.DefaultBoolean.[False]
|
||||||
|
Me.GridViewRight_AddmanNode_User.OptionsClipboard.CopyColumnHeaders = DevExpress.Utils.DefaultBoolean.[False]
|
||||||
|
Me.GridViewRight_AddmanNode_User.OptionsSelection.EnableAppearanceFocusedCell = False
|
||||||
|
Me.GridViewRight_AddmanNode_User.OptionsView.ColumnAutoWidth = False
|
||||||
|
Me.GridViewRight_AddmanNode_User.OptionsView.EnableAppearanceEvenRow = True
|
||||||
|
Me.GridViewRight_AddmanNode_User.OptionsView.ShowAutoFilterRow = True
|
||||||
|
Me.GridViewRight_AddmanNode_User.OptionsView.ShowGroupPanel = False
|
||||||
|
'
|
||||||
|
'GridColumn3
|
||||||
|
'
|
||||||
|
Me.GridColumn3.Caption = "Selection"
|
||||||
|
Me.GridColumn3.FieldName = "Select"
|
||||||
|
Me.GridColumn3.Name = "GridColumn3"
|
||||||
|
Me.GridColumn3.Visible = True
|
||||||
|
Me.GridColumn3.VisibleIndex = 0
|
||||||
|
Me.GridColumn3.Width = 54
|
||||||
|
'
|
||||||
|
'colSurname1
|
||||||
|
'
|
||||||
|
Me.colSurname1.Caption = "Name"
|
||||||
|
Me.colSurname1.FieldName = "Surname"
|
||||||
|
Me.colSurname1.Name = "colSurname1"
|
||||||
|
Me.colSurname1.Visible = True
|
||||||
|
Me.colSurname1.VisibleIndex = 1
|
||||||
|
'
|
||||||
|
'GridColumn7
|
||||||
|
'
|
||||||
|
Me.GridColumn7.FieldName = "Username"
|
||||||
|
Me.GridColumn7.Name = "GridColumn7"
|
||||||
|
Me.GridColumn7.OptionsColumn.AllowEdit = False
|
||||||
|
Me.GridColumn7.Visible = True
|
||||||
|
Me.GridColumn7.VisibleIndex = 2
|
||||||
|
Me.GridColumn7.Width = 107
|
||||||
|
'
|
||||||
|
'GridColumn8
|
||||||
|
'
|
||||||
|
Me.GridColumn8.FieldName = "Email"
|
||||||
|
Me.GridColumn8.Name = "GridColumn8"
|
||||||
|
Me.GridColumn8.OptionsColumn.AllowEdit = False
|
||||||
|
Me.GridColumn8.Visible = True
|
||||||
|
Me.GridColumn8.VisibleIndex = 3
|
||||||
|
Me.GridColumn8.Width = 102
|
||||||
|
'
|
||||||
|
'GridColumn9
|
||||||
|
'
|
||||||
|
Me.GridColumn9.FieldName = "ID"
|
||||||
|
Me.GridColumn9.Name = "GridColumn9"
|
||||||
|
'
|
||||||
|
'Label5
|
||||||
|
'
|
||||||
|
Me.Label5.AutoSize = True
|
||||||
|
Me.Label5.Font = New System.Drawing.Font("Segoe UI", 8.25!, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point, CType(0, Byte))
|
||||||
|
Me.Label5.Location = New System.Drawing.Point(12, 479)
|
||||||
|
Me.Label5.Name = "Label5"
|
||||||
|
Me.Label5.Size = New System.Drawing.Size(248, 13)
|
||||||
|
Me.Label5.TabIndex = 102
|
||||||
|
Me.Label5.Text = "User mit Rechten zum Hinzufügen von Knoten"
|
||||||
|
'
|
||||||
|
'btndeleteUser
|
||||||
|
'
|
||||||
|
Me.btndeleteUser.Image = CType(resources.GetObject("btndeleteUser.Image"), System.Drawing.Image)
|
||||||
|
Me.btndeleteUser.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
|
||||||
|
Me.btndeleteUser.ImeMode = System.Windows.Forms.ImeMode.NoControl
|
||||||
|
Me.btndeleteUser.Location = New System.Drawing.Point(385, 530)
|
||||||
|
Me.btndeleteUser.Name = "btndeleteUser"
|
||||||
|
Me.btndeleteUser.Size = New System.Drawing.Size(124, 23)
|
||||||
|
Me.btndeleteUser.TabIndex = 104
|
||||||
|
Me.btndeleteUser.Text = "User entfernen"
|
||||||
|
Me.btndeleteUser.TextAlign = System.Drawing.ContentAlignment.MiddleRight
|
||||||
|
Me.btndeleteUser.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'btnAddUser
|
||||||
|
'
|
||||||
|
Me.btnAddUser.Image = Global.DD_Record_Organizer.My.Resources.Resources.arrow_left
|
||||||
|
Me.btnAddUser.ImageAlign = System.Drawing.ContentAlignment.MiddleLeft
|
||||||
|
Me.btnAddUser.ImeMode = System.Windows.Forms.ImeMode.NoControl
|
||||||
|
Me.btnAddUser.Location = New System.Drawing.Point(386, 501)
|
||||||
|
Me.btnAddUser.Name = "btnAddUser"
|
||||||
|
Me.btnAddUser.Size = New System.Drawing.Size(123, 23)
|
||||||
|
Me.btnAddUser.TabIndex = 103
|
||||||
|
Me.btnAddUser.Text = "User hinzufügen"
|
||||||
|
Me.btnAddUser.TextAlign = System.Drawing.ContentAlignment.MiddleRight
|
||||||
|
Me.btnAddUser.UseVisualStyleBackColor = True
|
||||||
|
'
|
||||||
|
'TBAD_UsersBindingSource
|
||||||
|
'
|
||||||
|
Me.TBAD_UsersBindingSource.DataMember = "TBAD_Users"
|
||||||
|
Me.TBAD_UsersBindingSource.DataSource = Me.DD_ECMAdmin
|
||||||
|
'
|
||||||
|
'GridControlFreeUsers
|
||||||
|
'
|
||||||
|
Me.GridControlFreeUsers.Anchor = CType(((System.Windows.Forms.AnchorStyles.Top Or System.Windows.Forms.AnchorStyles.Bottom) _
|
||||||
|
Or System.Windows.Forms.AnchorStyles.Left), System.Windows.Forms.AnchorStyles)
|
||||||
|
Me.GridControlFreeUsers.ContextMenuStrip = Me.ContextMenuStrip1
|
||||||
|
Me.GridControlFreeUsers.DataSource = Me.TBAD_UsersBindingSource
|
||||||
|
Me.GridControlFreeUsers.Location = New System.Drawing.Point(515, 498)
|
||||||
|
Me.GridControlFreeUsers.MainView = Me.GridViewFreeUsers
|
||||||
|
Me.GridControlFreeUsers.Name = "GridControlFreeUsers"
|
||||||
|
Me.GridControlFreeUsers.ShowOnlyPredefinedDetails = True
|
||||||
|
Me.GridControlFreeUsers.Size = New System.Drawing.Size(378, 268)
|
||||||
|
Me.GridControlFreeUsers.TabIndex = 105
|
||||||
|
Me.GridControlFreeUsers.ViewCollection.AddRange(New DevExpress.XtraGrid.Views.Base.BaseView() {Me.GridViewFreeUsers})
|
||||||
|
'
|
||||||
|
'GridViewFreeUsers
|
||||||
|
'
|
||||||
|
Me.GridViewFreeUsers.Appearance.EvenRow.BackColor = System.Drawing.Color.LightBlue
|
||||||
|
Me.GridViewFreeUsers.Appearance.EvenRow.Options.UseBackColor = True
|
||||||
|
Me.GridViewFreeUsers.Appearance.FocusedRow.BackColor = System.Drawing.Color.Fuchsia
|
||||||
|
Me.GridViewFreeUsers.Appearance.FocusedRow.Options.UseBackColor = True
|
||||||
|
Me.GridViewFreeUsers.Columns.AddRange(New DevExpress.XtraGrid.Columns.GridColumn() {Me.colSelect, Me.colSurname, Me.GridColumn1, Me.GridColumn2, Me.colID})
|
||||||
|
Me.GridViewFreeUsers.GridControl = Me.GridControlFreeUsers
|
||||||
|
Me.GridViewFreeUsers.Name = "GridViewFreeUsers"
|
||||||
|
Me.GridViewFreeUsers.OptionsBehavior.AllowAddRows = DevExpress.Utils.DefaultBoolean.[False]
|
||||||
|
Me.GridViewFreeUsers.OptionsBehavior.AllowDeleteRows = DevExpress.Utils.DefaultBoolean.[False]
|
||||||
|
Me.GridViewFreeUsers.OptionsClipboard.CopyColumnHeaders = DevExpress.Utils.DefaultBoolean.[False]
|
||||||
|
Me.GridViewFreeUsers.OptionsSelection.EnableAppearanceFocusedCell = False
|
||||||
|
Me.GridViewFreeUsers.OptionsView.ColumnAutoWidth = False
|
||||||
|
Me.GridViewFreeUsers.OptionsView.EnableAppearanceEvenRow = True
|
||||||
|
Me.GridViewFreeUsers.OptionsView.ShowAutoFilterRow = True
|
||||||
|
Me.GridViewFreeUsers.OptionsView.ShowGroupPanel = False
|
||||||
|
'
|
||||||
|
'colSelect
|
||||||
|
'
|
||||||
|
Me.colSelect.Caption = "Selection"
|
||||||
|
Me.colSelect.FieldName = "Select"
|
||||||
|
Me.colSelect.Name = "colSelect"
|
||||||
|
Me.colSelect.Visible = True
|
||||||
|
Me.colSelect.VisibleIndex = 0
|
||||||
|
Me.colSelect.Width = 54
|
||||||
|
'
|
||||||
|
'colSurname
|
||||||
|
'
|
||||||
|
Me.colSurname.Caption = "Name"
|
||||||
|
Me.colSurname.FieldName = "Surname"
|
||||||
|
Me.colSurname.Name = "colSurname"
|
||||||
|
Me.colSurname.Visible = True
|
||||||
|
Me.colSurname.VisibleIndex = 1
|
||||||
|
Me.colSurname.Width = 89
|
||||||
|
'
|
||||||
|
'GridColumn1
|
||||||
|
'
|
||||||
|
Me.GridColumn1.FieldName = "Username"
|
||||||
|
Me.GridColumn1.Name = "GridColumn1"
|
||||||
|
Me.GridColumn1.OptionsColumn.AllowEdit = False
|
||||||
|
Me.GridColumn1.Visible = True
|
||||||
|
Me.GridColumn1.VisibleIndex = 2
|
||||||
|
Me.GridColumn1.Width = 98
|
||||||
|
'
|
||||||
|
'GridColumn2
|
||||||
|
'
|
||||||
|
Me.GridColumn2.FieldName = "Email"
|
||||||
|
Me.GridColumn2.Name = "GridColumn2"
|
||||||
|
Me.GridColumn2.OptionsColumn.AllowEdit = False
|
||||||
|
Me.GridColumn2.Visible = True
|
||||||
|
Me.GridColumn2.VisibleIndex = 3
|
||||||
|
Me.GridColumn2.Width = 102
|
||||||
|
'
|
||||||
|
'colID
|
||||||
|
'
|
||||||
|
Me.colID.FieldName = "ID"
|
||||||
|
Me.colID.Name = "colID"
|
||||||
|
'
|
||||||
|
'ContextMenuStrip1
|
||||||
|
'
|
||||||
|
Me.ContextMenuStrip1.Items.AddRange(New System.Windows.Forms.ToolStripItem() {Me.AlleUserAuswählenToolStripMenuItem, Me.KeineAuswahlToolStripMenuItem})
|
||||||
|
Me.ContextMenuStrip1.Name = "ContextMenuStrip1"
|
||||||
|
Me.ContextMenuStrip1.Size = New System.Drawing.Size(181, 70)
|
||||||
|
'
|
||||||
|
'AlleUserAuswählenToolStripMenuItem
|
||||||
|
'
|
||||||
|
Me.AlleUserAuswählenToolStripMenuItem.Image = Global.DD_Record_Organizer.My.Resources.Resources.checkbox_16xLG
|
||||||
|
Me.AlleUserAuswählenToolStripMenuItem.Name = "AlleUserAuswählenToolStripMenuItem"
|
||||||
|
Me.AlleUserAuswählenToolStripMenuItem.Size = New System.Drawing.Size(180, 22)
|
||||||
|
Me.AlleUserAuswählenToolStripMenuItem.Text = "Alle User auswählen"
|
||||||
|
'
|
||||||
|
'KeineAuswahlToolStripMenuItem
|
||||||
|
'
|
||||||
|
Me.KeineAuswahlToolStripMenuItem.Name = "KeineAuswahlToolStripMenuItem"
|
||||||
|
Me.KeineAuswahlToolStripMenuItem.Size = New System.Drawing.Size(180, 22)
|
||||||
|
Me.KeineAuswahlToolStripMenuItem.Text = "Keine Auswahl"
|
||||||
|
'
|
||||||
'frmStructureNodeConfig
|
'frmStructureNodeConfig
|
||||||
'
|
'
|
||||||
Me.Appearance.Options.UseFont = True
|
Me.Appearance.Options.UseFont = True
|
||||||
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
Me.AutoScaleDimensions = New System.Drawing.SizeF(6.0!, 13.0!)
|
||||||
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
Me.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font
|
||||||
Me.ClientSize = New System.Drawing.Size(972, 516)
|
Me.ClientSize = New System.Drawing.Size(959, 794)
|
||||||
|
Me.Controls.Add(Me.GridControlFreeUsers)
|
||||||
|
Me.Controls.Add(Me.btndeleteUser)
|
||||||
|
Me.Controls.Add(Me.btnAddUser)
|
||||||
|
Me.Controls.Add(Me.Label5)
|
||||||
|
Me.Controls.Add(Me.GridControl_Right_AddmanNode_User)
|
||||||
Me.Controls.Add(Me.CheckEdit1)
|
Me.Controls.Add(Me.CheckEdit1)
|
||||||
Me.Controls.Add(Me.Label3)
|
Me.Controls.Add(Me.Label3)
|
||||||
Me.Controls.Add(Me.Label2)
|
Me.Controls.Add(Me.Label2)
|
||||||
@@ -596,6 +841,13 @@ Partial Class frmStructureNodeConfig
|
|||||||
CType(Me.DD_ECMAdmin, System.ComponentModel.ISupportInitialize).EndInit()
|
CType(Me.DD_ECMAdmin, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).EndInit()
|
CType(Me.RibbonControl1, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
CType(Me.CheckEdit1.Properties, System.ComponentModel.ISupportInitialize).EndInit()
|
CType(Me.CheckEdit1.Properties, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
|
CType(Me.GridControl_Right_AddmanNode_User, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
|
CType(Me.TBWH_Users1BindingSource, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
|
CType(Me.GridViewRight_AddmanNode_User, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
|
CType(Me.TBAD_UsersBindingSource, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
|
CType(Me.GridControlFreeUsers, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
|
CType(Me.GridViewFreeUsers, System.ComponentModel.ISupportInitialize).EndInit()
|
||||||
|
Me.ContextMenuStrip1.ResumeLayout(False)
|
||||||
Me.ResumeLayout(False)
|
Me.ResumeLayout(False)
|
||||||
Me.PerformLayout()
|
Me.PerformLayout()
|
||||||
|
|
||||||
@@ -640,4 +892,26 @@ Partial Class frmStructureNodeConfig
|
|||||||
Friend WithEvents bsitmSave As DevExpress.XtraBars.BarStaticItem
|
Friend WithEvents bsitmSave As DevExpress.XtraBars.BarStaticItem
|
||||||
Friend WithEvents Label3 As Label
|
Friend WithEvents Label3 As Label
|
||||||
Friend WithEvents CheckEdit1 As DevExpress.XtraEditors.CheckEdit
|
Friend WithEvents CheckEdit1 As DevExpress.XtraEditors.CheckEdit
|
||||||
|
Friend WithEvents GridControl_Right_AddmanNode_User As DevExpress.XtraGrid.GridControl
|
||||||
|
Friend WithEvents GridViewRight_AddmanNode_User As DevExpress.XtraGrid.Views.Grid.GridView
|
||||||
|
Friend WithEvents GridColumn3 As DevExpress.XtraGrid.Columns.GridColumn
|
||||||
|
Friend WithEvents colSurname1 As DevExpress.XtraGrid.Columns.GridColumn
|
||||||
|
Friend WithEvents GridColumn7 As DevExpress.XtraGrid.Columns.GridColumn
|
||||||
|
Friend WithEvents GridColumn8 As DevExpress.XtraGrid.Columns.GridColumn
|
||||||
|
Friend WithEvents GridColumn9 As DevExpress.XtraGrid.Columns.GridColumn
|
||||||
|
Friend WithEvents Label5 As Label
|
||||||
|
Friend WithEvents btndeleteUser As Button
|
||||||
|
Friend WithEvents btnAddUser As Button
|
||||||
|
Friend WithEvents TBAD_UsersBindingSource As BindingSource
|
||||||
|
Friend WithEvents TBWH_Users1BindingSource As BindingSource
|
||||||
|
Friend WithEvents GridControlFreeUsers As DevExpress.XtraGrid.GridControl
|
||||||
|
Friend WithEvents GridViewFreeUsers As DevExpress.XtraGrid.Views.Grid.GridView
|
||||||
|
Friend WithEvents colSelect As DevExpress.XtraGrid.Columns.GridColumn
|
||||||
|
Friend WithEvents colSurname As DevExpress.XtraGrid.Columns.GridColumn
|
||||||
|
Friend WithEvents GridColumn1 As DevExpress.XtraGrid.Columns.GridColumn
|
||||||
|
Friend WithEvents GridColumn2 As DevExpress.XtraGrid.Columns.GridColumn
|
||||||
|
Friend WithEvents colID As DevExpress.XtraGrid.Columns.GridColumn
|
||||||
|
Friend WithEvents ContextMenuStrip1 As ContextMenuStrip
|
||||||
|
Friend WithEvents AlleUserAuswählenToolStripMenuItem As ToolStripMenuItem
|
||||||
|
Friend WithEvents KeineAuswahlToolStripMenuItem As ToolStripMenuItem
|
||||||
End Class
|
End Class
|
||||||
|
|||||||
@@ -150,14 +150,11 @@
|
|||||||
<metadata name="DD_DMSDataSet.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="DD_DMSDataSet.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>17, 17</value>
|
<value>17, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<metadata name="DD_DMSDataSet.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
|
||||||
<value>17, 17</value>
|
|
||||||
</metadata>
|
|
||||||
<metadata name="OpenFileDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="OpenFileDialog1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>422, 56</value>
|
<value>1101, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<metadata name="TBWH_ENTITYBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="TBWH_ENTITYBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>564, 56</value>
|
<value>1242, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<metadata name="TBPMO_STRUCTURE_NODES_CONFIGURATIONTableAdapter.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="TBPMO_STRUCTURE_NODES_CONFIGURATIONTableAdapter.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>548, 17</value>
|
<value>548, 17</value>
|
||||||
@@ -166,22 +163,19 @@
|
|||||||
<value>930, 17</value>
|
<value>930, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<metadata name="TBWH_ENTITYTableAdapter.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="TBWH_ENTITYTableAdapter.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>772, 56</value>
|
<value>1451, 17</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<metadata name="TBPMO_FORM_CONSTRUCTORBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="TBPMO_FORM_CONSTRUCTORBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>17, 95</value>
|
<value>17, 54</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<metadata name="DD_ECMAdmin.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="DD_ECMAdmin.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>974, 56</value>
|
<value>1653, 17</value>
|
||||||
</metadata>
|
|
||||||
<metadata name="DD_ECMAdmin.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
|
||||||
<value>974, 56</value>
|
|
||||||
</metadata>
|
</metadata>
|
||||||
<metadata name="TBPMO_FORM_CONSTRUCTORTableAdapter.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="TBPMO_FORM_CONSTRUCTORTableAdapter.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>318, 95</value>
|
<value>316, 54</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<metadata name="TableAdapterManager1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
<metadata name="TableAdapterManager1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>614, 95</value>
|
<value>607, 54</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<assembly alias="DevExpress.Data.v21.2" name="DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
<assembly alias="DevExpress.Data.v21.2" name="DevExpress.Data.v21.2, Version=21.2.4.0, Culture=neutral, PublicKeyToken=b88d1754d700e49a" />
|
||||||
<data name="BarButtonItem1.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="BarButtonItem1.ImageOptions.SvgImage" type="DevExpress.Utils.Svg.SvgImage, DevExpress.Data.v21.2" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
@@ -265,10 +259,36 @@
|
|||||||
<value>Ein hier definierter Knoten dient "lediglich" zur Layoutstruktur und stellt noch keinen Knoten in der Sichtnavigation dar.
|
<value>Ein hier definierter Knoten dient "lediglich" zur Layoutstruktur und stellt noch keinen Knoten in der Sichtnavigation dar.
|
||||||
Knoten entstehen entweder durch eine hinterlegte Businesslogik oder durch manuelle Anlage durch den benutzer, wenn der Knoten ein manueller Knoten (Level = 1000) ist.</value>
|
Knoten entstehen entweder durch eine hinterlegte Businesslogik oder durch manuelle Anlage durch den benutzer, wenn der Knoten ein manueller Knoten (Level = 1000) ist.</value>
|
||||||
</data>
|
</data>
|
||||||
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
<metadata name="ContextMenuStrip1.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
<value>192</value>
|
<value>1182, 54</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="TBWH_Users1BindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>978, 54</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
|
<data name="btndeleteUser.Image" type="System.Drawing.Bitmap, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
|
<value>
|
||||||
|
iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAABGdBTUEAAK/INwWK6QAAABl0RVh0U29m
|
||||||
|
dHdhcmUAQWRvYmUgSW1hZ2VSZWFkeXHJZTwAAAJnSURBVDhPpZPtT1JRHMf9W/RFMzfXelpzzVZbzQQU
|
||||||
|
uUQg4NMlkys2WjNNx2Wm2VaMhjRfNLGUHrXyTaY5c6WWLbFHpuW1QolbuCL0XhBI923QglTqRZ3tc7Zz
|
||||||
|
dr6fs/M756QASPkf1k3MVVWlzVKVhndUBTOjIblpTSn3llQzk6TS4CyTp61dv2rg1lURHyiK/Wo1IzQy
|
||||||
|
hPBrB8Ljo+DvdGFOX46XRQT7TC0mkgqiYZeW4hdvdWFl5g0iA7cRsVsQsZ3F9xttWB4bgLdeD4dSyD+V
|
||||||
|
58QlsW5Wp0t1aSkPd82OFcaJyIXT8FuMWDDXIXTeiHALjZDpOEJ3r8N9hMTYwb2eR7LdqXGBS0vR840G
|
||||||
|
LDsnYjsuWWn4zlQj2KRbBXeCRKjnMl7kZ2NYmk3HBe+pw0yg5woi3Tb4TTX4UixNymINCd7cAK+xFg+I
|
||||||
|
LCYuYLSaYPheDyJWI/yn9PhT8ypE8FFFWLC1Yih/ezAumCaLg0vdHQg16xE8WbE2F29RwXy5CgttrRgU
|
||||||
|
b04IpspUjM/UgCULDe6YOrYwKcp8+BvrMVdfjQFBZuIIzhI5zcgECHZ3wq+RwVcuWRdm5UKwhRIE7Bcx
|
||||||
|
Kt6K/tyNiSK+KpamPi8lPO7KUgRudsQKNq8S/wwq8sDKhGBlYvCd7ZgskUbDnl5BeuIao0wUiohxxX7e
|
||||||
|
dUiFwNUOfGum4SWV+KRWwNdkAH+pHVPqAvTlZvC9gvTVD+kXT+T7iMcH9rAOyU58rquGr+VcjI+1R/FQ
|
||||||
|
tCUaZn8PrxNEGZHuShsWZxmGiB3M/YJt3KBgE9efl8n0CTMMvTkb/v6Z/oUfHdLOuUgtmkUAAAAASUVO
|
||||||
|
RK5CYII=
|
||||||
|
</value>
|
||||||
|
</data>
|
||||||
|
<metadata name="TBAD_UsersBindingSource.TrayLocation" type="System.Drawing.Point, System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a">
|
||||||
|
<value>784, 54</value>
|
||||||
|
</metadata>
|
||||||
|
<metadata name="$this.TrayHeight" type="System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089">
|
||||||
|
<value>140</value>
|
||||||
|
</metadata>
|
||||||
<data name="frmStructureNodeConfig.IconOptions.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
<data name="frmStructureNodeConfig.IconOptions.Icon" type="System.Drawing.Icon, System.Drawing" mimetype="application/x-microsoft.net.object.bytearray.base64">
|
||||||
<value>
|
<value>
|
||||||
AAABAAgAEBAAAAEACABoBQAAhgAAABAQAAABACAAaAQAAO4FAAAYGAAAAQAIAMgGAABWCgAAGBgAAAEA
|
AAABAAgAEBAAAAEACABoBQAAhgAAABAQAAABACAAaAQAAO4FAAAYGAAAAQAIAMgGAABWCgAAGBgAAAEA
|
||||||
|
|||||||
@@ -424,6 +424,21 @@
|
|||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
Me.bsitmSave.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
|
Me.bsitmSave.Visibility = DevExpress.XtraBars.BarItemVisibility.Never
|
||||||
|
If TYPE_NODENumericUpDown.Value = 1000 Then
|
||||||
|
GridControl_Right_AddmanNode_User.Enabled = True
|
||||||
|
GridControlFreeUsers.Enabled = True
|
||||||
|
btnAddUser.Enabled = True
|
||||||
|
btndeleteUser.Enabled = True
|
||||||
|
|
||||||
|
Load_Users_Right_Man_Add()
|
||||||
|
Else
|
||||||
|
GridControl_Right_AddmanNode_User.Enabled = False
|
||||||
|
GridControlFreeUsers.Enabled = False
|
||||||
|
btnAddUser.Enabled = False
|
||||||
|
btndeleteUser.Enabled = False
|
||||||
|
DD_ECMAdmin.TBAD_Users.Clear()
|
||||||
|
DD_ECMAdmin.TBWH_Users1.Clear()
|
||||||
|
End If
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
MsgBox("Error in TreeView.AfterSelect:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
MsgBox("Error in TreeView.AfterSelect:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
||||||
End Try
|
End Try
|
||||||
@@ -435,7 +450,8 @@
|
|||||||
|
|
||||||
Private Sub LoadData()
|
Private Sub LoadData()
|
||||||
If cmbEntity.SelectedIndex <> -1 Then
|
If cmbEntity.SelectedIndex <> -1 Then
|
||||||
Load_Nodes_entity
|
Load_nodes_Entity()
|
||||||
|
|
||||||
If DD_DMSDataSet.TBPMO_STRUCTURE_NODES_CONFIGURATION.Rows.Count > 0 Then
|
If DD_DMSDataSet.TBPMO_STRUCTURE_NODES_CONFIGURATION.Rows.Count > 0 Then
|
||||||
Load_TreeView()
|
Load_TreeView()
|
||||||
Else
|
Else
|
||||||
@@ -505,8 +521,166 @@
|
|||||||
Private Sub TYPE_NODENumericUpDown_ValueChanged(sender As Object, e As EventArgs) Handles TYPE_NODENumericUpDown.ValueChanged
|
Private Sub TYPE_NODENumericUpDown_ValueChanged(sender As Object, e As EventArgs) Handles TYPE_NODENumericUpDown.ValueChanged
|
||||||
If TYPE_NODENumericUpDown.Value = 1000 Then
|
If TYPE_NODENumericUpDown.Value = 1000 Then
|
||||||
CheckEdit1.Checked = True
|
CheckEdit1.Checked = True
|
||||||
|
|
||||||
Else
|
Else
|
||||||
CheckEdit1.Checked = False
|
CheckEdit1.Checked = False
|
||||||
|
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub Load_Users_Right_Man_Add()
|
||||||
|
If GUIDTextBox.Text = "" Then
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
|
Dim oSql = String.Format("SELECT T.* FROM TBDD_USER T WITH (NOLOCK) INNER JOIN TBDD_USER_MODULES T1 WITH (NOLOCK) ON T.GUID = T1.USER_ID
|
||||||
|
INNER JOIN TBDD_MODULES T2 WITH (NOLOCK) ON T1.MODULE_ID = T2.GUID
|
||||||
|
WHERE T2.SHORT_NAME = 'ADDI' AND T.GUID IN (SELECT FK_TBDDUSER_ID FROM TBOF_MAP_RIGHT_NODE_ADD_USER WHERE FK_TBPMO_SN_CONFIG_ID = {0} )
|
||||||
|
ORDER BY T.USERNAME", GUIDTextBox.Text)
|
||||||
|
Dim DT_USERS_CONFIGURED As DataTable = MYDB_ECM.GetDatatable(oSql)
|
||||||
|
|
||||||
|
oSql = String.Format("SELECT * FROM TBDD_USER WITH (NOLOCK) WHERE GUID NOT IN (SELECT FK_TBDDUSER_ID FROM TBOF_MAP_RIGHT_NODE_ADD_USER WITH (NOLOCK) WHERE FK_TBPMO_SN_CONFIG_ID = {0} )
|
||||||
|
ORDER BY USERNAME", GUIDTextBox.Text)
|
||||||
|
Dim DT_FREE_USER As DataTable = MYDB_ECM.GetDatatable(oSql)
|
||||||
|
Try
|
||||||
|
DD_ECMAdmin.TBAD_Users.Clear()
|
||||||
|
|
||||||
|
For Each row As DataRow In DT_FREE_USER.Rows
|
||||||
|
Dim newUserRow As DD_ECMAdmin.TBAD_UsersRow
|
||||||
|
newUserRow = DD_ECMAdmin.TBAD_Users.NewTBAD_UsersRow
|
||||||
|
newUserRow.Username = row.Item("USERNAME")
|
||||||
|
newUserRow.Surname = If(IsDBNull(row("NAME")), "", row("NAME").ToString())
|
||||||
|
newUserRow.Prename = If(IsDBNull(row("PRENAME")), "", row("PRENAME").ToString())
|
||||||
|
Try
|
||||||
|
newUserRow.Email = row.Item("EMAIL")
|
||||||
|
Catch ex As Exception
|
||||||
|
newUserRow.Email = ""
|
||||||
|
End Try
|
||||||
|
|
||||||
|
newUserRow.ID = row.Item("GUID")
|
||||||
|
DD_ECMAdmin.TBAD_Users.Rows.Add(newUserRow)
|
||||||
|
Next
|
||||||
|
|
||||||
|
Try
|
||||||
|
DD_ECMAdmin.TBWH_Users1.Clear()
|
||||||
|
|
||||||
|
For Each row As DataRow In DT_USERS_CONFIGURED.Rows
|
||||||
|
Dim newUserRow As DD_ECMAdmin.TBWH_Users1Row
|
||||||
|
newUserRow = DD_ECMAdmin.TBWH_Users1.NewTBWH_Users1Row
|
||||||
|
newUserRow.Surname = If(IsDBNull(row("NAME")), "", row("NAME").ToString())
|
||||||
|
newUserRow.Prename = If(IsDBNull(row("PRENAME")), "", row("PRENAME").ToString())
|
||||||
|
newUserRow.Username = row.Item("USERNAME")
|
||||||
|
Try
|
||||||
|
newUserRow.Email = row.Item("EMAIL")
|
||||||
|
Catch ex As Exception
|
||||||
|
newUserRow.Email = ""
|
||||||
|
End Try
|
||||||
|
|
||||||
|
newUserRow.ID = row.Item("GUID")
|
||||||
|
DD_ECMAdmin.TBWH_Users1.Rows.Add(newUserRow)
|
||||||
|
Next
|
||||||
|
Catch ex As Exception
|
||||||
|
MsgBox("Error loading Users for Global Search:" & vbNewLine & ex.Message)
|
||||||
|
End Try
|
||||||
|
|
||||||
|
Catch ex As Exception
|
||||||
|
MsgBox("Error in Load_Users_GS:" & vbNewLine & ex.Message)
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub btnAddUser2ConstructorREL_Click(sender As Object, e As EventArgs) Handles btnAddUser.Click
|
||||||
|
If GUIDTextBox.Text = "" Then
|
||||||
|
MsgBox("Please choose a node by clicking in the treeview!", MsgBoxStyle.Exclamation)
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
|
Try
|
||||||
|
' Zuerst alle ausgewählten User-IDs sammeln
|
||||||
|
Dim selectedUserIDs As New List(Of Object)
|
||||||
|
For Each row As DataRow In DD_ECMAdmin.TBAD_Users.Rows
|
||||||
|
If row.Item(0) = CBool(True) Then
|
||||||
|
selectedUserIDs.Add(row.Item(5))
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
|
||||||
|
|
||||||
|
' Dann die INSERTs ausführen
|
||||||
|
For Each userID In selectedUserIDs
|
||||||
|
Dim insert As String = String.Format(
|
||||||
|
"INSERT INTO TBOF_MAP_RIGHT_NODE_ADD_USER (FK_TBPMO_SN_CONFIG_ID, FK_TBDDUSER_ID, ADDED_WHO) VALUES ({0}, {1}, '{2}')",
|
||||||
|
GUIDTextBox.Text, userID, USER_USERNAME)
|
||||||
|
If MYDB_ECM.ExecuteNonQuery(insert) = False Then
|
||||||
|
MsgBox("Could not insert the User-Definition....Check the logfile!", MsgBoxStyle.Exclamation)
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
|
||||||
|
For Each row As DataRow In DD_ECMAdmin.TBAD_Users.Rows
|
||||||
|
row.Item(0) = CBool(False)
|
||||||
|
Next
|
||||||
|
Load_Users_Right_Man_Add()
|
||||||
|
Catch ex As Exception
|
||||||
|
MsgBox("Error while adding user: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub btndeleteUserConstructorRel_Click(sender As Object, e As EventArgs) Handles btndeleteUser.Click
|
||||||
|
If GUIDTextBox.Text = "" Then
|
||||||
|
MsgBox("Please choose a node by clicking in the treeview!", MsgBoxStyle.Exclamation)
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
|
Try
|
||||||
|
Dim refresh As Boolean = False
|
||||||
|
For Each row As DataRow In DD_ECMAdmin.TBWH_Users1.Rows
|
||||||
|
If row.Item(0) = CBool(True) Then
|
||||||
|
Dim oUserID = row.Item(5)
|
||||||
|
Dim delete = String.Format("DELETE FROM [TBOF_MAP_RIGHT_NODE_ADD_USER] WHERE [FK_TBDDUSER_ID] = {0} And [FK_TBPMO_SN_CONFIG_ID] = {1}", oUserID, GUIDTextBox.Text)
|
||||||
|
If MYDB_ECM.ExecuteNonQuery(delete) Then
|
||||||
|
refresh = True
|
||||||
|
End If
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
If refresh = True Then Load_Users_Right_Man_Add()
|
||||||
|
Catch ex As Exception
|
||||||
|
MsgBox("Error while deleting user: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
||||||
|
End Try
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub AlleUserAuswählenToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles AlleUserAuswählenToolStripMenuItem.Click
|
||||||
|
' Dynamisch ermitteln, welches GridControl das Menü geöffnet hat
|
||||||
|
Dim sourceControl = TryCast(ContextMenuStrip1.SourceControl, DevExpress.XtraGrid.GridControl)
|
||||||
|
If sourceControl Is Nothing Then Exit Sub
|
||||||
|
|
||||||
|
If sourceControl Is GridControlFreeUsers Then
|
||||||
|
' Select-Spalte (Index 0) in TBAD_Users setzen
|
||||||
|
For Each row As DataRow In DD_ECMAdmin.TBAD_Users.Rows
|
||||||
|
row.Item(0) = CBool(True)
|
||||||
|
Next
|
||||||
|
GridViewFreeUsers.SelectAll()
|
||||||
|
|
||||||
|
ElseIf sourceControl Is GridControl_Right_AddmanNode_User Then
|
||||||
|
' Select-Spalte (Index 0) in TBWH_Users1 setzen
|
||||||
|
For Each row As DataRow In DD_ECMAdmin.TBWH_Users1.Rows
|
||||||
|
row.Item(0) = CBool(True)
|
||||||
|
Next
|
||||||
|
GridViewRight_AddmanNode_User.SelectAll()
|
||||||
|
End If
|
||||||
|
End Sub
|
||||||
|
|
||||||
|
Private Sub KeineAuswahlToolStripMenuItem_Click(sender As Object, e As EventArgs) Handles KeineAuswahlToolStripMenuItem.Click
|
||||||
|
' Dynamisch ermitteln, welches GridControl das Menü geöffnet hat
|
||||||
|
Dim sourceControl = TryCast(ContextMenuStrip1.SourceControl, DevExpress.XtraGrid.GridControl)
|
||||||
|
If sourceControl Is Nothing Then Exit Sub
|
||||||
|
|
||||||
|
If sourceControl Is GridControlFreeUsers Then
|
||||||
|
' Select-Spalte (Index 0) in TBAD_Users setzen
|
||||||
|
For Each row As DataRow In DD_ECMAdmin.TBAD_Users.Rows
|
||||||
|
row.Item(0) = CBool(False)
|
||||||
|
Next
|
||||||
|
GridViewFreeUsers.ClearSelection()
|
||||||
|
ElseIf sourceControl Is GridControl_Right_AddmanNode_User Then
|
||||||
|
' Select-Spalte (Index 0) in TBWH_Users1 setzen
|
||||||
|
For Each row As DataRow In DD_ECMAdmin.TBWH_Users1.Rows
|
||||||
|
row.Item(0) = CBool(False)
|
||||||
|
Next
|
||||||
|
GridViewRight_AddmanNode_User.ClearSelection()
|
||||||
End If
|
End If
|
||||||
End Sub
|
End Sub
|
||||||
End Class
|
End Class
|
||||||
@@ -126,10 +126,10 @@
|
|||||||
</data>
|
</data>
|
||||||
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
<assembly alias="System.Drawing" name="System.Drawing, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" />
|
||||||
<data name="OBJECT_TYPELabel.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="OBJECT_TYPELabel.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>6, 25</value>
|
<value>7, 33</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="OBJECT_TYPELabel.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="OBJECT_TYPELabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>62, 15</value>
|
<value>74, 20</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="OBJECT_TYPELabel.TabIndex" type="System.Int32, mscorlib">
|
<data name="OBJECT_TYPELabel.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>5</value>
|
<value>5</value>
|
||||||
@@ -160,10 +160,10 @@
|
|||||||
<value>True</value>
|
<value>True</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FW_DOCTYPE_IDLabel.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="FW_DOCTYPE_IDLabel.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>428, 25</value>
|
<value>489, 33</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FW_DOCTYPE_IDLabel.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="FW_DOCTYPE_IDLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>70, 15</value>
|
<value>86, 20</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="FW_DOCTYPE_IDLabel.TabIndex" type="System.Int32, mscorlib">
|
<data name="FW_DOCTYPE_IDLabel.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>6</value>
|
<value>6</value>
|
||||||
@@ -190,10 +190,10 @@
|
|||||||
<value>True</value>
|
<value>True</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PATHLabel.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="PATHLabel.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>6, 54</value>
|
<value>7, 72</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PATHLabel.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="PATHLabel.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>73, 15</value>
|
<value>84, 20</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PATHLabel.TabIndex" type="System.Int32, mscorlib">
|
<data name="PATHLabel.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>8</value>
|
<value>8</value>
|
||||||
@@ -217,10 +217,10 @@
|
|||||||
<value>True</value>
|
<value>True</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Label1.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="Label1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>12, 9</value>
|
<value>14, 12</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Label1.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="Label1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>61, 15</value>
|
<value>79, 20</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Label1.TabIndex" type="System.Int32, mscorlib">
|
<data name="Label1.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>0</value>
|
<value>0</value>
|
||||||
@@ -244,10 +244,13 @@
|
|||||||
<value>Top, Left, Right</value>
|
<value>Top, Left, Right</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtFilepath.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="txtFilepath.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>15, 27</value>
|
<value>17, 36</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtFilepath.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||||
|
<value>3, 4, 3, 4</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtFilepath.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="txtFilepath.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>574, 23</value>
|
<value>655, 27</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtFilepath.TabIndex" type="System.Int32, mscorlib">
|
<data name="txtFilepath.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>1</value>
|
<value>1</value>
|
||||||
@@ -271,10 +274,10 @@
|
|||||||
<value>Segoe UI Semibold, 9.75pt, style=Bold</value>
|
<value>Segoe UI Semibold, 9.75pt, style=Bold</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Label2.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="Label2.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>12, 58</value>
|
<value>14, 77</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Label2.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="Label2.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>188, 17</value>
|
<value>238, 23</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="Label2.TabIndex" type="System.Int32, mscorlib">
|
<data name="Label2.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>2</value>
|
<value>2</value>
|
||||||
@@ -298,10 +301,13 @@
|
|||||||
<value>Segoe UI Semibold, 9.75pt, style=Bold</value>
|
<value>Segoe UI Semibold, 9.75pt, style=Bold</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="cmbDokumentart.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="cmbDokumentart.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>15, 78</value>
|
<value>17, 104</value>
|
||||||
|
</data>
|
||||||
|
<data name="cmbDokumentart.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||||
|
<value>3, 4, 3, 4</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="cmbDokumentart.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="cmbDokumentart.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>203, 25</value>
|
<value>231, 29</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="cmbDokumentart.TabIndex" type="System.Int32, mscorlib">
|
<data name="cmbDokumentart.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>3</value>
|
<value>3</value>
|
||||||
@@ -340,10 +346,13 @@
|
|||||||
<value>MiddleLeft</value>
|
<value>MiddleLeft</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="btnindex.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="btnindex.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>431, 444</value>
|
<value>493, 592</value>
|
||||||
|
</data>
|
||||||
|
<data name="btnindex.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||||
|
<value>3, 4, 3, 4</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="btnindex.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="btnindex.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>158, 28</value>
|
<value>181, 37</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="btnindex.TabIndex" type="System.Int32, mscorlib">
|
<data name="btnindex.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>4</value>
|
<value>4</value>
|
||||||
@@ -370,10 +379,13 @@
|
|||||||
<value>Top, Left, Right</value>
|
<value>Top, Left, Right</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="OBJECT_TYPETextBox.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="OBJECT_TYPETextBox.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>85, 22</value>
|
<value>97, 29</value>
|
||||||
|
</data>
|
||||||
|
<data name="OBJECT_TYPETextBox.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||||
|
<value>3, 4, 3, 4</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="OBJECT_TYPETextBox.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="OBJECT_TYPETextBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>281, 23</value>
|
<value>321, 27</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="OBJECT_TYPETextBox.TabIndex" type="System.Int32, mscorlib">
|
<data name="OBJECT_TYPETextBox.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>6</value>
|
<value>6</value>
|
||||||
@@ -394,10 +406,13 @@
|
|||||||
<value>Top, Left, Right</value>
|
<value>Top, Left, Right</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PATHTextBox.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="PATHTextBox.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>85, 51</value>
|
<value>97, 68</value>
|
||||||
|
</data>
|
||||||
|
<data name="PATHTextBox.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||||
|
<value>3, 4, 3, 4</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PATHTextBox.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="PATHTextBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>469, 23</value>
|
<value>535, 27</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="PATHTextBox.TabIndex" type="System.Int32, mscorlib">
|
<data name="PATHTextBox.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>9</value>
|
<value>9</value>
|
||||||
@@ -418,10 +433,13 @@
|
|||||||
<value>Top, Right</value>
|
<value>Top, Right</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="DOCTYPE_IDTextBox.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="DOCTYPE_IDTextBox.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>504, 22</value>
|
<value>576, 29</value>
|
||||||
|
</data>
|
||||||
|
<data name="DOCTYPE_IDTextBox.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||||
|
<value>3, 4, 3, 4</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="DOCTYPE_IDTextBox.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="DOCTYPE_IDTextBox.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>50, 23</value>
|
<value>57, 27</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="DOCTYPE_IDTextBox.TabIndex" type="System.Int32, mscorlib">
|
<data name="DOCTYPE_IDTextBox.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>7</value>
|
<value>7</value>
|
||||||
@@ -442,10 +460,16 @@
|
|||||||
<value>Segoe UI, 9pt, style=Italic</value>
|
<value>Segoe UI, 9pt, style=Italic</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GroupBox1.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="GroupBox1.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>15, 117</value>
|
<value>17, 156</value>
|
||||||
|
</data>
|
||||||
|
<data name="GroupBox1.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||||
|
<value>3, 4, 3, 4</value>
|
||||||
|
</data>
|
||||||
|
<data name="GroupBox1.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||||
|
<value>3, 4, 3, 4</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GroupBox1.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="GroupBox1.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>560, 80</value>
|
<value>640, 107</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="GroupBox1.TabIndex" type="System.Int32, mscorlib">
|
<data name="GroupBox1.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>7</value>
|
<value>7</value>
|
||||||
@@ -475,10 +499,13 @@
|
|||||||
<value>Verdana, 9.75pt, style=Italic</value>
|
<value>Verdana, 9.75pt, style=Italic</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="chkdelete_origin.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="chkdelete_origin.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>24, 450</value>
|
<value>27, 603</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkdelete_origin.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||||
|
<value>3, 4, 3, 4</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="chkdelete_origin.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="chkdelete_origin.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>177, 20</value>
|
<value>226, 24</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="chkdelete_origin.TabIndex" type="System.Int32, mscorlib">
|
<data name="chkdelete_origin.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>8</value>
|
<value>8</value>
|
||||||
@@ -511,10 +538,13 @@
|
|||||||
<value>Verdana, 9.75pt, style=Bold, Italic</value>
|
<value>Verdana, 9.75pt, style=Bold, Italic</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="chkMultiIndexer.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="chkMultiIndexer.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>24, 476</value>
|
<value>27, 638</value>
|
||||||
|
</data>
|
||||||
|
<data name="chkMultiIndexer.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||||
|
<value>3, 4, 3, 4</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="chkMultiIndexer.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="chkMultiIndexer.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>519, 20</value>
|
<value>688, 24</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="chkMultiIndexer.TabIndex" type="System.Int32, mscorlib">
|
<data name="chkMultiIndexer.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>9</value>
|
<value>9</value>
|
||||||
@@ -547,10 +577,16 @@
|
|||||||
<value>Top, Bottom, Left, Right</value>
|
<value>Top, Bottom, Left, Right</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="grbxControls.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="grbxControls.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>15, 203</value>
|
<value>17, 271</value>
|
||||||
|
</data>
|
||||||
|
<data name="grbxControls.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||||
|
<value>3, 4, 3, 4</value>
|
||||||
|
</data>
|
||||||
|
<data name="grbxControls.Padding" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||||
|
<value>3, 4, 3, 4</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="grbxControls.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="grbxControls.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>574, 191</value>
|
<value>656, 255</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="grbxControls.TabIndex" type="System.Int32, mscorlib">
|
<data name="grbxControls.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>10</value>
|
<value>10</value>
|
||||||
@@ -583,10 +619,10 @@
|
|||||||
<value>Segoe UI Semibold, 9pt, style=Bold, Italic</value>
|
<value>Segoe UI Semibold, 9pt, style=Bold, Italic</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="lblSubfolder.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="lblSubfolder.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>21, 397</value>
|
<value>24, 529</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="lblSubfolder.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="lblSubfolder.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>134, 15</value>
|
<value>172, 20</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="lblSubfolder.TabIndex" type="System.Int32, mscorlib">
|
<data name="lblSubfolder.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>11</value>
|
<value>11</value>
|
||||||
@@ -616,10 +652,13 @@
|
|||||||
<value>Segoe UI Semibold, 9pt, style=Bold, Italic</value>
|
<value>Segoe UI Semibold, 9pt, style=Bold, Italic</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtSubfolder.Location" type="System.Drawing.Point, System.Drawing">
|
<data name="txtSubfolder.Location" type="System.Drawing.Point, System.Drawing">
|
||||||
<value>24, 415</value>
|
<value>27, 553</value>
|
||||||
|
</data>
|
||||||
|
<data name="txtSubfolder.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||||
|
<value>3, 4, 3, 4</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtSubfolder.Size" type="System.Drawing.Size, System.Drawing">
|
<data name="txtSubfolder.Size" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>551, 24</value>
|
<value>629, 28</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="txtSubfolder.TabIndex" type="System.Int32, mscorlib">
|
<data name="txtSubfolder.TabIndex" type="System.Int32, mscorlib">
|
||||||
<value>12</value>
|
<value>12</value>
|
||||||
@@ -643,10 +682,10 @@
|
|||||||
<value>True</value>
|
<value>True</value>
|
||||||
</metadata>
|
</metadata>
|
||||||
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
<data name="$this.AutoScaleDimensions" type="System.Drawing.SizeF, System.Drawing">
|
||||||
<value>7, 15</value>
|
<value>8, 20</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
<data name="$this.ClientSize" type="System.Drawing.Size, System.Drawing">
|
||||||
<value>604, 513</value>
|
<value>690, 684</value>
|
||||||
</data>
|
</data>
|
||||||
<data name="$this.Font" type="System.Drawing.Font, System.Drawing">
|
<data name="$this.Font" type="System.Drawing.Font, System.Drawing">
|
||||||
<value>Segoe UI, 9pt</value>
|
<value>Segoe UI, 9pt</value>
|
||||||
@@ -1100,6 +1139,9 @@
|
|||||||
wAH//wAA///AAf//AAD//8AB//8AAP//wAH//wAA///AD///AAD///H///8AAP///////wAA
|
wAH//wAA///AAf//AAD//8AB//8AAP//wAH//wAA///AD///AAD///H///8AAP///////wAA
|
||||||
</value>
|
</value>
|
||||||
</data>
|
</data>
|
||||||
|
<data name="$this.Margin" type="System.Windows.Forms.Padding, System.Windows.Forms">
|
||||||
|
<value>3, 4, 3, 4</value>
|
||||||
|
</data>
|
||||||
<data name="$this.Text" xml:space="preserve">
|
<data name="$this.Text" xml:space="preserve">
|
||||||
<value>Import nach windream:</value>
|
<value>Import nach windream:</value>
|
||||||
</data>
|
</data>
|
||||||
|
|||||||
@@ -34,14 +34,25 @@ Public Class frmWM_IndexFile
|
|||||||
|
|
||||||
|
|
||||||
End Class
|
End Class
|
||||||
|
Private _multiIndexDecisionMade As Boolean = False
|
||||||
|
Private _multiIndexOverwriteExisting As Boolean = False
|
||||||
|
Private _processedFileIds As New List(Of Integer)
|
||||||
|
|
||||||
Function WORK_FILE(ImportFilePath As String, VerzeichnisZiel As String, vDokart_ID As Integer, vDokart As String, multiindex As Boolean)
|
Function WORK_FILE(ImportFilePath As String, VerzeichnisZiel As String, vDokart_ID As Integer, vDokart As String, multiindex As Boolean)
|
||||||
'Dim swWORK_FILE As New SW("WORK_FILE: " & DOCTYPE_IDTextBox.Text)
|
'Dim swWORK_FILE As New SW("WORK_FILE: " & DOCTYPE_IDTextBox.Text)
|
||||||
Try
|
Try
|
||||||
|
LOGGER.Debug($" WORK_FILE aufgerufen: CURRENT_FILEID={CURRENT_FILEID}, Datei={Me.txtFilepath.Text}")
|
||||||
|
LOGGER.Debug($"=== WORK_FILE START: multiindex={multiindex} ===")
|
||||||
|
LOGGER.Debug($" Datei: {ImportFilePath}")
|
||||||
|
LOGGER.Debug($" Flags: _multiIndexDecisionMade={_multiIndexDecisionMade}, _multiIndexOverwriteExisting={_multiIndexOverwriteExisting}")
|
||||||
|
|
||||||
CURRENT_DOC_ID = Nothing
|
CURRENT_DOC_ID = Nothing
|
||||||
Dim odeleteRights As Boolean = True
|
Dim odeleteRights As Boolean = True
|
||||||
Dim oSQL = $"SELECT GUID FROM TBPMO_FILES_USER WHERE FILENAME2WORK = '{ImportFilePath}' AND WORKED = 0 AND USER_WORK = '{Environment.UserName}'"
|
|
||||||
CURRENT_FILEID = MYDB_ECM.GetScalarValue(oSQL)
|
|
||||||
|
|
||||||
|
If CURRENT_FILEID = 0 OrElse CURRENT_FILEID = Nothing Then
|
||||||
|
LOGGER.Error("WORK_FILE: CURRENT_FILEID ist ungültig (0 oder Nothing)!")
|
||||||
|
Return False
|
||||||
|
End If
|
||||||
CURRENT_DOKARTSTRING = vDokart
|
CURRENT_DOKARTSTRING = vDokart
|
||||||
Dim err As Boolean = False
|
Dim err As Boolean = False
|
||||||
'#################################################################
|
'#################################################################
|
||||||
@@ -54,30 +65,71 @@ Public Class frmWM_IndexFile
|
|||||||
End If
|
End If
|
||||||
sw.Done()
|
sw.Done()
|
||||||
sw = New SW("CheckFileExists")
|
sw = New SW("CheckFileExists")
|
||||||
Dim existsonlyasMaster = False
|
|
||||||
|
|
||||||
If WMMOD.TestFileExists(CURRENT_NEWFILENAME) = True Then
|
If WMMOD.TestFileExists(CURRENT_NEWFILENAME) = True Then
|
||||||
Dim msg As String
|
' ── Multi-Index-Logik: Entscheidung nur einmal fragen ─────────
|
||||||
If USER_LANGUAGE <> "de-DE" Then
|
Dim shouldOverwrite As Boolean
|
||||||
msg = "A file with the same name already exists!" & vbCrLf &
|
|
||||||
"YES → Replace the existing file (all former versions will be deleted)" & vbCrLf &
|
If multiindex = True Then
|
||||||
"NO → Keep both files (your file will be versioned automatically)"
|
If _multiIndexDecisionMade = False Then
|
||||||
|
LOGGER.Debug(" ZEIGE DIALOG für Multi-Index-Entscheidung")
|
||||||
|
' Erste Kollision → Benutzer fragen
|
||||||
|
Dim msg As String
|
||||||
|
If USER_LANGUAGE <> "de-DE" Then
|
||||||
|
msg = "A file with the same name already exists!" & vbCrLf &
|
||||||
|
"This decision will apply to ALL remaining files in Multi-Indexing." & vbCrLf & vbCrLf &
|
||||||
|
"YES → Replace existing files (all former versions will be deleted)" & vbCrLf &
|
||||||
|
"NO → Keep both files (files will be versioned automatically)"
|
||||||
|
Else
|
||||||
|
msg = "Eine Datei mit identischem Namen existiert bereits!" & vbCrLf &
|
||||||
|
"Diese Entscheidung gilt für ALLE weiteren Dateien im Multi-Indexing." & vbCrLf & vbCrLf &
|
||||||
|
"JA → Bestehende Dateien ersetzen (alle vorherigen Versionen werden dabei gelöscht)" & vbCrLf &
|
||||||
|
"NEIN → Dateien versionieren (beide Dateien werden behalten)"
|
||||||
|
End If
|
||||||
|
|
||||||
|
Dim result As MsgBoxResult = MessageBox.Show(msg, "File already exists (Multi-Indexing):",
|
||||||
|
MessageBoxButtons.YesNo, MessageBoxIcon.Question)
|
||||||
|
|
||||||
|
_multiIndexOverwriteExisting = (result = MsgBoxResult.Yes)
|
||||||
|
_multiIndexDecisionMade = True
|
||||||
|
|
||||||
|
LOGGER.Debug($" Benutzer-Entscheidung: {If(_multiIndexOverwriteExisting, "OVERWRITE", "VERSION")}")
|
||||||
|
LOGGER.Debug($" Flags NACH Dialog: _multiIndexDecisionMade={_multiIndexDecisionMade}, _multiIndexOverwriteExisting={_multiIndexOverwriteExisting}")
|
||||||
|
Else
|
||||||
|
LOGGER.Debug($" Verwende GESPEICHERTE Entscheidung: {If(_multiIndexOverwriteExisting, "OVERWRITE", "VERSION")}")
|
||||||
|
End If
|
||||||
|
|
||||||
|
shouldOverwrite = _multiIndexOverwriteExisting
|
||||||
Else
|
Else
|
||||||
msg = "Eine Datei mit identischem Namen existiert bereits!" & vbCrLf &
|
' Einzeldatei → wie bisher
|
||||||
"JA → Bestehende Datei ersetzen (alle vorherigen Versionen werden dabei gelöscht)" & vbCrLf &
|
LOGGER.Debug(" Einzeldatei: Zeige Dialog")
|
||||||
"NEIN → Beide Dateien behalten (Ihre Datei wird automatisch versioniert)"
|
Dim msg As String
|
||||||
|
If USER_LANGUAGE <> "de-DE" Then
|
||||||
|
msg = "A file with the same name already exists!" & vbCrLf &
|
||||||
|
"YES → Replace the existing file (all former versions will be deleted)" & vbCrLf &
|
||||||
|
"NO → Keep both files (your file will be versioned automatically)"
|
||||||
|
Else
|
||||||
|
msg = "Eine Datei mit identischem Namen existiert bereits!" & vbCrLf &
|
||||||
|
"JA → Bestehende Datei ersetzen (alle vorherigen Versionen werden dabei gelöscht)" & vbCrLf &
|
||||||
|
"NEIN → Beide Dateien behalten (Ihre Datei wird automatisch versioniert)"
|
||||||
|
End If
|
||||||
|
|
||||||
|
Dim result As MsgBoxResult = MessageBox.Show(msg, "File already exists:",
|
||||||
|
MessageBoxButtons.YesNo, MessageBoxIcon.Question)
|
||||||
|
shouldOverwrite = (result = MsgBoxResult.Yes)
|
||||||
|
LOGGER.Debug($" Einzeldatei-Entscheidung: {If(shouldOverwrite, "OVERWRITE", "VERSION")}")
|
||||||
End If
|
End If
|
||||||
Dim result As MsgBoxResult
|
|
||||||
result = MessageBox.Show(msg, "File already exists:", MessageBoxButtons.YesNo, MessageBoxIcon.Question)
|
' ── Entscheidung ausführen ────────────────────────────────────
|
||||||
If result = MsgBoxResult.Yes Then
|
If shouldOverwrite Then
|
||||||
|
LOGGER.Debug(" Führe OVERWRITE aus")
|
||||||
If WMMOD.RemoveFile(CURRENT_NEWFILENAME) = False Then
|
If WMMOD.RemoveFile(CURRENT_NEWFILENAME) = False Then
|
||||||
' Löschen fehlgeschlagen → Abbruch
|
|
||||||
Return False
|
Return False
|
||||||
Else
|
Else
|
||||||
Dim oNormPath = WMMOD.GetNormalizedPath(CURRENT_NEWFILENAME, 0)
|
Dim oNormPath = WMMOD.GetNormalizedPath(CURRENT_NEWFILENAME, 0)
|
||||||
|
Dim oGetDoc = String.Format(
|
||||||
Dim oGetDoc = String.Format("select DOC_ID,RECORD_ID from TBPMO_DOC_RECORD_LINK RL INNER JOIN TBPMO_DOCRESULT_LIST DRL WITH (NOLOCK) ON RL.DOC_ID = DRL.DocID
|
"SELECT DOC_ID,RECORD_ID FROM TBPMO_DOC_RECORD_LINK RL " &
|
||||||
WHERE FULL_FILENAME = '{0}'", oNormPath)
|
"INNER JOIN TBPMO_DOCRESULT_LIST DRL WITH (NOLOCK) ON RL.DOC_ID = DRL.DocID " &
|
||||||
|
"WHERE FULL_FILENAME = '{0}'", oNormPath)
|
||||||
Dim oDT As DataTable = MYDB_ECM.GetDatatable(oGetDoc)
|
Dim oDT As DataTable = MYDB_ECM.GetDatatable(oGetDoc)
|
||||||
|
|
||||||
For Each oRow As DataRow In oDT.Rows
|
For Each oRow As DataRow In oDT.Rows
|
||||||
@@ -87,13 +139,14 @@ Public Class frmWM_IndexFile
|
|||||||
}
|
}
|
||||||
ClassFileResult.Delete_ResultFile(oDoc.DocId, oDoc.RecordId, 1)
|
ClassFileResult.Delete_ResultFile(oDoc.DocId, oDoc.RecordId, 1)
|
||||||
Next
|
Next
|
||||||
|
|
||||||
' Löschen erfolgreich → Import wird fortgesetzt
|
|
||||||
End If
|
End If
|
||||||
Else
|
Else
|
||||||
|
LOGGER.Debug(" Führe VERSIONIERUNG aus")
|
||||||
CURRENT_NEWFILENAME = ClassHelper.Versionierung_Datei(CURRENT_NEWFILENAME)
|
CURRENT_NEWFILENAME = ClassHelper.Versionierung_Datei(CURRENT_NEWFILENAME)
|
||||||
|
LOGGER.Debug($" Neuer Dateiname: {CURRENT_NEWFILENAME}")
|
||||||
End If
|
End If
|
||||||
|
Else
|
||||||
|
LOGGER.Debug(" Datei existiert NICHT, kein Konflikt")
|
||||||
End If
|
End If
|
||||||
sw.Done()
|
sw.Done()
|
||||||
'#################################################################
|
'#################################################################
|
||||||
@@ -220,7 +273,7 @@ Public Class frmWM_IndexFile
|
|||||||
err = True
|
err = True
|
||||||
Exit For
|
Exit For
|
||||||
End If
|
End If
|
||||||
|
_processedFileIds.Add(CURRENT_FILEID)
|
||||||
Next
|
Next
|
||||||
If err = True Then
|
If err = True Then
|
||||||
'swWORK_FILE.Done()
|
'swWORK_FILE.Done()
|
||||||
@@ -256,15 +309,23 @@ Public Class frmWM_IndexFile
|
|||||||
stg1 = "Success:"
|
stg1 = "Success:"
|
||||||
End If
|
End If
|
||||||
If multiindex = False Then CURRENT_NOTIFICATION_MSG = stg
|
If multiindex = False Then CURRENT_NOTIFICATION_MSG = stg
|
||||||
MYDB_ECM.GetScalarValue("UPDATE TBPMO_FILES_USER SET WORKED = 1 WHERE GUID = " & CURRENT_FILEID)
|
|
||||||
For Each row As DataRow In CURRENT_TBPMO_FILES_USER.Rows
|
' Neu - NUR wenn NICHT im Multi-Index-Modus:
|
||||||
If row.Item("GUID") = CURRENT_FILEID Then
|
If multiindex = False Then
|
||||||
row.Item("WORKED") = 1
|
MYDB_ECM.ExecuteNonQuery("UPDATE TBPMO_FILES_USER SET WORKED = 1 WHERE GUID = " & CURRENT_FILEID)
|
||||||
If IsNothing(droptype) Then
|
LOGGER.Debug($" Einzeldatei als WORKED markiert: GUID={CURRENT_FILEID}")
|
||||||
droptype = row.Item("HANDLE_TYPE")
|
|
||||||
End If
|
' ✅ DEBUG: Was steht JETZT in der DB?
|
||||||
End If
|
Dim debugSQL = $"SELECT GUID, WORKED, FILENAME_ONLY FROM TBPMO_FILES_USER WHERE USER_WORK = '{USER_USERNAME}' ORDER BY GUID DESC"
|
||||||
Next
|
Dim debugDT = MYDB_ECM.GetDatatable(debugSQL)
|
||||||
|
LOGGER.Debug($" ═══ DEBUG NACH UPDATE ═══")
|
||||||
|
LOGGER.Debug($" Anzahl Dateien in DB: {debugDT.Rows.Count}")
|
||||||
|
For Each row As DataRow In debugDT.Rows
|
||||||
|
LOGGER.Debug($" - GUID={row("GUID")}, WORKED={row("WORKED")}, Datei={row("FILENAME_ONLY")}")
|
||||||
|
Next
|
||||||
|
LOGGER.Debug($" ═══════════════════════")
|
||||||
|
End If
|
||||||
|
|
||||||
If IsNothing(CURRENT_DOC_ID) Then
|
If IsNothing(CURRENT_DOC_ID) Then
|
||||||
sw = New SW("GettingDocID")
|
sw = New SW("GettingDocID")
|
||||||
sql = String.Format("SELECT DocID FROM VWPMO_DOC_SYNC WHERE FULL_FILENAME = '{0}' AND CONVERT(DATE,Change_DateTime) = CONVERT(DATE,GETDATE())", CURRENT_FILEIN_WD)
|
sql = String.Format("SELECT DocID FROM VWPMO_DOC_SYNC WHERE FULL_FILENAME = '{0}' AND CONVERT(DATE,Change_DateTime) = CONVERT(DATE,GETDATE())", CURRENT_FILEIN_WD)
|
||||||
@@ -389,28 +450,71 @@ Public Class frmWM_IndexFile
|
|||||||
Try
|
Try
|
||||||
Me.Cursor = Cursors.WaitCursor
|
Me.Cursor = Cursors.WaitCursor
|
||||||
SaveMySettingsValue("WD_IndexDeleteDocs", WD_IndexDeleteDocs, "ConfigMain")
|
SaveMySettingsValue("WD_IndexDeleteDocs", WD_IndexDeleteDocs, "ConfigMain")
|
||||||
|
|
||||||
|
LOGGER.Debug("=== HANDLE_FILE START ===")
|
||||||
|
LOGGER.Debug($" Flags VOR Reset: _multiIndexDecisionMade={_multiIndexDecisionMade}, _multiIndexOverwriteExisting={_multiIndexOverwriteExisting}")
|
||||||
|
|
||||||
|
_multiIndexDecisionMade = False
|
||||||
|
_multiIndexOverwriteExisting = False
|
||||||
|
|
||||||
|
LOGGER.Debug($" Flags NACH Reset: _multiIndexDecisionMade={_multiIndexDecisionMade}, _multiIndexOverwriteExisting={_multiIndexOverwriteExisting}")
|
||||||
|
LOGGER.Debug($" chkMultiIndexer: Visible={chkMultiIndexer.Visible}, Checked={chkMultiIndexer.Checked}")
|
||||||
|
|
||||||
If chkMultiIndexer.Visible = True And chkMultiIndexer.Checked = True Then
|
If chkMultiIndexer.Visible = True And chkMultiIndexer.Checked = True Then
|
||||||
' ── Erste Datei: FILE_HASH sicherstellen ───────────────────────
|
LOGGER.Debug("=== MULTI-INDEXING MODUS AKTIV ===")
|
||||||
|
|
||||||
|
' ── Erste Datei: FILE_HASH und CURRENT_FILEID sicherstellen ───
|
||||||
|
Dim firstFileId As Integer = CURRENT_FILEID
|
||||||
|
Dim firstFileName As String = CURRENT_FILENAME
|
||||||
|
|
||||||
For Each oRow As DataRow In CURRENT_TBPMO_FILES_USER.Rows
|
For Each oRow As DataRow In CURRENT_TBPMO_FILES_USER.Rows
|
||||||
If oRow.Item("GUID") = CURRENT_FILEID Then
|
If oRow.Item("GUID") = CURRENT_FILEID Then
|
||||||
FILE_HASH = oRow.Item("FILE_HASH")
|
FILE_HASH = oRow.Item("FILE_HASH")
|
||||||
|
firstFileName = oRow.Item("FILENAME2WORK")
|
||||||
Exit For
|
Exit For
|
||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
|
|
||||||
If WORK_FILE(Me.txtFilepath.Text, Me.PATHTextBox.Text, doctype_id, My.Settings.WD_INDEXDOKART_SAVE, True) = False Then
|
LOGGER.Debug($" Verarbeite erste Datei (CURRENT_FILEID={firstFileId}): {firstFileName}")
|
||||||
|
|
||||||
|
If WORK_FILE(firstFileName, Me.PATHTextBox.Text, doctype_id, My.Settings.WD_INDEXDOKART_SAVE, True) = False Then
|
||||||
Me.Cursor = Cursors.Default
|
Me.Cursor = Cursors.Default
|
||||||
|
LOGGER.Warn(" Erste Datei fehlgeschlagen!")
|
||||||
Return False
|
Return False
|
||||||
End If
|
End If
|
||||||
|
|
||||||
' ── Erste Datei erfolgreich: GUID merken, Folgedateien laden ──
|
LOGGER.Debug(" Erste Datei erfolgreich verarbeitet")
|
||||||
Dim firstFileId = CURRENT_FILEID
|
|
||||||
Dim DTFiles2Work As DataTable = MYDB_ECM.GetDatatable(
|
|
||||||
"SELECT * FROM TBPMO_FILES_USER WHERE WORKED = 0 " &
|
|
||||||
"AND GUID <> " & firstFileId & " AND USER_WORK = '" & USER_USERNAME & "'")
|
|
||||||
|
|
||||||
If DTFiles2Work Is Nothing OrElse DTFiles2Work.Rows.Count = 0 Then
|
' ── WICHTIG: Erste Datei als WORKED markieren UND DataTable neu laden ──
|
||||||
' Keine weiteren Dateien – trotzdem Erfolg
|
LOGGER.Debug($" Markiere erste Datei als WORKED: GUID={firstFileId}")
|
||||||
|
MYDB_ECM.ExecuteNonQuery($"UPDATE TBPMO_FILES_USER SET WORKED = 1 WHERE GUID = {firstFileId}")
|
||||||
|
|
||||||
|
LOGGER.Debug(" Lade aktualisierte Dateiliste aus Datenbank...")
|
||||||
|
|
||||||
|
' ✅ SCHRITT 1: Prüfe mit COUNT(*), wie viele Dateien in der DB sind
|
||||||
|
Dim countSQL = $"SELECT COUNT(*) FROM TBPMO_FILES_USER WHERE USER_WORK = '{USER_USERNAME}' AND WORKED = 0"
|
||||||
|
Dim remainingCount = CInt(MYDB_ECM.GetScalarValue(countSQL))
|
||||||
|
LOGGER.Debug($" SQL COUNT ergab: {remainingCount} verbleibende Dateien")
|
||||||
|
|
||||||
|
' ✅ SCHRITT 2: Nur wenn COUNT > 0, dann DataTable laden
|
||||||
|
If remainingCount > 0 Then
|
||||||
|
CURRENT_TBPMO_FILES_USER = MYDB_ECM.GetDatatable("SELECT *, CONVERT(BIT,0) AS DELETE_FILE FROM TBPMO_FILES_USER " &
|
||||||
|
"WHERE USER_WORK = '" & USER_USERNAME & "' AND WORKED = 0")
|
||||||
|
|
||||||
|
If CURRENT_TBPMO_FILES_USER Is Nothing Then
|
||||||
|
LOGGER.Error(" WARNUNG: GetDatatable gab Nothing zurück, obwohl COUNT > 0!")
|
||||||
|
CURRENT_TBPMO_FILES_USER = New DataTable()
|
||||||
|
Else
|
||||||
|
LOGGER.Debug($" DataTable geladen: {CURRENT_TBPMO_FILES_USER.Rows.Count} Zeilen")
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
LOGGER.Info(" SQL COUNT ergab 0 Dateien")
|
||||||
|
CURRENT_TBPMO_FILES_USER = New DataTable()
|
||||||
|
End If
|
||||||
|
|
||||||
|
' ── Folgedateien aus aktualierter DataTable verarbeiten ──
|
||||||
|
If CURRENT_TBPMO_FILES_USER Is Nothing OrElse CURRENT_TBPMO_FILES_USER.Rows.Count = 0 Then
|
||||||
|
LOGGER.Info(" Keine weiteren Dateien vorhanden")
|
||||||
NEW_FILES_ADDED = True
|
NEW_FILES_ADDED = True
|
||||||
FILE_WORKED = True
|
FILE_WORKED = True
|
||||||
Me.Cursor = Cursors.Default
|
Me.Cursor = Cursors.Default
|
||||||
@@ -418,12 +522,24 @@ Public Class frmWM_IndexFile
|
|||||||
Return True
|
Return True
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
LOGGER.Debug($" Weitere Dateien gefunden: {CURRENT_TBPMO_FILES_USER.Rows.Count}")
|
||||||
|
LOGGER.Debug($" Flags VOR Schleife: _multiIndexDecisionMade={_multiIndexDecisionMade}, _multiIndexOverwriteExisting={_multiIndexOverwriteExisting}")
|
||||||
|
|
||||||
Dim err As Boolean = False
|
Dim err As Boolean = False
|
||||||
For Each filerow As DataRow In DTFiles2Work.Rows
|
Dim fileCount As Integer = 0
|
||||||
CURRENT_FILEID = filerow.Item("GUID")
|
For Each filerow As DataRow In CURRENT_TBPMO_FILES_USER.Rows
|
||||||
CURRENT_FILENAME = filerow.Item("FILENAME2WORK")
|
fileCount += 1
|
||||||
FILE_HASH = filerow.Item("FILE_HASH")
|
Dim currentFileId As Integer = filerow.Item("GUID")
|
||||||
aktFiledropped = CURRENT_FILENAME
|
Dim currentFileName As String = filerow.Item("FILENAME2WORK")
|
||||||
|
Dim currentFileHash As String = filerow.Item("FILE_HASH")
|
||||||
|
|
||||||
|
CURRENT_FILEID = currentFileId
|
||||||
|
CURRENT_FILENAME = currentFileName
|
||||||
|
FILE_HASH = currentFileHash
|
||||||
|
aktFiledropped = currentFileName
|
||||||
|
|
||||||
|
LOGGER.Debug($" [{fileCount}/{CURRENT_TBPMO_FILES_USER.Rows.Count}] Verarbeite Datei: {currentFileName}, FILEID={currentFileId}")
|
||||||
|
LOGGER.Debug($" Flags: _multiIndexDecisionMade={_multiIndexDecisionMade}, _multiIndexOverwriteExisting={_multiIndexOverwriteExisting}")
|
||||||
|
|
||||||
Dim handleType As String = filerow.Item("HANDLE_TYPE")
|
Dim handleType As String = filerow.Item("HANDLE_TYPE")
|
||||||
Select Case handleType
|
Select Case handleType
|
||||||
@@ -437,10 +553,15 @@ Public Class frmWM_IndexFile
|
|||||||
droptype = handleType
|
droptype = handleType
|
||||||
End Select
|
End Select
|
||||||
|
|
||||||
If WORK_FILE(CURRENT_FILENAME, Me.PATHTextBox.Text, doctype_id, My.Settings.WD_INDEXDOKART_SAVE, True) = False Then
|
If WORK_FILE(currentFileName, Me.PATHTextBox.Text, doctype_id, My.Settings.WD_INDEXDOKART_SAVE, True) = False Then
|
||||||
err = True
|
err = True
|
||||||
|
LOGGER.Warn($" Datei fehlgeschlagen!")
|
||||||
Exit For
|
Exit For
|
||||||
End If
|
End If
|
||||||
|
|
||||||
|
LOGGER.Debug($" Datei erfolgreich verarbeitet")
|
||||||
|
LOGGER.Debug($" Markiere Datei als WORKED: GUID={currentFileId}")
|
||||||
|
MYDB_ECM.ExecuteNonQuery($"UPDATE TBPMO_FILES_USER SET WORKED = 1 WHERE GUID = {currentFileId}")
|
||||||
Next
|
Next
|
||||||
|
|
||||||
Me.Cursor = Cursors.Default
|
Me.Cursor = Cursors.Default
|
||||||
@@ -454,6 +575,7 @@ Public Class frmWM_IndexFile
|
|||||||
stg = "All files were transferred via Multiindexing to windream"
|
stg = "All files were transferred via Multiindexing to windream"
|
||||||
stg1 = "Success:"
|
stg1 = "Success:"
|
||||||
End If
|
End If
|
||||||
|
LOGGER.Info("=== MULTI-INDEXING ERFOLGREICH ABGESCHLOSSEN ===")
|
||||||
MsgBox(stg, MsgBoxStyle.Information, stg1)
|
MsgBox(stg, MsgBoxStyle.Information, stg1)
|
||||||
Me.Close()
|
Me.Close()
|
||||||
Return True
|
Return True
|
||||||
@@ -462,25 +584,124 @@ Public Class frmWM_IndexFile
|
|||||||
Return False
|
Return False
|
||||||
|
|
||||||
Else
|
Else
|
||||||
' ── Einzeldatei ───────────────────────────────────────────────
|
' ✅ EINZELDATEI MODUS
|
||||||
If WORK_FILE(Me.txtFilepath.Text, Me.PATHTextBox.Text, doctype_id, My.Settings.WD_INDEXDOKART_SAVE, False) = True Then
|
LOGGER.Debug("=== EINZELDATEI MODUS ===")
|
||||||
NEW_FILES_ADDED = True
|
|
||||||
FILE_WORKED = True
|
' ✅ WICHTIG: CURRENT_FILEID VOR WORK_FILE setzen!
|
||||||
|
For Each oRow As DataRow In CURRENT_TBPMO_FILES_USER.Rows
|
||||||
|
If oRow.Item("FILENAME2WORK") = Me.txtFilepath.Text Then
|
||||||
|
CURRENT_FILEID = CInt(oRow("GUID"))
|
||||||
|
FILE_HASH = oRow("FILE_HASH").ToString()
|
||||||
|
LOGGER.Debug($" Datei gefunden in CURRENT_TBPMO_FILES_USER: FILEID={CURRENT_FILEID}")
|
||||||
|
Exit For
|
||||||
|
End If
|
||||||
|
Next
|
||||||
|
|
||||||
|
' ✅ Validierung NACH Schleife
|
||||||
|
If CURRENT_FILEID = 0 Then
|
||||||
|
LOGGER.Error($" Datei nicht gefunden in CURRENT_TBPMO_FILES_USER: {Me.txtFilepath.Text}")
|
||||||
|
Me.Cursor = Cursors.Default
|
||||||
|
MessageBox.Show("Die Datei konnte nicht in der Verarbeitungsliste gefunden werden!",
|
||||||
|
"Fehler:", MessageBoxButtons.OK, MessageBoxIcon.Error)
|
||||||
|
Return False
|
||||||
|
End If
|
||||||
|
|
||||||
|
If WORK_FILE(Me.txtFilepath.Text, Me.PATHTextBox.Text, doctype_id, My.Settings.WD_INDEXDOKART_SAVE, False) = False Then
|
||||||
|
Me.Cursor = Cursors.Default
|
||||||
|
MessageBox.Show("Import to windream was not successful." & vbCrLf &
|
||||||
|
"Check the log for further information!",
|
||||||
|
"Unexpected Error in windream-Stream:",
|
||||||
|
MessageBoxButtons.OK, MessageBoxIcon.Error)
|
||||||
|
Return False
|
||||||
|
End If
|
||||||
|
|
||||||
|
' ── Datei erfolgreich verarbeitet ──
|
||||||
|
NEW_FILES_ADDED = True
|
||||||
|
FILE_WORKED = True
|
||||||
|
LOGGER.Debug(" Einzeldatei erfolgreich verarbeitet")
|
||||||
|
|
||||||
|
' ✅ Prüfen, ob weitere Dateien vorhanden sind
|
||||||
|
LOGGER.Debug(" Lade aktualisierte Dateiliste für Einzeldatei-Check...")
|
||||||
|
|
||||||
|
' ✅ SCHRITT 1: Prüfe mit COUNT(*), wie viele Dateien in der DB sind
|
||||||
|
Dim countSQL = $"SELECT COUNT(*) FROM TBPMO_FILES_USER WHERE USER_WORK = '{USER_USERNAME}' AND WORKED = 0"
|
||||||
|
Dim remainingCount = CInt(MYDB_ECM.GetScalarValue(countSQL))
|
||||||
|
LOGGER.Debug($" ═══ SQL COUNT NACH WORK_FILE ═══")
|
||||||
|
LOGGER.Debug($" COUNT(*) ergab: {remainingCount} verbleibende Dateien")
|
||||||
|
|
||||||
|
' ✅ SCHRITT 2: Dateiliste laden UND vergleichen
|
||||||
|
ClassHelper.Create_USER_FILE_TABLE()
|
||||||
|
|
||||||
|
If CURRENT_TBPMO_FILES_USER Is Nothing Then
|
||||||
|
LOGGER.Error($" ❌ KRITISCHER FEHLER: Create_USER_FILE_TABLE gab Nothing zurück!")
|
||||||
|
ElseIf CURRENT_TBPMO_FILES_USER.Rows.Count <> remainingCount Then
|
||||||
|
LOGGER.Error($" ❌ KRITISCHER FEHLER: COUNT ergab {remainingCount}, aber DataTable hat {CURRENT_TBPMO_FILES_USER.Rows.Count} Zeilen!")
|
||||||
|
LOGGER.Error($" ❌ VERDACHT: Race-Condition oder Transaction-Problem!")
|
||||||
|
Else
|
||||||
|
LOGGER.Debug($" ✅ OK: COUNT und DataTable stimmen überein ({remainingCount} Dateien)")
|
||||||
|
End If
|
||||||
|
LOGGER.Debug($" ═══════════════════════════════")
|
||||||
|
|
||||||
|
If CURRENT_TBPMO_FILES_USER IsNot Nothing AndAlso CURRENT_TBPMO_FILES_USER.Rows.Count > 0 Then
|
||||||
|
LOGGER.Info($" Einzeldatei-Modus: Weitere {CURRENT_TBPMO_FILES_USER.Rows.Count} Dateien vorhanden - aktualisiere Formular")
|
||||||
|
|
||||||
|
' ── Lade ERSTE Datei aus der NEUEN Liste ──
|
||||||
|
Dim nextFile = CURRENT_TBPMO_FILES_USER.Rows(0)
|
||||||
|
CURRENT_FILEID = CInt(nextFile("GUID"))
|
||||||
|
CURRENT_FILENAME = nextFile("FILENAME2WORK").ToString()
|
||||||
|
FILE_HASH = nextFile("FILE_HASH").ToString()
|
||||||
|
aktFiledropped = CURRENT_FILENAME
|
||||||
|
txtFilepath.Text = CURRENT_FILENAME
|
||||||
|
|
||||||
|
LOGGER.Debug($" Nächste Datei geladen: FILEID={CURRENT_FILEID}, Datei={CURRENT_FILENAME}")
|
||||||
|
|
||||||
|
' ── Update MULTIFILES-Anzeige ──
|
||||||
|
MULTIFILES = CURRENT_TBPMO_FILES_USER.Rows.Count - 1
|
||||||
|
If MULTIFILES > 0 Then
|
||||||
|
chkMultiIndexer.Text = "Multi-Indexing - Alle nachfolgenden Dateien (" & MULTIFILES & ") identisch indexieren"
|
||||||
|
chkMultiIndexer.Visible = True
|
||||||
|
chkMultiIndexer.Checked = False
|
||||||
|
Else
|
||||||
|
chkMultiIndexer.Visible = False
|
||||||
|
End If
|
||||||
|
|
||||||
|
' ── Handle-Type setzen ──
|
||||||
|
Dim handleType As String = nextFile("HANDLE_TYPE").ToString()
|
||||||
|
Select Case handleType
|
||||||
|
Case "@DROPFROMFSYSTEM@"
|
||||||
|
droptype = "dragdrop file"
|
||||||
|
chkdelete_origin.Visible = True
|
||||||
|
Case "@OUTLOOK_ATTMNT@"
|
||||||
|
droptype = "dragdrop attachment"
|
||||||
|
chkdelete_origin.Visible = True
|
||||||
|
Case "@OUTLOOKMESSAGE@"
|
||||||
|
droptype = "dragdrop message"
|
||||||
|
chkdelete_origin.Visible = True
|
||||||
|
Case "SCAN"
|
||||||
|
droptype = "scan"
|
||||||
|
chkdelete_origin.Visible = False
|
||||||
|
Case Else
|
||||||
|
droptype = handleType
|
||||||
|
chkdelete_origin.Visible = False
|
||||||
|
End Select
|
||||||
|
|
||||||
|
Me.Cursor = Cursors.Default
|
||||||
|
LOGGER.Debug(" Formular bleibt offen für nächste Datei")
|
||||||
|
Return True ' ← Formular bleibt offen!
|
||||||
|
|
||||||
|
Else
|
||||||
|
' ✅ Keine weiteren Dateien → Formular schließen
|
||||||
|
LOGGER.Info(" Einzeldatei-Modus: Keine weiteren Dateien - schließe Formular")
|
||||||
Me.Cursor = Cursors.Default
|
Me.Cursor = Cursors.Default
|
||||||
Me.Close()
|
Me.Close()
|
||||||
Return True
|
Return True
|
||||||
Else
|
|
||||||
Me.Cursor = Cursors.Default
|
|
||||||
MessageBox.Show("Import to windream was not successful." & vbCrLf &
|
|
||||||
"Check the log for further information!",
|
|
||||||
"Unexpected Error in windream-Stream:",
|
|
||||||
MessageBoxButtons.OK, MessageBoxIcon.Error)
|
|
||||||
Return False
|
|
||||||
End If
|
End If
|
||||||
End If
|
End If
|
||||||
Me.Cursor = Cursors.Default
|
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
MsgBox("Error in Indexing_File:" & vbCrLf & ex.Message, MsgBoxStyle.Critical)
|
MsgBox("Error in Indexing_File:" & vbCrLf & ex.Message, MsgBoxStyle.Critical)
|
||||||
|
LOGGER.Error($"Handle_File Exception: {ex.Message}{vbCrLf}{ex.StackTrace}")
|
||||||
|
Return False
|
||||||
Finally
|
Finally
|
||||||
Me.Cursor = Cursors.Default
|
Me.Cursor = Cursors.Default
|
||||||
End Try
|
End Try
|
||||||
@@ -1073,37 +1294,63 @@ Public Class frmWM_IndexFile
|
|||||||
CURRENT_FILENAME = ""
|
CURRENT_FILENAME = ""
|
||||||
Me.VWDDINDEX_AUTOMTableAdapter.Connection.ConnectionString = MYDB_ECM.CurrentConnectionString
|
Me.VWDDINDEX_AUTOMTableAdapter.Connection.ConnectionString = MYDB_ECM.CurrentConnectionString
|
||||||
chkMultiIndexer.Checked = False
|
chkMultiIndexer.Checked = False
|
||||||
|
|
||||||
|
' ── Multi-Indexing-Flags beim Formular-Load zurücksetzen ──
|
||||||
|
LOGGER.Debug("=== FORM LOAD: Flags zurücksetzen ===")
|
||||||
|
LOGGER.Debug($" VOR Reset: _multiIndexDecisionMade = {_multiIndexDecisionMade}, _multiIndexOverwriteExisting = {_multiIndexOverwriteExisting}")
|
||||||
|
|
||||||
|
_multiIndexDecisionMade = False
|
||||||
|
_multiIndexOverwriteExisting = False
|
||||||
|
_processedFileIds.Clear()
|
||||||
|
|
||||||
|
LOGGER.Debug($" NACH Reset: _multiIndexDecisionMade = {_multiIndexDecisionMade}, _multiIndexOverwriteExisting = {_multiIndexOverwriteExisting}")
|
||||||
|
LOGGER.Debug($" ProcessedFileIds Count: {_processedFileIds.Count}")
|
||||||
|
|
||||||
LOGGER.Debug("frmWD_Index_Dokart_Load")
|
LOGGER.Debug("frmWD_Index_Dokart_Load")
|
||||||
chkdelete_origin.Checked = False
|
chkdelete_origin.Checked = False
|
||||||
chkdelete_origin.Visible = False
|
chkdelete_origin.Visible = False
|
||||||
Dim oReconnect = WMMOD.SessionReconnect
|
Dim oReconnect = WMMOD.SessionReconnect
|
||||||
'= New Windream(LOGCONFIG, False, WMDriveLetter, WMPATH_PREFIX, True, WM_SERVER, WM_USER, WM_USER_PW, WM_DOMAIN)
|
|
||||||
|
' ── WICHTIG: Prüfen, ob überhaupt Dateien vorhanden sind ──
|
||||||
|
If CURRENT_TBPMO_FILES_USER Is Nothing OrElse CURRENT_TBPMO_FILES_USER.Rows.Count = 0 Then
|
||||||
|
LOGGER.Info("frmWD_Index_Dokart_Load: Keine Dateien vorhanden - Formular wird geschlossen")
|
||||||
|
Me.Close()
|
||||||
|
Exit Sub
|
||||||
|
End If
|
||||||
|
|
||||||
Dim oHandleType As String
|
Dim oHandleType As String
|
||||||
For Each oRow As DataRow In CURRENT_TBPMO_FILES_USER.Rows
|
For Each oRow As DataRow In CURRENT_TBPMO_FILES_USER.Rows
|
||||||
If oRow.Item("GUID") = CURRENT_FILEID Then
|
If oRow.Item("GUID") = CURRENT_FILEID Then
|
||||||
CURRENT_FILENAME = oRow.Item("FILENAME2WORK")
|
CURRENT_FILENAME = oRow.Item("FILENAME2WORK")
|
||||||
oHandleType = oRow.Item("HANDLE_TYPE")
|
oHandleType = oRow.Item("HANDLE_TYPE")
|
||||||
FILE_HASH = oRow.Item("FILE_HASH")
|
FILE_HASH = oRow.Item("FILE_HASH")
|
||||||
|
Exit For ' ← Hinzugefügt: Schleife verlassen, wenn gefunden
|
||||||
End If
|
End If
|
||||||
Next
|
Next
|
||||||
|
|
||||||
If CURRENT_FILENAME = "" Then
|
If CURRENT_FILENAME = "" Then
|
||||||
MsgBox("Chekc the Temp Files Table, as it seems to be empty!", MsgBoxStyle.Exclamation)
|
LOGGER.Warn("Check the Temp Files Table, as it seems to be empty or CURRENT_FILEID not found!")
|
||||||
|
MsgBox("Check the Temp Files Table, as it seems to be empty!", MsgBoxStyle.Exclamation)
|
||||||
|
Me.Close() ' ← Formular schließen statt Exit Sub
|
||||||
Exit Sub
|
Exit Sub
|
||||||
End If
|
End If
|
||||||
MULTIFILES = 0
|
|
||||||
For Each row As DataRow In CURRENT_TBPMO_FILES_USER.Rows
|
' ── KORREKTUR: Zähle alle Dateien außer der aktuellen ──
|
||||||
If row.Item("GUID") <> CURRENT_FILEID Then
|
MULTIFILES = CURRENT_TBPMO_FILES_USER.Rows.Count - 1
|
||||||
MULTIFILES += 1
|
LOGGER.Debug($" MULTIFILES berechnet: Gesamt={CURRENT_TBPMO_FILES_USER.Rows.Count}, MULTIFILES={MULTIFILES}")
|
||||||
End If
|
|
||||||
Next
|
|
||||||
If MULTIFILES > 0 Then
|
If MULTIFILES > 0 Then
|
||||||
chkMultiIndexer.Text = "Multi-Indexing - Alle nachfolgenden Dateien (" & MULTIFILES & ") identisch indexieren"
|
chkMultiIndexer.Text = "Multi-Indexing - Alle nachfolgenden Dateien (" & MULTIFILES & ") identisch indexieren"
|
||||||
chkMultiIndexer.Visible = True
|
chkMultiIndexer.Visible = True
|
||||||
|
LOGGER.Debug($" chkMultiIndexer: Visible=True, Text={chkMultiIndexer.Text}")
|
||||||
Else
|
Else
|
||||||
chkMultiIndexer.Visible = False
|
chkMultiIndexer.Visible = False
|
||||||
|
LOGGER.Debug(" chkMultiIndexer: Visible=False (keine weiteren Dateien)")
|
||||||
End If
|
End If
|
||||||
|
|
||||||
aktFiledropped = CURRENT_FILENAME
|
aktFiledropped = CURRENT_FILENAME
|
||||||
txtFilepath.Text = aktFiledropped
|
txtFilepath.Text = aktFiledropped
|
||||||
|
|
||||||
If oHandleType = "@DROPFROMFSYSTEM@" Then
|
If oHandleType = "@DROPFROMFSYSTEM@" Then
|
||||||
droptype = "dragdrop file"
|
droptype = "dragdrop file"
|
||||||
chkdelete_origin.Visible = True
|
chkdelete_origin.Visible = True
|
||||||
@@ -1119,21 +1366,19 @@ Public Class frmWM_IndexFile
|
|||||||
ElseIf oHandleType = "SCAM" Then
|
ElseIf oHandleType = "SCAM" Then
|
||||||
droptype = "scan"
|
droptype = "scan"
|
||||||
End If
|
End If
|
||||||
Dim sql = String.Format("SELECT FORMVIEW_ID, FORM_ID, FORM_TITLE, DOKUMENTTYPE_ID, DOKUMENTTYPE, PATH, SHORTNAME, OBJECT_TYPE, FW_DOCTYPE_ID FROM VWPMO_DOKUMENTTYPES WHERE (FORMVIEW_ID = {0}) " &
|
|
||||||
"ORDER BY SEQUENCE, DOKUMENTTYPE", CURRENT_FORMVIEW_ID)
|
|
||||||
DTVWPMO_DOKUMENTTYPES = MYDB_ECM.GetDatatable(sql)
|
|
||||||
|
|
||||||
'VWPMO_DOKUMENTTYPESTableAdapter.Connection.ConnectionString = MYDB_ECM.CurrentConnectionString
|
Dim sql = String.Format("SELECT FORMVIEW_ID, FORM_ID, FORM_TITLE, DOKUMENTTYPE_ID, DOKUMENTTYPE, PATH, SHORTNAME, OBJECT_TYPE, FW_DOCTYPE_ID FROM VWPMO_DOKUMENTTYPES WHERE (FORMVIEW_ID = {0}) " &
|
||||||
'Me.VWPMO_DOKUMENTTYPESTableAdapter.Fill(Me.DD_DMSDataSet.VWPMO_DOKUMENTTYPES, CURRENT_FORMVIEW_ID)
|
"ORDER BY SEQUENCE, DOKUMENTTYPE", CURRENT_FORMVIEW_ID)
|
||||||
|
DTVWPMO_DOKUMENTTYPES = MYDB_ECM.GetDatatable(sql)
|
||||||
|
|
||||||
CURRENT_REDUNDANT_FORM_ID = 0
|
CURRENT_REDUNDANT_FORM_ID = 0
|
||||||
CURRENT_REDUNDANT_FORMVIEW_ID = 0
|
CURRENT_REDUNDANT_FORMVIEW_ID = 0
|
||||||
If DTVWPMO_DOKUMENTTYPES.Rows.Count = 0 Then ' DD_DMSDataSet.VWPMO_DOKUMENTTYPES.Rows.Count = 0 Then
|
If DTVWPMO_DOKUMENTTYPES.Rows.Count = 0 Then
|
||||||
If CURRENT_ENTITY_REDUNDANT_ID <> 0 Then
|
If CURRENT_ENTITY_REDUNDANT_ID <> 0 Then
|
||||||
Dim FVID = MYDB_ECM.GetScalarValue(String.Format("SELECT GUID FROM TBPMO_FORM_VIEW WHERE FORM_ID = {0} and SCREEN_ID = 1", CURRENT_ENTITY_REDUNDANT_ID), True)
|
Dim FVID = MYDB_ECM.GetScalarValue(String.Format("SELECT GUID FROM TBPMO_FORM_VIEW WHERE FORM_ID = {0} and SCREEN_ID = 1", CURRENT_ENTITY_REDUNDANT_ID), True)
|
||||||
'Me.VWPMO_DOKUMENTTYPESTableAdapter.Fill(Me.DD_DMSDataSet.VWPMO_DOKUMENTTYPES, FVID)
|
If DTVWPMO_DOKUMENTTYPES.Rows.Count = 0 Then
|
||||||
If DTVWPMO_DOKUMENTTYPES.Rows.Count = 0 Then 'DD_DMSDataSet.VWPMO_DOKUMENTTYPES.Rows.Count = 0 Then
|
|
||||||
MsgBox("No documenttypes for the redundant entity configured either! Indexing is not possible!" & vbCrLf & "Please check the configuration!", MsgBoxStyle.Exclamation)
|
MsgBox("No documenttypes for the redundant entity configured either! Indexing is not possible!" & vbCrLf & "Please check the configuration!", MsgBoxStyle.Exclamation)
|
||||||
|
Me.Close()
|
||||||
Exit Sub
|
Exit Sub
|
||||||
Else
|
Else
|
||||||
LOGGER.Debug("Redundant EntityID: " & CURRENT_ENTITY_REDUNDANT_ID)
|
LOGGER.Debug("Redundant EntityID: " & CURRENT_ENTITY_REDUNDANT_ID)
|
||||||
@@ -1144,12 +1389,15 @@ Public Class frmWM_IndexFile
|
|||||||
End If
|
End If
|
||||||
Else
|
Else
|
||||||
MsgBox("No documenttypes for this entity configured! Indexing is not possible!" & vbCrLf & "Please check the configuration!", MsgBoxStyle.Exclamation)
|
MsgBox("No documenttypes for this entity configured! Indexing is not possible!" & vbCrLf & "Please check the configuration!", MsgBoxStyle.Exclamation)
|
||||||
|
Me.Close()
|
||||||
Exit Sub
|
Exit Sub
|
||||||
End If
|
End If
|
||||||
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
|
LOGGER.Error($"Error in frmWD_Index_Dokart_Load: {ex.Message}")
|
||||||
MsgBox("Error in frmWD_Index_Dokart_Load:" & vbCrLf & ex.Message, MsgBoxStyle.Critical)
|
MsgBox("Error in frmWD_Index_Dokart_Load:" & vbCrLf & ex.Message, MsgBoxStyle.Critical)
|
||||||
|
Me.Close()
|
||||||
End Try
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
@@ -1202,29 +1450,63 @@ Public Class frmWM_IndexFile
|
|||||||
|
|
||||||
Private Sub frmWM_IndexFile_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing
|
Private Sub frmWM_IndexFile_Closing(sender As Object, e As CancelEventArgs) Handles Me.Closing
|
||||||
Try
|
Try
|
||||||
If IsNothing(CURRENT_FILEID) OrElse CURRENT_FILEID.ToString = "" Then
|
' ── Multi-Indexing-Flags zurücksetzen ──
|
||||||
Exit Sub
|
_multiIndexDecisionMade = False
|
||||||
|
_multiIndexOverwriteExisting = False
|
||||||
|
|
||||||
|
' ✅ WICHTIG: Liste NEU LADEN, bevor wir zählen!
|
||||||
|
LOGGER.Debug("=== CLOSING: Lade aktuelle Dateiliste ===")
|
||||||
|
ClassHelper.Create_USER_FILE_TABLE() ' ← Lädt CURRENT_TBPMO_FILES_USER NEU!
|
||||||
|
|
||||||
|
' ── Prüfen, ob noch Dateien zu verarbeiten sind ──
|
||||||
|
If CURRENT_TBPMO_FILES_USER IsNot Nothing AndAlso CURRENT_TBPMO_FILES_USER.Rows.Count > 0 Then
|
||||||
|
' Es gibt noch nicht verarbeitete Dateien → Benutzer fragen
|
||||||
|
LOGGER.Debug($"TBPMO_FILES_USER: Formular wird geschlossen, aber {CURRENT_TBPMO_FILES_USER.Rows.Count} Dateien sind noch vorhanden.")
|
||||||
|
|
||||||
|
Dim msg As String
|
||||||
|
Dim title As String
|
||||||
|
If USER_LANGUAGE <> "de-DE" Then
|
||||||
|
msg = $"There are still {CURRENT_TBPMO_FILES_USER.Rows.Count} unprocessed file(s)!" & vbCrLf & vbCrLf &
|
||||||
|
"Do you really want to cancel the import?" & vbCrLf & vbCrLf &
|
||||||
|
"YES → Cancel import and delete all pending files" & vbCrLf &
|
||||||
|
"NO → Continue indexing"
|
||||||
|
title = "Cancel Import?"
|
||||||
|
Else
|
||||||
|
msg = $"Es sind noch {CURRENT_TBPMO_FILES_USER.Rows.Count} nicht verarbeitete Datei(en) vorhanden!" & vbCrLf & vbCrLf &
|
||||||
|
"Möchten Sie den Import wirklich abbrechen?" & vbCrLf & vbCrLf &
|
||||||
|
"JA → Import abbrechen und alle ausstehenden Dateien löschen" & vbCrLf &
|
||||||
|
"NEIN → Indexierung fortsetzen"
|
||||||
|
title = "Import abbrechen?"
|
||||||
|
End If
|
||||||
|
|
||||||
|
Dim result As MsgBoxResult = MessageBox.Show(msg, title, MessageBoxButtons.YesNo, MessageBoxIcon.Warning)
|
||||||
|
|
||||||
|
If result = MsgBoxResult.No Then
|
||||||
|
' Benutzer will NICHT abbrechen → Formular-Schließen verhindern
|
||||||
|
LOGGER.Info("Benutzer hat Abbruch verhindert - Formular bleibt offen")
|
||||||
|
e.Cancel = True
|
||||||
|
Exit Sub
|
||||||
|
Else
|
||||||
|
' Benutzer will abbrechen → Alle Dateien löschen
|
||||||
|
LOGGER.Info("Benutzer hat Abbruch bestätigt - Lösche alle ausstehenden Dateien")
|
||||||
|
Dim oDelete = $"DELETE FROM TBPMO_FILES_USER WHERE USER_WORK = '{USER_USERNAME}' AND WORKED = 0"
|
||||||
|
MYDB_ECM.ExecuteNonQuery(oDelete)
|
||||||
|
LOGGER.Info($"TBPMO_FILES_USER: {CURRENT_TBPMO_FILES_USER.Rows.Count} nicht-verarbeitete Einträge wurden gelöscht (User: {USER_USERNAME})")
|
||||||
|
|
||||||
|
' ── WICHTIG: DataTable leeren, damit Load-Event korrekt reagiert ──
|
||||||
|
CURRENT_TBPMO_FILES_USER.Clear()
|
||||||
|
LOGGER.Debug("CURRENT_TBPMO_FILES_USER wurde geleert")
|
||||||
|
End If
|
||||||
|
Else
|
||||||
|
' Keine Dateien mehr vorhanden → Normal schließen, aufräumen
|
||||||
|
LOGGER.Debug("Keine ausstehenden Dateien mehr vorhanden ")
|
||||||
|
|
||||||
End If
|
End If
|
||||||
|
|
||||||
' Direkt in der DB prüfen – nicht auf das Flag FILE_WORKED verlassen
|
|
||||||
Dim checkSql = $"SELECT WORKED FROM TBPMO_FILES_USER WHERE GUID = {CURRENT_FILEID}"
|
|
||||||
Dim workedValue = MYDB_ECM.GetScalarValue(checkSql)
|
|
||||||
|
|
||||||
If IsNothing(workedValue) OrElse IsDBNull(workedValue) Then
|
|
||||||
' Datensatz existiert nicht mehr – kein Löschen notwendig
|
|
||||||
Exit Sub
|
|
||||||
End If
|
|
||||||
|
|
||||||
If CBool(workedValue) = False Then
|
|
||||||
Dim oDelete = $"DELETE FROM TBPMO_FILES_USER WHERE GUID = {CURRENT_FILEID} AND WORKED = 0"
|
|
||||||
MYDB_ECM.ExecuteNonQuery(oDelete)
|
|
||||||
LOGGER.Info($"TBPMO_FILES_USER: Eintrag GUID={CURRENT_FILEID} gelöscht (nicht verarbeitet).")
|
|
||||||
End If
|
|
||||||
Catch ex As Exception
|
Catch ex As Exception
|
||||||
LOGGER.Warn($"Fehler beim Bereinigen von TBPMO_FILES_USER (Closing): {ex.Message}")
|
LOGGER.Warn($"Fehler beim Bereinigen von TBPMO_FILES_USER (Closing): {ex.Message}")
|
||||||
End Try
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
Private Sub frmWM_IndexFile_Closed(sender As Object, e As EventArgs) Handles Me.Closed
|
Private Sub frmWM_IndexFile_Closed(sender As Object, e As EventArgs) Handles Me.Closed
|
||||||
Try
|
Try
|
||||||
Cursor = Cursors.Default
|
Cursor = Cursors.Default
|
||||||
@@ -1232,4 +1514,8 @@ Public Class frmWM_IndexFile
|
|||||||
|
|
||||||
End Try
|
End Try
|
||||||
End Sub
|
End Sub
|
||||||
|
|
||||||
|
Private Sub chkMultiIndexer_CheckedChanged(sender As Object, e As EventArgs) Handles chkMultiIndexer.CheckedChanged
|
||||||
|
LOGGER.Debug($"chkMultiIndexer.CheckedChanged: {chkMultiIndexer.Checked}")
|
||||||
|
End Sub
|
||||||
End Class
|
End Class
|
||||||
@@ -9,6 +9,8 @@ Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "RecordOrganizer_RightManage
|
|||||||
EndProject
|
EndProject
|
||||||
Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "Setup_NoUpdaterVS19", "Setup_NoUpdaterVS19\Setup_NoUpdaterVS19.wixproj", "{A7F7585A-C46A-4436-9F6E-17629325CE58}"
|
Project("{930C7802-8A8C-48F9-8165-68863BCCD9DD}") = "Setup_NoUpdaterVS19", "Setup_NoUpdaterVS19\Setup_NoUpdaterVS19.wixproj", "{A7F7585A-C46A-4436-9F6E-17629325CE58}"
|
||||||
EndProject
|
EndProject
|
||||||
|
Project("{F184B08F-C81C-45F6-A57F-5ABD9991F28F}") = "Windream", "..\..\..\2_DLL Projekte\DDModules\Windream\Windream.vbproj", "{C602BA85-5E75-6E19-C485-79D912038170}"
|
||||||
|
EndProject
|
||||||
Global
|
Global
|
||||||
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
GlobalSection(SolutionConfigurationPlatforms) = preSolution
|
||||||
CD_ROM|Any CPU = CD_ROM|Any CPU
|
CD_ROM|Any CPU = CD_ROM|Any CPU
|
||||||
@@ -141,6 +143,46 @@ Global
|
|||||||
{A7F7585A-C46A-4436-9F6E-17629325CE58}.SingleImage|x64.Build.0 = Release|x86
|
{A7F7585A-C46A-4436-9F6E-17629325CE58}.SingleImage|x64.Build.0 = Release|x86
|
||||||
{A7F7585A-C46A-4436-9F6E-17629325CE58}.SingleImage|x86.ActiveCfg = Release|x86
|
{A7F7585A-C46A-4436-9F6E-17629325CE58}.SingleImage|x86.ActiveCfg = Release|x86
|
||||||
{A7F7585A-C46A-4436-9F6E-17629325CE58}.SingleImage|x86.Build.0 = Release|x86
|
{A7F7585A-C46A-4436-9F6E-17629325CE58}.SingleImage|x86.Build.0 = Release|x86
|
||||||
|
{C602BA85-5E75-6E19-C485-79D912038170}.CD_ROM|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{C602BA85-5E75-6E19-C485-79D912038170}.CD_ROM|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{C602BA85-5E75-6E19-C485-79D912038170}.CD_ROM|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||||
|
{C602BA85-5E75-6E19-C485-79D912038170}.CD_ROM|Mixed Platforms.Build.0 = Release|Any CPU
|
||||||
|
{C602BA85-5E75-6E19-C485-79D912038170}.CD_ROM|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{C602BA85-5E75-6E19-C485-79D912038170}.CD_ROM|x64.Build.0 = Release|Any CPU
|
||||||
|
{C602BA85-5E75-6E19-C485-79D912038170}.CD_ROM|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{C602BA85-5E75-6E19-C485-79D912038170}.CD_ROM|x86.Build.0 = Release|Any CPU
|
||||||
|
{C602BA85-5E75-6E19-C485-79D912038170}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
|
||||||
|
{C602BA85-5E75-6E19-C485-79D912038170}.Debug|Any CPU.Build.0 = Debug|Any CPU
|
||||||
|
{C602BA85-5E75-6E19-C485-79D912038170}.Debug|Mixed Platforms.ActiveCfg = Debug|Any CPU
|
||||||
|
{C602BA85-5E75-6E19-C485-79D912038170}.Debug|Mixed Platforms.Build.0 = Debug|Any CPU
|
||||||
|
{C602BA85-5E75-6E19-C485-79D912038170}.Debug|x64.ActiveCfg = Debug|Any CPU
|
||||||
|
{C602BA85-5E75-6E19-C485-79D912038170}.Debug|x64.Build.0 = Debug|Any CPU
|
||||||
|
{C602BA85-5E75-6E19-C485-79D912038170}.Debug|x86.ActiveCfg = Debug|Any CPU
|
||||||
|
{C602BA85-5E75-6E19-C485-79D912038170}.Debug|x86.Build.0 = Debug|Any CPU
|
||||||
|
{C602BA85-5E75-6E19-C485-79D912038170}.DVD-5|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{C602BA85-5E75-6E19-C485-79D912038170}.DVD-5|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{C602BA85-5E75-6E19-C485-79D912038170}.DVD-5|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||||
|
{C602BA85-5E75-6E19-C485-79D912038170}.DVD-5|Mixed Platforms.Build.0 = Release|Any CPU
|
||||||
|
{C602BA85-5E75-6E19-C485-79D912038170}.DVD-5|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{C602BA85-5E75-6E19-C485-79D912038170}.DVD-5|x64.Build.0 = Release|Any CPU
|
||||||
|
{C602BA85-5E75-6E19-C485-79D912038170}.DVD-5|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{C602BA85-5E75-6E19-C485-79D912038170}.DVD-5|x86.Build.0 = Release|Any CPU
|
||||||
|
{C602BA85-5E75-6E19-C485-79D912038170}.Release|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{C602BA85-5E75-6E19-C485-79D912038170}.Release|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{C602BA85-5E75-6E19-C485-79D912038170}.Release|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||||
|
{C602BA85-5E75-6E19-C485-79D912038170}.Release|Mixed Platforms.Build.0 = Release|Any CPU
|
||||||
|
{C602BA85-5E75-6E19-C485-79D912038170}.Release|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{C602BA85-5E75-6E19-C485-79D912038170}.Release|x64.Build.0 = Release|Any CPU
|
||||||
|
{C602BA85-5E75-6E19-C485-79D912038170}.Release|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{C602BA85-5E75-6E19-C485-79D912038170}.Release|x86.Build.0 = Release|Any CPU
|
||||||
|
{C602BA85-5E75-6E19-C485-79D912038170}.SingleImage|Any CPU.ActiveCfg = Release|Any CPU
|
||||||
|
{C602BA85-5E75-6E19-C485-79D912038170}.SingleImage|Any CPU.Build.0 = Release|Any CPU
|
||||||
|
{C602BA85-5E75-6E19-C485-79D912038170}.SingleImage|Mixed Platforms.ActiveCfg = Release|Any CPU
|
||||||
|
{C602BA85-5E75-6E19-C485-79D912038170}.SingleImage|Mixed Platforms.Build.0 = Release|Any CPU
|
||||||
|
{C602BA85-5E75-6E19-C485-79D912038170}.SingleImage|x64.ActiveCfg = Release|Any CPU
|
||||||
|
{C602BA85-5E75-6E19-C485-79D912038170}.SingleImage|x64.Build.0 = Release|Any CPU
|
||||||
|
{C602BA85-5E75-6E19-C485-79D912038170}.SingleImage|x86.ActiveCfg = Release|Any CPU
|
||||||
|
{C602BA85-5E75-6E19-C485-79D912038170}.SingleImage|x86.Build.0 = Release|Any CPU
|
||||||
EndGlobalSection
|
EndGlobalSection
|
||||||
GlobalSection(SolutionProperties) = preSolution
|
GlobalSection(SolutionProperties) = preSolution
|
||||||
HideSolutionNode = FALSE
|
HideSolutionNode = FALSE
|
||||||
|
|||||||
Reference in New Issue
Block a user