lookupcontrol
This commit is contained in:
@@ -12,6 +12,7 @@ Imports System.Text.RegularExpressions
|
||||
Imports System.ComponentModel
|
||||
Imports DD_LIB_Standards
|
||||
Imports DigitalData.Controls.LookupGrid
|
||||
Imports System.Data.SqlClient
|
||||
|
||||
Public Class frmValidator
|
||||
Dim viewerID
|
||||
@@ -1669,8 +1670,8 @@ Public Class frmValidator
|
||||
Private Function Return_VektorArray(ByVal oDocument As WMObject, vktIndexName As String, NIIndexe As Object, CheckDuplikat As Boolean, vType As Object)
|
||||
Dim ValueArray()
|
||||
|
||||
Try
|
||||
Dim missing As Boolean = False
|
||||
' Try
|
||||
Dim missing As Boolean = False
|
||||
Dim Anzahl As Integer = 0
|
||||
|
||||
'Jeden Wert des Vektorfeldes durchlaufen
|
||||
@@ -1760,9 +1761,9 @@ Public Class frmValidator
|
||||
End If
|
||||
|
||||
Return ValueArray
|
||||
Catch ex As Exception
|
||||
Return valueArray
|
||||
End Try
|
||||
'Catch ex As Exception
|
||||
' Return ValueArray
|
||||
'End Try
|
||||
|
||||
|
||||
End Function
|
||||
@@ -2130,6 +2131,27 @@ Public Class frmValidator
|
||||
End If
|
||||
|
||||
End If
|
||||
Case "DigitalData.Controls.LookupGrid.LookupControl"
|
||||
Try
|
||||
Dim lookup As LookupControl = inctrl
|
||||
Dim wertWD = aktivesDokument.GetVariableValue(idxname)
|
||||
If wertWD.GetType.ToString.Contains("System.Object") Then
|
||||
Dim oArrlist As New List(Of String)
|
||||
For Each oVectorRow As Object In wertWD
|
||||
|
||||
oArrlist.Add(oVectorRow.ToString)
|
||||
Next
|
||||
lookup.SelectedValues = oArrlist
|
||||
|
||||
Else
|
||||
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
ClassLogger.Add(" - Unvorhergesehener Unexpected error in AddVorschlag_ComboBox - Indexname: " & indexname & " - Fehler: " & vbNewLine & ex.Message)
|
||||
MsgBox(ex.Message, MsgBoxStyle.Critical, "Unvorhergesehener Unexpected error in Add LookupControl:")
|
||||
End Try
|
||||
|
||||
Case "System.Windows.Forms.DateTimePicker"
|
||||
controltype = "DateTimePicker"
|
||||
Dim DTP As DateTimePicker = inctrl
|
||||
@@ -2239,272 +2261,272 @@ Public Class frmValidator
|
||||
'Eingaben auf Form überprüfen
|
||||
If Check_UpdateIndexe() = False Then
|
||||
'lblerror.Visible = False
|
||||
'Try
|
||||
Dim _error As Boolean = False
|
||||
Me.TBPM_PROFILE_FINAL_INDEXINGTableAdapter.Fill(Me.DD_DMSLiteDataSet.TBPM_PROFILE_FINAL_INDEXING, CURRENT_ProfilName)
|
||||
Dim dtfinal As DataTable = DD_DMSLiteDataSet.TBPM_PROFILE_FINAL_INDEXING
|
||||
If dtfinal.Rows.Count > 0 Then
|
||||
'Jetzt finale Indexe setzen
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Finale(r) Index(e) für Dok: " & aktivesDokument.aName & " soll gesetzt werden", False)
|
||||
For Each dr As DataRow In dtfinal.Rows
|
||||
Dim value As String = dr.Item("VALUE").ToString
|
||||
If value.ToUpper = "SQL-Command".ToUpper Then '###### Indexierung mit variablen SQL ###
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Indexierung mit dynamischem SQL!", False)
|
||||
Dim SQL_COMMAND = dr.Item("SQL_COMMAND")
|
||||
Try
|
||||
Dim _error As Boolean = False
|
||||
Me.TBPM_PROFILE_FINAL_INDEXINGTableAdapter.Fill(Me.DD_DMSLiteDataSet.TBPM_PROFILE_FINAL_INDEXING, CURRENT_ProfilName)
|
||||
Dim dtfinal As DataTable = DD_DMSLiteDataSet.TBPM_PROFILE_FINAL_INDEXING
|
||||
If dtfinal.Rows.Count > 0 Then
|
||||
'Jetzt finale Indexe setzen
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Finale(r) Index(e) für Dok: " & aktivesDokument.aName & " soll gesetzt werden", False)
|
||||
For Each dr As DataRow In dtfinal.Rows
|
||||
Dim value As String = dr.Item("VALUE").ToString
|
||||
If value.ToUpper = "SQL-Command".ToUpper Then '###### Indexierung mit variablen SQL ###
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Indexierung mit dynamischem SQL!", False)
|
||||
Dim SQL_COMMAND = dr.Item("SQL_COMMAND")
|
||||
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> SQL_COMMAND before ReplaceAllValues: " & SQL_COMMAND, False)
|
||||
SQL_COMMAND = clsPatterns.ReplaceAllValues(SQL_COMMAND, pnldesigner, aktivesDokument, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_EMAIL)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> SQL_COMMAND after ReplaceAllValues: " & SQL_COMMAND, False)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> SQL_COMMAND before ReplaceAllValues: " & SQL_COMMAND, False)
|
||||
SQL_COMMAND = clsPatterns.ReplaceAllValues(SQL_COMMAND, pnldesigner, aktivesDokument, USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_EMAIL)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> SQL_COMMAND after ReplaceAllValues: " & SQL_COMMAND, False)
|
||||
|
||||
'' Regulären Ausdruck zum Auslesen der Indexe definieren
|
||||
'Dim preg As String = "\[%{1}[a-zA-Z0-9\!\$\&\/\(\)\=\?\,\.\-\;\:_öÖüÜäÄ\#\'\+\*\~\{\}\@\€\<\>\ ]+]{1}"
|
||||
'' einen Regulären Ausdruck laden
|
||||
'Dim regulärerAusdruck As System.Text.RegularExpressions.Regex = New System.Text.RegularExpressions.Regex(preg)
|
||||
'' die Vorkommen im SQL-String auslesen
|
||||
'Dim elemente As System.Text.RegularExpressions.MatchCollection = regulärerAusdruck.Matches(SQL_COMMAND)
|
||||
''####
|
||||
'' alle Vorkommen innerhalbd er Namenkonvention durchlaufen
|
||||
'For Each element As System.Text.RegularExpressions.Match In elemente
|
||||
' Try
|
||||
' If LogErrorsOnly = False Then ClassLogger.Add(" >> element in RegeX: " & element.Value, False)
|
||||
' Dim WDINDEXNAME = element.Value.Substring(2, element.Value.Length - 3)
|
||||
' Dim wertWD = aktivesDokument.GetVariableValue(WDINDEXNAME)
|
||||
' If Not IsNothing(wertWD) Then
|
||||
' SQL_COMMAND = SQL_COMMAND.ToString.Replace(element.Value, wertWD)
|
||||
' Else
|
||||
' ClassLogger.Add(">> Achtung Indexwert ist nothing!", False)
|
||||
' End If
|
||||
' Catch ex As Exception
|
||||
' ClassLogger.Add("Unexpected Error in Checking control values for Variable SQL Result - ERROR: " & ex.Message)
|
||||
' End Try
|
||||
'Next
|
||||
'' Regulären Ausdruck zum Auslesen der Indexe definieren
|
||||
'Dim preg As String = "\[%{1}[a-zA-Z0-9\!\$\&\/\(\)\=\?\,\.\-\;\:_öÖüÜäÄ\#\'\+\*\~\{\}\@\€\<\>\ ]+]{1}"
|
||||
'' einen Regulären Ausdruck laden
|
||||
'Dim regulärerAusdruck As System.Text.RegularExpressions.Regex = New System.Text.RegularExpressions.Regex(preg)
|
||||
'' die Vorkommen im SQL-String auslesen
|
||||
'Dim elemente As System.Text.RegularExpressions.MatchCollection = regulärerAusdruck.Matches(SQL_COMMAND)
|
||||
''####
|
||||
'' alle Vorkommen innerhalbd er Namenkonvention durchlaufen
|
||||
'For Each element As System.Text.RegularExpressions.Match In elemente
|
||||
' Try
|
||||
' If LogErrorsOnly = False Then ClassLogger.Add(" >> element in RegeX: " & element.Value, False)
|
||||
' Dim WDINDEXNAME = element.Value.Substring(2, element.Value.Length - 3)
|
||||
' Dim wertWD = aktivesDokument.GetVariableValue(WDINDEXNAME)
|
||||
' If Not IsNothing(wertWD) Then
|
||||
' SQL_COMMAND = SQL_COMMAND.ToString.Replace(element.Value, wertWD)
|
||||
' Else
|
||||
' ClassLogger.Add(">> Achtung Indexwert ist nothing!", False)
|
||||
' End If
|
||||
' Catch ex As Exception
|
||||
' ClassLogger.Add("Unexpected Error in Checking control values for Variable SQL Result - ERROR: " & ex.Message)
|
||||
' End Try
|
||||
'Next
|
||||
|
||||
|
||||
|
||||
Dim dynamic_value = ClassDatabase.Execute_Scalar(SQL_COMMAND, MyConnectionString, True)
|
||||
Dim dynamic_value = ClassDatabase.Execute_Scalar(SQL_COMMAND, MyConnectionString, True)
|
||||
|
||||
If Not IsNothing(dynamic_value) Then
|
||||
If LogErrorsOnly = False Then ClassLogger.Add("DYNAMIC VALUE IS: " & dynamic_value.ToString, False)
|
||||
value = dynamic_value
|
||||
Else
|
||||
ClassLogger.Add("ATTENTION: DYNAMIC VALUE IS NOTHING!")
|
||||
End If
|
||||
Else
|
||||
If value.StartsWith("v") Then
|
||||
Select Case dr.Item("VALUE").ToString
|
||||
Case "vDate"
|
||||
value = Now.ToShortDateString
|
||||
Case "vUserName"
|
||||
value = Environment.UserName
|
||||
Case Else
|
||||
value = dr.Item("VALUE")
|
||||
End Select
|
||||
End If
|
||||
End If
|
||||
|
||||
Dim result() As String
|
||||
ReDim Preserve result(0)
|
||||
result(0) = value
|
||||
|
||||
If dr.Item("INDEXNAME").ToString.StartsWith("[%VKT") Then
|
||||
Dim PM_String = Return_PM_VEKTOR(value, dr.Item("INDEXNAME"))
|
||||
'Hier muss nun separat als Vektorfeld indexiert werden
|
||||
If Indexiere_VektorfeldPM(PM_String, PROFIL_VEKTORINDEX) = False Then
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> FINALER INDEX '" & dr.Item("INDEXNAME").ToString.Replace("[%VKT", "") & "' WURDE ERFOLGREICH GESETZT", False)
|
||||
Else
|
||||
errormessage = "Fehler beim finalen Indexieren:" & vbNewLine & idxerr_message
|
||||
My.Settings.Save()
|
||||
frmError.ShowDialog()
|
||||
_error = True
|
||||
End If
|
||||
Else
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Jetzt das indexieren", False)
|
||||
If Indexiere_File(aktivesDokument, dr.Item("INDEXNAME"), result) = True Then
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> FINALER INDEX '" & dr.Item("INDEXNAME") & "' WURDE ERFOLGREICH GESETZT", False)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add("")
|
||||
'Nun das Logging
|
||||
If PROFIL_LOGINDEX <> "" Then
|
||||
Dim logstr = Return_LOGString(value, "DDFINALINDEX", dr.Item("INDEXNAME"))
|
||||
Indexiere_VektorfeldPM(logstr, PROFIL_LOGINDEX)
|
||||
If Not IsNothing(dynamic_value) Then
|
||||
If LogErrorsOnly = False Then ClassLogger.Add("DYNAMIC VALUE IS: " & dynamic_value.ToString, False)
|
||||
value = dynamic_value
|
||||
Else
|
||||
ClassLogger.Add("ATTENTION: DYNAMIC VALUE IS NOTHING!")
|
||||
End If
|
||||
|
||||
Else
|
||||
errormessage = "Fehler beim finalen Indexieren:" & vbNewLine & idxerr_message
|
||||
My.Settings.Save()
|
||||
frmError.ShowDialog()
|
||||
_error = True
|
||||
If value.StartsWith("v") Then
|
||||
Select Case dr.Item("VALUE").ToString
|
||||
Case "vDate"
|
||||
value = Now.ToShortDateString
|
||||
Case "vUserName"
|
||||
value = Environment.UserName
|
||||
Case Else
|
||||
value = dr.Item("VALUE")
|
||||
End Select
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
If _error = True Then
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
'Wenn kein Fehler nach der finalen Indexierung gesetzt wurde
|
||||
|
||||
If _error = False Then
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Tabelle updaten und co", False)
|
||||
'Das Dokument freigeben und als editiert markieren
|
||||
Dim sql = String.Format("UPDATE TBPM_PROFILE_FILES SET IN_WORK = 0, WORK_USER = '{0}', EDIT = 1 WHERE GUID = {1}", Environment.UserName, CURRENT_DOC_GUID)
|
||||
ClassDatabase.Execute_non_Query(sql)
|
||||
'TBPM_PROFILE_FILESTableAdapter.CmdSETWORK(False, "", Document_ID)
|
||||
''Das Dokument
|
||||
'TBPM_PROFILE_FILESTableAdapter.CmdSetEdit(Document_ID)
|
||||
Dim WORK_HISTORY_ENTRY = Nothing
|
||||
Dim result() As String
|
||||
ReDim Preserve result(0)
|
||||
result(0) = value
|
||||
|
||||
Try
|
||||
WORK_HISTORY_ENTRY = CURRENT_DT_PROFILE.Rows(0).Item("WORK_HISTORY_ENTRY")
|
||||
If IsDBNull(WORK_HISTORY_ENTRY) Then
|
||||
If dr.Item("INDEXNAME").ToString.StartsWith("[%VKT") Then
|
||||
Dim PM_String = Return_PM_VEKTOR(value, dr.Item("INDEXNAME"))
|
||||
'Hier muss nun separat als Vektorfeld indexiert werden
|
||||
If Indexiere_VektorfeldPM(PM_String, PROFIL_VEKTORINDEX) = False Then
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> FINALER INDEX '" & dr.Item("INDEXNAME").ToString.Replace("[%VKT", "") & "' WURDE ERFOLGREICH GESETZT", False)
|
||||
Else
|
||||
errormessage = "Fehler beim finalen Indexieren:" & vbNewLine & idxerr_message
|
||||
My.Settings.Save()
|
||||
frmError.ShowDialog()
|
||||
_error = True
|
||||
End If
|
||||
Else
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Jetzt das indexieren", False)
|
||||
If Indexiere_File(aktivesDokument, dr.Item("INDEXNAME"), result) = True Then
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> FINALER INDEX '" & dr.Item("INDEXNAME") & "' WURDE ERFOLGREICH GESETZT", False)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add("")
|
||||
'Nun das Logging
|
||||
If PROFIL_LOGINDEX <> "" Then
|
||||
Dim logstr = Return_LOGString(value, "DDFINALINDEX", dr.Item("INDEXNAME"))
|
||||
Indexiere_VektorfeldPM(logstr, PROFIL_LOGINDEX)
|
||||
End If
|
||||
|
||||
Else
|
||||
errormessage = "Fehler beim finalen Indexieren:" & vbNewLine & idxerr_message
|
||||
My.Settings.Save()
|
||||
frmError.ShowDialog()
|
||||
_error = True
|
||||
End If
|
||||
End If
|
||||
If _error = True Then
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
End If
|
||||
'Wenn kein Fehler nach der finalen Indexierung gesetzt wurde
|
||||
|
||||
If _error = False Then
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Tabelle updaten und co", False)
|
||||
'Das Dokument freigeben und als editiert markieren
|
||||
Dim sql = String.Format("UPDATE TBPM_PROFILE_FILES SET IN_WORK = 0, WORK_USER = '{0}', EDIT = 1 WHERE GUID = {1}", Environment.UserName, CURRENT_DOC_GUID)
|
||||
ClassDatabase.Execute_non_Query(sql)
|
||||
'TBPM_PROFILE_FILESTableAdapter.CmdSETWORK(False, "", Document_ID)
|
||||
''Das Dokument
|
||||
'TBPM_PROFILE_FILESTableAdapter.CmdSetEdit(Document_ID)
|
||||
Dim WORK_HISTORY_ENTRY = Nothing
|
||||
|
||||
Try
|
||||
WORK_HISTORY_ENTRY = CURRENT_DT_PROFILE.Rows(0).Item("WORK_HISTORY_ENTRY")
|
||||
If IsDBNull(WORK_HISTORY_ENTRY) Then
|
||||
WORK_HISTORY_ENTRY = Nothing
|
||||
End If
|
||||
Catch ex As Exception
|
||||
WORK_HISTORY_ENTRY = Nothing
|
||||
End If
|
||||
Catch ex As Exception
|
||||
WORK_HISTORY_ENTRY = Nothing
|
||||
End Try
|
||||
End Try
|
||||
|
||||
|
||||
If Not IsNothing(WORK_HISTORY_ENTRY) Then
|
||||
If WORK_HISTORY_ENTRY <> String.Empty Then
|
||||
Dim preg As String = "\[%{1}[a-zA-Z0-9\!\$\&\/\(\)\=\?\,\.\-\;\:_öÖüÜäÄ\#\'\+\*\~\{\}\@\€\<\>\ ]+]{1}"
|
||||
' einen Regulären Ausdruck laden
|
||||
Dim regulärerAusdruck As System.Text.RegularExpressions.Regex = New System.Text.RegularExpressions.Regex(preg)
|
||||
' die Vorkommen im SQL-String auslesen
|
||||
Dim elemente As System.Text.RegularExpressions.MatchCollection = regulärerAusdruck.Matches(WORK_HISTORY_ENTRY)
|
||||
'####
|
||||
' alle Vorkommen innerhalbd er Namenkonvention durchlaufen
|
||||
For Each element As System.Text.RegularExpressions.Match In elemente
|
||||
Try
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> element in RegeX WORK_HISTORY_ENTRY: " & element.Value, False)
|
||||
Dim CTRL_ID = element.Value.Substring(2, element.Value.Length - 3)
|
||||
CTRL_ID = CTRL_ID.Replace("CTRLID", "")
|
||||
Dim value_from_control
|
||||
For Each inctrl As Control In Me.pnldesigner.Controls
|
||||
If IsNothing(inctrl.Tag) Then
|
||||
Continue For
|
||||
End If
|
||||
If inctrl.Tag = CTRL_ID Then
|
||||
'######
|
||||
Dim Type As String = inctrl.GetType.ToString
|
||||
Select Case Type
|
||||
Case "System.Windows.Forms.TextBox"
|
||||
Try
|
||||
value_from_control = inctrl.Text
|
||||
Catch ex As Exception
|
||||
value_from_control = String.Empty
|
||||
End Try
|
||||
|
||||
Case "System.Windows.Forms.ComboBox"
|
||||
Dim cmb As ComboBox = inctrl
|
||||
Try
|
||||
value_from_control = cmb.Text
|
||||
Catch ex As Exception
|
||||
value_from_control = String.Empty
|
||||
End Try
|
||||
Case "System.Windows.Forms.DateTimePicker"
|
||||
Dim dtp As DateTimePicker = inctrl
|
||||
Try
|
||||
value_from_control = dtp.Value.ToString
|
||||
Catch ex As Exception
|
||||
value_from_control = String.Empty
|
||||
End Try
|
||||
|
||||
Case "System.Windows.Forms.CheckBox"
|
||||
Dim chk As CheckBox = inctrl
|
||||
Try
|
||||
value_from_control = chk.Checked
|
||||
Catch ex As Exception
|
||||
value_from_control = String.Empty
|
||||
End Try
|
||||
End Select
|
||||
|
||||
End If
|
||||
Next
|
||||
If Not IsNothing(value_from_control) And value_from_control <> String.Empty Then
|
||||
WORK_HISTORY_ENTRY = WORK_HISTORY_ENTRY.ToString.Replace(element.Value, value_from_control)
|
||||
End If
|
||||
Catch ex As Exception
|
||||
ClassLogger.Add("Unexpected Error in Checking control values for WORK_HISTORY_ENTRY - ERROR: " & ex.Message)
|
||||
End Try
|
||||
Next
|
||||
If WORK_HISTORY_ENTRY.ToString.Contains("@DATE") Then
|
||||
WORK_HISTORY_ENTRY.ToString.Replace("@DATE", Now.ToShortDateString)
|
||||
End If
|
||||
If WORK_HISTORY_ENTRY.ToString.Contains("@USERNAME") Then
|
||||
WORK_HISTORY_ENTRY.ToString.Replace("@USERNAME", Environment.UserName)
|
||||
End If
|
||||
Else
|
||||
WORK_HISTORY_ENTRY = ""
|
||||
End If
|
||||
End If
|
||||
Dim ins = String.Format("INSERT INTO TBPM_FILES_WORK_HISTORY (PROFIL_ID, DOC_ID,WORKED_BY,WORKED_WHERE,STATUS_COMMENT) VALUES ({0},{1},'{2}','{3}','{4}')", CURRENT_ProfilGUID, CURRENT_DOC_ID, Environment.UserName, Environment.MachineName, WORK_HISTORY_ENTRY)
|
||||
ClassDatabase.Execute_non_Query(ins)
|
||||
|
||||
Close_document_viewer()
|
||||
If Document_Path.ToLower.EndsWith(".pdf") Then
|
||||
If Not IsNothing(WORK_HISTORY_ENTRY) Then
|
||||
If CBool(CURRENT_DT_PROFILE.Rows(0).Item("ANNOTATE_WORK_HISTORY_ENTRY")) = True Then
|
||||
sql = String.Format("SELECT * FROM TBPM_FILES_WORK_HISTORY WHERE GUID = (SELECT MAX(GUID) FROM TBPM_FILES_WORK_HISTORY WHERE PROFIL_ID = {0} AND DOC_ID = {1})", CURRENT_ProfilGUID, CURRENT_DOC_ID)
|
||||
Dim DT_ENTRY As DataTable = ClassDatabase.Return_Datatable(sql, True)
|
||||
If Not IsNothing(DT_ENTRY) Then
|
||||
If DT_ENTRY.Rows.Count = 1 Then
|
||||
Dim AnnotationString = DT_ENTRY.Rows(0).Item("WORKED_WHEN") & " " & DT_ENTRY.Rows(0).Item("WORKED_BY") & ": " & DT_ENTRY.Rows(0).Item("STATUS_COMMENT")
|
||||
ClassAnnotation.Annotate_PDF("Workflow-State:", AnnotationString, 0)
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
Dim value = CURRENT_DT_PROFILE.Rows(0).Item("ANNOTATE_ALL_WORK_HISTORY_ENTRIES")
|
||||
If CBool(value) = True Then
|
||||
sql = String.Format("SELECT * FROM TBPM_FILES_WORK_HISTORY WHERE DOC_ID = {1} ORDER BY GUID", CURRENT_ProfilGUID, CURRENT_DOC_ID)
|
||||
Dim DT_ENTRIES As DataTable = ClassDatabase.Return_Datatable(sql, True)
|
||||
If Not IsNothing(DT_ENTRIES) Then
|
||||
If DT_ENTRIES.Rows.Count > 0 Then
|
||||
Dim AnnotationString As String = ""
|
||||
For Each rw As DataRow In DT_ENTRIES.Rows
|
||||
AnnotationString = AnnotationString & rw.Item("WORKED_WHEN") & " " & rw.Item("WORKED_BY") & ": " & rw.Item("STATUS_COMMENT") & vbNewLine
|
||||
If WORK_HISTORY_ENTRY <> String.Empty Then
|
||||
Dim preg As String = "\[%{1}[a-zA-Z0-9\!\$\&\/\(\)\=\?\,\.\-\;\:_öÖüÜäÄ\#\'\+\*\~\{\}\@\€\<\>\ ]+]{1}"
|
||||
' einen Regulären Ausdruck laden
|
||||
Dim regulärerAusdruck As System.Text.RegularExpressions.Regex = New System.Text.RegularExpressions.Regex(preg)
|
||||
' die Vorkommen im SQL-String auslesen
|
||||
Dim elemente As System.Text.RegularExpressions.MatchCollection = regulärerAusdruck.Matches(WORK_HISTORY_ENTRY)
|
||||
'####
|
||||
' alle Vorkommen innerhalbd er Namenkonvention durchlaufen
|
||||
For Each element As System.Text.RegularExpressions.Match In elemente
|
||||
Try
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> element in RegeX WORK_HISTORY_ENTRY: " & element.Value, False)
|
||||
Dim CTRL_ID = element.Value.Substring(2, element.Value.Length - 3)
|
||||
CTRL_ID = CTRL_ID.Replace("CTRLID", "")
|
||||
Dim value_from_control
|
||||
For Each inctrl As Control In Me.pnldesigner.Controls
|
||||
If IsNothing(inctrl.Tag) Then
|
||||
Continue For
|
||||
End If
|
||||
If inctrl.Tag = CTRL_ID Then
|
||||
'######
|
||||
Dim Type As String = inctrl.GetType.ToString
|
||||
Select Case Type
|
||||
Case "System.Windows.Forms.TextBox"
|
||||
Try
|
||||
value_from_control = inctrl.Text
|
||||
Catch ex As Exception
|
||||
value_from_control = String.Empty
|
||||
End Try
|
||||
|
||||
Case "System.Windows.Forms.ComboBox"
|
||||
Dim cmb As ComboBox = inctrl
|
||||
Try
|
||||
value_from_control = cmb.Text
|
||||
Catch ex As Exception
|
||||
value_from_control = String.Empty
|
||||
End Try
|
||||
Case "System.Windows.Forms.DateTimePicker"
|
||||
Dim dtp As DateTimePicker = inctrl
|
||||
Try
|
||||
value_from_control = dtp.Value.ToString
|
||||
Catch ex As Exception
|
||||
value_from_control = String.Empty
|
||||
End Try
|
||||
|
||||
Case "System.Windows.Forms.CheckBox"
|
||||
Dim chk As CheckBox = inctrl
|
||||
Try
|
||||
value_from_control = chk.Checked
|
||||
Catch ex As Exception
|
||||
value_from_control = String.Empty
|
||||
End Try
|
||||
End Select
|
||||
|
||||
End If
|
||||
Next
|
||||
ClassAnnotation.Annotate_PDF("Workflow History:", AnnotationString, 0, 10, 40)
|
||||
If Not IsNothing(value_from_control) And value_from_control <> String.Empty Then
|
||||
WORK_HISTORY_ENTRY = WORK_HISTORY_ENTRY.ToString.Replace(element.Value, value_from_control)
|
||||
End If
|
||||
Catch ex As Exception
|
||||
ClassLogger.Add("Unexpected Error in Checking control values for WORK_HISTORY_ENTRY - ERROR: " & ex.Message)
|
||||
End Try
|
||||
Next
|
||||
If WORK_HISTORY_ENTRY.ToString.Contains("@DATE") Then
|
||||
WORK_HISTORY_ENTRY.ToString.Replace("@DATE", Now.ToShortDateString)
|
||||
End If
|
||||
If WORK_HISTORY_ENTRY.ToString.Contains("@USERNAME") Then
|
||||
WORK_HISTORY_ENTRY.ToString.Replace("@USERNAME", Environment.UserName)
|
||||
End If
|
||||
Else
|
||||
WORK_HISTORY_ENTRY = ""
|
||||
End If
|
||||
End If
|
||||
Dim ins = String.Format("INSERT INTO TBPM_FILES_WORK_HISTORY (PROFIL_ID, DOC_ID,WORKED_BY,WORKED_WHERE,STATUS_COMMENT) VALUES ({0},{1},'{2}','{3}','{4}')", CURRENT_ProfilGUID, CURRENT_DOC_ID, Environment.UserName, Environment.MachineName, WORK_HISTORY_ENTRY)
|
||||
ClassDatabase.Execute_non_Query(ins)
|
||||
|
||||
Close_document_viewer()
|
||||
If Document_Path.ToLower.EndsWith(".pdf") Then
|
||||
If Not IsNothing(WORK_HISTORY_ENTRY) Then
|
||||
If CBool(CURRENT_DT_PROFILE.Rows(0).Item("ANNOTATE_WORK_HISTORY_ENTRY")) = True Then
|
||||
sql = String.Format("SELECT * FROM TBPM_FILES_WORK_HISTORY WHERE GUID = (SELECT MAX(GUID) FROM TBPM_FILES_WORK_HISTORY WHERE PROFIL_ID = {0} AND DOC_ID = {1})", CURRENT_ProfilGUID, CURRENT_DOC_ID)
|
||||
Dim DT_ENTRY As DataTable = ClassDatabase.Return_Datatable(sql, True)
|
||||
If Not IsNothing(DT_ENTRY) Then
|
||||
If DT_ENTRY.Rows.Count = 1 Then
|
||||
Dim AnnotationString = DT_ENTRY.Rows(0).Item("WORKED_WHEN") & " " & DT_ENTRY.Rows(0).Item("WORKED_BY") & ": " & DT_ENTRY.Rows(0).Item("STATUS_COMMENT")
|
||||
ClassAnnotation.Annotate_PDF("Workflow-State:", AnnotationString, 0)
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
Dim value = CURRENT_DT_PROFILE.Rows(0).Item("ANNOTATE_ALL_WORK_HISTORY_ENTRIES")
|
||||
If CBool(value) = True Then
|
||||
sql = String.Format("SELECT * FROM TBPM_FILES_WORK_HISTORY WHERE DOC_ID = {1} ORDER BY GUID", CURRENT_ProfilGUID, CURRENT_DOC_ID)
|
||||
Dim DT_ENTRIES As DataTable = ClassDatabase.Return_Datatable(sql, True)
|
||||
If Not IsNothing(DT_ENTRIES) Then
|
||||
If DT_ENTRIES.Rows.Count > 0 Then
|
||||
Dim AnnotationString As String = ""
|
||||
For Each rw As DataRow In DT_ENTRIES.Rows
|
||||
AnnotationString = AnnotationString & rw.Item("WORKED_WHEN") & " " & rw.Item("WORKED_BY") & ": " & rw.Item("STATUS_COMMENT") & vbNewLine
|
||||
Next
|
||||
ClassAnnotation.Annotate_PDF("Workflow History:", AnnotationString, 0, 10, 40)
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
|
||||
'wenn Move2Folder aktiviert wurde
|
||||
If Move2Folder <> "" Then
|
||||
idxerr_message = allgFunk.Move2Folder(Document_Path, Move2Folder, CURRENT_ProfilGUID, _windream)
|
||||
If idxerr_message <> "" Then
|
||||
errormessage = "Fehler bei Move2Folder:" & vbNewLine & idxerr_message
|
||||
My.Settings.Save()
|
||||
frmError.ShowDialog()
|
||||
_error = True
|
||||
'wenn Move2Folder aktiviert wurde
|
||||
If Move2Folder <> "" Then
|
||||
idxerr_message = allgFunk.Move2Folder(Document_Path, Move2Folder, CURRENT_ProfilGUID, _windream)
|
||||
If idxerr_message <> "" Then
|
||||
errormessage = "Fehler bei Move2Folder:" & vbNewLine & idxerr_message
|
||||
My.Settings.Save()
|
||||
frmError.ShowDialog()
|
||||
_error = True
|
||||
End If
|
||||
End If
|
||||
'Validierungsfile löschen wenn vorhanden
|
||||
allgFunk.Delete_xffres(Document_Path, _windream)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Delete_xffres ausgeführt", False)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> All Input clear", False)
|
||||
Anzahl_validierte_Dok += 1
|
||||
'tstrlbl_Info.Text = "Anzahl Dateien: " & TBPM_PROFILE_FILESTableAdapter.cmdGet_Anzahl(PROFIL_ID)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Anzahl hochgesetzt", False)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Validierung erfolgreich abgeschlossen", False)
|
||||
ClassLogger.Add("", False)
|
||||
If CURRENT_JUMP_DOC_GUID <> 0 Then
|
||||
Me.Close()
|
||||
Else
|
||||
'Das nächste Dokument laden
|
||||
Load_Next_Document(False)
|
||||
|
||||
set_foreground()
|
||||
If first_control Is Nothing = False Then first_control.Focus()
|
||||
End If
|
||||
End If
|
||||
'Validierungsfile löschen wenn vorhanden
|
||||
allgFunk.Delete_xffres(Document_Path, _windream)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Delete_xffres ausgeführt", False)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> All Input clear", False)
|
||||
Anzahl_validierte_Dok += 1
|
||||
'tstrlbl_Info.Text = "Anzahl Dateien: " & TBPM_PROFILE_FILESTableAdapter.cmdGet_Anzahl(PROFIL_ID)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Anzahl hochgesetzt", False)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Validierung erfolgreich abgeschlossen", False)
|
||||
ClassLogger.Add("", False)
|
||||
If CURRENT_JUMP_DOC_GUID <> 0 Then
|
||||
Me.Close()
|
||||
Else
|
||||
'Das nächste Dokument laden
|
||||
Load_Next_Document(False)
|
||||
|
||||
set_foreground()
|
||||
If first_control Is Nothing = False Then first_control.Focus()
|
||||
End If
|
||||
|
||||
End If
|
||||
|
||||
'Catch ex As Exception
|
||||
' errormessage = "Unvorhergesehener Fehler bei Abschluss:" & ex.Message
|
||||
' My.Settings.Save()
|
||||
' frmError.ShowDialog()
|
||||
' ClassLogger.Add(">> Unvorhergesehener Fehler bei Abschluss: " & ex.Message, True)
|
||||
'End Try
|
||||
Catch ex As Exception
|
||||
errormessage = "Unvorhergesehener Fehler bei Abschluss:" & ex.Message
|
||||
My.Settings.Save()
|
||||
frmError.ShowDialog()
|
||||
ClassLogger.Add(">> Unvorhergesehener Fehler bei Abschluss: " & ex.Message, True)
|
||||
End Try
|
||||
Else
|
||||
'lblerror.Visible = True
|
||||
'lblerror.Text = errmessage
|
||||
|
||||
Reference in New Issue
Block a user