This commit is contained in:
SchreiberM
2015-09-29 12:16:23 +02:00
parent 379a63d9a8
commit 80247e18dd
31 changed files with 1808 additions and 524 deletions

View File

@@ -344,16 +344,16 @@ Public Class frmIndex
For Each DR In DT.Rows
If DR.Item("INDEXNAME").ToString.ToLower = indexname.ToLower Then
If DR.Item("Indexiert") = True Then
If LogErrorsOnly = False Then ClassLogger.Add(" ...Manueller Index: " & indexname, False)
If LogErrorsOnly = False Then ClassLogger.Add(" >>Manueller Index: " & indexname, False)
Select Case RequestFor
Case "FILE"
If DR.Item("Indexwert_File").ToString <> String.Empty Then
If LogErrorsOnly = False Then ClassLogger.Add(" ...Es liegt ein separater nachbearbeiteter Wert für die Dateibenennung vor: " & DR.Item("Indexwert_File").ToString, False)
If LogErrorsOnly = False Then ClassLogger.Add(" ...Zurückgegebener NachbearbeitungsWert: " & DR.Item("Indexwert_File"), False)
If LogErrorsOnly = False Then ClassLogger.Add(" >>Es liegt ein separater nachbearbeiteter Wert für die Dateibenennung vor: " & DR.Item("Indexwert_File").ToString, False)
If LogErrorsOnly = False Then ClassLogger.Add(" >>Zurückgegebener NachbearbeitungsWert: " & DR.Item("Indexwert_File"), False)
Return DR.Item("Indexwert_File")
Else
If DR.Item("Indexwert").ToString <> String.Empty Then
If LogErrorsOnly = False Then ClassLogger.Add(" ...Zurückgegebener manueller Indexwert: " & DR.Item("Indexwert"), False)
If LogErrorsOnly = False Then ClassLogger.Add(" >>Zurückgegebener manueller Indexwert: " & DR.Item("Indexwert"), False)
Console.WriteLine("Rückgabe manueller wert: " & DR.Item("Indexwert"))
Return DR.Item("Indexwert")
Else
@@ -367,7 +367,7 @@ Public Class frmIndex
End If
Case Else
If DR.Item("Indexwert").ToString <> String.Empty Then
If LogErrorsOnly = False Then ClassLogger.Add(" ...Zurückgegebener manueller Indexwert: " & DR.Item("Indexwert"), False)
If LogErrorsOnly = False Then ClassLogger.Add(" >>Zurückgegebener manueller Indexwert: " & DR.Item("Indexwert"), False)
Return DR.Item("Indexwert")
Else
Dim optional_index As Boolean = ClassDatabase.Execute_Scalar("SELECT OPTIONAL FROM TBDD_INDEX_MAN WHERE DOK_ID = " & CURRENT_DOKART_ID & " AND UPPER(NAME) = UPPER('" & indexname & "')", MyConnectionString, True)
@@ -433,7 +433,7 @@ Public Class frmIndex
End If
If LogErrorsOnly = False Then
ClassLogger.Add(" ...SQL-ConnectionString: " & connectionString.Substring(0, connectionString.LastIndexOf("=")), False)
ClassLogger.Add(" >>SQL-ConnectionString: " & connectionString.Substring(0, connectionString.LastIndexOf("=")), False)
End If
If ergebnis Is Nothing Then
@@ -489,7 +489,7 @@ Public Class frmIndex
End If
Else
runinLZ = True
If LogErrorsOnly = False Then ClassLogger.Add(" ...sql enthält Platzhalter und wird erst während der Laufzeit gefüllt!", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >>sql enthält Platzhalter und wird erst während der Laufzeit gefüllt!", False)
End If
@@ -673,7 +673,7 @@ Public Class frmIndex
Function CheckWrite_IndexeMan(dokartid As Integer)
'#### Zuerst manuelle Werte indexieren ####
Try
If LogErrorsOnly = False Then ClassLogger.Add(" ...In CheckWrite_IndexeMan", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >>In CheckWrite_IndexeMan", False)
Dim result As Boolean = False
For Each ctrl As Control In Me.pnlIndex.Controls
' ' MsgBox(ctrl.Name)
@@ -859,7 +859,7 @@ Public Class frmIndex
Select Case element.Value.Substring(2, 1).ToUpper
'Manueller Indexwert
Case "M"
If LogErrorsOnly = False Then ClassLogger.Add(" ...Manueller Index wird geprüft...", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >>Manueller Index wird geprüft...", False)
Dim Indexname = element.Value.Substring(3, element.Value.Length - 4)
Dim value As String = GetManIndex_Value(element.Value.Substring(3, element.Value.Length - 4), "FILE")
If value <> String.Empty Then
@@ -1012,7 +1012,7 @@ Public Class frmIndex
If LogErrorsOnly = False Then ClassLogger.Add(" ...Manueller Indexvalue: " & idxvalue.ToString, False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Manueller Indexvalue: " & idxvalue.ToString, False)
Count += 1
indexierung_erfolgreich = ClassWindream.DateiIndexieren(CURRENT_NEWFILENAME, indexname, idxvalue)
If indexierung_erfolgreich = False Then
@@ -1032,8 +1032,8 @@ Public Class frmIndex
If CBool(row.Item("Indexiert")) = True And row.Item("Indexwert").ToString <> "" Then
Dim indexname = row.Item("INDEXNAME").ToString
Dim idxvalue = row.Item("Indexwert")
If LogErrorsOnly = False Then ClassLogger.Add(" ...Auto Indexvalue: " & idxvalue.ToString, False)
If LogErrorsOnly = False Then ClassLogger.Add(" ...Indexvalue: " & idxvalue.ToString, False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Auto Indexvalue: " & idxvalue.ToString, False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Indexvalue: " & idxvalue.ToString, False)
Count += 1
indexierung_erfolgreich = ClassWindream.DateiIndexieren(CURRENT_NEWFILENAME, indexname, idxvalue)
If indexierung_erfolgreich = False Then
@@ -1068,7 +1068,7 @@ Public Class frmIndex
End Function
Private Function WriteIndex2File(indexname As String, indexvalue As String)
Try
If LogErrorsOnly = False Then ClassLogger.Add(" ...Indexvalue: " & indexvalue.ToString, False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Indexvalue: " & indexvalue.ToString, False)
Return ClassWindream.DateiIndexieren(CURRENT_NEWFILENAME, indexname, indexvalue)
Catch ex As Exception
MsgBox("Error in WriteIndex2File:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
@@ -1095,6 +1095,8 @@ Public Class frmIndex
Dim DT As DataTable = ClassDatabase.Return_Datatable("SELECT * FROM TBGI_OBJECTTYPE_EMAIL_INDEX WHERE OBJECTTYPE = '" & ClassWindream._WDObjekttyp & "'")
If DT.Rows.Count = 1 Then
CURRENT_MESSAGEDATE = ""
CURRENT_MESSAGESUBJECT = ""
'Message-ID nur auswerten wenn vorher nicht gestzt wurde!
If CURRENT_MESSAGEID = "" Then
If Not msg.InternetMessageId Is Nothing Then
@@ -1143,8 +1145,8 @@ Public Class frmIndex
End If
If LogErrorsOnly = False Then ClassLogger.Add(" ...emailFrom: " & emailFrom, False)
If LogErrorsOnly = False Then ClassLogger.Add(" ...emailTo: " & emailTo, False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> emailFrom: " & emailFrom, False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> emailTo: " & emailTo, False)
'FROM
If Not IsNothing(emailFrom) Then
indexierung_erfolgreich = WriteIndex2File(DT.Rows(0).Item("IDX_EMAIL_FROM").ToString, emailFrom)
@@ -1163,13 +1165,14 @@ Public Class frmIndex
End If
' Dim subj As String = ClassFormFunctions.CleanInput(msg.Subject)
If LogErrorsOnly = False Then ClassLogger.Add(" ...subj: " & msg.Subject, False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> subj: " & msg.Subject, False)
indexierung_erfolgreich = WriteIndex2File(DT.Rows(0).Item("IDX_EMAIL_SUBJECT").ToString, msg.Subject)
CURRENT_MESSAGESUBJECT = msg.Subject
If indexierung_erfolgreich = False Then
MsgBox("Error in SetEmailIndices-Subject - See log", MsgBoxStyle.Critical)
Return False
End If
If LogErrorsOnly = False Then ClassLogger.Add(" ...MessageDeliveryTime: " & msg.MessageDeliveryTime, False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> MessageDeliveryTime: " & msg.MessageDeliveryTime, False)
indexierung_erfolgreich = WriteIndex2File(DT.Rows(0).Item("IDX_EMAIL_DATE_IN").ToString, msg.MessageDeliveryTime)
CURRENT_MESSAGEDATE = msg.MessageDeliveryTime
If indexierung_erfolgreich = False Then
@@ -1195,40 +1198,36 @@ Public Class frmIndex
Try
Dim DT As DataTable = ClassDatabase.Return_Datatable("SELECT * FROM TBGI_OBJECTTYPE_EMAIL_INDEX WHERE OBJECTTYPE = '" & ClassWindream._WDObjekttyp & "'")
If DT.Rows.Count = 1 Then
If Not CURRENT_MESSAGEID Is Nothing Then
If CURRENT_MESSAGEID <> "" Then
indexierung_erfolgreich = WriteIndex2File(DT.Rows(0).Item("IDX_EMAIL_ID").ToString, CURRENT_MESSAGEID)
If indexierung_erfolgreich = False Then
MsgBox("Error in SetAttachmentIndices - See log", MsgBoxStyle.Critical)
MsgBox("Error in SetAttachmentIndices MESSAGE-ID - See log", MsgBoxStyle.Critical)
Return False
End If
End If
End If
'indexierung_erfolgreich = WriteIndex2File(DT.Rows(0).Item("IDX_EMAIL_FROM").ToString, msg.SenderEmailAddress)
'If indexierung_erfolgreich = False Then
' MsgBox("Error in SetAttachmentIndices - See log", MsgBoxStyle.Critical)
' Return False
'End If
'indexierung_erfolgreich = WriteIndex2File(DT.Rows(0).Item("IDX_EMAIL_TO").ToString, msg.ReceivedByEmailAddress)
'If indexierung_erfolgreich = False Then
' MsgBox("Error in SetAttachmentIndices - See log", MsgBoxStyle.Critical)
' Return False
'End If
'indexierung_erfolgreich = WriteIndex2File(DT.Rows(0).Item("IDX_EMAIL_SUBJECT").ToString, msg.Subject)
'If indexierung_erfolgreich = False Then
' MsgBox("Error in SetAttachmentIndices - See log", MsgBoxStyle.Critical)
' Return False
'End If
If CURRENT_MESSAGEDATE <> "" Then
indexierung_erfolgreich = WriteIndex2File(DT.Rows(0).Item("IDX_EMAIL_DATE_IN").ToString, CURRENT_MESSAGEDATE)
'Das Subject speichern
If CURRENT_MESSAGESUBJECT <> "" Then
indexierung_erfolgreich = WriteIndex2File(DT.Rows(0).Item("IDX_EMAIL_SUBJECT").ToString, CURRENT_MESSAGESUBJECT)
If indexierung_erfolgreich = False Then
MsgBox("Error in SetAttachmentIndices - See log", MsgBoxStyle.Critical)
MsgBox("Error in SetAttachmentIndices SUBJECT - See log", MsgBoxStyle.Critical)
Return False
End If
End If
'Das MesageDate speichern
If CURRENT_MESSAGEDATE <> "" Then
indexierung_erfolgreich = WriteIndex2File(DT.Rows(0).Item("IDX_EMAIL_DATE_IN").ToString, CURRENT_MESSAGEDATE)
If indexierung_erfolgreich = False Then
MsgBox("Error in SetAttachmentIndices DATE - See log", MsgBoxStyle.Critical)
Return False
End If
End If
'Kennzeichnen das es ein Anhang war!
indexierung_erfolgreich = WriteIndex2File(DT.Rows(0).Item("IDX_CHECK_ATTACHMENT").ToString, True)
If indexierung_erfolgreich = False Then
MsgBox("Error in SetAttachmentIndices - See log", MsgBoxStyle.Critical)
MsgBox("Error in SetAttachmentIndices ATTACHMENT Y/N - See log", MsgBoxStyle.Critical)
Return False
End If
Return indexierung_erfolgreich
@@ -1318,9 +1317,10 @@ Public Class frmIndex
End Sub
Sub CloseUniversalViewer()
If Not CURRENT_WORKFILE.EndsWith("msg") Then
Dim workfile = CURRENT_WORKFILE.ToLower
If Not workfile.EndsWith("msg") Then
CURRENT_HTML_DOC = ""
If CURRENT_WORKFILE.EndsWith("pdf") Then
If workfile.EndsWith("pdf") Then
Me.PdfViewer1.DocumentFilePath = ""
My.Settings.SplitterDistance_Viewer = SplitContainer1.SplitterDistance
Else
@@ -1332,6 +1332,14 @@ Public Class frmIndex
Else
My.Settings.SplitterDistance_Viewer = SplitContainer1.SplitterDistance
Try
If File.Exists(CURRENT_HTML_DOC) Then
File.Delete(CURRENT_HTML_DOC)
End If
Catch ex As Exception
ClassLogger.Add(" - Fehler bei Delete HTML-Doc - Fehler: " & vbNewLine & ex.Message)
End Try
End If
My.Settings.Save()
@@ -1353,10 +1361,10 @@ Public Class frmIndex
ElseIf DropType = "@OUTLOOK_MESSAGE@" Or DropType = "@FW_MSGONLY@" Then
Select Case DropType
Case "@FW_MSGONLY@"
If LogErrorsOnly = False Then ClassLogger.Add(" ....msg-file from folderwatch", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> .msg-file from folderwatch", False)
Me.Text = "Indexierung der msg-Datei (ohne Anhang) - aus Folderwatch:"
Case "@OUTLOOK_MESSAGE@"
If LogErrorsOnly = False Then ClassLogger.Add(" ....msg-file through dragdrop", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> .msg-file through dragdrop", False)
Me.Text = "Indexierung der msg-Datei (ohne Anhang):"
End Select
@@ -1553,7 +1561,7 @@ Public Class frmIndex
' MsgBox(DT.Rows.Count.ToString)
For Each DR_AUTOINDEX As DataRow In DT_INDEXAUTOM.Rows
Dim indexname As String = DR_AUTOINDEX.Item("INDEXNAME")
If LogErrorsOnly = False Then ClassLogger.Add(" ...Build Automatischer Index '" & indexname & "'", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Build Automatischer Index '" & indexname & "'", False)
If DR_AUTOINDEX.Item("SQL_RESULT").ToString <> String.Empty And CBool(DR_AUTOINDEX.Item("SQL_ACTIVE")) = True Then
' Regulären Ausdruck zum Auslesen der windream-Indexe definieren
Dim preg As String = "\[%{1}[a-zA-Z0-9\!\$\&\/\(\)\=\?\,\.\-\;\:_öÖüÜäÄ\#\'\+\*\~\{\}\@\€\<\>\ ]+]{1}"
@@ -1566,26 +1574,26 @@ Public Class frmIndex
' alle Vorkommen der Indexe im SQL-String durchlaufen
For Each element As System.Text.RegularExpressions.Match In elemente
' MsgBox(element.Value.ToUpper)
If LogErrorsOnly = False Then ClassLogger.Add(" ...Element: '" & element.Value & "'", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Element: '" & element.Value & "'", False)
'' wenn es sich nicht um dedizeirte Werte handelt (es sollen ja nur die Indexe ausgelesen werden)
'If Not element.Value.ToUpper = "[%SPALTE]" And Not element.Value.ToUpper = "[%VIEW]" Then
'die Zeichen [% und ] entfernen (liefert den wirklichen windream-Index)
Dim elementOhneSonderzeichen As String = element.Value.Substring(2, element.Value.Length - 3)
If LogErrorsOnly = False Then ClassLogger.Add(" ...elementOhneSonderzeichen: '" & elementOhneSonderzeichen & "'", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> elementOhneSonderzeichen: '" & elementOhneSonderzeichen & "'", False)
'den Platzhalter im SQL-String durch den Wert ersetzen
Dim manIndexwert As String = GetManIndex_Value(elementOhneSonderzeichen, "IDX_AUTO")
If manIndexwert <> "" Then
SqlString = SqlString.Replace(element.Value, manIndexwert)
If LogErrorsOnly = False Then ClassLogger.Add(" ...zusammengesetzter SQL-String: " & SqlString, False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> zusammengesetzter SQL-String: " & SqlString, False)
Else
ClassLogger.Add(" - ACHTUNG: manIndexwert = String.Empty - Funktion: FillIndexe_Autom", False)
Return False
End If
Next
If LogErrorsOnly = False Then ClassLogger.Add(" ...Ausführen SQL....", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Ausführen SQL....", False)
Dim automatischerValue As String = ""
automatischerValue = Get_AutomatischerIndex_SQL(SqlString, DR_AUTOINDEX.Item("CONNECTION_ID"), DR_AUTOINDEX.Item("SQL_PROVIDER"))
If LogErrorsOnly = False Then ClassLogger.Add(" ...Ergebnis SQL: '" & automatischerValue & "'", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Ergebnis SQL: '" & automatischerValue & "'", False)
If automatischerValue <> String.Empty Then
DR_AUTOINDEX.Item("Indexiert") = True
DR_AUTOINDEX.Item("Indexwert") = automatischerValue
@@ -1600,7 +1608,7 @@ Public Class frmIndex
Dim DEFAULTVALUE As String = DR_AUTOINDEX.Item("VALUE")
'Indexierung mit WindowsVariable
If DEFAULTVALUE.StartsWith("$") Then
If LogErrorsOnly = False Then ClassLogger.Add(" ...Indexierung mit einer Windowsvariable: '" & DEFAULTVALUE & "'", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Indexierung mit einer Windowsvariable: '" & DEFAULTVALUE & "'", False)
Select Case DEFAULTVALUE.ToUpper
Case "$filename_ext".ToUpper
DEFAULTVALUE = Path.GetFileName(CURRENT_WORKFILE)
@@ -1619,9 +1627,9 @@ Public Class frmIndex
Case "$DateDDMMYYY".ToUpper
DEFAULTVALUE = System.DateTime.Now.ToShortDateString
End Select
If LogErrorsOnly = False Then ClassLogger.Add(" ...Ergebnis der Windowsvariable: '" & DEFAULTVALUE & "'", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Ergebnis der Windowsvariable: '" & DEFAULTVALUE & "'", False)
Else
If LogErrorsOnly = False Then ClassLogger.Add(" ...Indexierung mit einem Festen Wert: '" & DEFAULTVALUE & "'", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Indexierung mit einem Festen Wert: '" & DEFAULTVALUE & "'", False)
End If
'Den Wert in der Zwischentabelle speichern
DR_AUTOINDEX.Item("Indexiert") = True
@@ -1653,9 +1661,10 @@ Public Class frmIndex
Me.grpBetreff.Visible = False
Me.pnlPDF.Visible = False
CURRENT_HTML_DOC = ""
If Not CURRENT_WORKFILE.EndsWith("msg") Then
Dim workfile As String = CURRENT_WORKFILE.ToLower
If Not workfile.EndsWith("msg") Then
CURRENT_HTML_DOC = ""
If CURRENT_WORKFILE.EndsWith("pdf") Then
If workfile.EndsWith("pdf") Then
Me.SplitContainer1.Panel2Collapsed = False
PdfViewer1.LoadDocument(CURRENT_WORKFILE)
pnlPDF.Dock = DockStyle.Fill
@@ -1695,35 +1704,41 @@ Public Class frmIndex
End If
Else
Me.grpBetreff.Dock = DockStyle.Top
Me.grpbxMailBody.Dock = DockStyle.Fill
Dim msg_email As New Msg.Message(CURRENT_WORKFILE)
'Eine tempfile generieren
Dim tempFilename = My.Computer.FileSystem.GetTempFileName()
Dim name = Path.GetFileNameWithoutExtension(tempFilename)
tempFilename = Path.Combine(Path.GetDirectoryName(tempFilename), name & ".html")
'tempfile löschen
If My.Computer.FileSystem.FileExists(tempFilename) Then
My.Computer.FileSystem.DeleteFile(tempFilename)
End If
Try
Me.grpBetreff.Dock = DockStyle.Top
Me.grpbxMailBody.Dock = DockStyle.Fill
Dim msg_email As New Msg.Message(CURRENT_WORKFILE)
'Eine tempfile generieren
Dim name = Path.GetFileNameWithoutExtension(tempFilename)
tempFilename = Path.Combine(Path.GetDirectoryName(tempFilename), name & ".html")
If LogErrorsOnly = False Then ClassLogger.Add(" ...tempFilename: " & tempFilename, False)
'tempfile löschen
If My.Computer.FileSystem.FileExists(tempFilename) Then
My.Computer.FileSystem.DeleteFile(tempFilename)
End If
Me.txtBetreff.Text = msg_email.Subject
'Try
Dim wFile As System.IO.FileStream
Dim byteData() As Byte
byteData = msg_email.BodyHtml
Me.txtBetreff.Text = msg_email.Subject
'Try
Dim wFile As System.IO.FileStream
Dim byteData() As Byte
byteData = msg_email.BodyHtml
If LogErrorsOnly = False Then ClassLogger.Add(" ...byteData HTML finished", False)
' MsgBox(msg_email.InternetCodePage)
' wFile = New FileStream(tempFilename, FileMode.Append)
' wFile.Write(byteData, 0, byteData.Length)
' wFile.Close()
'Catch ex As IOException
' MsgBox(ex.ToString)
'End Try
' MsgBox(msg_email.InternetCodePage)
' wFile = New FileStream(tempFilename, FileMode.Append)
' wFile.Write(byteData, 0, byteData.Length)
' wFile.Close()
'Catch ex As IOException
' MsgBox(ex.ToString)
'End Try
Dim vIn() As Byte = msg_email.BodyHtml
Dim vOut As String = System.Text.Encoding.UTF8.GetString(vIn)
File.WriteAllText(tempFilename, vOut, System.Text.Encoding.UTF8)
Dim vIn() As Byte = msg_email.BodyHtml
Dim vOut As String = System.Text.Encoding.UTF8.GetString(vIn)
If LogErrorsOnly = False Then ClassLogger.Add(" ...byteData finished. Now write to file", False)
File.WriteAllText(tempFilename, vOut, System.Text.Encoding.UTF8)
Catch ex As Exception
MsgBox("Unerwarteter Fehler bei getHTML from Email: " & vbNewLine & ex.Message, MsgBoxStyle.Critical)
End Try
CURRENT_HTML_DOC = tempFilename
Me.tslblWebbrowser.Text = CURRENT_HTML_DOC
@@ -1773,20 +1788,24 @@ Public Class frmIndex
Private Function WORK_FILE()
Try
Me.VWDDINDEX_MANTableAdapter.Fill(Me.MyDataset.VWDDINDEX_MAN, CURRENT_DOKART_ID)
If LogErrorsOnly = False Then ClassLogger.Add(" ...Manuelle Indexe geladen", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Manuelle Indexe geladen", False)
If MyDataset.VWDDINDEX_MAN.Rows.Count > 0 Then
CURRENT_DOKART_ID = Me.cmbDokumentart.SelectedValue
If CheckWrite_IndexeMan(Me.cmbDokumentart.SelectedValue) = True Then
'##### Manuelle Indexe indexiert #####
If LogErrorsOnly = False Then ClassLogger.Add(" ...Datei " & CURRENT_WORKFILE & " wird nun indexiert...", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Datei " & CURRENT_WORKFILE & " wird nun indexiert...", False)
If FillIndexe_Autom(Me.cmbDokumentart.SelectedValue) = True Then
If LogErrorsOnly = False Then ClassLogger.Add(" ...FillIndexe_Autom durchlaufen", False)
'Den Zielnamen zusammenbauen
If Name_Generieren() = True Then
If LogErrorsOnly = False Then ClassLogger.Add(" ...Name_Generieren durchlaufen", False)
'Dokumentenviewer ausblenden
CloseUniversalViewer()
If LogErrorsOnly = False Then ClassLogger.Add(" ...Viewer geschlossen", False)
'Die Datei verschieben
If Move_File2_Target() = True Then
CloseUniversalViewer()
If LogErrorsOnly = False Then ClassLogger.Add(" ...Move_File2_Target durchlaufen", False)
'Die Originaldatei löschen
If DropType = "@DROPFROMFSYSTEM@" Then
If chkdelete_origin.Checked = True Then
@@ -1892,7 +1911,7 @@ Public Class frmIndex
exp2WD = SINGLEFILE_2_WINDREAM(CURR_DOKART_OBJECTTYPE)
End If
If exp2WD = True Then
'Prüfen ob Sessiond a ist - wenn nicht nochmal neu initiieren
'Prüfen ob Session da ist - wenn nicht nochmal neu initiieren
If ClassWindream.oSession Is Nothing Then
ClassWindream.Init()
End If
@@ -1998,24 +2017,24 @@ Public Class frmIndex
'####
' alle Vorkommen innerhalb des Ordnerstrings durchlaufen
For Each element As System.Text.RegularExpressions.Match In elemente
If LogErrorsOnly = False Then ClassLogger.Add(" ...Elementname in FolderString: '" & element.ToString & "'", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Elementname in FolderString: '" & element.ToString & "'", False)
Select Case element.Value.Substring(2, 1).ToUpper
'Manueller Indexwert
Case "M"
Dim ManIndexname = element.Value.Substring(3, element.Value.Length - 4)
If LogErrorsOnly = False Then ClassLogger.Add(" ...Versuch den Indexwert aus '" & ManIndexname & "' auszulesen.", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Versuch den Indexwert aus '" & ManIndexname & "' auszulesen.", False)
Dim ManIndex_Value As String = GetManIndex_Value(ManIndexname, "FILE")
If LogErrorsOnly = False Then ClassLogger.Add(" ...Ergebnis/Wert für neuen Ordner: '" & ManIndexname & "'", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Ergebnis/Wert für neuen Ordner: '" & ManIndexname & "'", False)
If Not ManIndex_Value = String.Empty Then
If IsDate(ManIndex_Value) Then
ManIndex_Value = CDate(ManIndex_Value).ToString("yyyyMMdd")
End If
folderindex = folderindex.Replace(element.ToString, ManIndex_Value)
If LogErrorsOnly = False Then ClassLogger.Add(" ...FolderPattern: '" & folderindex & "'", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> FolderPattern: '" & folderindex & "'", False)
Else
Dim optional_index As Boolean = ClassDatabase.Execute_Scalar("SELECT OPTIONAL FROM TBDD_INDEX_MAN WHERE DOK_ID = " & CURRENT_DOKART_ID & " AND UPPER(NAME) = UPPER('" & ManIndexname & "')", MyConnectionString, True)
If optional_index = True Then
If LogErrorsOnly = False Then ClassLogger.Add(" ...Optionaler Indexwert ist NICHT gefüllt", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Optionaler Indexwert ist NICHT gefüllt", False)
Else
ClassLogger.Add(" - Achtung Ausnahme in 'CrFolderForIndex': der Index ist leer!", True)
Return True
@@ -2023,12 +2042,12 @@ Public Class frmIndex
End If
Case "A"
Dim AutoIndexname = element.Value.Substring(3, element.Value.Length - 4)
If LogErrorsOnly = False Then ClassLogger.Add(" ...Versuch den Auto-Indexwert aus '" & AutoIndexname & "' auszulesen.", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Versuch den Auto-Indexwert aus '" & AutoIndexname & "' auszulesen.", False)
Dim AutoIndex_Value As String = GetAutoIndex_Value(AutoIndexname)
If LogErrorsOnly = False Then ClassLogger.Add(" ...Ergebnis/Wert für neuen Ordner: '" & AutoIndexname & "'", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Ergebnis/Wert für neuen Ordner: '" & AutoIndexname & "'", False)
If Not AutoIndex_Value = String.Empty Then
folderindex = folderindex.Replace(element.ToString, AutoIndex_Value)
If LogErrorsOnly = False Then ClassLogger.Add(" ...FolderPattern: '" & folderindex & "'", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> FolderPattern: '" & folderindex & "'", False)
Else
ClassLogger.Add(" - Achtung Ausnahme in 'CrFolderForIndex': der Index ist leer!", True)
End If
@@ -2054,7 +2073,7 @@ Public Class frmIndex
folder_temp = My.Computer.Clock.LocalTime.Year & "-" & _Month
End Select
folderindex = folderindex.Replace(element.ToString, folder_temp)
If LogErrorsOnly = False Then ClassLogger.Add(" ...FolderPatter nach V-Element: '" & folderindex & "'", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> FolderPatter nach V-Element: '" & folderindex & "'", False)
Case Else
ClassLogger.Add(" - Achtung - in der Namenkonvention wurde ein Element gefunden welches nicht zugeordnet werden kann!" & vbNewLine & "Elementname: " & element.Value.ToUpper)
MsgBox("Achtung - in der Namenkonvention wurde ein Element gefunden welches nicht zugeordnet werden kann!" & vbNewLine & "Elementname: " & element.Value.ToUpper, MsgBoxStyle.Exclamation, "Fehler bei Name generieren:")
@@ -2137,10 +2156,10 @@ Public Class frmIndex
'Next
If LogErrorsOnly = False Then ClassLogger.Add(" ...Den Root-Folder zusammenfügen...", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Den Root-Folder zusammenfügen>> ", False)
Dim fullpath As String = RootFolder & "\" & folderindex & "\"
fullpath.Replace("\\", "\")
If LogErrorsOnly = False Then ClassLogger.Add(" ...Fullpath (mit evtl. Sonderzeichen (SZ)) '" & fullpath & "'", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Fullpath (mit evtl. Sonderzeichen (SZ)) '" & fullpath & "'", False)
Dim invalidPathChars() As Char = Path.GetInvalidPathChars()
For Each sonderChar As Char In invalidPathChars
'Sonderzeichen ausser Whitespace entfernen
@@ -2150,10 +2169,10 @@ Public Class frmIndex
End If
End If
Next sonderChar
If LogErrorsOnly = False Then ClassLogger.Add(" ...Fullpath (ohne SZ) '" & fullpath & "'", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Fullpath (ohne SZ) '" & fullpath & "'", False)
If Directory.Exists(fullpath) = False Then
Directory.CreateDirectory(fullpath)
If LogErrorsOnly = False Then ClassLogger.Add(" ...Folder '" & fullpath & "' wurde angelegt", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Folder '" & fullpath & "' wurde angelegt", False)
End If
'Die aktuelle Datei soll gleichzeitig verschoben werden
@@ -2161,13 +2180,13 @@ Public Class frmIndex
Dim Dateiname As String = Path.GetFileName(fullfilename)
Dim _Pfad, _WDLaufwerk, _Ziel As String
_Ziel = fullpath & Dateiname
If LogErrorsOnly = False Then ClassLogger.Add(" ...Ziel: " & _Ziel, False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Ziel: " & _Ziel, False)
'Nur verschieben und überprüfen wenn Pfad ungleich
If Path.GetDirectoryName(fullfilename) <> Path.GetDirectoryName(_Ziel) Then
Dim Stammname As String = _Ziel.Substring(0, _Ziel.LastIndexOf("."))
Dim version As Integer = 2
Do While File.Exists(_Ziel) = True
If LogErrorsOnly = False Then ClassLogger.Add(" ...Achtung: Datei ' " & Path.GetFileName(_Ziel) & "' existiert bereits!", False)
If LogErrorsOnly = False Then ClassLogger.Add(" >> Achtung: Datei ' " & Path.GetFileName(_Ziel) & "' existiert bereits!", False)
Dim neuername As String = Stammname & "~" & version & extension
_Ziel = neuername
version = version + 1