add missing validation for datetime picker, generalize validation massages, fix file deletion check
This commit is contained in:
parent
d4b4c2078b
commit
9e27a8e8eb
@ -32,6 +32,8 @@ Public Class frmIndex
|
||||
|
||||
Private Property ViewerString As String
|
||||
|
||||
Private Const TEXT_MISSING_INPUT = "Bitte vervollständigen Sie die Eingaben!"
|
||||
|
||||
#End Region
|
||||
|
||||
Public Sub DisposeViewer()
|
||||
@ -285,7 +287,7 @@ Public Class frmIndex
|
||||
If box.Text = "" Then
|
||||
Dim optional_index As Boolean = ClassDatabase.Execute_Scalar("SELECT OPTIONAL FROM TBDD_INDEX_MAN WHERE DOK_ID = " & dokartid & " AND NAME = '" & Replace(box.Name, "txt", "") & "'", MyConnectionString, True)
|
||||
If optional_index = False Then
|
||||
MsgBox("Bitte geben Sie einen Indexwert ein!", MsgBoxStyle.Exclamation, "Fehlende Eingabe:")
|
||||
MsgBox(TEXT_MISSING_INPUT, MsgBoxStyle.Exclamation, "Fehlende Eingabe:")
|
||||
box.Focus()
|
||||
Return False
|
||||
Else
|
||||
@ -313,7 +315,7 @@ Public Class frmIndex
|
||||
Dim optional_index As Boolean = ClassDatabase.Execute_Scalar("SELECT OPTIONAL FROM TBDD_INDEX_MAN WHERE DOK_ID = " & dokartid & " AND NAME = '" & Replace(oLookup.Name, "cmbMulti", "") & "'", MyConnectionString, True)
|
||||
|
||||
If optional_index = False Then
|
||||
MsgBox("Bitte wählen Sie einen Wert aus der Combobox.", MsgBoxStyle.Exclamation)
|
||||
MsgBox(TEXT_MISSING_INPUT, MsgBoxStyle.Exclamation, Text)
|
||||
oLookup.Focus()
|
||||
Return False
|
||||
Else
|
||||
@ -332,7 +334,7 @@ Public Class frmIndex
|
||||
Dim optional_index As Boolean = ClassDatabase.Execute_Scalar("SELECT OPTIONAL FROM TBDD_INDEX_MAN WHERE DOK_ID = " & dokartid & " AND NAME = '" & Replace(cmbSingle.Name, "cmbSingle", "") & "'", MyConnectionString, True)
|
||||
|
||||
If optional_index = False Then
|
||||
MsgBox("Bitte wählen Sie einen Wert aus der Combobox.", MsgBoxStyle.Exclamation)
|
||||
MsgBox(TEXT_MISSING_INPUT, MsgBoxStyle.Exclamation, Text)
|
||||
cmbSingle.Focus()
|
||||
Return False
|
||||
Else
|
||||
@ -348,7 +350,7 @@ Public Class frmIndex
|
||||
If cmb.Text = "" Then
|
||||
Dim optional_index As Boolean = ClassDatabase.Execute_Scalar("SELECT OPTIONAL FROM TBDD_INDEX_MAN WHERE DOK_ID = " & dokartid & " AND NAME = '" & Replace(cmb.Name, "cmb", "") & "'", MyConnectionString, True)
|
||||
If optional_index = False Then
|
||||
MsgBox("Bitte wählen Sie einen Wert aus der Combobox.", MsgBoxStyle.Exclamation)
|
||||
MsgBox(TEXT_MISSING_INPUT, MsgBoxStyle.Exclamation, Text)
|
||||
cmb.Focus()
|
||||
Return False
|
||||
Else
|
||||
@ -362,9 +364,24 @@ Public Class frmIndex
|
||||
End If
|
||||
If oControl.Name.StartsWith("dtp") Then
|
||||
Dim dtp As DevExpress.XtraEditors.DateEdit = oControl
|
||||
Dim oIndexName As String = Replace(dtp.Name, "dtp", "")
|
||||
|
||||
If dtp.Text = String.Empty Then
|
||||
Dim optional_index As Boolean = ClassDatabase.Execute_Scalar($"SELECT OPTIONAL FROM TBDD_INDEX_MAN WHERE DOK_ID = {dokartid} AND NAME = '{oIndexName}'", MyConnectionString, True)
|
||||
|
||||
If optional_index = False Then
|
||||
MsgBox(TEXT_MISSING_INPUT, MsgBoxStyle.Exclamation, Text)
|
||||
dtp.Focus()
|
||||
Return False
|
||||
Else
|
||||
Indexwert_Postprocessing(oIndexName, "")
|
||||
result = True
|
||||
End If
|
||||
Else
|
||||
Indexwert_Postprocessing(Replace(dtp.Name, "dtp", ""), dtp.Text)
|
||||
result = True
|
||||
End If
|
||||
End If
|
||||
If oControl.Name.StartsWith("chk") Then
|
||||
Dim chk As CheckBox = oControl
|
||||
Indexwert_Postprocessing(Replace(chk.Name, "chk", ""), chk.Checked)
|
||||
@ -1190,7 +1207,7 @@ Public Class frmIndex
|
||||
|
||||
End Function
|
||||
|
||||
Private Function SINGLEFILE_2_WINDREAM(_Objekttyp As String)
|
||||
Private Function SINGLEFILE_2_WINDREAM(_Objekttyp As String) As Boolean
|
||||
Try
|
||||
CURR_DOKART_OBJECTTYPE = _Objekttyp
|
||||
Dim oWMCheckPath = WINDREAM.VersionWMFilename(CURRENT_NEWFILENAME, System.IO.Path.GetExtension(CURRENT_NEWFILENAME))
|
||||
@ -1198,9 +1215,11 @@ Public Class frmIndex
|
||||
LOGGER.Info($"Target [{CURRENT_NEWFILENAME}] already existed!! - NewWMFilename [{oWMCheckPath}]")
|
||||
CURRENT_NEWFILENAME = oWMCheckPath
|
||||
End If
|
||||
Dim streamresult = WINDREAM.NewFileStream(CURRENT_WORKFILE, CURRENT_NEWFILENAME)
|
||||
|
||||
If File.Exists(CURRENT_NEWFILENAME) And streamresult = True Then
|
||||
Dim oStreamSuccessful = WINDREAM.NewFileStream(CURRENT_WORKFILE, CURRENT_NEWFILENAME)
|
||||
Dim oAbsFilename = $"\\windream\objects{CURRENT_NEWFILENAME}"
|
||||
|
||||
If File.Exists(oAbsFilename) And oStreamSuccessful Then
|
||||
If CONFIG.Config.DeleteOriginalFile = True Then
|
||||
Try
|
||||
My.Computer.FileSystem.DeleteFile(CURRENT_WORKFILE)
|
||||
@ -1210,7 +1229,7 @@ Public Class frmIndex
|
||||
End If
|
||||
End If
|
||||
|
||||
Return streamresult
|
||||
Return oStreamSuccessful
|
||||
Catch ex As Exception
|
||||
MsgBox(ex.Message, MsgBoxStyle.Critical, "Error in SINGLEFILE_2_WINDREAM:")
|
||||
Return False
|
||||
@ -1864,10 +1883,6 @@ Public Class frmIndex
|
||||
oAutoIndexRow.Item("Indexwert") = oResult
|
||||
|
||||
End If
|
||||
|
||||
|
||||
|
||||
|
||||
Next
|
||||
|
||||
Return True
|
||||
@ -1875,167 +1890,6 @@ Public Class frmIndex
|
||||
MsgBox(ex.Message)
|
||||
Return False
|
||||
End Try
|
||||
|
||||
|
||||
' 3. Schritt: SQL ausführen
|
||||
' 4. Schritt: Resultat in Datatable schreiben
|
||||
|
||||
|
||||
|
||||
'Try
|
||||
' Me.VWINDEX_AUTOMTableAdapter.Fill(Me.MyDataset.VWDDINDEX_AUTOM, CURRENT_DOKART_ID)
|
||||
' Dim DT_INDEXAUTOM As DataTable = MyDataset.VWDDINDEX_AUTOM
|
||||
' If DT_INDEXAUTOM.Rows.Count > 0 Then
|
||||
' ' MsgBox(DT.Rows.Count.ToString)
|
||||
' For Each DR_AUTOINDEX As DataRow In DT_INDEXAUTOM.Rows
|
||||
' Dim optionalIndex As Boolean
|
||||
' Dim indexname As String = DR_AUTOINDEX.Item("INDEXNAME")
|
||||
' LOGGER.Info("Build Automatischer Index '" & indexname & "'")
|
||||
' 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)
|
||||
' LOGGER.Info("Element: '" & element.Value & "'")
|
||||
' '' 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)
|
||||
' LOGGER.Info("elementOhneSonderzeichen: '" & elementOhneSonderzeichen & "'")
|
||||
' optionalIndex = ClassDatabase.Execute_Scalar("SELECT OPTIONAL FROM TBDD_INDEX_MAN WHERE DOK_ID = " & CURRENT_DOKART_ID & " AND UPPER(NAME) = UPPER('" & elementOhneSonderzeichen & "')", MyConnectionString, True)
|
||||
' If elementOhneSonderzeichen.StartsWith("$") Then 'windowsParameter
|
||||
' Dim result = ""
|
||||
' Try
|
||||
' Select Case elementOhneSonderzeichen.ToString.ToUpper
|
||||
' Case "$filename_ext".ToUpper
|
||||
' result = Path.GetFileName(CURRENT_WORKFILE)
|
||||
' Case "$filename".ToUpper
|
||||
' result = Path.GetFileNameWithoutExtension(CURRENT_WORKFILE)
|
||||
' Case "$extension".ToUpper
|
||||
' result = Path.GetExtension(CURRENT_WORKFILE)
|
||||
' result = result.Replace(".", "")
|
||||
' Case "$FileCreateDate".ToUpper
|
||||
' Dim FI As New FileInfo(CURRENT_WORKFILE)
|
||||
' Dim CreationDate As Date = FI.CreationTime
|
||||
' result = 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()
|
||||
' result = owner
|
||||
' Case "$DateDDMMYYY".ToUpper
|
||||
' result = System.DateTime.Now.ToShortDateString
|
||||
' Case "$Username"
|
||||
' result = Environment.UserName
|
||||
' Case "$Usercode"
|
||||
' result = USER_SHORT_NAME
|
||||
' End Select
|
||||
' Catch ex As Exception
|
||||
' result = "XXX"
|
||||
' LOGGER.Info(" - Unexpected error in FillIndexe_Autom - WindowsFilePatterns - Fehler: " & vbNewLine & ex.Message)
|
||||
' MsgBox("Unexpected error in Replacement WindowsFilePatterns: " & vbNewLine & ex.Message & vbNewLine & vbNewLine & "Routine will continue - Please check logfile", MsgBoxStyle.Exclamation, )
|
||||
' End Try
|
||||
' If result <> "" Then
|
||||
' LOGGER.Info("file-related parameter found: '" & elementOhneSonderzeichen & "' - Result: '" & result & "'")
|
||||
' SqlString = SqlString.Replace(element.Value, result)
|
||||
' Else
|
||||
' LOGGER.Info(">> Attention: file-related parameter '" & elementOhneSonderzeichen & "' returned an empty string!")
|
||||
' End If
|
||||
' Else 'ganz normaler manueller Index
|
||||
' 'den Platzhalter im SQL-String durch den Wert ersetzen
|
||||
' Dim manIndexwert = GetManIndex_Value(elementOhneSonderzeichen, "IDX_AUTO", optionalIndex)
|
||||
' If Not IsNothing(manIndexwert) Then
|
||||
' SqlString = SqlString.Replace(element.Value, manIndexwert)
|
||||
' Else
|
||||
' LOGGER.Info(">> Attention: manIndexwert is NOTHING - Funktion: FillIndexe_Autom")
|
||||
' ' Return False
|
||||
' End If
|
||||
' End If
|
||||
|
||||
' Next
|
||||
' LOGGER.Info("Replaced and complete SQL-result: " & SqlString)
|
||||
' LOGGER.Info("Ausführen SQL....")
|
||||
' Dim automatischerValue As String = ""
|
||||
' automatischerValue = GetAutomaticIndexSQLValue(SqlString, DR_AUTOINDEX.Item("CONNECTION_ID"), DR_AUTOINDEX.Item("SQL_PROVIDER"))
|
||||
' LOGGER.Info("Ergebnis SQL: '" & automatischerValue & "'")
|
||||
' If automatischerValue <> String.Empty Then
|
||||
' DR_AUTOINDEX.Item("Indexiert") = True
|
||||
' DR_AUTOINDEX.Item("Indexwert") = automatischerValue
|
||||
' Else
|
||||
' If optionalIndex = True Then
|
||||
' DR_AUTOINDEX.Item("Indexiert") = True
|
||||
' DR_AUTOINDEX.Item("Indexwert") = "EMPTY_OI"
|
||||
' ' Return True
|
||||
' Else
|
||||
' LOGGER.Info(" - ACHTUNG: automatischerValue = String.Empty - Funktion: FillIndexe_Autom")
|
||||
' LOGGER.Info(" - SqlString: " & SqlString)
|
||||
' ' Return False
|
||||
' End If
|
||||
|
||||
' 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
|
||||
' LOGGER.Info("Indexierung mit einer Windowsvariable: '" & DEFAULTVALUE & "'")
|
||||
' Select Case DEFAULTVALUE.ToUpper
|
||||
' Case "$filename_ext".ToUpper
|
||||
' DEFAULTVALUE = Path.GetFileName(CURRENT_WORKFILE)
|
||||
' Case "$filename".ToUpper
|
||||
' DEFAULTVALUE = Path.GetFileNameWithoutExtension(CURRENT_WORKFILE)
|
||||
' Case "$extension".ToUpper
|
||||
' DEFAULTVALUE = Path.GetExtension(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
|
||||
' Case "$Username"
|
||||
' DEFAULTVALUE = Environment.UserName
|
||||
' Case "$Usercode"
|
||||
' DEFAULTVALUE = USER_SHORT_NAME
|
||||
|
||||
' End Select
|
||||
' LOGGER.Info("Ergebnis der Windowsvariable: '" & DEFAULTVALUE & "'")
|
||||
' Else
|
||||
' LOGGER.Info("Indexierung mit einem Festen Wert: '" & DEFAULTVALUE & "'")
|
||||
' 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
|
||||
' LOGGER.Info(" - Unexpected error in FillIndexe_Autom - Fehler: " & vbNewLine & ex.Message)
|
||||
' MsgBox(ex.Message, MsgBoxStyle.Critical, "Unexpected error in FillIndexe_Autom")
|
||||
' Return False
|
||||
'End Try
|
||||
|
||||
End Function
|
||||
Private Sub btnVorschau_Click(sender As System.Object, e As System.EventArgs)
|
||||
PreviewFile()
|
||||
@ -2665,8 +2519,4 @@ Public Class frmIndex
|
||||
CONFIG.Config.ProfilePreselection = checkItemPreselection.Checked
|
||||
CONFIG.Save()
|
||||
End Sub
|
||||
|
||||
Private Sub frmIndex_RightToLeftChanged(sender As Object, e As EventArgs) Handles Me.RightToLeftChanged
|
||||
|
||||
End Sub
|
||||
End Class
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user