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) ' 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() ' Legen Sie die DisplayMember und ValueMember fest cmbLogoSelection.DisplayMember = "Display" cmbLogoSelection.ValueMember = "Value" ' Erstellen Sie eine Liste von ComboBoxItem-Objekten 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") } ' Binden Sie die Liste als DataSource cmbLogoSelection.DataSource = logoItems ' Optional: Setzen Sie die Standardauswahl 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 ' Sicherstellen, dass die ComboBox initialisiert ist If cmbLogoSelection.Items.Count > 0 Then cmbLogoSelection.SelectedIndex = 0 End If End Sub ' Ereignis-Handler für den Speichern-Button Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click Try ' Holen Sie sich das ausgewählte ComboBoxItem 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), .SelectedLogoValue = selectedValue ' Stellen Sie sicher, dass diese Eigenschaft in cTvSettings existiert } ' 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