You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
484 lines
17 KiB
484 lines
17 KiB
Imports C1.Win.C1TrueDBGrid
|
|
Imports System
|
|
Imports System.Data
|
|
Imports System.Data.SqlTypes
|
|
Imports System.Data.SqlClient
|
|
|
|
Public Class frmProfilVerwaltung
|
|
#Region "Deklarationen"
|
|
Dim profil As New TKB.VV.Utils.clsProfile
|
|
Dim docmgmt As New TKB.VV.Utils.MyDocMgmt
|
|
Dim msg As New TKB.VV.Utils.MyMessage
|
|
Dim C1Data As C1TrueDBGrid
|
|
Dim Profilnr As Integer
|
|
Dim Tabctl As TabControl
|
|
Dim FormdataChanged As Boolean = False
|
|
#End Region
|
|
|
|
#Region "Eventhandler ChangeEreignisse"
|
|
''' <summary>
|
|
''' Allg Eventhandler für Chanage-Ereignise festlegen
|
|
''' </summary>
|
|
''' <param name="Container"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub AddChanges(ByVal Container As Control)
|
|
Dim l As New List(Of Control)
|
|
Me.GetControl(Me, "*", l)
|
|
Dim evh As EventHandler = AddressOf ChangesMade
|
|
For Each c As Control In l
|
|
If TypeOf c Is TextBox Then
|
|
Dim ctl As TextBox = c
|
|
AddHandler ctl.TextChanged, evh
|
|
End If
|
|
If TypeOf c Is MaskedTextBox Then
|
|
Dim ctl As MaskedTextBox = c
|
|
AddHandler ctl.TextChanged, evh
|
|
End If
|
|
If TypeOf c Is ComboBox Then
|
|
Dim ctl As ComboBox = c
|
|
AddHandler ctl.SelectedValueChanged, evh
|
|
End If
|
|
If TypeOf c Is CheckBox Then
|
|
Dim ctl As CheckBox = c
|
|
AddHandler ctl.CheckedChanged, evh
|
|
End If
|
|
Next
|
|
End Sub
|
|
''' <summary>
|
|
''' Envent-Handler für Change-Ereignisse
|
|
''' </summary>
|
|
''' <param name="sender"></param>
|
|
''' <param name="e"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub ChangesMade(ByVal sender As Object, ByVal e As System.EventArgs)
|
|
Me.FormDataChanged = True
|
|
End Sub
|
|
|
|
''' <summary>
|
|
''' Sucht in den Base-Controls sämtliche Controls mit dem Namen in "Key" (Wildcards * möglich) und listet
|
|
''' die gefundnen Controls in der Liste L zur weiteren Bearbeitung
|
|
''' </summary>
|
|
''' <param name="BaseControl">Base-Contrlo (z.B. aktuelles Formular</param>
|
|
''' <param name="Key">Schlüssel welcher gesucht werden soll</param>
|
|
''' <param name="L">Liste der gefundenen Objekte</param>
|
|
''' <returns>True wenn eines oder mehr Controls gefunden wurden, false wenn kein Control gefunden wurde.
|
|
''' </returns>
|
|
''' <remarks></remarks>
|
|
Private Function GetControl(ByVal BaseControl As Control, ByVal Key As String, ByRef L As List(Of Control), Optional ByVal ReturnAtFirstElement As Boolean = False) As Boolean
|
|
If L Is Nothing Then L = New List(Of Control)
|
|
Dim Gut As Boolean
|
|
Dim ReturnFlag As Boolean = False
|
|
If Key IsNot Nothing Then Key = Key.ToLower
|
|
|
|
If BaseControl.HasChildren = True Then
|
|
For Each ctl As Control In BaseControl.Controls
|
|
Gut = False
|
|
If Key Is Nothing Then
|
|
Gut = True
|
|
Else
|
|
If ctl.Name.Length >= Key.Length Then
|
|
Key = Key.ToLower
|
|
If Key.StartsWith("*") Then
|
|
If Key.Substring(1) = ctl.Name.ToLower.Substring(ctl.Name.Length - (Key.Length - 1), Key.Length - 1) Then Gut = True
|
|
ElseIf Key.EndsWith("*") Then
|
|
If Key.Substring(0, Key.Length - 1) = ctl.Name.ToLower.Substring(0, Key.Length - 1) Then Gut = True
|
|
Else
|
|
If Key = ctl.Name.ToLower Then Gut = True
|
|
End If
|
|
End If
|
|
End If
|
|
|
|
If Gut = True Then
|
|
L.Add(ctl)
|
|
If ReturnAtFirstElement = True Then ReturnFlag = True
|
|
End If
|
|
If ReturnFlag = False Then
|
|
Call GetControl(ctl, Key, L)
|
|
End If
|
|
Next
|
|
End If
|
|
|
|
If L.Count - 1 > -1 Then
|
|
Return True
|
|
Else
|
|
Return False
|
|
End If
|
|
End Function
|
|
|
|
#End Region
|
|
|
|
#Region "Closing / Check_Changes"
|
|
|
|
''' <summary>
|
|
''' Schliessen des Formulars
|
|
''' </summary>
|
|
''' <param name="sender"></param>
|
|
''' <param name="e"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub FormularClosing(ByVal sender As Object, ByVal e As System.Windows.Forms.FormClosingEventArgs) Handles Me.FormClosing
|
|
If Check_Changes() = False Then
|
|
e.Cancel = True
|
|
Else
|
|
Me.dispose()
|
|
End If
|
|
End Sub
|
|
|
|
''' <summary>
|
|
''' Prüfung, ob Datenänderungen vorgenommen wurden.
|
|
''' </summary>
|
|
''' <remarks></remarks>
|
|
Private Function Check_Changes() As Boolean
|
|
Dim msgres As MsgBoxResult
|
|
If Me.FormDataChanged Then
|
|
msgres = msg.Show_MessageYesNoCancel(3)
|
|
Select Case msgres
|
|
Case MsgBoxResult.Yes
|
|
Save_data()
|
|
Return True
|
|
Case MsgBoxResult.Cancel
|
|
Return False
|
|
Case MsgBoxResult.No
|
|
Return True
|
|
End Select
|
|
Else
|
|
Return True
|
|
End If
|
|
End Function
|
|
|
|
#End Region
|
|
|
|
#Region "Formular"
|
|
''' <summary>
|
|
''' Initialisierung des Formulares
|
|
''' </summary>
|
|
''' <param name="c1data">Betroffenes Truedbgrid</param>
|
|
''' <param name="profilnr">Aktuelle ProfilNr</param>
|
|
''' <param name="tabctl">TabControl</param>
|
|
''' <remarks></remarks>
|
|
Public Sub New(ByRef c1data As C1TrueDBGrid, ByVal profilnr As Integer, Optional ByRef tabctl As TabControl = Nothing)
|
|
InitializeComponent()
|
|
Me.C1Data = c1data
|
|
Me.Profilnr = profilnr
|
|
Me.Tabctl = tabctl
|
|
End Sub
|
|
''' <summary>
|
|
''' Formular-Dispose
|
|
''' </summary>
|
|
''' <remarks></remarks>
|
|
Overloads Sub dispose()
|
|
Me.profil.Dispose()
|
|
Me.msg.dispose()
|
|
MyBase.Dispose()
|
|
End Sub
|
|
''' <summary>
|
|
''' Formular Load
|
|
''' </summary>
|
|
''' <param name="sender"></param>
|
|
''' <param name="e"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub frmProfilVerwaltung_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
|
|
Get_data(Profilnr)
|
|
Grid_Spalten()
|
|
Sortierung()
|
|
TabControl_Pages()
|
|
Me.AddChanges(Me)
|
|
End Sub
|
|
|
|
''' <summary>
|
|
''' Bereich Registerlaschen initialisieren
|
|
''' </summary>
|
|
''' <remarks></remarks>
|
|
Private Sub TabControl_Pages()
|
|
Me.lbRegister.Items.Clear()
|
|
For Each page As TabPage In Me.Tabctl.TabPages
|
|
Me.lbRegister.Items.Add(page.Text)
|
|
Next
|
|
End Sub
|
|
''' <summary>
|
|
''' Berech Spalten aus TrueDbGrid initialisieren
|
|
''' </summary>
|
|
''' <remarks></remarks>
|
|
Private Sub Grid_Spalten()
|
|
Me.lbVorhandeneSpalten.Items.Clear()
|
|
Me.lbVerwendeteSpalten.Items.Clear()
|
|
|
|
Dim i As Integer
|
|
For i = 0 To C1Data.Columns.Count - 1
|
|
Try
|
|
If C1Data.Splits(0).DisplayColumns(i).Visible = False Then
|
|
If C1Data.Splits(0).DisplayColumns(i).Name().ToString <> "" Then
|
|
Me.lbVorhandeneSpalten.Items.Add(C1Data.Splits(0).DisplayColumns(i).Name())
|
|
End If
|
|
Else
|
|
Me.lbVerwendeteSpalten.Items.Add(Me.C1Data.Splits(0).DisplayColumns(i).Name())
|
|
End If
|
|
Catch
|
|
End Try
|
|
Next
|
|
End Sub
|
|
''' <summary>
|
|
''' Bereich Sortierung initialisieren
|
|
''' </summary>
|
|
''' <remarks></remarks>
|
|
Private Sub Sortierung()
|
|
Me.lbSort.Items.Clear()
|
|
Dim i As Integer
|
|
For i = 0 To C1Data.Columns.Count - 1
|
|
Me.lbSort.Items.Add(Me.C1Data.Columns(i).Caption)
|
|
Next
|
|
|
|
Try
|
|
Dim sorts() As String
|
|
sorts = Me.profil.sV_Sort.Value.Split(", ")
|
|
For Each s As String In sorts
|
|
s = s.Replace(" asc", " | Aufsteigend")
|
|
s = s.Replace(" desc", " | Absteigend")
|
|
Me.lbSortKriterien.Items.Add(s)
|
|
Next
|
|
Catch ex As Exception
|
|
End Try
|
|
Try
|
|
Me.lbSort.SelectedIndex = 0
|
|
Me.lbSortDirection.SelectedIndex = 0
|
|
Me.lbSortKriterien.SelectedIndex = 0
|
|
Catch ex As Exception
|
|
End Try
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
#Region "Buttons/Menu"
|
|
|
|
''' <summary>
|
|
''' Formular schliessen
|
|
''' </summary>
|
|
''' <param name="sender"></param>
|
|
''' <param name="e"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub TSBtnQuit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnQuit.Click
|
|
Me.Close()
|
|
End Sub
|
|
|
|
''' <summary>
|
|
''' Sicherungs-Button betätigt
|
|
''' </summary>
|
|
''' <param name="sender"></param>
|
|
''' <param name="e"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub TSBtnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TSBtnSave.Click
|
|
Me.Save_Data()
|
|
End Sub
|
|
''' <summary>
|
|
''' Menu Beenden
|
|
''' </summary>
|
|
''' <param name="sender"></param>
|
|
''' <param name="e"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub BeendenToolStripMenuItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles BeendenToolStipMenuItem.Click
|
|
Me.TSBtnQuit_Click(sender, e)
|
|
End Sub
|
|
#End Region
|
|
|
|
|
|
#Region "Daten"
|
|
''' <summary>
|
|
''' Profildaten lesen
|
|
''' </summary>
|
|
''' <param name="profilnr"></param>
|
|
''' <remarks></remarks>
|
|
Private Sub Get_data(ByVal profilnr As Integer)
|
|
profil.Get_Profil(profilnr)
|
|
Me.txtBezeichnung.Text = profil.sBezeichnung.Value
|
|
Me.cbStandard.Checked = profil.bStandard.Value = True
|
|
If profil.bV_Aktiv_Vertragspartner.Value = True Then
|
|
Me.rbAktiveVertragspartner.Checked = True
|
|
Me.rbAlleVertragspartner.Checked = False
|
|
Else
|
|
Me.rbAktiveVertragspartner.Checked = False
|
|
Me.rbAlleVertragspartner.Checked = True
|
|
End If
|
|
Select Case profil.sV_Aktiv_Vertragselemente.Value
|
|
Case "True"
|
|
Me.rbAktiveVertragselemente.Checked = True
|
|
Me.rbAlleVertragselemente.Checked = False
|
|
Me.rbInaktiveVertragselemente.Checked = False
|
|
Case "False"
|
|
Me.rbAktiveVertragselemente.Checked = False
|
|
Me.rbAlleVertragselemente.Checked = False
|
|
Me.rbInaktiveVertragselemente.Checked = True
|
|
Case ""
|
|
Me.rbAktiveVertragselemente.Checked = False
|
|
Me.rbAlleVertragselemente.Checked = True
|
|
Me.rbInaktiveVertragselemente.Checked = False
|
|
Case Else
|
|
Me.rbAktiveVertragselemente.Checked = False
|
|
Me.rbAlleVertragselemente.Checked = False
|
|
Me.rbInaktiveVertragselemente.Checked = False
|
|
End Select
|
|
Select Case profil.bV_Struktur_Details.Value
|
|
Case True
|
|
Me.cboxAlleElemente.Checked = True
|
|
Case Else
|
|
Me.cboxAlleElemente.Checked = False
|
|
End Select
|
|
End Sub
|
|
''' <summary>
|
|
''' Profildaten speichern
|
|
''' </summary>
|
|
''' <param name="sender"></param>
|
|
''' <param name="e"></param>
|
|
''' <remarks>Nach dem Speichern wird das Layout-File des Grids im Profil gespeichert</remarks>
|
|
Private Sub Save_Data()
|
|
C1Data.Enabled = False
|
|
Me.profil.sBezeichnung = New SqlString(CType(Me.txtBezeichnung.Text, String))
|
|
If Me.rbAktiveVertragspartner.Checked Then
|
|
Me.profil.bV_Aktiv_Vertragspartner = New SqlBoolean(CType(True, Boolean))
|
|
Else
|
|
Me.profil.bV_Aktiv_Vertragspartner = New SqlBoolean(CType(False, Boolean))
|
|
End If
|
|
If Me.rbAktiveVertragselemente.Checked Then Me.profil.sV_Aktiv_Vertragselemente = New SqlString(CType("True", String))
|
|
If Me.rbAlleVertragselemente.Checked Then Me.profil.sV_Aktiv_Vertragselemente = New SqlString(CType("", String))
|
|
If Me.rbInaktiveVertragselemente.Checked Then Me.profil.sV_Aktiv_Vertragselemente = New SqlString(CType("False", String))
|
|
If Me.cboxAlleElemente.Checked Then Me.profil.bV_Struktur_Details = New SqlBoolean(CType(True, Boolean)) Else Me.profil.bV_Struktur_Details = New SqlBoolean(CType(False, Boolean))
|
|
If Me.cbStandard.Checked = True Then Me.profil.bStandard = New SqlBoolean(CType(True, Boolean)) Else Me.profil.bStandard = New SqlBoolean(CType(False, Boolean))
|
|
|
|
|
|
Dim i As Integer = 0
|
|
Dim s As String = ""
|
|
Dim sort As String = ""
|
|
'Sortierung sichern
|
|
For i = 0 To Me.lbSortKriterien.Items.Count - 1
|
|
s = Me.lbSortKriterien.Items(i)
|
|
s = s.Replace(" | Aufsteigend", " asc")
|
|
s = s.Replace(" | Absteigend", " desc")
|
|
If sort <> "" Then sort = sort + ", "
|
|
sort = sort + s
|
|
Next
|
|
Me.profil.sV_Sort = New SqlString(CType(sort, String))
|
|
|
|
'Register sichern
|
|
s = ""
|
|
For i = 0 To Me.lbRegister.Items.Count - 1
|
|
s = s + Me.lbRegister.Items(i) & ";"
|
|
Next
|
|
Me.profil.sV_Register = New SqlString(CType(s, String))
|
|
|
|
Me.profil.Save_Data()
|
|
|
|
'Spalten sichern
|
|
For i = 0 To Me.lbVorhandeneSpalten.Items.Count - 1
|
|
Try
|
|
Dim xx As Integer
|
|
For xx = 0 To Me.C1Data.Columns.Count - 1
|
|
If Me.C1Data.Splits(0).DisplayColumns(xx).Name = Me.lbVorhandeneSpalten.Items(i) Then
|
|
Me.C1Data.Splits(0).DisplayColumns(xx).Visible = False
|
|
End If
|
|
Next
|
|
' Me.DokList.Splits(0).DisplayColumns(F.ListBox1.Items(i)).Visible = False
|
|
Catch
|
|
End Try
|
|
Next
|
|
For i = 0 To Me.lbVerwendeteSpalten.Items.Count - 1
|
|
Try
|
|
Dim xx As Integer
|
|
For xx = 0 To Me.C1Data.Columns.Count - 1
|
|
If Me.C1Data.Splits(0).DisplayColumns(xx).Name = Me.lbVerwendeteSpalten.Items(i) Then
|
|
Me.C1Data.Splits(0).DisplayColumns(xx).Visible = True
|
|
End If
|
|
Next
|
|
Catch
|
|
End Try
|
|
Next
|
|
C1Data.Enabled = True
|
|
Me.profil.Save_Data()
|
|
Me.docmgmt.Save_LayoutFile(C1Data, 1, Me.profil.iProfilnr.Value)
|
|
Me.FormdataChanged = False
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
#Region "Allgemein"
|
|
|
|
Private Sub lbVerwendeteSpalten_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles lbVerwendeteSpalten.DoubleClick
|
|
Dim i As Integer
|
|
For i = 0 To Me.lbVerwendeteSpalten.SelectedItems.Count - 1
|
|
Me.lbVorhandeneSpalten.Items.Add(Me.lbVerwendeteSpalten.SelectedItems(i))
|
|
Next
|
|
For i = 0 To Me.lbVerwendeteSpalten.SelectedItems.Count - 1
|
|
Me.lbVerwendeteSpalten.Items.Remove(Me.lbVerwendeteSpalten.SelectedItems(0))
|
|
Next
|
|
End Sub
|
|
|
|
Private Sub lbVorhandeneSpalten_DoubleClick(ByVal sender As Object, ByVal e As System.EventArgs) Handles lbVorhandeneSpalten.DoubleClick
|
|
Dim i As Integer
|
|
For i = 0 To Me.lbVorhandeneSpalten.SelectedItems.Count - 1
|
|
Me.lbVerwendeteSpalten.Items.Add(Me.lbVorhandeneSpalten.SelectedItems(i))
|
|
Next
|
|
For i = 0 To Me.lbVorhandeneSpalten.SelectedItems.Count - 1
|
|
Me.lbVorhandeneSpalten.Items.Remove(Me.lbVorhandeneSpalten.SelectedItems(0))
|
|
Next
|
|
End Sub
|
|
|
|
Private Sub btnUnselectColumn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnUnselectColumn.Click
|
|
Me.lbVorhandeneSpalten_DoubleClick(sender, e)
|
|
End Sub
|
|
|
|
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
|
|
Me.lbVerwendeteSpalten_DoubleClick(sender, e)
|
|
End Sub
|
|
|
|
#End Region
|
|
|
|
Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
|
|
Dim i As Integer = 0
|
|
Dim s As Object
|
|
Try
|
|
i = Me.lbRegister.SelectedIndex
|
|
If i > 0 Then
|
|
s = Me.lbRegister.SelectedItem
|
|
Me.lbRegister.Items.Remove(s)
|
|
i = i - 1
|
|
Me.lbRegister.Items.Insert(i, s)
|
|
Me.lbRegister.SelectedIndex = i
|
|
End If
|
|
Catch
|
|
End Try
|
|
End Sub
|
|
|
|
Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
|
|
Dim i As Integer = 0
|
|
Dim s As Object
|
|
Try
|
|
i = Me.lbRegister.SelectedIndex
|
|
If i < Me.lbRegister.Items.Count - 1 Then
|
|
s = Me.lbRegister.SelectedItem
|
|
Me.lbRegister.Items.Remove(s)
|
|
i = i + 1
|
|
Me.lbRegister.Items.Insert(i, s)
|
|
Me.lbRegister.SelectedIndex = i
|
|
End If
|
|
Catch
|
|
End Try
|
|
|
|
End Sub
|
|
|
|
Private Sub Button4_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button4.Click
|
|
Dim s As String = Me.lbSort.SelectedItem + " | "
|
|
Try
|
|
If Me.lbSortDirection.SelectedIndex = 0 Then s = s + "Absteigend" Else s = s + "Aufsteigend"
|
|
Catch ex As Exception
|
|
s = s + "Absteigend"
|
|
End Try
|
|
Me.lbSortKriterien.Items.Add(s)
|
|
End Sub
|
|
|
|
Private Sub Button5_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button5.Click
|
|
Try
|
|
Me.lbSortKriterien.Items.Remove(Me.lbSortKriterien.SelectedItem)
|
|
Me.lbSortKriterien.SelectedIndex = 0
|
|
Catch ex As Exception
|
|
|
|
End Try
|
|
End Sub
|
|
|
|
End Class |