Files
AVISO/Aviso/frmTvSettings.vb
2024-12-23 14:52:57 +01:00

147 lines
7.1 KiB
VB.net

Imports System.Data.SqlClient
Imports AVISO.frmEintragTvNew
Imports VERAG_PROG_ALLGEMEIN
Partial Class frmTvSettings
Inherits System.Windows.Forms.Form
Private standortID As Integer
Private AvisoTvNewDAL As New cAvisoTvNewDAL()
Private list As New List(Of cAvisoTvNew)()
Public Sub New(standortID As Integer)
InitializeComponent()
Me.standortID = standortID
End Sub
' Ereignis-Handler für das Laden des Formulars
Private Sub frmTvSettings_Load(sender As Object, e As EventArgs) Handles MyBase.Load
Try
' Einstellungen aus der Datenbank laden
Dim settingsList As List(Of cTvSettings) = AvisoTvNewDAL.GetTvSettingsByStandort(standortID)
' ComboBox initialisieren
InitializeComboBox()
If settingsList IsNot Nothing AndAlso settingsList.Count > 0 Then
Dim settings As cTvSettings = settingsList(0)
numTileWidth.Value = If(settings.KachelWidthInPercent >= numTileWidth.Minimum AndAlso settings.KachelWidthInPercent <= numTileWidth.Maximum, CDec(settings.KachelWidthInPercent), 30)
numTileHeight.Value = If(settings.KachelHeightInPercent >= numTileHeight.Minimum AndAlso settings.KachelHeightInPercent <= numTileHeight.Maximum, CDec(settings.KachelHeightInPercent), 30)
numFontSizeLkwNummer.Value = If(settings.KachelFontSizeLkwNummer >= numFontSizeLkwNummer.Minimum AndAlso settings.KachelFontSizeLkwNummer <= numFontSizeLkwNummer.Maximum, CDec(settings.KachelFontSizeLkwNummer), 12)
numFontSizeDateTime.Value = If(settings.KachelFontSizeDateTime >= numFontSizeDateTime.Minimum AndAlso settings.KachelFontSizeDateTime <= numFontSizeDateTime.Maximum, CDec(settings.KachelFontSizeDateTime), 12)
numSeitenwechsel.Value = If(settings.SeitenwechselInSek >= numSeitenwechsel.Minimum AndAlso settings.SeitenwechselInSek <= numSeitenwechsel.Maximum, CDec(settings.SeitenwechselInSek), 30)
numTextBalkenHeight.Value = If(settings.TextBalkenHeightInPercent >= numTextBalkenHeight.Minimum AndAlso settings.TextBalkenHeightInPercent <= numTextBalkenHeight.Maximum, CDec(settings.TextBalkenHeightInPercent), 30)
numKachelRowGapInPercent.Value = If(settings.KachelRowGapInPercent >= numKachelRowGapInPercent.Minimum AndAlso settings.KachelRowGapInPercent <= numKachelRowGapInPercent.Maximum, CDec(settings.KachelRowGapInPercent), 15)
numTextFlaggeBottom.Value = If(settings.TextFlaggeBottom >= numTextFlaggeBottom.Minimum AndAlso settings.TextFlaggeBottom <= numTextFlaggeBottom.Maximum, CDec(settings.TextFlaggeBottom), 15)
numTextFLaggeLeft.Value = If(settings.TextFlaggeLeft >= numTextFLaggeLeft.Minimum AndAlso settings.TextFlaggeLeft <= numTextFLaggeLeft.Maximum, CDec(settings.TextFlaggeLeft), 15)
' Logo-Auswahl setzen
cmbLogoSelection.SelectedValue = settings.SelectedLogoValue
' Überprüfen, ob die Auswahl erfolgreich war
If cmbLogoSelection.SelectedValue Is Nothing Then
' Wenn nicht, setze auf den ersten Eintrag
cmbLogoSelection.SelectedIndex = 0
End If
Else
' Standardwerte verwenden, falls keine Einstellungen vorhanden sind
SetDefaultValues()
End If
Catch ex As Exception
MessageBox.Show("Fehler beim Laden der Einstellungen: " & ex.Message, "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
SetDefaultValues()
End Try
End Sub
' Klasse für ComboBox-Elemente
Public Class ComboBoxItem
Public Property Display As String
Public Property Value As String
Public Sub New(display As String, value As String)
Me.Display = display
Me.Value = value
End Sub
Public Overrides Function ToString() As String
Return Display
End Function
End Class
' Methode zur Initialisierung der ComboBox
Private Sub InitializeComboBox()
cmbLogoSelection.DisplayMember = "Display"
cmbLogoSelection.ValueMember = "Value"
Dim logoItems As New List(Of ComboBoxItem) From {
New ComboBoxItem("VERAG AG", "verag.png"),
New ComboBoxItem("ATILLA", "atilla.png"),
New ComboBoxItem("ATILLA TÜRKIYE", "atilla_turkiye.jpg"),
New ComboBoxItem("FRONTOFFICE_SUBEN", "frontoffice_suben.jpg"),
New ComboBoxItem("IMEX", "imex.png"),
New ComboBoxItem("UNISPED", "unisped.jpg")
}
cmbLogoSelection.DataSource = logoItems
If logoItems.Count > 0 Then
cmbLogoSelection.SelectedIndex = 0
End If
End Sub
' Methode zum Setzen der Standardwerte
Private Sub SetDefaultValues()
numTileWidth.Value = 30
numTileHeight.Value = 30
numFontSizeLkwNummer.Value = 12
numFontSizeDateTime.Value = 12
numSeitenwechsel.Value = 30
numTextBalkenHeight.Value = 30
numKachelRowGapInPercent.Value = 15
numTextFlaggeBottom.Value = 15
numTextFLaggeLeft.Value = 15
' Sicherstellen, dass die ComboBox initialisiert ist
If cmbLogoSelection.Items.Count > 0 Then
cmbLogoSelection.SelectedIndex = 0
End If
' Reload-Checkbox auf nicht aktiviert setzen
chkReload.Checked = False
End Sub
' Ereignis-Handler für den Speichern-Button
Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click
Try
Dim selectedItem As ComboBoxItem = CType(cmbLogoSelection.SelectedItem, ComboBoxItem)
Dim selectedValue As String = If(selectedItem IsNot Nothing, selectedItem.Value, String.Empty)
Dim settings As New cTvSettings() With {
.StandortID = standortID,
.KachelWidthInPercent = CDbl(numTileWidth.Value),
.KachelHeightInPercent = CDbl(numTileHeight.Value),
.KachelFontSizeLkwNummer = CDbl(numFontSizeLkwNummer.Value),
.KachelFontSizeDateTime = CDbl(numFontSizeDateTime.Value),
.SeitenwechselInSek = CDbl(numSeitenwechsel.Value),
.TextBalkenHeightInPercent = CDbl(numTextBalkenHeight.Value),
.KachelRowGapInPercent = CDbl(numKachelRowGapInPercent.Value),
.TextFlaggeBottom = CDbl(numTextFlaggeBottom.Value),
.TextFlaggeLeft = CDbl(numTextFLaggeLeft.Value),
.SelectedLogoValue = selectedValue,
.Reload = If(chkReload.Checked, 1, 0) ' Setzen der Reload-Spalte
}
' Einstellungen in der Datenbank speichern
AvisoTvNewDAL.SaveTvSettings(settings)
MessageBox.Show("Einstellungen wurden erfolgreich gespeichert!", "Erfolg", MessageBoxButtons.OK, MessageBoxIcon.Information)
Me.Close()
Catch ex As Exception
MessageBox.Show("Fehler beim Speichern der Einstellungen: " & ex.Message, "Fehler", MessageBoxButtons.OK, MessageBoxIcon.Error)
End Try
End Sub
End Class