3.7.2 Optimierungen und Button Knoten hinzufügen
This commit is contained in:
@@ -7,46 +7,37 @@ Public Class ClassHelper
|
||||
Private Shared BW_DocID As Integer
|
||||
Private Shared BW_ParentID As Integer
|
||||
Private Shared BW_Filename As String
|
||||
Public Shared Function FORMAT_WM_PATH(WMpath As String)
|
||||
Public Shared Function FORMAT_WM_PATH(WMpath As String) As String
|
||||
Try
|
||||
If Not IsNothing(WMpath) Then
|
||||
Dim ochanged As Boolean = False
|
||||
If WMpath.StartsWith("W:") Then
|
||||
WMpath = WMpath.Replace("W:", WMPATH_PREFIX)
|
||||
ochanged = True
|
||||
ElseIf WMpath.StartsWith("\") Then
|
||||
If WMpath.StartsWith(WMPATH_PREFIX) = False Then
|
||||
WMpath = WMPATH_PREFIX & WMpath
|
||||
ochanged = True
|
||||
End If
|
||||
End If
|
||||
LOGGER.Debug("WMpath is: " & WMpath)
|
||||
Return WMpath
|
||||
Else
|
||||
If IsNothing(WMpath) Then
|
||||
Return Nothing
|
||||
End If
|
||||
|
||||
Catch ex As Exception
|
||||
Return WMpath
|
||||
End Try
|
||||
|
||||
End Function
|
||||
Public Shared Function GetRelPath(WMpath As String)
|
||||
Try
|
||||
If WMpath.StartsWith("W:") Then
|
||||
WMpath = WMpath.Replace("W:", "")
|
||||
|
||||
ElseIf WMpath.StartsWith("\") Then
|
||||
If WMpath.StartsWith(WMPATH_PREFIX) = False Then
|
||||
WMpath = WMpath.Replace("WMPATH_PREFIX:", "")
|
||||
End If
|
||||
WMpath = WMpath.Replace("W:", WMPATH_PREFIX)
|
||||
ElseIf WMpath.StartsWith("\") AndAlso Not WMpath.StartsWith(WMPATH_PREFIX) Then
|
||||
WMpath = WMPATH_PREFIX & WMpath
|
||||
End If
|
||||
|
||||
LOGGER.Debug("WMpath is: " & WMpath)
|
||||
Return WMpath
|
||||
Catch ex As Exception
|
||||
Return WMpath
|
||||
End Try
|
||||
End Function
|
||||
Public Shared Function GetRelPath(WMpath As String) As String
|
||||
Try
|
||||
If WMpath.StartsWith("W:") Then
|
||||
WMpath = WMpath.Replace("W:", "")
|
||||
ElseIf WMpath.StartsWith(WMPATH_PREFIX) Then
|
||||
WMpath = WMpath.Replace(WMPATH_PREFIX, "")
|
||||
End If
|
||||
|
||||
LOGGER.Debug("WMpath is: " & WMpath)
|
||||
Return WMpath
|
||||
Catch ex As Exception
|
||||
Return WMpath
|
||||
End Try
|
||||
End Function
|
||||
Public Shared Function Format_Currency(value As String, language As String)
|
||||
Try
|
||||
@@ -118,53 +109,28 @@ Public Class ClassHelper
|
||||
End If
|
||||
Return tempName
|
||||
End Function
|
||||
Public Shared Function CheckFileIsInUse(ByVal filename) As Boolean
|
||||
Dim fs As Integer = FreeFile()
|
||||
Dim inuse As Boolean = False
|
||||
If File.Exists(filename) Then
|
||||
Try
|
||||
Using f As New IO.FileStream(filename, FileMode.Open, FileAccess.ReadWrite, FileShare.None)
|
||||
' thisFileInUse = False
|
||||
End Using
|
||||
Catch
|
||||
inuse = True
|
||||
End Try
|
||||
|
||||
Try
|
||||
FileOpen(fs, filename, OpenMode.Binary, OpenAccess.ReadWrite, OpenShare.LockReadWrite)
|
||||
Catch ex As Exception
|
||||
LOGGER.Warn("File " & filename & " inuse or not able to open - message: " & ex.Message)
|
||||
inuse = True
|
||||
Finally
|
||||
FileClose(fs)
|
||||
End Try
|
||||
End If
|
||||
Return inuse
|
||||
End Function
|
||||
Public Shared Function Versionierung_Datei(Dateiname As String)
|
||||
Dim extension
|
||||
Dim _NewFileString
|
||||
Public Shared Function Versionierung_Datei(pDateiname As String) As String
|
||||
Try
|
||||
Dim version As Integer = 1
|
||||
pDateiname = FORMAT_WM_PATH(pDateiname)
|
||||
Dim dir As String = Path.GetDirectoryName(pDateiname)
|
||||
Dim baseName As String = Path.GetFileNameWithoutExtension(pDateiname)
|
||||
Dim ext As String = Path.GetExtension(pDateiname)
|
||||
Dim stammname As String = Path.Combine(dir, baseName)
|
||||
|
||||
Dim Stammname As String = Path.GetDirectoryName(Dateiname) & "\" & Path.GetFileNameWithoutExtension(Dateiname)
|
||||
extension = Path.GetExtension(Dateiname)
|
||||
|
||||
Dim _neuername As String = Stammname
|
||||
'Dim MoveFilename As String = DATEINAME.Replace(element.Value, "")
|
||||
'Überprüfen ob File existiert
|
||||
If File.Exists(_neuername & extension) = False Then
|
||||
_NewFileString = _neuername
|
||||
Else
|
||||
Do While File.Exists(_neuername & extension)
|
||||
version = version + 1
|
||||
_neuername = Stammname & "~" & version
|
||||
_NewFileString = _neuername
|
||||
Loop
|
||||
If Not File.Exists(pDateiname) Then
|
||||
Return ""
|
||||
End If
|
||||
Return _NewFileString & extension
|
||||
|
||||
Dim version As Integer = 2
|
||||
Dim candidate As String
|
||||
Do
|
||||
candidate = stammname & "~" & version & ext
|
||||
version += 1
|
||||
Loop While File.Exists(candidate)
|
||||
|
||||
Return candidate
|
||||
Catch ex As Exception
|
||||
LOGGER.Warn(" - Error in versioning file - error: " & vbNewLine & ex.Message)
|
||||
LOGGER.Warn(" - Error in versioning file - error: " & vbCrLf & ex.Message)
|
||||
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error in versioning file:")
|
||||
Return ""
|
||||
End Try
|
||||
@@ -209,12 +175,13 @@ Public Class ClassHelper
|
||||
Return True
|
||||
Else
|
||||
MSGBOX_Handler("ERROR", "", "Sorry, but the docpath for doc-id: " & DocID & " is nothing!")
|
||||
Return False
|
||||
LOGGER.Debug("RESULT_DOC_PATH IS NOTHING")
|
||||
Return False
|
||||
|
||||
End If
|
||||
Catch ex As Exception
|
||||
MsgBox("Unexpected Error in File_open:" & vbNewLine & ex.Message & vbNewLine & RESULT_DOC_PATH & vbNewLine & "DocID: " & DocID, MsgBoxStyle.Critical)
|
||||
LOGGER.Warn("Error in File_open: " & ex.Message & vbNewLine & " - Path: " & RESULT_DOC_PATH & " - DocID: " & DocID)
|
||||
MsgBox("Unexpected Error in File_open:" & vbCrLf & ex.Message & vbCrLf & RESULT_DOC_PATH & vbCrLf & "DocID: " & DocID, MsgBoxStyle.Critical)
|
||||
LOGGER.Warn("Error in File_open: " & ex.Message & vbCrLf & " - Path: " & RESULT_DOC_PATH & " - DocID: " & DocID)
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
@@ -228,8 +195,8 @@ Public Class ClassHelper
|
||||
LOGGER.Debug("RESULT_DOC_PATH IS NOTHING")
|
||||
End If
|
||||
Catch ex As Exception
|
||||
MsgBox("Unexpected Error in Open_Folder:" & vbNewLine & ex.Message & vbNewLine & RESULT_DOC_PATH & vbNewLine & "DocID: " & DocID, MsgBoxStyle.Critical)
|
||||
LOGGER.Warn("Error in Open_Folder: " & ex.Message & vbNewLine & " - Path: " & RESULT_DOC_PATH & " - DocID: " & DocID)
|
||||
MsgBox("Unexpected Error in Open_Folder:" & vbCrLf & ex.Message & vbCrLf & RESULT_DOC_PATH & vbCrLf & "DocID: " & DocID, MsgBoxStyle.Critical)
|
||||
LOGGER.Warn("Error in Open_Folder: " & ex.Message & vbCrLf & " - Path: " & RESULT_DOC_PATH & " - DocID: " & DocID)
|
||||
End Try
|
||||
End Sub
|
||||
Private Shared Sub File_SYSOPEN(RESULT_DOC_PATH As Object, DocID As String, pParentID As Integer)
|
||||
@@ -247,8 +214,8 @@ Public Class ClassHelper
|
||||
LOGGER.Warn("File_SYSOPEN RESULT_DOC_PATH is nothing")
|
||||
End If
|
||||
Catch ex As Exception
|
||||
MsgBox("Unexpected Error in File_SYSOPEN:" & vbNewLine & ex.Message & vbNewLine & RESULT_DOC_PATH & vbNewLine & "DocID: " & DocID, MsgBoxStyle.Critical)
|
||||
LOGGER.Warn("Error in File_SYSOPEN: " & ex.Message & vbNewLine & " - Path: " & RESULT_DOC_PATH & " - DocID: " & DocID)
|
||||
MsgBox("Unexpected Error in File_SYSOPEN:" & vbCrLf & ex.Message & vbCrLf & RESULT_DOC_PATH & vbCrLf & "DocID: " & DocID, MsgBoxStyle.Critical)
|
||||
LOGGER.Warn("Error in File_SYSOPEN: " & ex.Message & vbCrLf & " - Path: " & RESULT_DOC_PATH & " - DocID: " & DocID)
|
||||
End Try
|
||||
|
||||
End Sub
|
||||
@@ -313,15 +280,15 @@ Public Class ClassHelper
|
||||
|
||||
Catch ex As Exception
|
||||
' Fehler im Prozessstart oder während des Wartens
|
||||
LOGGER.Warn("Error in Process.Start(): " & ex.Message & vbNewLine & " - Path: " & BW_DocPath & " - DocID: " & BW_DocID)
|
||||
MsgBox("Error in OpenFile: " & ex.Message & vbNewLine &
|
||||
"Path: " & BW_DocPath & vbNewLine & "DocID: " & BW_DocID,
|
||||
LOGGER.Warn("Error in Process.Start(): " & ex.Message & vbCrLf & " - Path: " & BW_DocPath & " - DocID: " & BW_DocID)
|
||||
MsgBox("Error in OpenFile: " & ex.Message & vbCrLf &
|
||||
"Path: " & BW_DocPath & vbCrLf & "DocID: " & BW_DocID,
|
||||
MsgBoxStyle.Exclamation, "Open File Error")
|
||||
End Try
|
||||
|
||||
Catch ex As Exception
|
||||
' Fehler im gesamten Worker (z. B. Path nicht vorhanden)
|
||||
LOGGER.Warn("General error in BWFileHandler_DoWork: " & ex.Message & vbNewLine &
|
||||
LOGGER.Warn("General error in BWFileHandler_DoWork: " & ex.Message & vbCrLf &
|
||||
" - Path: " & BW_DocPath & " - DocID: " & BW_DocID)
|
||||
|
||||
' Letzter Versuch: Öffne mit Standardprogramm
|
||||
@@ -329,7 +296,7 @@ Public Class ClassHelper
|
||||
Process.Start(BW_DocPath)
|
||||
LOGGER.Debug("Fallback: Document opened with default application.")
|
||||
Catch ex1 As Exception
|
||||
LOGGER.Warn("Fallback error in Process.Start(): " & ex1.Message & vbNewLine &
|
||||
LOGGER.Warn("Fallback error in Process.Start(): " & ex1.Message & vbCrLf &
|
||||
" - Path: " & BW_DocPath & " - DocID: " & BW_DocID)
|
||||
End Try
|
||||
End Try
|
||||
@@ -382,17 +349,17 @@ Public Class ClassHelper
|
||||
' End If
|
||||
|
||||
' Catch ex As Exception
|
||||
' LOGGER.Warn("Error in Process1.Start(): " & ex.Message & vbNewLine & " - Path: " & BW_DocPath & " - DocID: " & BW_DocID)
|
||||
' MsgBox("Error in OpenFile: " & ex.Message & vbNewLine & " - Path: " & BW_DocPath & " - DocID: " & BW_DocID, MsgBoxStyle.Exclamation)
|
||||
' LOGGER.Warn("Error in Process1.Start(): " & ex.Message & vBCrlf & " - Path: " & BW_DocPath & " - DocID: " & BW_DocID)
|
||||
' MsgBox("Error in OpenFile: " & ex.Message & vBCrlf & " - Path: " & BW_DocPath & " - DocID: " & BW_DocID, MsgBoxStyle.Exclamation)
|
||||
' Exit Sub
|
||||
' End Try
|
||||
|
||||
' Catch ex As Exception
|
||||
' LOGGER.Warn("Error in Process.Start(): " & ex.Message & vbNewLine & " - Path: " & BW_DocPath & " - DocID: " & BW_DocID)
|
||||
' LOGGER.Warn("Error in Process.Start(): " & ex.Message & vBCrlf & " - Path: " & BW_DocPath & " - DocID: " & BW_DocID)
|
||||
' Try
|
||||
' Process.Start(BW_DocPath)
|
||||
' Catch ex1 As Exception
|
||||
' LOGGER.Warn("Error in Process.Start(1): " & ex1.Message & vbNewLine & " - Path: " & BW_DocPath & " - DocID: " & BW_DocID)
|
||||
' LOGGER.Warn("Error in Process.Start(1): " & ex1.Message & vBCrlf & " - Path: " & BW_DocPath & " - DocID: " & BW_DocID)
|
||||
' End Try
|
||||
' End Try
|
||||
'End Sub
|
||||
@@ -407,14 +374,11 @@ Public Class ClassHelper
|
||||
End If
|
||||
End If
|
||||
Catch ex As Exception
|
||||
MsgBox("Unexpected Error in FOLDER_OPEN:" & vbNewLine & ex.Message & vbNewLine & PATH & vbNewLine & "DocID: " & DocID, MsgBoxStyle.Critical)
|
||||
LOGGER.Warn("Error in FOLDER_OPEN: " & ex.Message & vbNewLine & " - Path: " & PATH & " - DocID: " & DocID)
|
||||
MsgBox("Unexpected Error in FOLDER_OPEN:" & vbCrLf & ex.Message & vbCrLf & PATH & vbCrLf & "DocID: " & DocID, MsgBoxStyle.Critical)
|
||||
LOGGER.Warn("Error in FOLDER_OPEN: " & ex.Message & vbCrLf & " - Path: " & PATH & " - DocID: " & DocID)
|
||||
End Try
|
||||
|
||||
End Sub
|
||||
Shared Function Convert_Date_2_Form_Format(p1 As Date) As Date
|
||||
Throw New NotImplementedException
|
||||
End Function
|
||||
Public Shared Function InsertEssential_Log(REFERENCE_KEY As Integer, REFERENCE_STRING As String, COMMENT As String)
|
||||
Try
|
||||
COMMENT = COMMENT.Replace("'", "")
|
||||
@@ -449,7 +413,7 @@ Public Class ClassHelper
|
||||
Public Shared Sub MSGBOX_Handler(type As String, Caption As String, info1 As String, Optional info2 As String = "")
|
||||
Dim msg = info1
|
||||
If info2 <> "" Then
|
||||
msg &= vbNewLine & vbNewLine & info2
|
||||
msg &= vbCrLf & vbCrLf & info2
|
||||
End If
|
||||
If type = "ERROR" Then
|
||||
MessageBox.Show(msg, Caption, MessageBoxButtons.OK, MessageBoxIcon.Error)
|
||||
@@ -495,6 +459,18 @@ Public Class ClassHelper
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
Public Shared Sub REMOVE_OLD_DROP_FILES()
|
||||
Try
|
||||
Dim oDEL = String.Format("UPDATE [DD_ECM].[dbo].[TBPMO_FILES_USER]
|
||||
SET [USER_WORK] = [USER_WORK] + '_TIMEOUT',
|
||||
WORKED = 1
|
||||
WHERE ADDED_WHEN < DATEADD(MINUTE, -5, GETDATE())
|
||||
AND WORKED = 0 AND USER_WORK = '{0}' ;", USER_USERNAME)
|
||||
MYDB_ECM.ExecuteNonQuery(oDEL)
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message, MsgBoxStyle.Critical, "Unexpected error while REMOVE_OLD_DROP_FILES")
|
||||
End Try
|
||||
End Sub
|
||||
Public Shared Sub Create_USER_FILE_TABLE()
|
||||
Try
|
||||
Dim sql = String.Format("SELECT *, CONVERT(BIT,0) AS DELETE_FILE FROM TBPMO_FILES_USER WHERE (USER_WORK = '{0}') AND WORKED = 0", USER_USERNAME)
|
||||
@@ -512,6 +488,15 @@ Public Class ClassHelper
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
Public Shared Function DELETE_PMO_FILE_USER_OPEN_FILES()
|
||||
Try
|
||||
Dim del As String = String.Format("DELETE FROM TBPMO_FILES_USER WHERE (USER_WORK = '{0}') AND WORKED = 0", USER_USERNAME)
|
||||
Return MYDB_ECM.ExecuteNonQuery(del)
|
||||
Catch ex As Exception
|
||||
MsgBox("Unexpected Error in DELETE_PMO_FILE_USER_OPEN_FILES: " & ex.Message, MsgBoxStyle.Critical)
|
||||
Return False
|
||||
End Try
|
||||
End Function
|
||||
Public Shared Function DecryptString(ciphertext As String, MethodName As String)
|
||||
Dim result As String
|
||||
Dim wrapper As New ClassEncryption("!35452didalog=")
|
||||
@@ -530,7 +515,6 @@ Public Class ClassHelper
|
||||
Dim filteredData As DataTable = BaseDatatable.Clone()
|
||||
'Einfügevariante
|
||||
BaseDatatable.Select(expression, sortstring).CopyToDataTable(filteredData, LoadOption.PreserveChanges)
|
||||
Console.WriteLine("Found {0} rows.", filteredData.Rows.Count)
|
||||
'Dim filteredData = BaseDatatable.Select(expression).CopyToDataTable()
|
||||
Return filteredData
|
||||
Catch ex As Exception
|
||||
@@ -551,27 +535,49 @@ Public Class ClassHelper
|
||||
Public Shared Function Insert_USER_File(pFilename As String, handleType As String)
|
||||
Try
|
||||
Dim filename_only As String = Path.GetFileName(pFilename)
|
||||
CURRENT_FILE_HASH = ""
|
||||
Dim CURRENT_FILE_HASH = ""
|
||||
|
||||
If File.Exists(pFilename) Then
|
||||
Dim oFileInfo As New FileInfo(pFilename)
|
||||
LOGGER.Debug($"File exists: [{pFilename}] | Size: {oFileInfo.Length} bytes | Extension: {oFileInfo.Extension}")
|
||||
|
||||
If (pFilename.ToUpper.EndsWith(".MSG") Or pFilename.ToUpper.EndsWith(".EML")) And (handleType = "|OUTLOOK_MESSAGE|" Or handleType = "|MSGONLY|") Then
|
||||
CURRENT_FILE_HASH = FILESYSTEM.GetChecksumFromString(pFilename)
|
||||
LOGGER.Debug($"Hash method: GetChecksumFromString | Hash: [{CURRENT_FILE_HASH}]")
|
||||
Else
|
||||
CURRENT_FILE_HASH = FILESYSTEM.GetChecksum(pFilename)
|
||||
LOGGER.Debug($"Hash method: GetChecksum | Hash: [{CURRENT_FILE_HASH}]")
|
||||
End If
|
||||
Else
|
||||
LOGGER.Warn($"File does not exist: [{pFilename}] - Cannot compute hash.")
|
||||
End If
|
||||
Dim oSQL = $"SELECT ADDED_WHO, FORMAT(ADDED_WHEN, 'dd-MM-yyyy HH:mm') AS ADDED_WHEN_STRING FROM TBPMO_DOCRESULT_LIST WHERE FILE_HASH = '{CURRENT_FILE_HASH}' ORDER BY ADDED_WHEN DESC"
|
||||
Dim oSQL = $"SELECT Filename, ADDED_WHO, FORMAT(ADDED_WHEN, 'dd-MM-yyyy HH:mm') AS ADDED_WHEN_STRING FROM TBPMO_DOCRESULT_LIST WHERE FILE_HASH = '{CURRENT_FILE_HASH}' ORDER BY ADDED_WHEN DESC"
|
||||
LOGGER.Debug($"Inserting File - hash is [{CURRENT_FILE_HASH}]")
|
||||
Dim oDTCHECK As DataTable = MYDB_ECM.GetDatatable(oSQL)
|
||||
If Not IsNothing(oDTCHECK) Then
|
||||
If oDTCHECK.Rows.Count >= 1 Then
|
||||
LOGGER.Info($"We got a file with the same hash [{CURRENT_FILE_HASH}]")
|
||||
Dim oUSER = oDTCHECK.Rows(0).Item(0)
|
||||
Dim oADDED_WHEN = oDTCHECK.Rows(0).Item(1)
|
||||
Dim oMSG = $"Achtung:" & vbNewLine & "Die Datei wurde bereits nach orgFLOW importiert. Anzahl: " & oDTCHECK.Rows.Count.ToString & vbNewLine &
|
||||
$"Importiert wann: {oADDED_WHEN}" & vbNewLine &
|
||||
$"Importiert wer: {oUSER}" & vbNewLine &
|
||||
"Wollen Sie die Datei dennoch importieren?"
|
||||
Dim oFilename = oDTCHECK.Rows(0).Item(0)
|
||||
Dim oUSER = oDTCHECK.Rows(0).Item(1)
|
||||
Dim oADDED_WHEN = oDTCHECK.Rows(0).Item(2)
|
||||
Dim oMSG As String
|
||||
If USER_LANGUAGE <> "de-DE" Then
|
||||
oMSG = $"This file has already been imported into orgFLOW!" & vbCrLf &
|
||||
$"File: [{oFilename}]" & vbCrLf &
|
||||
$"Imported on: {oADDED_WHEN}" & vbCrLf &
|
||||
$"Imported by: {oUSER}" & vbCrLf &
|
||||
$"Total imports with identical content: {oDTCHECK.Rows.Count}" & vbCrLf & vbCrLf &
|
||||
"Do you want to import this file again?" & vbCrLf &
|
||||
"NO → Teh complete Import will be cancelled."
|
||||
Else
|
||||
oMSG = $"Diese Datei wurde bereits in orgFLOW importiert!" & vbCrLf &
|
||||
$"Datei: [{oFilename}]" & vbCrLf &
|
||||
$"Importiert am: {oADDED_WHEN}" & vbCrLf &
|
||||
$"Importiert von: {oUSER}" & vbCrLf &
|
||||
$"Anzahl Importe mit identischem Inhalt: {oDTCHECK.Rows.Count}" & vbCrLf & vbCrLf &
|
||||
"Möchten Sie die Datei dennoch erneut importieren?" & vbCrLf &
|
||||
"NEIN → Der gesamte Import (alle folgenden) wird abgebrochen."
|
||||
End If
|
||||
Dim result As MsgBoxResult
|
||||
result = MessageBox.Show(oMSG, CAPTION_CONFIRMATION, MessageBoxButtons.YesNo, MessageBoxIcon.Question)
|
||||
If result = MsgBoxResult.No Then
|
||||
@@ -580,7 +586,7 @@ Public Class ClassHelper
|
||||
End If
|
||||
End If
|
||||
|
||||
Dim ins As String = String.Format("INSERT INTO TBPMO_FILES_USER (FILENAME2WORK, USER_WORK,HANDLE_TYPE,FILENAME_ONLY) VALUES ('{0}','{1}','{2}','{3}')", pFilename, USER_USERNAME, handleType, filename_only)
|
||||
Dim ins As String = String.Format("INSERT INTO TBPMO_FILES_USER (FILENAME2WORK, USER_WORK,HANDLE_TYPE,FILENAME_ONLY,FILE_HASH) VALUES ('{0}','{1}','{2}','{3}','{4}')", pFilename, USER_USERNAME, handleType, filename_only, CURRENT_FILE_HASH)
|
||||
Return MYDB_ECM.ExecuteNonQuery(ins)
|
||||
Catch ex As Exception
|
||||
MsgBox("Unexpected Error in Insert file for user (TBPMO_FILES_USER): " & ex.Message, MsgBoxStyle.Critical)
|
||||
|
||||
Reference in New Issue
Block a user