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

@@ -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