278 lines
12 KiB
VB.net
278 lines
12 KiB
VB.net
Public Class frmDIRegelverwaltung
|
|
|
|
Private profilname As String
|
|
Private selectedProfil As ClassDIProfil
|
|
Public Shared _windream As New ClassWindream_allgemein(CURR_LogConfig)
|
|
|
|
Public _regeln As ClassDIRegeln
|
|
|
|
' verhindert (wenn True) das selectedProfile auf Nothing gesetzt wird, wenn das Panel auf visible = True gesetzt wird
|
|
Private flagIgnoreVisibilityChanged As Boolean = False
|
|
Private flagIgnoreCheckedChanged As Boolean = False
|
|
Private Shared _Instance As frmDIRegelverwaltung = Nothing
|
|
Public Shared Function Instance() As frmDIRegelverwaltung
|
|
If _Instance Is Nothing OrElse _Instance.IsDisposed = True Then
|
|
_Instance = New frmDIRegelverwaltung
|
|
End If
|
|
_Instance.BringToFront()
|
|
Return _Instance
|
|
End Function
|
|
|
|
|
|
Sub New()
|
|
|
|
' Dieser Aufruf ist für den Windows Form-Designer erforderlich.
|
|
InitializeComponent()
|
|
|
|
' Fügen Sie Initialisierungen nach dem InitializeComponent()-Aufruf hinzu.
|
|
Me.LoadProfilesInCombobox()
|
|
End Sub
|
|
|
|
|
|
' ++++++++++++++++++++++++++++++++++++++++++++++ Methoden ++++++++++++++++++++++++++++++++++++++++++++++
|
|
|
|
''' <summary>
|
|
''' Schreibt die Profile in die Combobox in der Toolbar.
|
|
''' </summary>
|
|
''' <remarks></remarks>
|
|
Private Sub LoadProfilesInCombobox()
|
|
|
|
Try
|
|
ClassDIProfile.Init()
|
|
|
|
Me.cmbProfilauswahl.DropDownItems.Clear()
|
|
|
|
If ClassDIProfile.Profile IsNot Nothing Then
|
|
|
|
For Each item As ClassDIProfil In ClassDIProfile.Profile
|
|
Me.cmbProfilauswahl.DropDownItems.Add(item.Profilname)
|
|
|
|
Next
|
|
|
|
End If
|
|
Catch ex As Exception
|
|
MsgBox(ex.Message, MsgBoxStyle.Critical, "Fehler beim Laden der Profile in die Auswahlliste")
|
|
End Try
|
|
End Sub
|
|
|
|
|
|
|
|
Private Sub btnSchliessen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSchliessen.Click
|
|
|
|
' Panel schliessen
|
|
Me.Visible = False
|
|
End Sub
|
|
|
|
Private Sub cmbProfilauswahl_DropDownItemClicked(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ToolStripItemClickedEventArgs) Handles cmbProfilauswahl.DropDownItemClicked
|
|
ClassDIProfile.aktivesProfil = ClassDIProfile.getProfilByName(e.ClickedItem.Text)
|
|
Me.selectedProfil = ClassDIProfile.aktivesProfil
|
|
If Me.selectedProfil.Dokumenttyp Is Nothing Then
|
|
Me.lbxRegeln.Enabled = False
|
|
Else
|
|
Me.lbxRegeln.Enabled = True
|
|
End If
|
|
Me.LoadRegelnInListen(Me.selectedProfil.Profilname)
|
|
Me.lbxRegeln.Visible = True
|
|
Me.lblRegeln.Visible = True
|
|
Me.btnLöschen.Enabled = False
|
|
Me.btnInformationenAnzeigen.Visible = True
|
|
Me.btnInformationenAnzeigen.Enabled = False
|
|
End Sub
|
|
|
|
Private Sub LoadRegelnInListen(ByVal profilname As String)
|
|
'' wenn bereits ein Profil ausgewählt wurde
|
|
'If Me.selectedProfile IsNot Nothing Then
|
|
' ' wenn es sich bei dem ausgewählten Element um das gleiche handelt wie das Aktive, dann nichts tun
|
|
' If profilname = Me.selectedProfile.Profilname Then Exit Sub
|
|
'End If
|
|
Try
|
|
|
|
|
|
Me.lbxRegeln.Items.Clear()
|
|
|
|
Me.profilname = profilname
|
|
|
|
Me.lblProfilname.Text = "Gewähltes Profil: '" & profilname & "'"
|
|
Me.lblProfilname.Visible = True
|
|
|
|
Me.btnHinzufügen.Enabled = True
|
|
|
|
|
|
Me._regeln = New ClassDIRegeln(profilname)
|
|
|
|
If Me._regeln Is Nothing Then Exit Sub
|
|
If Me._regeln._regeln Is Nothing Then Exit Sub
|
|
|
|
Dim regelZähler As Integer = 0
|
|
|
|
For Each regel As ClassDIRegel In Me._regeln._regeln
|
|
Dim beschreibung As String
|
|
If regel._indexieren_aus.ToUpper = "FEST" Then
|
|
beschreibung = "Festen Wert an Index übergeben" ' regel._art.ToUpper & " aus " & regel._indexieren_aus.ToUpper & " in " & regel._zielindex.ToUpper
|
|
|
|
Else
|
|
beschreibung = regel._art.ToUpper & " aus " & regel._indexieren_aus.ToUpper & " in " & regel._zielindex.ToUpper
|
|
End If
|
|
Select Case regel._art.ToUpper
|
|
Case "KOMPLETT"
|
|
|
|
Case "BEREICH"
|
|
beschreibung &= " (vom " & regel._position_von & ". bis einschließlich zum " & regel._position_von + regel._anzahl - 1 & ". Zeichen)"
|
|
|
|
Case "REST"
|
|
beschreibung &= " (ab dem " & regel._position_von & ". Zeichen bis zum Ende"
|
|
If regel._mit_endung Then
|
|
beschreibung &= " [Dateiendung wird einbezogen])"
|
|
Else
|
|
beschreibung &= " [Dateiendung wird nicht einbezogen])"
|
|
End If
|
|
|
|
Case "TRENNZEICHEN"
|
|
beschreibung &= " (Trennzeichen:'" & regel._trennzeichen & "'; Position des Vorkommens:" & regel._position & ")"
|
|
|
|
Case "DATEIENDUNG"
|
|
beschreibung &= " (Dateiendung:" & regel._dateiendung & "; Indexwert:" & regel._text & ")"
|
|
Case Else
|
|
If regel._indexieren_aus.ToUpper = "FEST" Then
|
|
beschreibung &= " (Wert: '" & regel._art & "' in Index: " & regel._zielindex.ToUpper & " schreiben)"
|
|
Else
|
|
beschreibung &= " (DIESE REGELART IST UNGÜLTIG !!!)"
|
|
End If
|
|
|
|
End Select
|
|
|
|
Me.flagIgnoreCheckedChanged = True
|
|
Me.lbxRegeln.Items.Add(beschreibung)
|
|
Me.lbxRegeln.SetItemChecked(regelZähler, regel._aktiv)
|
|
Me.btnLöschen.Enabled = False
|
|
Me.flagIgnoreCheckedChanged = False
|
|
|
|
regelZähler += 1
|
|
Next
|
|
Catch ex As Exception
|
|
MsgBox("Es ist ein Fehler beim Laden der Regeln aufgetreten." & vbNewLine & vbNewLine & "Fehlernachricht:" & vbNewLine & ex.Message, MsgBoxStyle.Critical, "Fehler beim Laden der Regeln in die Übersicht")
|
|
End Try
|
|
|
|
End Sub
|
|
Private Sub btnHinzufügen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnHinzufügen.Click
|
|
' Wenn der Objekttyp des Profils leer ist, bedeutet dies, dass er nich geladen werden konnte. Der wahrscheinlichste
|
|
' Grund dafür ist dass das Profil erstellt wurde wärend der Benutzer an einem anderen windream-Server angemeldet war.
|
|
If Me.selectedProfil.Dokumenttyp Is Nothing Then
|
|
' Hinweis ausgeben
|
|
MsgBox("Der zugeordnete Objekttyp konnte nicht geladen werden. Möglicherweise wurde das Profil erstellt während Sie auf einem anderen windream-Server angemeldet waren." & vbNewLine & vbNewLine & "Es ist leider nicht möglich Regeln für ein Profil mit ungültigem Objekttyp zu erstellen.", MsgBoxStyle.Information, "Für einen unbekannten Objekttyp können keine Regeln angelegt werden")
|
|
|
|
' Verhindern, dass sich der Assistent öffnet
|
|
Exit Sub
|
|
End If
|
|
|
|
' Eigenschaften dem Assistenten zuweisen
|
|
frmDIRegelAssistent._objekttyp = Me.selectedProfil.Dokumenttyp.aName
|
|
frmDIRegelAssistent._profilname = Me.selectedProfil.OriginalProfilname
|
|
frmDIRegelAssistent._regeln = Me._regeln
|
|
|
|
|
|
' Assistent anzeigen
|
|
frmDIRegelAssistent.ShowDialog()
|
|
|
|
' nachdem der Assistent geschlossen wurde die Liste der Regeln aktualisieren
|
|
Me.LoadRegelnInListen(Me.selectedProfil.OriginalProfilname)
|
|
End Sub
|
|
|
|
Private Sub lbxRegeln_ItemCheck(ByVal sender As System.Object, ByVal e As System.Windows.Forms.ItemCheckEventArgs) Handles lbxRegeln.ItemCheck
|
|
If Not Me.flagIgnoreCheckedChanged Then
|
|
Dim regel As ClassDIRegel = Me._regeln.Regel(e.Index)
|
|
|
|
If regel IsNot Nothing Then
|
|
regel.SetRegelAktiv(e.NewValue)
|
|
End If
|
|
End If
|
|
|
|
End Sub
|
|
|
|
Private Sub btnLöschen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLöschen.Click
|
|
|
|
' Fragen ob das Profil wirklich gelöscht werden soll
|
|
Dim result As MsgBoxResult = MsgBox("Sind Sie sicher, dass sie die Regel löschen möchten?", MsgBoxStyle.YesNo, "Regel löschen")
|
|
|
|
' wenn das Profil gelöscht werden soll
|
|
If result = MsgBoxResult.Yes Then
|
|
Me._regeln.DeleteRegel(Me._regeln.Regel(Me.lbxRegeln.SelectedIndex)._id)
|
|
Me.LoadRegelnInListen(Me.selectedProfil.Profilname)
|
|
Me.btnLöschen.Enabled = False
|
|
Me.btnInformationenAnzeigen.Enabled = False
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub lbxRegeln_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles lbxRegeln.SelectedIndexChanged
|
|
Me.btnLöschen.Enabled = True
|
|
Me.btnInformationenAnzeigen.Enabled = True
|
|
End Sub
|
|
|
|
|
|
Private Function GetDatumFormatFürAnwender(ByVal formatUrsprung As String)
|
|
|
|
Dim temp As String = formatUrsprung
|
|
|
|
temp = temp.Replace("y", "J")
|
|
temp = temp.Replace("M", "M")
|
|
temp = temp.Replace("d", "T")
|
|
|
|
temp = temp.Replace("H", "s")
|
|
temp = temp.Replace("m", "m")
|
|
temp = temp.Replace("s", "S")
|
|
|
|
temp = temp.Replace("'", "")
|
|
|
|
Return temp
|
|
|
|
End Function
|
|
|
|
Private Sub btnInformationenAnzeigen_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnInformationenAnzeigen.Click
|
|
If Me.lbxRegeln.SelectedIndex >= 0 Then
|
|
Dim text = "Dokumenttyp: " & Me.selectedProfil.DokumenttypString & vbNewLine & _
|
|
"Indexieren aus: " & Me._regeln.Regel(Me.lbxRegeln.SelectedIndex)._indexieren_aus & vbNewLine & _
|
|
"Indexierungsart: " & Me._regeln.Regel(Me.lbxRegeln.SelectedIndex)._art & vbNewLine & _
|
|
"Zielindex: " & Me._regeln.Regel(Me.lbxRegeln.SelectedIndex)._zielindex & vbNewLine
|
|
|
|
If _windream.GetTypeOfIndexAsIntByName(Me._regeln.Regel(Me.lbxRegeln.SelectedIndex)._zielindex) = 5 Then
|
|
text &= "Datumsformat: " & GetDatumFormatFürAnwender(Me._regeln.Regel(Me.lbxRegeln.SelectedIndex)._datum_format) & vbNewLine
|
|
End If
|
|
'": " & Me._regeln.Regel(Me.lbxRegeln.SelectedIndex) & vbNewLine & _
|
|
'": " & Me._regeln.Regel(Me.lbxRegeln.SelectedIndex) & vbNewLine & _
|
|
'": " & Me._regeln.Regel(Me.lbxRegeln.SelectedIndex) & vbNewLine & _
|
|
'": " & Me._regeln.Regel(Me.lbxRegeln.SelectedIndex) & vbNewLine
|
|
|
|
MsgBox(text, MsgBoxStyle.Information, "Details zu der gewählten Regel")
|
|
End If
|
|
End Sub
|
|
|
|
Private Sub frmDIRegelverwaltung_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
|
|
Me.LoadProfilesInCombobox()
|
|
If ClassDIProfile.aktivesProfilAusProfileigenschaften And ClassDIProfile.aktivesProfil Is Nothing = False Then
|
|
|
|
Me.selectedProfil = ClassDIProfile.aktivesProfil
|
|
Me.lblProfilname.Text = "(" & Me.selectedProfil.Profilname & ")"
|
|
Me.lblProfilname.Visible = True
|
|
|
|
Me.LoadRegelnInListen(Me.selectedProfil.Profilname)
|
|
|
|
ClassDIProfile.aktivesProfilAusProfileigenschaften = False
|
|
|
|
If Me.selectedProfil.Dokumenttyp Is Nothing Then
|
|
Me.lbxRegeln.Enabled = False
|
|
Else
|
|
Me.lbxRegeln.Enabled = True
|
|
End If
|
|
Else
|
|
Me.selectedProfil = Nothing
|
|
Me.lblProfilname.Visible = False
|
|
Me.btnHinzufügen.Enabled = False
|
|
Me.lbxRegeln.Visible = False
|
|
Me.lblRegeln.Visible = False
|
|
Me.lbxRegeln.Items.Clear()
|
|
Me.btnInformationenAnzeigen.Visible = False
|
|
Me.btnInformationenAnzeigen.Enabled = False
|
|
End If
|
|
End Sub
|
|
|
|
End Class |