MS3006
This commit is contained in:
508
app/DD-Record-Organiser/frmWD_IndexFile.vb
Normal file
508
app/DD-Record-Organiser/frmWD_IndexFile.vb
Normal file
@@ -0,0 +1,508 @@
|
||||
Imports System.IO
|
||||
Imports System.Security.AccessControl
|
||||
Imports System.Security.Principal
|
||||
|
||||
Public Class frmWD_IndexFile
|
||||
Dim droptype As String
|
||||
Dim aktFiledropped As String
|
||||
Dim MULTIFILES As Integer = 0
|
||||
Private Sub FillToolStripButton_Click(sender As Object, e As EventArgs)
|
||||
Try
|
||||
Me.VWPMO_DOKUMENTTYPESTableAdapter.Fill(Me.DD_DMSDataSet.VWPMO_DOKUMENTTYPES, CURRENT_FORMVIEW_ID)
|
||||
Catch ex As System.Exception
|
||||
System.Windows.Forms.MessageBox.Show(ex.Message)
|
||||
End Try
|
||||
End Sub
|
||||
Function WORK_FILE(Filepath As String, Targetpath As String, vDokart_ID As Integer, vDokart As String, multiindex As Boolean)
|
||||
Try
|
||||
CURRENT_DOKARTSTRING = vDokart
|
||||
Dim err As Boolean = False
|
||||
If ClassImport_Windream.Name_Generieren(DOCTYPE_IDTextBox.Text) = False Then
|
||||
Return False
|
||||
End If
|
||||
|
||||
Dim streamresult = ClassWindream.Stream_File(Filepath, Targetpath)
|
||||
'Dim type = streamresult.GetType
|
||||
If streamresult = True Then
|
||||
Dim sql = "SELECT * FROM TBDD_INDEX_AUTOM WHERE ACTIVE = 1 AND UPPER(INDEXNAME) NOT LIKE UPPER('%ONLY %') AND DOCTYPE_ID = " & vDokart_ID
|
||||
Dim dt As DataTable = ClassDatabase.Return_Datatable(sql)
|
||||
Dim indexierung_erfolgreich As Boolean = False
|
||||
'Einbauen dass auch Konfigurationen erlaubt sind wo der Doktyp und der Record fest gestzt sind
|
||||
If dt Is Nothing = False Then 'CHECK DD
|
||||
If dt.Rows.Count >= 0 Then
|
||||
Dim Count As Integer = 0
|
||||
For Each row As DataRow In dt.Rows
|
||||
Dim indexname = row.Item("INDEXNAME").ToString
|
||||
Dim idxvalue = row.Item("VALUE")
|
||||
If idxvalue.ToString.StartsWith("@") Then
|
||||
Select Case idxvalue.ToString.ToUpper
|
||||
Case "@RECORD-ID"
|
||||
idxvalue = idxvalue.ToString.Replace("@Record-ID", CURRENT_RECORD_ID)
|
||||
Case "@DOKART"
|
||||
idxvalue = idxvalue.ToString.Replace("@Dokart", vDokart)
|
||||
End Select
|
||||
Else 'Es wird nicht über einen @PAttern indexiert
|
||||
' 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(idxvalue)
|
||||
'####
|
||||
' alle Vorkommen innerhalbd er Namenkonvention durchlaufen
|
||||
For Each element As System.Text.RegularExpressions.Match In elemente
|
||||
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> element in RegeX: " & element.Value, False)
|
||||
Select Case element.Value.Substring(2, 1).ToUpper
|
||||
'Nur automatische Indizes auswerten
|
||||
Case "A"
|
||||
Dim APattern = element.Value.Substring(3, element.Value.Length - 4)
|
||||
If APattern.Contains("#") Then
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> element filled with Record-Data.......: ", False)
|
||||
Dim split() As String = APattern.Split("#")
|
||||
If split.Length = 2 Then
|
||||
Dim CONTROL_ID = split(1)
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> CONTROL_ID: " & CONTROL_ID, False)
|
||||
If IsNumeric(CONTROL_ID) Then
|
||||
Dim CONTROLVALUE = ClassControlValues.Get_Control_Value_for_ID(CONTROL_ID, CURRENT_RECORD_ID)
|
||||
If IsNothing(CONTROLVALUE) Then
|
||||
ClassLogger.Add(">> Index should be filled with value of Control-ID '" & CONTROL_ID & "', but result was nothing.", False)
|
||||
ClassLogger.Add(">> SQL-Command: " & CURRENT_LAST_SQL)
|
||||
idxvalue = ""
|
||||
Else
|
||||
If IsDBNull(CONTROLVALUE) Then
|
||||
ClassLogger.Add(">> Index should be filled with value of Control-ID '" & CONTROL_ID & "', but result was DBNULL.", False)
|
||||
ClassLogger.Add(">> SQL-Command: " & CURRENT_LAST_SQL)
|
||||
idxvalue = ""
|
||||
Else
|
||||
idxvalue = CONTROLVALUE
|
||||
End If
|
||||
End If
|
||||
Else
|
||||
|
||||
End If
|
||||
End If
|
||||
End If
|
||||
End Select
|
||||
|
||||
Next
|
||||
End If
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Value for Indexing : '" & idxvalue.ToString & "'", False)
|
||||
Count += 1
|
||||
indexierung_erfolgreich = ClassWindream.IndexFile(CURRENT_FILEIN_WD, indexname, idxvalue)
|
||||
If indexierung_erfolgreich = False Then
|
||||
MsgBox("Unexpected Error in indexing file - See log", MsgBoxStyle.Critical)
|
||||
err = True
|
||||
Exit For
|
||||
End If
|
||||
'ByVal WD_File As String, ByVal _Indexname As String, ByVal _Value As String
|
||||
Next
|
||||
If err = True Then
|
||||
Return False
|
||||
End If
|
||||
'den Entity-Key auslesen
|
||||
sql = "Select Top 1 * from TBPMO_WD_OBJECTTYPE where Upper(object_type) = Upper('" & ClassWindream._WDObjekttyp & "')"
|
||||
dt = ClassDatabase.Return_Datatable(sql)
|
||||
If Not dt Is Nothing Then
|
||||
If dt.Rows.Count = 1 Then
|
||||
'den Entity-Key auslesen
|
||||
Dim indexname = dt.Rows(0).Item("IDXNAME_ENTITYID").ToString
|
||||
Dim idxvalue = CURRENT_FORM_ID
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Entity-ID: " & idxvalue.ToString, False)
|
||||
indexierung_erfolgreich = ClassWindream.IndexFile(CURRENT_FILEIN_WD, indexname, idxvalue)
|
||||
If indexierung_erfolgreich = False Then
|
||||
err = True
|
||||
MsgBox("Unexpected Error in indexing file Entity - See log", MsgBoxStyle.Critical)
|
||||
Return False
|
||||
End If
|
||||
'den Parent-Key auslesen
|
||||
indexname = dt.Rows(0).Item("IDXNAME_PARENTID").ToString
|
||||
idxvalue = CURRENT_PARENT_ENTITY_ID
|
||||
If LogErrorsOnly = False Then ClassLogger.Add(" >> Parent-ID: " & idxvalue.ToString, False)
|
||||
indexierung_erfolgreich = ClassWindream.IndexFile(CURRENT_FILEIN_WD, indexname, idxvalue)
|
||||
If indexierung_erfolgreich = False Then
|
||||
err = True
|
||||
MsgBox("Unexpected Error in indexing file Parent-ID - See log", MsgBoxStyle.Critical)
|
||||
Return False
|
||||
End If
|
||||
''den Record-Key auslesen
|
||||
'indexname = dt.Rows(0).Item("IDXNAME_RECORDID").ToString
|
||||
'idxvalue = CURRENT_RECORD_ID
|
||||
'If LogErrorsOnly = False Then ClassLogger.Add(" >> Record-ID: " & idxvalue.ToString, False)
|
||||
'indexierung_erfolgreich = ClassWindream.DateiIndexieren(CURRENT_FILEIN_WD, indexname, idxvalue)
|
||||
'If indexierung_erfolgreich = False Then
|
||||
' err = True
|
||||
' MsgBox("Unexpected Error in indexing file Record-ID - See log", MsgBoxStyle.Critical)
|
||||
' Return False
|
||||
'End If
|
||||
''den Doctype-Key auslesen
|
||||
'indexname = dt.Rows(0).Item("IDXNAME_DOCTYPE").ToString
|
||||
'idxvalue = CURRENT_DOKARTSTRING
|
||||
'If LogErrorsOnly = False Then ClassLogger.Add(" >> Doctype: " & idxvalue.ToString, False)
|
||||
'indexierung_erfolgreich = ClassWindream.DateiIndexieren(CURRENT_FILEIN_WD, indexname, idxvalue)
|
||||
'If indexierung_erfolgreich = False Then
|
||||
' err = True
|
||||
' MsgBox("Unexpected Error in indexing file Doctype - See log", MsgBoxStyle.Critical)
|
||||
' Return False
|
||||
'End If
|
||||
End If
|
||||
End If
|
||||
If indexierung_erfolgreich = True Then
|
||||
ClassLogger.Add(">> File was correctly imported and indexed: " & CURRENT_FILEIN_WD, False)
|
||||
Dim stg As String = "Datei erfolgreich nach windream übertragen"
|
||||
Dim stg1 As String = "Erfolgsmeldung"
|
||||
If USER_LANGUAGE <> "de-DE" Then
|
||||
stg = "File was successfully transfered to windream"
|
||||
stg1 = "Success:"
|
||||
End If
|
||||
If multiindex = False Then MsgBox(stg, MsgBoxStyle.Information, stg1)
|
||||
ClassDatabase.Execute_Scalar("UPDATE TBPMO_FILES_USER SET WORKED = 1 WHERE GUID = " & CURRENT_FILEID)
|
||||
|
||||
'Die Originaldatei löschen
|
||||
If droptype = "dragdrop file" And indexierung_erfolgreich = True Then
|
||||
If chkdelete_origin.Checked = True Then
|
||||
'Die temporäre Datei löschen
|
||||
File.Delete(aktFiledropped)
|
||||
End If
|
||||
ElseIf (droptype = "@ATTMNTEXTRACTED@" Or droptype = "SCAN") And indexierung_erfolgreich = True Then
|
||||
'Die temporäre Datei löschen
|
||||
File.Delete(aktFiledropped)
|
||||
ElseIf droptype = "dragdrop message" And indexierung_erfolgreich = True Then
|
||||
'Die temporäre Datei löschen
|
||||
File.Delete(aktFiledropped)
|
||||
End If
|
||||
Return True
|
||||
Else
|
||||
MsgBox("An unexpected error occured while indexing file. Please check the log!", MsgBoxStyle.Exclamation)
|
||||
Return False
|
||||
End If
|
||||
Else
|
||||
MsgBox("Attention in Work-File:" & vbNewLine & "No indices were defined (1)!", MsgBoxStyle.Critical)
|
||||
Return False
|
||||
End If
|
||||
Else
|
||||
MsgBox("Attention in Work-File:" & vbNewLine & "No indices were defined (0)!", MsgBoxStyle.Critical)
|
||||
Return False
|
||||
End If
|
||||
Else
|
||||
Return False
|
||||
End If
|
||||
Catch ex As Exception
|
||||
MsgBox("Unexpected error in Work-File:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
||||
Return False
|
||||
End Try
|
||||
|
||||
End Function
|
||||
|
||||
|
||||
'Function FillIndexe_Autom(dokart_id As Integer)
|
||||
' Try
|
||||
' Me.VWDDINDEX_AUTOMTableAdapter.Fill(Me.DD_DMSDataSet.VWDDINDEX_AUTOM, dokart_id)
|
||||
' If DD_DMSDataSet.VWDDINDEX_AUTOM.Rows.Count > 0 Then
|
||||
' ' MsgBox(DT.Rows.Count.ToString)
|
||||
' For Each DR_AUTOINDEX As DataRow In DD_DMSDataSet.VWDDINDEX_AUTOM.Rows
|
||||
' Dim indexname As String = DR_AUTOINDEX.Item("INDEXNAME")
|
||||
' 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}"
|
||||
' ' SQL-String für aktuellen INdex laden
|
||||
' Dim SqlString As String = DR_AUTOINDEX.Item("SQL_RESULT")
|
||||
' ' 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(SqlString)
|
||||
' ' 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)
|
||||
' '' 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)
|
||||
' '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)
|
||||
' 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)
|
||||
' 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 automatischerValue <> String.Empty Then
|
||||
' DR_AUTOINDEX.Item("Indexiert") = True
|
||||
' DR_AUTOINDEX.Item("Indexwert") = automatischerValue
|
||||
' Else
|
||||
' ClassLogger.Add(" - ACHTUNG: automatischerValue = String.Empty - Funktion: FillIndexe_Autom", False)
|
||||
' ClassLogger.Add(" - SqlString: " & SqlString, False)
|
||||
' Return False
|
||||
' End If
|
||||
' Else
|
||||
' If Not IsDBNull(DR_AUTOINDEX.Item("VALUE")) Then
|
||||
' If DR_AUTOINDEX.Item("VALUE") <> "" Then
|
||||
' 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)
|
||||
' Select Case DEFAULTVALUE.ToUpper
|
||||
' Case "$filename_ext".ToUpper
|
||||
' DEFAULTVALUE = Path.GetFileName(CURRENT_WORKFILE)
|
||||
' Case "$filename".ToUpper
|
||||
' DEFAULTVALUE = Path.GetFileNameWithoutExtension(CURRENT_WORKFILE)
|
||||
' Case "$FileCreateDate".ToUpper
|
||||
' Dim FI As New FileInfo(CURRENT_WORKFILE)
|
||||
' Dim CreationDate As Date = FI.CreationTime
|
||||
' DEFAULTVALUE = CreationDate.ToShortDateString
|
||||
' Case "$FileCreatedWho".ToUpper
|
||||
' Dim fs As FileSecurity = File.GetAccessControl(CURRENT_WORKFILE)
|
||||
' Dim sid As IdentityReference = fs.GetOwner(GetType(SecurityIdentifier))
|
||||
' Dim ntaccount As IdentityReference = sid.Translate(GetType(NTAccount))
|
||||
' Dim owner As String = ntaccount.ToString()
|
||||
' DEFAULTVALUE = owner
|
||||
' Case "$DateDDMMYYY".ToUpper
|
||||
' DEFAULTVALUE = System.DateTime.Now.ToShortDateString
|
||||
' End Select
|
||||
' 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)
|
||||
' End If
|
||||
' 'Den Wert in der Zwischentabelle speichern
|
||||
' DR_AUTOINDEX.Item("Indexiert") = True
|
||||
' DR_AUTOINDEX.Item("Indexwert") = DEFAULTVALUE
|
||||
' End If
|
||||
' End If
|
||||
' End If
|
||||
' Next
|
||||
' 'MsgBox("Noch kein automatischer Index-SQL-String hinterlegt, dennoch wird das Dokument abgelegt!")
|
||||
' Return True
|
||||
' Else
|
||||
' Return True
|
||||
' End If
|
||||
' Catch ex As System.Exception
|
||||
' ClassLogger.Add(" - Fehler bei FillIndexe_Autom - Fehler: " & vbNewLine & ex.Message)
|
||||
' MsgBox(ex.Message, MsgBoxStyle.Critical, "Fehler bei FillIndexe_Autom")
|
||||
' Return False
|
||||
' End Try
|
||||
|
||||
'End Function
|
||||
|
||||
Private Sub btnindex_Click(sender As Object, e As EventArgs) Handles btnindex.Click
|
||||
If CURRENT_RECORD_ID = 0 Then
|
||||
MsgBox("No Record chosen or the documenttype was not chosen!", MsgBoxStyle.Information)
|
||||
Exit Sub
|
||||
End If
|
||||
If lvwIndices.Items.Count = 0 Then
|
||||
MsgBox("Please choose a documenttxpe!", MsgBoxStyle.Information)
|
||||
Exit Sub
|
||||
End If
|
||||
If cmbDokumentart.SelectedIndex <> -1 Then
|
||||
My.Settings.WD_INDEXDOKART_SAVE = cmbDokumentart.Text
|
||||
My.Settings.Save()
|
||||
Indexing_File(cmbDokumentart.SelectedValue)
|
||||
End If
|
||||
|
||||
End Sub
|
||||
Sub Indexing_File(doctype_id As Integer)
|
||||
Try
|
||||
Me.Cursor = Cursors.WaitCursor
|
||||
SaveMySettingsValue("WD_IndexDeleteDocs", WD_IndexDeleteDocs, "ConfigMain")
|
||||
ClassWindream._WDObjekttyp = Me.OBJECT_TYPETextBox.Text
|
||||
If chkMultiIndexer.Visible = True And chkMultiIndexer.Checked = True Then
|
||||
'Die erste Datei indexieren
|
||||
If WORK_FILE(Me.txtFilepath.Text, Me.PATHTextBox.Text, doctype_id, My.Settings.WD_INDEXDOKART_SAVE, True) = True Then
|
||||
'Und nun die folgenden
|
||||
Dim DTFiles2Work As DataTable = ClassDatabase.Return_Datatable("SELECT * FROM TBPMO_FILES_USER WHERE WORKED = 0 AND GUID <> " & CURRENT_FILEID & " AND UPPER(USER_WORK) = UPPER('" & Environment.UserName & "')")
|
||||
If Not DTFiles2Work Is Nothing Then
|
||||
Dim err = False
|
||||
For Each filerow As DataRow In DTFiles2Work.Rows
|
||||
CURRENT_FILEID = filerow.Item("GUID")
|
||||
CURRENT_FILENAME = filerow.Item("FILENAME2WORK")
|
||||
Dim HandleType As String = filerow.Item("HANDLE_TYPE")
|
||||
aktFiledropped = CURRENT_FILENAME
|
||||
If HandleType = "@DROPFROMFSYSTEM@" Then
|
||||
droptype = "dragdrop file"
|
||||
ElseIf HandleType = "@OUTLOOK_ATTMNT@" Then
|
||||
droptype = "dragdrop attachment"
|
||||
ElseIf HandleType = "@OUTLOOKMESSAGE@" Then
|
||||
droptype = "dragdrop message"
|
||||
End If
|
||||
If WORK_FILE(CURRENT_FILENAME, Me.PATHTextBox.Text, doctype_id, My.Settings.WD_INDEXDOKART_SAVE, True) = False Then
|
||||
err = True
|
||||
Exit For
|
||||
End If
|
||||
Next
|
||||
Me.Cursor = Cursors.Default
|
||||
If err = False Then
|
||||
Dim stg As String = "Alle Dateien wurden mit Multiindexing erfolgreich nach windream übertragen!"
|
||||
Dim stg1 As String = "Erfolgsmeldung"
|
||||
If USER_LANGUAGE <> "de-DE" Then
|
||||
stg = "All files were transferred via Multiindexing to windream"
|
||||
stg1 = "Success:"
|
||||
End If
|
||||
MsgBox(stg, MsgBoxStyle.Information, stg1)
|
||||
Me.Close()
|
||||
End If
|
||||
End If
|
||||
|
||||
|
||||
End If
|
||||
Else
|
||||
If WORK_FILE(Me.txtFilepath.Text, Me.PATHTextBox.Text, doctype_id, My.Settings.WD_INDEXDOKART_SAVE, False) = True Then Me.Close()
|
||||
End If
|
||||
Me.Cursor = Cursors.Default
|
||||
|
||||
Catch ex As Exception
|
||||
MsgBox("Error in Indexing_File:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
||||
End Try
|
||||
End Sub
|
||||
Private Sub cmbDokumentart_SelectedIndexChanged(sender As Object, e As EventArgs) Handles cmbDokumentart.SelectedIndexChanged
|
||||
Try
|
||||
CURRENT_DOKARTID = 0
|
||||
If cmbDokumentart.SelectedIndex <> -1 Then
|
||||
CURRENT_DOKARTID = cmbDokumentart.SelectedValue
|
||||
CURRENT_DOKARTSTRING = cmbDokumentart.Text
|
||||
Refresh_indices()
|
||||
|
||||
End If
|
||||
Catch ex As Exception
|
||||
MsgBox("Error in cmbDokumentart SelectedIndex:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
||||
End Try
|
||||
End Sub
|
||||
Sub Refresh_indices()
|
||||
Try
|
||||
If CURRENT_DOKARTID > 0 Then
|
||||
Dim sql = "SELECT OBJEKTTYP FROM TBDD_DOKUMENTART WHERE GUID = " & CURRENT_DOKARTID
|
||||
OBJECT_TYPETextBox.Text = ClassDatabase.Execute_Scalar(sql, True)
|
||||
DOCTYPE_IDTextBox.Text = CURRENT_DOKARTID
|
||||
sql = "SELECT * FROM TBDD_INDEX_AUTOM WHERE DOCTYPE_ID = " & CURRENT_DOKARTID
|
||||
Dim dt As DataTable = ClassDatabase.Return_Datatable(sql)
|
||||
Dim Count As Integer = 0
|
||||
lvwIndices.Items.Clear()
|
||||
If dt.Rows.Count > 0 Then
|
||||
For Each row As DataRow In dt.Rows
|
||||
lvwIndices.Items.Add(row.Item("INDEXNAME").ToString)
|
||||
|
||||
Dim Value As String
|
||||
Dim _case = row.Item("VALUE").ToString.ToUpper
|
||||
Select Case row.Item("VALUE").ToString.ToUpper
|
||||
Case "@DOKART"
|
||||
Value = CURRENT_DOKARTSTRING
|
||||
Case "@RECORD-ID"
|
||||
Value = CURRENT_RECORD_ID
|
||||
End Select
|
||||
lvwIndices.Items(Count).SubItems.Add(Value)
|
||||
Count += 1
|
||||
Next
|
||||
End If
|
||||
'den Entity-Key auslesen
|
||||
sql = "Select Top 1 * from TBPMO_WD_OBJECTTYPE where Upper(object_type) = Upper('" & OBJECT_TYPETextBox.Text & "')"
|
||||
dt = ClassDatabase.Return_Datatable(sql)
|
||||
If Not dt Is Nothing Then
|
||||
If dt.Rows.Count = 1 Then
|
||||
lvwIndices.Items.Add(dt.Rows(0).Item("IDXNAME_ENTITYID").ToString)
|
||||
lvwIndices.Items(Count).SubItems.Add(CURRENT_FORM_ID)
|
||||
Count = Count + 1
|
||||
lvwIndices.Items.Add(dt.Rows(0).Item("IDXNAME_PARENTID").ToString)
|
||||
Dim ParentID = ClassDatabase.Execute_Scalar("SELECT TOP 1 PARENT_ID FROM TBPMO_FORM WHERE GUID = " & CURRENT_FORM_ID, True)
|
||||
Try
|
||||
If IsNumeric(ParentID) And ParentID > 0 Then
|
||||
lvwIndices.Items(Count).SubItems.Add(ParentID)
|
||||
End If
|
||||
Catch ex As Exception
|
||||
MsgBox("Unexpected Error in Setting Parent-ID" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
||||
End Try
|
||||
Count = Count + 1
|
||||
''den Record-Key auslesen
|
||||
'lvwIndices.Items.Add(dt.Rows(0).Item("IDXNAME_RECORDID").ToString)
|
||||
'lvwIndices.Items(Count).SubItems.Add(CURRENT_RECORD_ID)
|
||||
'Count = Count + 1
|
||||
'lvwIndices.Items.Add(dt.Rows(0).Item("IDXNAME_DOCTYPE").ToString)
|
||||
'lvwIndices.Items(Count).SubItems.Add(CURRENT_DOKARTSTRING)
|
||||
End If
|
||||
|
||||
End If
|
||||
End If
|
||||
Catch ex As Exception
|
||||
MsgBox("Error in Refresh Indices for Indexing:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Sub frmWD_Index_Dokart_FormClosing(sender As Object, e As FormClosingEventArgs) Handles Me.FormClosing
|
||||
My.Settings.Save()
|
||||
End Sub
|
||||
Private Sub frmWD_Index_Dokart_Load(sender As Object, e As EventArgs) Handles Me.Load
|
||||
Try
|
||||
Me.VWDDINDEX_AUTOMTableAdapter.Connection.ConnectionString = MyConnectionString
|
||||
chkMultiIndexer.Checked = False
|
||||
ClassLogger.Add(">> frmWD_Index_Dokart_Load", False)
|
||||
chkdelete_origin.Checked = False
|
||||
chkdelete_origin.Visible = False
|
||||
CURRENT_FILENAME = ClassDatabase.Execute_Scalar("SELECT FILENAME2WORK FROM TBPMO_FILES_USER WHERE GUID = " & CURRENT_FILEID)
|
||||
Dim HandleType As String = ClassDatabase.Execute_Scalar("SELECT HANDLE_TYPE FROM TBPMO_FILES_USER WHERE GUID = " & CURRENT_FILEID)
|
||||
MULTIFILES = ClassDatabase.Execute_Scalar("SELECT COUNT(*) FROM TBPMO_FILES_USER WHERE WORKED = 0 AND GUID <> " & CURRENT_FILEID & " AND UPPER(USER_WORK) = UPPER('" & Environment.UserName & "')")
|
||||
If MULTIFILES > 0 Then
|
||||
chkMultiIndexer.Text = "Multi-Indexing - Alle nachfolgenden Dateien (" & MULTIFILES & ") identisch indexieren"
|
||||
chkMultiIndexer.Visible = True
|
||||
Else
|
||||
chkMultiIndexer.Visible = False
|
||||
End If
|
||||
aktFiledropped = CURRENT_FILENAME
|
||||
txtFilepath.Text = aktFiledropped
|
||||
If HandleType = "@DROPFROMFSYSTEM@" Then
|
||||
droptype = "dragdrop file"
|
||||
chkdelete_origin.Visible = True
|
||||
chkdelete_origin.Checked = WD_IndexDeleteDocs
|
||||
ElseIf HandleType = "@OUTLOOK_ATTMNT@" Then
|
||||
droptype = "dragdrop attachment"
|
||||
chkdelete_origin.Visible = True
|
||||
chkdelete_origin.Checked = WD_IndexDeleteDocs
|
||||
ElseIf HandleType = "@OUTLOOKMESSAGE@" Then
|
||||
droptype = "dragdrop message"
|
||||
chkdelete_origin.Visible = True
|
||||
chkdelete_origin.Checked = WD_IndexDeleteDocs
|
||||
ElseIf HandleType = "SCAM" Then
|
||||
droptype = "scan"
|
||||
End If
|
||||
TBPMO_FILES_USERTableAdapter.Connection.ConnectionString = MyConnectionString
|
||||
VWPMO_DOKUMENTTYPESTableAdapter.Connection.ConnectionString = MyConnectionString
|
||||
Me.VWPMO_DOKUMENTTYPESTableAdapter.Fill(Me.DD_DMSDataSet.VWPMO_DOKUMENTTYPES, CURRENT_FORMVIEW_ID)
|
||||
If cmbDokumentart.Items.Count = 0 Then
|
||||
MsgBox("No dcumenttypes for this entity configured! Indexing is not possible!" & vbNewLine & "Please check the configuration!", MsgBoxStyle.Exclamation)
|
||||
Exit Sub
|
||||
End If
|
||||
Catch ex As Exception
|
||||
MsgBox("Error in frmWD_Index_Dokart_Load:" & vbNewLine & ex.Message, MsgBoxStyle.Critical)
|
||||
End Try
|
||||
End Sub
|
||||
|
||||
Private Sub chkdelete_origin_CheckedChanged(sender As Object, e As EventArgs) Handles chkdelete_origin.CheckedChanged
|
||||
WD_IndexDeleteDocs = chkdelete_origin.Checked
|
||||
SaveMySettingsValue("WD_IndexDeleteDocs", WD_IndexDeleteDocs, "ConfigMain")
|
||||
End Sub
|
||||
|
||||
Private Sub frmWD_Index_Dokart_Shown(sender As Object, e As EventArgs) Handles Me.Shown
|
||||
If My.Settings.WD_INDEXDOKART_SAVE <> String.Empty Then
|
||||
cmbDokumentart.SelectedIndex = cmbDokumentart.FindStringExact(My.Settings.WD_INDEXDOKART_SAVE)
|
||||
Else
|
||||
If DD_DMSDataSet.VWPMO_DOKUMENTTYPES.Rows.Count = 1 Then
|
||||
cmbDokumentart.SelectedIndex = 0
|
||||
CURRENT_DOKARTID = cmbDokumentart.SelectedValue
|
||||
CURRENT_DOKARTSTRING = cmbDokumentart.Text
|
||||
Refresh_indices()
|
||||
End If
|
||||
End If
|
||||
Me.Hide()
|
||||
Me.Visible = True
|
||||
Me.Activate()
|
||||
Me.BringToFront()
|
||||
If CURRENT_CONTROL_DOCTYPE_MATCH <> "" Then
|
||||
cmbDokumentart.SelectedIndex = cmbDokumentart.FindStringExact(CURRENT_CONTROL_DOCTYPE_MATCH)
|
||||
End If
|
||||
End Sub
|
||||
End Class
|
||||
Reference in New Issue
Block a user