Imports System.ComponentModel Public Class frmSeminarDetails Public semId As Integer = -1 Public vortragenderId As Integer Private SEMINARE As New cSeminare Dim seminar As New cSeminar Dim cOptionenDAL As New cOptionenDAL Private Grid_aktiv As Boolean = False Private Anzahl As Integer Private locZeilen As Integer = -1 Private Sub TextBox5_TextChanged(sender As Object, e As EventArgs) Handles txtName.TextChanged lblSeminarname.Text = txtName.Text End Sub Private Sub frmSeminarDetails_Load(sender As Object, e As EventArgs) Handles MyBase.Load If semId >= 0 Then seminar = SEMINARE.getSeminarById(semId) btnAddTeilnehmer.Enabled = True btnDelTeilnehmer.Enabled = True Else btnSave.Visible = False btnAddTeilnehmer.Enabled = False btnDelTeilnehmer.Enabled = False End If cboReportVorlage.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Unterschr. Vorstand + Vortr.Name (Standard)", "rptSeminatZert.rpx")) cboReportVorlage.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Unterschr. Vorstand", "rptSeminatZertVorst.rpx")) cboReportVorlage.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Unterschr. Vorstand + Vortr.Allg / nur Inh. 1", "rptSeminatZertAllgUnter.rpx")) cboReportVorlage.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Interne Ausbildung CS", "rptIntAusb.rpx")) '3 cboReportVorlage.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Interne Ausbildung AG", "rptIntAusbAG.rpx")) '3 cboReportVorlage.Items.Add(New VERAG_PROG_ALLGEMEIN.MyListItem("Interne Ausbildung ATILLA", "rptIntAusbATILLA.rpx")) '3 datVon.Format = DateTimePickerFormat.Long datBis.Format = DateTimePickerFormat.Long datDauer.Format = DateTimePickerFormat.Custom : datDauer.CustomFormat = "HH:mm" : datDauer.ShowUpDown = True datVonTime.Format = DateTimePickerFormat.Custom : datVonTime.CustomFormat = "HH:mm" : datVonTime.ShowUpDown = True datBisTime.Format = DateTimePickerFormat.Custom : datBisTime.CustomFormat = "HH:mm" : datBisTime.ShowUpDown = True initLoad() Grid_aktiv = True Tabelle_anzeigen() End Sub Private Sub initLoad() txtName.Text = seminar.sem_name ' datVon.Text = seminar.sem_von ' datBis.Text = seminar.sem_bis cboOrt.Text = seminar.sem_ort cbxIsVERAG_Seminar.Checked = seminar.sem_isVeragSeminar cbxIntAusbildung.Checked = seminar.sem_isIntAusbildung txtVortragender.Text = seminar.sem_vortragender rtbInhalt.Text = seminar.sem_inhalt rtbInhalt2.Text = seminar.sem_inhalt2 rtbinfo.Text = seminar.sem_info datDauer.Text = seminar.sem_dauer lblBez.Text = seminar.sem_bezeichnung Dim dtVon As DateTime = seminar.sem_von datVonTime.Text = dtVon.ToString("HH:mm") datVon.Text = seminar.sem_von Dim dtBis As DateTime = seminar.sem_bis datBisTime.Text = dtBis.ToString("HH:mm") datBis.Text = seminar.sem_bis End Sub Private Sub initSave() seminar.sem_name = txtName.Text ' seminar.sem_von = datVon.Text 'seminar.sem_bis = datBis.Text seminar.sem_ort = cboOrt.Text seminar.sem_isVeragSeminar = cbxIsVERAG_Seminar.Checked seminar.sem_isIntAusbildung = cbxIntAusbildung.Checked seminar.sem_vortragender = txtVortragender.Text seminar.sem_inhalt = rtbInhalt.Text seminar.sem_inhalt2 = rtbInhalt2.Text seminar.sem_info = rtbinfo.Text seminar.sem_dauer = datDauer.Text seminar.sem_bezeichnung = lblBez.Text Dim dtVon = DateTime.Parse(datVon.Text & " " & datVonTime.Text) seminar.sem_von = dtVon Dim dtBis = DateTime.Parse(datBis.Text & " " & datBisTime.Text) seminar.sem_bis = dtBis seminar.sem_type = "SCHULUNG" End Sub Private Sub Button3_Click(sender As Object, e As EventArgs) Handles btnAddTeilnehmer.Click frmMitarbSuche.searchUse = "addTeilnehmer" frmMitarbSuche.Show() End Sub Private Sub Button2_Click(sender As Object, e As EventArgs) Handles Button2.Click frmMitarbSuche.searchUse = "vortragender" frmMitarbSuche.Show() End Sub Public Sub Tabelle_anzeigen() Dim start As Long = (DateTime.Now - New DateTime(1970, 1, 1)).TotalMilliseconds 'lblMs.Image = My.Resources.sanduhr 'Paint wieder reaktivieren locZeilen = -1 If Not Grid_aktiv Then Exit Sub Dim top As String = "" ' "top 100" 'je nach Auswahl SQL anpassen Dim hSQL = "SELECT semi_id,mit_id, mit_username, mit_vname, mit_nname, mit_niederlassung, mit_abteilung,mit_geschlecht FROM tblMitarbeiter INNER JOIN tblSemMitarb ON semi_semId=" & semId & " AND mit_id=semi_mitId " ' MsgBox(hSQL) dgvTeilnehmer.DataSource = cOptionenDAL.AnzeigeTabelle(hSQL) 'Tabelle Kommt/Geht bereinigen If dgvTeilnehmer.RowCount = 0 Then dgvTeilnehmer.DataSource = Nothing Else Spalten_festlegen() ' Eintraege_festlegen() 'AL: Sortierung nach Ausfahrt (Zeit) dgvTeilnehmer.Sort(dgvTeilnehmer.Columns(3), ListSortDirection.Ascending) End If 'Anzeige der Anzahl gewählter/aller Datensätze If (dgvTeilnehmer.RowCount = 100) Then 'lblAnzahl.Text = Format(dgvTeilnehmer.RowCount, "#,##0") & " ausgewählt (Die Suche wurde auf 100 Ergebnisse beschränkt.)" Else ' lblAnzahl.Text = Format(dgvTeilnehmer.RowCount, "#,##0") & " ausgewählt" End If ' lblAnzahl.Refresh() Dim ende As Long = (DateTime.Now - New DateTime(1970, 1, 1)).TotalMilliseconds ' lblMs.Text = "Ladezeit: " & (ende - start) & " ms" 'lblMs.Image = Nothing End Sub Private Sub Spalten_festlegen() With dgvTeilnehmer .RowTemplate.Height = 20 .RowTemplate.DefaultCellStyle.Alignment = DataGridViewContentAlignment.TopLeft .AllowUserToAddRows = False .AllowUserToDeleteRows = False .AllowUserToOrderColumns = False .AllowUserToResizeColumns = False .AllowUserToResizeRows = False .RowTemplate.ReadOnly = True .RowHeadersVisible = False .SelectionMode = DataGridViewSelectionMode.FullRowSelect .AllowUserToOrderColumns = True .Columns(0).Visible = False 'ID nicht anzeigen .Columns(1).Visible = False 'ID nicht anzeigen .Columns(2).Width = 90 .Columns(2).HeaderText = "Username" .Columns(2).DefaultCellStyle.Alignment = DataGridViewContentAlignment.MiddleCenter .Columns(3).Width = 160 .Columns(3).HeaderText = "Vorname" .Columns(4).Width = 180 .Columns(4).HeaderText = "Nachname" .Columns(5).Width = 95 .Columns(5).HeaderText = "Niederlassung" .Columns(6).Width = 95 .Columns(6).HeaderText = "Abteilung" .Columns(7).Visible = False 'geschlecht nicht anzeigen End With End Sub Private Sub Button5_Click(sender As Object, e As EventArgs) Handles btnDelTeilnehmer.Click SEMINARE.delSemMitarbeiter(dgvTeilnehmer.CurrentRow.Cells(0).Value) Tabelle_anzeigen() End Sub Private Sub btnOK_Click(sender As Object, e As EventArgs) Handles btnOK.Click saveSeminar() Me.Close() End Sub Private Sub btnCancel_Click(sender As Object, e As EventArgs) Handles btnCancel.Click Me.Close() End Sub Private Sub btnSave_Click(sender As Object, e As EventArgs) Handles btnSave.Click saveSeminar() End Sub Private Sub saveSeminar() initSave() If semId >= 0 Then seminar.sem_id = semId SEMINARE.updateSeminare(seminar) Else initSave() SEMINARE.insertSeminare(seminar) End If frmMain.btnSchulungen.PerformClick() End Sub Private Sub Button4_Click(sender As Object, e As EventArgs) Handles btnPrintAllCert.Click If dgvTeilnehmer.Rows.Count = 0 Then MsgBox("Keine Teilnehmer eingetragen!") : Exit Sub Dim semiCert As New semiCert Dim teilnehmer(dgvTeilnehmer.RowCount - 1) As String Dim cnt As Integer = 0 For Each Zeile As DataGridViewRow In dgvTeilnehmer.Rows If cbxIntAusbildung.Checked Then If Zeile.Cells(7).Value = "m" Then teilnehmer(cnt) = "Herr " If Zeile.Cells(7).Value = "w" Then teilnehmer(cnt) = "Frau " End If teilnehmer(cnt) = teilnehmer(cnt) & Zeile.Cells(3).Value & " " teilnehmer(cnt) = teilnehmer(cnt) & Zeile.Cells(4).Value cnt += 1 Next semiCert.teilnehmer = teilnehmer If datBis.Text = datVon.Text Then semiCert.datum = "hat am " & datVon.Value.ToShortDateString & " am Seminar" Else semiCert.datum = "hat vom " & datVon.Value.ToShortDateString & " bis zum " & datBis.Value.ToShortDateString & " am Seminar" End If semiCert.titel = txtName.Text semiCert.inhalt = rtbInhalt.Text semiCert.inhalt2 = rtbInhalt2.Text semiCert.referent = txtVortragender.Text semiCert.unterzeichnender = txtVortragender.Text ' semiCert.zeitraum = lblBez.Text If Not cboReportVorlage.SelectedItem Is Nothing Then frmActiveReprotViewer.report = CType(cboReportVorlage.SelectedItem, VERAG_PROG_ALLGEMEIN.MyListItem).Value If cbxIntAusbildung.Checked Then semiCert.datum = lblBez.Text frmActiveReprotViewer.BefüllenSeminarZertifikatIntern(semiCert) Else frmActiveReprotViewer.BefüllenSeminarZertifikat(semiCert) End If frmActiveReprotViewer.Show() End Sub Private Sub Button7_Click(sender As Object, e As EventArgs) Handles btnPrintSelectedCert.Click If dgvTeilnehmer.Rows.Count = 0 Then MsgBox("Keine Teilnehmer eingetragen!") : Exit Sub Dim semiCert As New semiCert Dim teilnehmer(dgvTeilnehmer.SelectedRows.Count - 1) As String Dim cnt As Integer = 0 For Each Zeile As DataGridViewRow In dgvTeilnehmer.Rows If Zeile.Selected Then If cbxIntAusbildung.Checked Then If Zeile.Cells(7).Value = "m" Then teilnehmer(cnt) = "Herr " If Zeile.Cells(7).Value = "w" Then teilnehmer(cnt) = "Frau " End If teilnehmer(cnt) = teilnehmer(cnt) & Zeile.Cells(3).Value & " " teilnehmer(cnt) = teilnehmer(cnt) & Zeile.Cells(4).Value cnt += 1 End If Next semiCert.teilnehmer = teilnehmer If datBis.Text = datVon.Text Then semiCert.datum = lblBez.Text semiCert.datum = "hat am " & datVon.Value.ToShortDateString & " am Seminar" Else semiCert.datum = "hat vom " & datVon.Value.ToShortDateString & " bis zum " & datBis.Value.ToShortDateString & " am Seminar" End If semiCert.titel = txtName.Text semiCert.inhalt = rtbInhalt.Text semiCert.inhalt2 = rtbInhalt2.Text semiCert.referent = txtVortragender.Text If Not cboReportVorlage.SelectedItem Is Nothing Then frmActiveReprotViewer.report = CType(cboReportVorlage.SelectedItem, VERAG_PROG_ALLGEMEIN.MyListItem).Value 'frmActiveReprotViewer.semiCert = semiCert If cbxIntAusbildung.Checked Then semiCert.datum = lblBez.Text frmActiveReprotViewer.BefüllenSeminarZertifikatIntern(semiCert) Else frmActiveReprotViewer.BefüllenSeminarZertifikat(semiCert) End If frmActiveReprotViewer.Show() End Sub Private Sub cbxIntAusbildung_CheckedChanged(sender As Object, e As EventArgs) Handles cbxIntAusbildung.CheckedChanged lblBez.Enabled = cbxIntAusbildung.Checked datVon.Enabled = Not cbxIntAusbildung.Checked datBis.Enabled = Not cbxIntAusbildung.Checked datVonTime.Enabled = Not cbxIntAusbildung.Checked datBisTime.Enabled = Not cbxIntAusbildung.Checked datDauer.Enabled = Not cbxIntAusbildung.Checked cboOrt.Enabled = Not cbxIntAusbildung.Checked rtbInhalt2.Enabled = Not cbxIntAusbildung.Checked If cbxIntAusbildung.Checked Then For Each i As VERAG_PROG_ALLGEMEIN.MyListItem In cboReportVorlage.Items If i.Value = "rptIntAusb.rpx" Then cboReportVorlage.SelectedItem = i : Exit For Next Else cboReportVorlage.SelectedIndex = 0 End If End Sub End Class Public Class semiCert Property teilnehmer As Array Property datum As String Property titel As String Property inhalt As String Property inhalt2 As String Property referent As String Property zeitraum As String Property unterzeichnender As String End Class