Imports System.Data.SqlClient Imports System.Drawing Imports System.IO Imports System.Windows.Forms Public Class frmFirmenuebersicht Dim SQL As New VERAG_PROG_ALLGEMEIN.SQL Private Sub frminterneEmailBenachrichtigungen_Load(sender As Object, e As EventArgs) Handles Me.Load VERAG_PROG_ALLGEMEIN.cAllgemein.TESTSYSTEM = True loadDGVMailbenachrichtigungen() End Sub Sub loadDGVMailbenachrichtigungen() Try Me.Cursor = Cursors.WaitCursor Dim sqlstr As String = "" sqlstr &= " Select [Firma_ID] ,[Firma_Bez],[Firma_Straße],[Firma_PLZ],[Firma_Ort],[Firma_LandKz] as Land,[Firma_Telefon],[Firma_Telefax],Replace([Firma_UID],'UID: ', '') as Firma_UID ,Replace([Firma_EORI],'EORI: ', '') as Firma_EORI, [Firma_Bankverbindung1],Replace([Firma_IBAN1],'IBAN: ', '') as Firma_IBAN1, Replace([Firma_BIC1],'BIC: ', '') as Firma_BIC1,[Firma_Bankverbindung2],[Firma_IBAN2],[Firma_BIC2],[Firma_E-Mail], [Firma_Webadresse],[Firmengruppe],[Firma_Warenort],[Firma_E_Mail_Mahnungen],[Firma_Steuernummer] ,Replace([Firma_Firmenbuch],'Firmenbuch: ', '') as Firma_Firmenbuch,[Firma_Logo],[Firma_Logo_Erweitert] from tblFirma " With dgvFirmen .SET_SQL(sqlstr, "FMZOLL") .LOAD() showDGVPruefungsobjekte() End With Catch ex As Exception VERAG_PROG_ALLGEMEIN.cErrorHandler.ERR(ex.Message, ex.StackTrace, "") End Try Me.Cursor = Cursors.Default End Sub Sub showDGVPruefungsobjekte() With dgvFirmen If .ColumnCount = 0 Then Me.Cursor = Cursors.Default : Exit Sub .RowHeadersVisible = False .ReadOnly = True .SelectionMode = DataGridViewSelectionMode.FullRowSelect .MultiSelect = False .Columns("Firma_Logo").Visible = False .Columns("Firma_Logo_Erweitert").Visible = False .Columns("Firma_Bankverbindung1").Visible = False .Columns("Firma_IBAN1").Visible = False .Columns("Firma_BIC1").Visible = False .Columns("Firma_Bankverbindung2").Visible = False .Columns("Firma_BIC2").Visible = False .Columns("Firma_IBAN2").Visible = False .Columns("Firma_E-Mail").Visible = False .Columns("Firma_E_Mail_Mahnungen").Visible = False .Columns("Firma_ID").Width = 30 .Columns("Firma_Warenort").Width = 60 .Columns("Firma_PLZ").Width = 60 .Columns("Land").Width = 40 .Columns("Firma_Bez").AutoSizeMode = DataGridViewAutoSizeColumnMode.Fill For Each col As DataGridViewColumn In dgvFirmen.Columns col.HeaderText = col.HeaderText.Replace("Firma_", "") Next End With End Sub Private Sub dgvFirmen_SelectionChanged(sender As Object, e As EventArgs) Handles dgvFirmen.SelectionChanged If dgvFirmen.SelectedRows.Count = 1 Then pbLogo.SizeMode = PictureBoxSizeMode.Zoom pbLogoMail.SizeMode = PictureBoxSizeMode.Zoom pbLogo.Image = BytesToImage(dgvFirmen.SelectedRows(0).Cells("Firma_Logo").Value) pbLogoMail.Image = BytesToImage(dgvFirmen.SelectedRows(0).Cells("Firma_Logo_Erweitert").Value) lblFirma.Text = dgvFirmen.SelectedRows(0).Cells("Firma_Bez").Value lblBank1.Text = If(IsDBNull(dgvFirmen.SelectedRows(0).Cells("Firma_Bankverbindung1").Value) OrElse dgvFirmen.SelectedRows(0).Cells("Firma_Bankverbindung1").Value Is Nothing, "", dgvFirmen.SelectedRows(0).Cells("Firma_Bankverbindung1").Value.ToString()) lblIban1.Text = If(IsDBNull(dgvFirmen.SelectedRows(0).Cells("Firma_IBAN1").Value) OrElse dgvFirmen.SelectedRows(0).Cells("Firma_IBAN1").Value Is Nothing, "", dgvFirmen.SelectedRows(0).Cells("Firma_IBAN1").Value.ToString()) lblBic1.Text = If(IsDBNull(dgvFirmen.SelectedRows(0).Cells("Firma_BIC1").Value) OrElse dgvFirmen.SelectedRows(0).Cells("Firma_BIC1").Value Is Nothing, "", dgvFirmen.SelectedRows(0).Cells("Firma_BIC1").Value.ToString()) lblBank2.Text = If(IsDBNull(dgvFirmen.SelectedRows(0).Cells("Firma_Bankverbindung2").Value) OrElse dgvFirmen.SelectedRows(0).Cells("Firma_Bankverbindung2").Value Is Nothing, "", dgvFirmen.SelectedRows(0).Cells("Firma_Bankverbindung2").Value.ToString()) lblIban2.Text = If(IsDBNull(dgvFirmen.SelectedRows(0).Cells("Firma_IBAN2").Value) OrElse dgvFirmen.SelectedRows(0).Cells("Firma_IBAN2").Value Is Nothing, "", dgvFirmen.SelectedRows(0).Cells("Firma_IBAN2").Value.ToString()) lblBic2.Text = If(IsDBNull(dgvFirmen.SelectedRows(0).Cells("Firma_BIC2").Value) OrElse dgvFirmen.SelectedRows(0).Cells("Firma_BIC2").Value Is Nothing, "", dgvFirmen.SelectedRows(0).Cells("Firma_BIC2").Value.ToString()) lblMail1.Text = If(IsDBNull(dgvFirmen.SelectedRows(0).Cells("Firma_E-Mail").Value) OrElse dgvFirmen.SelectedRows(0).Cells("Firma_E-Mail").Value Is Nothing, "-", dgvFirmen.SelectedRows(0).Cells("Firma_E-Mail").Value.ToString()) lblMail2.Text = If(IsDBNull(dgvFirmen.SelectedRows(0).Cells("Firma_E_Mail_Mahnungen").Value) OrElse dgvFirmen.SelectedRows(0).Cells("Firma_E_Mail_Mahnungen").Value Is Nothing, "-", dgvFirmen.SelectedRows(0).Cells("Firma_E_Mail_Mahnungen").Value.ToString()) & " (Mahnungen)" End If End Sub Private Function BytesToImage(value As Object) As Image If value Is Nothing OrElse IsDBNull(value) Then Return Nothing End If Dim bytes As Byte() = TryCast(value, Byte()) If bytes Is Nothing OrElse bytes.Length = 0 Then Return Nothing End If Try Using ms As New MemoryStream(bytes) Using img As Image = Image.FromStream(ms, True, True) Return New Bitmap(img) End Using End Using Catch ex As ArgumentException 'MessageBox.Show("Die gespeicherten Daten sind kein gültiges Bild." & ' vbCrLf & ' "Bytes: " & bytes.Length) Return Nothing End Try End Function Private Sub PictureBox1_Click(sender As Object, e As EventArgs) Handles PictureBox1.Click, PictureBox2.Click If dgvFirmen.SelectedRows.Count <> 1 Then Exit Sub Dim Firma As New cFirmen(CInt(dgvFirmen.SelectedRows(0).Cells("Firma_ID").Value)) Dim bild As Byte() = BildDateiLaden() If bild Is Nothing Then Exit Sub Dim spalte As String = "" Dim vorhandenesBild As Byte() = Nothing Select Case DirectCast(sender, PictureBox).Name Case "PictureBox1" spalte = "Firma_Logo" vorhandenesBild = Firma.Firma_Logo Case "PictureBox2" spalte = "Firma_Logo_Erweitert" vorhandenesBild = Firma.Firma_Logo_Erweitert End Select If vorhandenesBild IsNot Nothing AndAlso vorhandenesBild.Length > 0 Then Dim antwort = MessageBox.Show( "Es ist bereits ein Logo vorhanden." & vbCrLf & "Möchten Sie dieses überschreiben?", "Logo überschreiben", MessageBoxButtons.YesNo, MessageBoxIcon.Question) If antwort = DialogResult.No Then Exit Sub End If End If Using con As SqlConnection = SQL.GetNewOpenConnectionFMZOLL() Using cmd As New SqlCommand( $"UPDATE tblFirma SET {spalte}=@Bild WHERE Firma_ID=@Firma_ID", con) cmd.Parameters.Add("@Bild", SqlDbType.VarBinary, -1).Value = bild cmd.Parameters.Add("@Firma_ID", SqlDbType.Int).Value = Firma.Firma_ID cmd.ExecuteNonQuery() End Using End Using MessageBox.Show("Logo wurde gespeichert.", "Erfolgreich", MessageBoxButtons.OK, MessageBoxIcon.Information) loadDGVMailbenachrichtigungen() End Sub Public Function BildDateiLaden() As Byte() Using ofd As New OpenFileDialog() ofd.Title = "Bild auswählen" ofd.Filter = "Bilddateien|*.jpg;*.jpeg;*.png;*.bmp;*.gif;*.webp|Alle Dateien|*.*" ofd.Multiselect = False If ofd.ShowDialog() = DialogResult.OK Then Return File.ReadAllBytes(ofd.FileName) End If End Using Return Nothing End Function Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click End Sub End Class