finalize doc

This commit is contained in:
Digital Data - Marlon Schreiber 2019-04-11 11:00:54 +02:00
parent 04daefb3ba
commit 93716bcc96
6 changed files with 307 additions and 318 deletions

View File

@ -1,40 +1,48 @@
Public Class ClassFinalizeDoc
Public Shared Function Write_Final_Metadata()
Public Shared Function Write_Final_Metadata(WMObject As WINDREAMLib.WMObject)
Try
Dim _error As Boolean = False
If CURRENT_DT_FINAL_INDEXING Is Nothing Then
CURRENT_DT_FINAL_INDEXING = ClassDatabase.Return_Datatable(String.Format("select * from TBPM_PROFILE_FINAL_INDEXING where PROFIL_ID = {0}", CURRENT_ProfilGUID))
End If
If CURRENT_DT_FINAL_INDEXING.Rows.Count > 0 Then
'Jetzt finale Indexe setzen
If LogErrorsOnly = False Then ClassLogger.Add(" >> working final indices for doc: " & CURRENT_WMFILE.aName, False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> working final indices for doc: " & WMObject.aName, False)
For Each dr As DataRow In CURRENT_DT_FINAL_INDEXING.Rows
Dim value As String = dr.Item("VALUE").ToString
Dim INDEXNAME = dr.Item("INDEXNAME").ToString
If value.ToUpper = "SQL-Command".ToUpper Then '###### Indexierung mit variablen SQL ###
If LogErrorsOnly = False Then ClassLogger.Add(" >> indexing with dynamic sql...", False)
Dim SQL_COMMAND = dr.Item("SQL_COMMAND")
' 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 = CURRENT_WMFILE.GetVariableValue(WDINDEXNAME)
If Not IsNothing(wertWD) Then
SQL_COMMAND = SQL_COMMAND.ToString.Replace(element.Value, wertWD)
Else
ClassLogger.Add(">>Attention: indexvalue is invalid", 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 SQL_COMMAND = dr.Item("SQL_COMMAND")
'' 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 = WMObject.GetVariableValue(WDINDEXNAME)
' If Not IsNothing(wertWD) Then
' SQL_COMMAND = SQL_COMMAND.ToString.Replace(element.Value, wertWD)
' Else
' ClassLogger.Add(">>Attention: indexvalue is invalid", 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 sql_Statement = clsPatterns.ReplaceUserValues(dr.Item("SQL_COMMAND"), USER_PRENAME, USER_SURNAME, USER_SHORTNAME, USER_EMAIL)
sql_Statement = clsPatterns.ReplaceInternalValues(sql_Statement)
sql_Statement = clsPatterns.ReplaceWindreamIndicies(sql_Statement, WMObject)
If LogErrorsOnly = False Then ClassLogger.Add(">>> sql after ReplaceAllValues: " & sql_Statement, False)
Dim dynamic_value = ClassDatabase.Execute_Scalar(sql_Statement, MyConnectionString, True)
If Not IsNothing(dynamic_value) Then
value = dynamic_value
Else
@ -58,10 +66,10 @@
result(0) = value
Dim oIndexType = WINDREAM.GetTypeOfIndex(INDEXNAME)
If LogErrorsOnly = False Then ClassLogger.Add($" >> oIndexType {oIndexType.ToString}", False)
If oIndexType > 4000 And oIndexType < 5000 Then
Dim PM_String = Return_PM_VEKTOR(value, INDEXNAME)
'Hier muss nun separat als Vektorfeld indexiert werden
If Indexiere_VektorfeldPM(PM_String, CURRENT_PROFILE_VEKTOR_LOG) = False Then
If Indexiere_VektorfeldPM(value, INDEXNAME, WMObject) = False Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> FINALER INDEX '" & INDEXNAME.Replace("[%VKT", "") & "' WURDE ERFOLGREICH GESETZT", False)
Else
@ -71,13 +79,13 @@
End If
Else
If LogErrorsOnly = False Then ClassLogger.Add(" >> now indexing..", False)
If Indexiere_File(INDEXNAME, result) = True Then
If Indexiere_File(INDEXNAME, result, WMObject) = True Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> FINALER INDEX '" & INDEXNAME & "' WURDE ERFOLGREICH GESETZT", False)
If LogErrorsOnly = False Then ClassLogger.Add("")
'Nun das Logging
If CURRENT_PROFILE_VEKTOR_LOG <> "" Then
Dim logstr = Return_LOGString(value, "DDFINALINDEX", INDEXNAME)
Indexiere_VektorfeldPM(logstr, CURRENT_PROFILE_VEKTOR_LOG)
Indexiere_VektorfeldPM(logstr, CURRENT_PROFILE_VEKTOR_LOG, WMObject)
End If
Else
@ -103,52 +111,52 @@
End Try
End Function
Private Shared Function Indexiere_File(idxxname As String, idxvalue As Object)
Private Shared Function Indexiere_File(idxxname As String, idxvalue As Object, WMObject As WINDREAMLib.WMObject)
Dim File_indexiert As Boolean = False
Try
'Die Arrays vorbereiten
Dim arrIndex() As String = Nothing
Dim arrValue() As String = Nothing
arrIndex = Nothing
arrValue = Nothing
'Den Indexnamen übergeben
ReDim Preserve arrIndex(0)
arrIndex(0) = idxxname
'Das Array der Idnexwerte überprüfen
If idxvalue Is Nothing = False Then
If idxvalue.Length() > 1 Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> Indexing Index '" & idxxname & "' with Arrayvalue", False)
Dim anzahl As Integer = 0
For Each indexvalue As String In idxvalue
ReDim Preserve arrValue(anzahl)
arrValue(anzahl) = indexvalue
anzahl += 1
Next
Else
If LogErrorsOnly = False Then ClassLogger.Add(" >> Indexing Index '" & idxxname & "' with value '" & idxvalue(0) & "'", False)
ReDim Preserve arrValue(0)
arrValue(0) = idxvalue(0).ToString
End If
'Dim _windreamPM As New ClassPMWindream
'Jetzt das eigentliche Indexieren der Datei
File_indexiert = WINDREAM.RunIndexing(CURRENT_WMFILE, arrIndex, arrValue)
Return File_indexiert
' Try
'Die Arrays vorbereiten
Dim arrIndex() As String = Nothing
Dim arrValue() As String = Nothing
arrIndex = Nothing
arrValue = Nothing
'Den Indexnamen übergeben
ReDim Preserve arrIndex(0)
arrIndex(0) = idxxname
'Das Array der Idnexwerte überprüfen
If idxvalue Is Nothing = False Then
If idxvalue.Length() > 1 Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> Indexing Index '" & idxxname & "' with Arrayvalue", False)
Dim anzahl As Integer = 0
For Each indexvalue As String In idxvalue
ReDim Preserve arrValue(anzahl)
arrValue(anzahl) = indexvalue
anzahl += 1
Next
Else
If LogErrorsOnly = False Then ClassLogger.Add(" >> Indexing Index '" & idxxname & "' with value '" & idxvalue(0) & "'", False)
ReDim Preserve arrValue(0)
arrValue(0) = idxvalue(0).ToString
End If
'Dim _windreamPM As New ClassPMWindream
'Jetzt das eigentliche Indexieren der Datei
File_indexiert = WINDREAM.RunIndexing(WMObject, arrIndex, arrValue)
Catch ex As Exception
ClassLogger.Add(">> Unvorhergesehener Fehler bei Indexiere_File: " & ex.Message.ToString, True)
Return Err()
End Try
Return File_indexiert
End If
'Catch ex As Exception
' ClassLogger.Add(">> Unvorhergesehener Fehler bei Indexiere_File: " & ex.Message.ToString, True)
' Return Err()
'End Try
End Function
Private Shared Function Indexiere_VektorfeldPM(input As String, NameVectorfield As String)
Private Shared Function Indexiere_VektorfeldPM(input As String, NameVectorfield As String, WMObject As WINDREAMLib.WMObject)
Dim _success As Boolean = True
Dim Anzahl As Integer = 0
Dim myInputArr As String()
'Jeden Wert des Vektorfeldes durchlaufen
Dim wertWD = CURRENT_WMFILE.GetVariableValue(NameVectorfield)
Dim wertWD = WMObject.GetVariableValue(NameVectorfield)
If wertWD Is Nothing = False Then
'Es wird gegen ein Vektorfeld nachindexiert
If wertWD.GetType.ToString.Contains("System.Object") Then
@ -176,7 +184,7 @@
If myInputArr.Length > 0 Then
'Jetzt die Datei indexieren
If Indexiere_File(NameVectorfield, myInputArr) = False Then
If Indexiere_File(NameVectorfield, myInputArr, WMObject) = False Then
_success = False
'errmessage = "Fehler beim Indexieren Vektorfeld '" & NameVKTIndex & "' - ERROR: " & idxerr_message
End If

View File

@ -420,11 +420,11 @@ Public Class ClassPMWindream
End If
Catch ex As Exception
ClassLogger.Add("ClassSearchResult.RunIndexing - " & ex.Message, True)
frmValidator.idxerr_message = "Unvorhergesehener Fehler in Indexing: " & ex.Message & vbNewLine & "vType: " & vType.ToString
allgFunk.Insert_LogEntry(CURRENT_ProfilGUID, "Unvorhergesehener Fehler beim Indexieren der Datei: " & oDocument.aName & " - ERROR: " & ex.Message, Environment.UserName)
oDocument.Save()
oDocument.unlock()
Return False
frmValidator.idxerr_message = "Unvorhergesehener Fehler in Indexing: " & ex.Message & vbNewLine & "vType: " & vType.ToString
allgFunk.Insert_LogEntry(CURRENT_ProfilGUID, "Unvorhergesehener Fehler beim Indexieren der Datei: " & oDocument.aName & " - ERROR: " & ex.Message, Environment.UserName)
oDocument.Save()
oDocument.unlock()
Return False
End Try
End Function

View File

@ -31,5 +31,5 @@ Imports System.Runtime.InteropServices
' übernehmen, indem Sie "*" eingeben:
' <Assembly: AssemblyVersion("1.0.*")>
<Assembly: AssemblyVersion("1.9.5.11")>
<Assembly: AssemblyVersion("1.9.5.12")>
<Assembly: AssemblyFileVersion("1.0.0.0")>

View File

@ -336,245 +336,245 @@ Public Class frmMassValidator
Dim indexname As String
Dim resultvalue
'Try
For Each inctrl As Control In Me.pnldesigner.Controls
Try
For Each inctrl As Control In Me.pnldesigner.Controls
Dim CONTROL_ID = inctrl.Tag
Dim controlRow = (From form In DT_PROFILE_CONTROLS.AsEnumerable' DD_DMSLiteDataSet.VWPM_CONTROL_INDEX.AsEnumerable()
Select form
Where form.Item("GUID") = CONTROL_ID).Single()
Dim CONTROL_ID = inctrl.Tag
Dim controlRow = (From form In DT_PROFILE_CONTROLS.AsEnumerable' DD_DMSLiteDataSet.VWPM_CONTROL_INDEX.AsEnumerable()
Select form
Where form.Item("GUID") = CONTROL_ID).Single()
Dim Type As String = inctrl.GetType.ToString
Dim Typ As String = controlRow.Item("CTRL_TYPE")
If Typ = "LBL" Or Typ = "LINE" Then
Continue For
End If
Dim idxname As String = controlRow.Item("INDEX_NAME")
' Wenn kein defaultValue existiert, leeren String setzen
Dim defaultValue As String = NotNull(controlRow.Item("DEFAULT_VALUE"), String.Empty)
indexname = idxname
Dim LoadIDX As Boolean = controlRow.Item("LOAD_IDX_VALUE")
If LogErrorsOnly = False Then ClassLogger.Add(" >> INDEX: " & idxname & " - CONTROLNAME: " & inctrl.Name & " - LOAD IDXVALUES: " & LoadIDX.ToString, False)
Dim wertWD
Select Case Type
Case "System.Windows.Forms.TextBox"
Try
controltype = "Textbox"
Dim Type As String = inctrl.GetType.ToString
Dim Typ As String = controlRow.Item("CTRL_TYPE")
If Typ = "LBL" Or Typ = "LINE" Then
Continue For
End If
Dim idxname As String = controlRow.Item("INDEX_NAME")
' Wenn kein defaultValue existiert, leeren String setzen
Dim defaultValue As String = NotNull(controlRow.Item("DEFAULT_VALUE"), String.Empty)
indexname = idxname
Dim LoadIDX As Boolean = controlRow.Item("LOAD_IDX_VALUE")
If LogErrorsOnly = False Then ClassLogger.Add(" >> INDEX: " & idxname & " - CONTROLNAME: " & inctrl.Name & " - LOAD IDXVALUES: " & LoadIDX.ToString, False)
Dim wertWD
Select Case Type
Case "System.Windows.Forms.TextBox"
Try
controltype = "Textbox"
If idxname = "" Then
MsgBox("Achtung fehlerhafte Konfiguration:" & vbNewLine & "Für das Control " & inctrl.Name & " wurde KEIN INDEX hinterlegt!" & vbNewLine & "Bitte prüfen Sie den Formulardesigner!", MsgBoxStyle.Critical)
Exit For
End If
If idxname Is Nothing = False Then
If LoadIDX = False Or idxname = "DD PM-ONLY FOR DISPLAY" Then
' Wenn kein Index exisitiert, defaultValue laden
inctrl.Text = defaultValue
If LogErrorsOnly = False Then ClassLogger.Add(" >> Indexwert soll nicht geladen werden.", False)
Exit Select
End If
wertWD = GetWM_Value_Multiple_Docs(idxname)
If wertWD = "" And defaultValue <> "" Then
inctrl.Text = defaultValue
Else
inctrl.Text = NotNull(wertWD, defaultValue)
End If
End If
Catch ex As Exception
errormessage = "Unexpected error in FillIndexValues TextBox(MI):" & vbNewLine & ex.Message & vbNewLine & "Check Logfile"
My.Settings.Save()
frmError.ShowDialog()
ClassLogger.Add(">> Unexpected error in FillIndexValues TextBox(MI): " & ex.Message, True)
ClassLogger.Add(">> Controltype: " & controltype, False)
ClassLogger.Add(">> Indexname windream: " & indexname, False)
Exit Sub
End Try
Case "System.Windows.Forms.ComboBox"
controltype = "ComboBox"
Dim cmb As ComboBox = inctrl
If idxname = "" Then
MsgBox("Achtung fehlerhafte Konfiguration:" & vbNewLine & "Für das Control " & inctrl.Name & " wurde KEIN INDEX hinterlegt!" & vbNewLine & "Bitte prüfen Sie den Formulardesigner!", MsgBoxStyle.Critical)
Exit For
End If
If idxname Is Nothing = False Then
If LoadIDX = False Or idxname = "DD PM-ONLY FOR DISPLAY" Then
' Wenn kein Index exisitiert, defaultValue laden
inctrl.Text = defaultValue
If LoadIDX = False Then
If defaultValue = String.Empty Then
cmb.SelectedIndex = -1
Else
cmb.Text = defaultValue
End If
If LogErrorsOnly = False Then ClassLogger.Add(" >> Indexwert soll nicht geladen werden.", False)
Exit Select
End If
wertWD = GetWM_Value_Multiple_Docs(idxname)
If wertWD Is Nothing Or wertWD = "" Then
If defaultValue = String.Empty Then
cmb.SelectedIndex = -1
Else
cmb.SelectedIndex = cmb.FindStringExact(defaultValue)
End If
Else
cmb.SelectedIndex = cmb.FindStringExact(wertWD)
End If
End If
Case "System.Windows.Forms.DataGridView"
controltype = "DataGridView"
Dim dgv As DataGridView = inctrl
If idxname = "" Then
MsgBox("Achtung fehlerhafte Konfiguration:" & vbNewLine & "Für das Control " & inctrl.Name & " wurde KEIN INDEX hinterlegt!" & vbNewLine & "Bitte prüfen Sie den Formulardesigner!", MsgBoxStyle.Critical)
Exit For
End If
If idxname Is Nothing = False Then
If LoadIDX = False Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> Indexwert soll nicht geladen werden.", False)
Exit Select
End If
wertWD = GetWM_Value_Multiple_Docs(idxname)
If wertWD = "" And defaultValue <> "" Then
inctrl.Text = defaultValue
Else
inctrl.Text = NotNull(wertWD, defaultValue)
End If
End If
Catch ex As Exception
errormessage = "Unexpected error in FillIndexValues TextBox(MI):" & vbNewLine & ex.Message & vbNewLine & "Check Logfile"
My.Settings.Save()
frmError.ShowDialog()
ClassLogger.Add(">> Unexpected error in FillIndexValues TextBox(MI): " & ex.Message, True)
ClassLogger.Add(">> Controltype: " & controltype, False)
ClassLogger.Add(">> Indexname windream: " & indexname, False)
Exit Sub
End Try
Case "System.Windows.Forms.ComboBox"
controltype = "ComboBox"
Dim cmb As ComboBox = inctrl
If idxname = "" Then
MsgBox("Achtung fehlerhafte Konfiguration:" & vbNewLine & "Für das Control " & inctrl.Name & " wurde KEIN INDEX hinterlegt!" & vbNewLine & "Bitte prüfen Sie den Formulardesigner!", MsgBoxStyle.Critical)
Exit For
End If
If idxname Is Nothing = False Then
If LoadIDX = False Then
If defaultValue = String.Empty Then
cmb.SelectedIndex = -1
Else
cmb.Text = defaultValue
End If
If LogErrorsOnly = False Then ClassLogger.Add(" >> Indexwert soll nicht geladen werden.", False)
Exit Select
End If
wertWD = GetWM_Value_Multiple_Docs(idxname)
If wertWD Is Nothing Or wertWD = "" Then
If defaultValue = String.Empty Then
cmb.SelectedIndex = -1
Else
cmb.SelectedIndex = cmb.FindStringExact(defaultValue)
End If
Else
cmb.SelectedIndex = cmb.FindStringExact(wertWD)
End If
End If
Case "System.Windows.Forms.DataGridView"
controltype = "DataGridView"
Dim dgv As DataGridView = inctrl
If idxname = "" Then
MsgBox("Achtung fehlerhafte Konfiguration:" & vbNewLine & "Für das Control " & inctrl.Name & " wurde KEIN INDEX hinterlegt!" & vbNewLine & "Bitte prüfen Sie den Formulardesigner!", MsgBoxStyle.Critical)
Exit For
End If
If idxname Is Nothing = False Then
If LoadIDX = False Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> Indexwert soll nicht geladen werden.", False)
Exit Select
End If
wertWD = GetWM_Value_Multiple_Docs(idxname)
If wertWD Is Nothing = False Then
'Es wird gegen ein Vektorfeld nachindexiert
If wertWD.GetType.ToString.Contains("System.Object") Then
Select Case Typ
If wertWD Is Nothing = False Then
'Es wird gegen ein Vektorfeld nachindexiert
If wertWD.GetType.ToString.Contains("System.Object") Then
Select Case Typ
'Tabellendarstellung
Case "TABLE"
Dim dt As DataTable = ClassDatabase.Return_Datatable("SELECT * FROM TBPM_CONTROL_TABLE WHERE CONTROL_ID = " & CONTROL_ID)
Dim SpaltenWerte As String()
If dt.Rows.Count > 1 Then
For Each Zeile As Object In wertWD
SpaltenWerte = Split(Zeile, Delimiter)
Select Case dt.Rows.Count
Case 2
If SpaltenWerte.Length = 2 Then
dgv.Rows.Add(New String() {SpaltenWerte(0), SpaltenWerte(1)})
Else
dgv.Rows.Add(New String() {SpaltenWerte(0), ""})
End If
Case 3
If SpaltenWerte.Length = 3 Then
dgv.Rows.Add(New String() {SpaltenWerte(0), SpaltenWerte(1), SpaltenWerte(2)})
ElseIf SpaltenWerte.Length = 2 Then
dgv.Rows.Add(New String() {SpaltenWerte(0), SpaltenWerte(1), ""})
Else
dgv.Rows.Add(New String() {SpaltenWerte(0), "", ""})
End If
Case 4
If SpaltenWerte.Length = 4 Then
dgv.Rows.Add(New String() {SpaltenWerte(0), SpaltenWerte(1), SpaltenWerte(2), SpaltenWerte(3)})
ElseIf SpaltenWerte.Length = 3 Then
dgv.Rows.Add(New String() {SpaltenWerte(0), SpaltenWerte(1), SpaltenWerte(2), ""})
ElseIf SpaltenWerte.Length = 2 Then
dgv.Rows.Add(New String() {SpaltenWerte(0), SpaltenWerte(1), "", ""})
Else
dgv.Rows.Add(New String() {SpaltenWerte(0), "", "", ""})
End If
Case "TABLE"
Dim dt As DataTable = ClassDatabase.Return_Datatable("SELECT * FROM TBPM_CONTROL_TABLE WHERE CONTROL_ID = " & CONTROL_ID)
Dim SpaltenWerte As String()
If dt.Rows.Count > 1 Then
For Each Zeile As Object In wertWD
SpaltenWerte = Split(Zeile, Delimiter)
Select Case dt.Rows.Count
Case 2
If SpaltenWerte.Length = 2 Then
dgv.Rows.Add(New String() {SpaltenWerte(0), SpaltenWerte(1)})
Else
dgv.Rows.Add(New String() {SpaltenWerte(0), ""})
End If
Case 3
If SpaltenWerte.Length = 3 Then
dgv.Rows.Add(New String() {SpaltenWerte(0), SpaltenWerte(1), SpaltenWerte(2)})
ElseIf SpaltenWerte.Length = 2 Then
dgv.Rows.Add(New String() {SpaltenWerte(0), SpaltenWerte(1), ""})
Else
dgv.Rows.Add(New String() {SpaltenWerte(0), "", ""})
End If
Case 4
If SpaltenWerte.Length = 4 Then
dgv.Rows.Add(New String() {SpaltenWerte(0), SpaltenWerte(1), SpaltenWerte(2), SpaltenWerte(3)})
ElseIf SpaltenWerte.Length = 3 Then
dgv.Rows.Add(New String() {SpaltenWerte(0), SpaltenWerte(1), SpaltenWerte(2), ""})
ElseIf SpaltenWerte.Length = 2 Then
dgv.Rows.Add(New String() {SpaltenWerte(0), SpaltenWerte(1), "", ""})
Else
dgv.Rows.Add(New String() {SpaltenWerte(0), "", "", ""})
End If
End Select
Next
End If
Case Else
'es handelt sich um ein einfaches Vektorfeld mit einem Wert
For Each obj As Object In wertWD
If obj Is Nothing = False Then
dgv.Rows.Add(New String() {obj.ToString})
End Select
Next
End If
Next
End Select
Case Else
'es handelt sich um ein einfaches Vektorfeld mit einem Wert
For Each obj As Object In wertWD
If obj Is Nothing = False Then
dgv.Rows.Add(New String() {obj.ToString})
End If
Next
End Select
End If
End If
End If
Case "System.Windows.Forms.CheckBox"
controltype = "CheckBox"
If idxname = "" Then
MsgBox("Achtung fehlerhafte Konfiguration:" & vbNewLine & "Für das Control " & inctrl.Name & " wurde KEIN INDEX hinterlegt!" & vbNewLine & "Bitte prüfen Sie den Formulardesigner!", MsgBoxStyle.Critical)
Exit For
End If
If idxname Is Nothing = False Then
Dim chk As CheckBox = inctrl
If LoadIDX = False Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> Indexwert soll nicht geladen werden.", False)
If defaultValue <> String.Empty Then
Dim result
If Boolean.TryParse(defaultValue, result) Then
chk.Checked = result
End If
End If
Exit Select
End If
wertWD = GetWM_Value_Multiple_Docs(idxname)
If wertWD Is Nothing Then
ClassLogger.Add(">> Zurückgegebener Wert des Wertes für Checkbox mit Indexname '" & indexname & "' ist nothing. Check defaultvalue", False)
chk.Checked = False
Else
If wertWD.ToString = "" Then
Case "System.Windows.Forms.CheckBox"
controltype = "CheckBox"
If idxname = "" Then
MsgBox("Achtung fehlerhafte Konfiguration:" & vbNewLine & "Für das Control " & inctrl.Name & " wurde KEIN INDEX hinterlegt!" & vbNewLine & "Bitte prüfen Sie den Formulardesigner!", MsgBoxStyle.Critical)
Exit For
End If
If idxname Is Nothing = False Then
Dim chk As CheckBox = inctrl
If LoadIDX = False Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> Indexwert soll nicht geladen werden.", False)
If defaultValue <> String.Empty Then
Dim result
If Boolean.TryParse(defaultValue, result) Then
chk.Checked = result
Else : chk.Checked = False
End If
Else
chk.Checked = False
End If
Else
Dim _value
If wertWD.ToString = "System.Object[]" Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> CheckBoxValue with VektorField: " & idxname, False)
If wertWD.length = 1 Then
_value = wertWD(0)
Else '
ClassLogger.Add(" >> Vectorfield " & idxname & "' contains more then one value - First value will be used", False)
_value = wertWD(0)
End If
Else
_value = wertWD
End If
Try
Select Case CBool(_value)
Case True
chk.Checked = True
Case Else
chk.Checked = False
End Select
Catch ex As Exception
ClassLogger.Add(">> Unvorhergesehener Fehler bei CBool(wertWD) - CheckBox: " & ex.Message & vbNewLine & "Wert WD: " & wertWD.ToString, True)
chk.Checked = False
End Try
Exit Select
End If
wertWD = GetWM_Value_Multiple_Docs(idxname)
If wertWD Is Nothing Then
ClassLogger.Add(">> Zurückgegebener Wert des Wertes für Checkbox mit Indexname '" & indexname & "' ist nothing. Check defaultvalue", False)
chk.Checked = False
Else
If wertWD.ToString = "" Then
If defaultValue <> String.Empty Then
Dim result
If Boolean.TryParse(defaultValue, result) Then
chk.Checked = result
Else : chk.Checked = False
End If
Else
chk.Checked = False
End If
Else
Dim _value
If wertWD.ToString = "System.Object[]" Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> CheckBoxValue with VektorField: " & idxname, False)
If wertWD.length = 1 Then
_value = wertWD(0)
Else '
ClassLogger.Add(" >> Vectorfield " & idxname & "' contains more then one value - First value will be used", False)
_value = wertWD(0)
End If
Else
_value = wertWD
End If
Try
Select Case CBool(_value)
Case True
chk.Checked = True
Case Else
chk.Checked = False
End Select
Catch ex As Exception
ClassLogger.Add(">> Unvorhergesehener Fehler bei CBool(wertWD) - CheckBox: " & ex.Message & vbNewLine & "Wert WD: " & wertWD.ToString, True)
chk.Checked = False
End Try
End If
End If
End If
End If
Case "System.Windows.Forms.DateTimePicker"
controltype = "DateTimePicker"
Dim DTP As DateTimePicker = inctrl
If idxname = "" Then
MsgBox("Achtung fehlerhafte Konfiguration:" & vbNewLine & "Für das Control " & inctrl.Name & " wurde KEIN INDEX hinterlegt!" & vbNewLine & "Bitte prüfen Sie den Formulardesigner!", MsgBoxStyle.Critical)
Exit For
End If
End Select
Next
'Catch ex As Exception
' errormessage = "Unexpected Error in FillIndexValues(MI):" & vbNewLine & ex.Message & vbNewLine & "Check Logfile"
' My.Settings.Save()
' frmError.ShowDialog()
' ClassLogger.Add(">> Unexpected Error in FillIndexValues(MIs: " & ex.Message, True)
' ClassLogger.Add(">> Controltype: " & controltype, False)
' ClassLogger.Add(">> Indexname windream: " & indexname, False)
Case "System.Windows.Forms.DateTimePicker"
controltype = "DateTimePicker"
Dim DTP As DateTimePicker = inctrl
If idxname = "" Then
MsgBox("Achtung fehlerhafte Konfiguration:" & vbNewLine & "Für das Control " & inctrl.Name & " wurde KEIN INDEX hinterlegt!" & vbNewLine & "Bitte prüfen Sie den Formulardesigner!", MsgBoxStyle.Critical)
Exit For
End If
End Select
Next
Catch ex As Exception
errormessage = "Unexpected Error in FillIndexValues(MI):" & vbNewLine & ex.Message & vbNewLine & "Check Logfile"
My.Settings.Save()
frmError.ShowDialog()
ClassLogger.Add(">> Unexpected Error in FillIndexValues(MIs: " & ex.Message, True)
ClassLogger.Add(">> Controltype: " & controltype, False)
ClassLogger.Add(">> Indexname windream: " & indexname, False)
'End Try
End Try
End Sub
@ -929,7 +929,7 @@ Public Class frmMassValidator
End Try
If Not IsNothing(WMDOC) Then
CURRENT_WMFILE = WMDOC
If ClassFinalizeDoc.Write_Final_Metadata = True Then
If ClassFinalizeDoc.Write_Final_Metadata(WMDOC) = True Then
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)
If ClassDatabase.Execute_non_Query(sql) = True Then
workedFiles += 1

View File

@ -221,7 +221,7 @@
<value>Refresh AdditionalSearch</value>
</data>
<data name="ContextMenuStrip1.Size" type="System.Drawing.Size, System.Drawing">
<value>207, 114</value>
<value>207, 92</value>
</data>
<data name="&gt;&gt;ContextMenuStrip1.Name" xml:space="preserve">
<value>ContextMenuStrip1</value>
@ -1368,6 +1368,12 @@
<data name="&gt;&gt;DateieigenschaftenToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;RefreshAdditionalSearchToolStripMenuItem.Name" xml:space="preserve">
<value>RefreshAdditionalSearchToolStripMenuItem</value>
</data>
<data name="&gt;&gt;RefreshAdditionalSearchToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;DD_DMSLiteDataSet.Name" xml:space="preserve">
<value>DD_DMSLiteDataSet</value>
</data>
@ -1836,12 +1842,6 @@
<data name="&gt;&gt;ToolStripButtonAnnotation.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripButton, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;RefreshAdditionalSearchToolStripMenuItem.Name" xml:space="preserve">
<value>RefreshAdditionalSearchToolStripMenuItem</value>
</data>
<data name="&gt;&gt;RefreshAdditionalSearchToolStripMenuItem.Type" xml:space="preserve">
<value>System.Windows.Forms.ToolStripMenuItem, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089</value>
</data>
<data name="&gt;&gt;$this.Name" xml:space="preserve">
<value>frmValidator</value>
</data>

View File

@ -2058,7 +2058,7 @@ Public Class frmValidator
If LogErrorsOnly = False Then ClassLogger.Add(" >> Indexwert soll nicht geladen werden.", False)
Exit Select
End If
If LogErrorsOnly = False Then ClassLogger.Add($" >> getting wmValue for Index {oWMIndexName}...", False)
Dim wertWD = aktivesDokument.GetVariableValue(oWMIndexName)
If wertWD Is Nothing = False Then
@ -2069,12 +2069,14 @@ Public Class frmValidator
Case "TABLE"
Dim dt As DataTable = ClassDatabase.Return_Datatable("SELECT * FROM TBPM_CONTROL_TABLE WHERE CONTROL_ID = " & oControlId)
Dim SpaltenWerte As String()
If LogErrorsOnly = False Then ClassLogger.Add($" >> {dt.Rows.Count} Columns configured for control {oControlId}.", False)
If dt.Rows.Count > 1 Then
For Each Zeile As Object In wertWD
If LogErrorsOnly = False Then ClassLogger.Add($" >> vektorrow Value {Zeile.ToString}...", False)
SpaltenWerte = Split(Zeile, Delimiter)
Select Case dt.Rows.Count
Case 1
dgv.Rows.Add(New String() {SpaltenWerte(0)})
dgv.Rows.Add(New String() {Zeile.ToString})
Case 2
If SpaltenWerte.Length = 2 Then
dgv.Rows.Add(New String() {SpaltenWerte(0), SpaltenWerte(1)})
@ -2342,6 +2344,9 @@ Public Class frmValidator
'lblerror.Visible = False
Try
Dim _error As Boolean = False
'If ClassFinalizeDoc.Write_Final_Metadata(aktivesDokument) = False Then
' _error = True
'End If
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
@ -2357,31 +2362,6 @@ Public Class frmValidator
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
Dim dynamic_value = ClassDatabase.Execute_Scalar(SQL_COMMAND, MyConnectionString, True)
If Not IsNothing(dynamic_value) Then
@ -2408,12 +2388,13 @@ Public Class frmValidator
result(0) = value
Dim oIndexType = WINDREAM.GetTypeOfIndex(dr.Item("INDEXNAME"))
If LogErrorsOnly = False Then ClassLogger.Add($" >> oIndexType {oIndexType.ToString}", False)
If oIndexType > 4000 And oIndexType < 5000 Then
'If dr.Item("INDEXNAME").ToString.StartsWith("[%VKT") Then
Dim PM_String = Return_PM_VEKTOR(value, dr.Item("INDEXNAME"))
' 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)
If Indexiere_VektorfeldPM(value, dr.Item("INDEXNAME")) = False Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> FINALER INDEX '" & dr.Item("INDEXNAME").ToString & "' WURDE ERFOLGREICH GESETZT", False)
Else
errormessage = "Fehler beim finalen Indexieren:" & vbNewLine & idxerr_message
My.Settings.Save()
@ -2443,7 +2424,7 @@ Public Class frmValidator
End If
Next
End If
'Wenn kein Fehler nach der finalen Indexierung gesetzt wurde
''Wenn kein Fehler nach der finalen Indexierung gesetzt wurde
If _error = False Then
If LogErrorsOnly = False Then ClassLogger.Add(" >> Tabelle updaten und co", False)