Imports VERAG_PROG_ALLGEMEIN Imports VERAG_PROG_ALLGEMEIN.cMeineFunktionenAVISO Public Class frmAuswahl_Aviso 'Public frmHilf As frmTabelleBilanzarten Dim Firmen As New cFirmenDAL Dim Auswahl_Standort As String = "" Private Sub frmAuswahl_Aviso_KeyDown(sender As Object, e As System.Windows.Forms.KeyEventArgs) 'Escape händisch abfangen und auf Abbruch-Taste legen If e.KeyCode = Keys.Escape Then btnAbbruch.PerformClick() End If End Sub Private Sub frmAuswahl_Aviso_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load Me.CenterToParent() 'AuswahlCombos mit Daten befüllen cboFirma.DataSource = Firmen.Anzeigen_cboFirmen("") cboFirma.DisplayMember = "Firma" cboFirma.ValueMember = "FirmaID" 'Vorschlagswerte setzen optKunde.Checked = True optAlle.Checked = True ' optAnkunft.Checked = frmMain.optAnkunft.Checked ' optErfasst.Checked = frmMain.optErfasst.Checked '' optFreigegeben.Checked = frmMain.optFreigegeben.Checked ' optNichtEingetroffen.Checked = frmMain.optNichtEingetroffen.Checked dtpAvisoVon.Value = frmHauptfenster.dtpVon.Value dtpAvisoBis.Value = frmHauptfenster.dtpBis.Value dtpAnkunftVon.Value = frmHauptfenster.dtpVon.Value dtpAnkunftBis.Value = frmHauptfenster.dtpBis.Value dtpFreigabeVon.Value = frmHauptfenster.dtpVon.Value dtpFreigabeBis.Value = frmHauptfenster.dtpBis.Value txtMonat.Text = Now.Month.ToString txtJahr.Text = Now.Year.ToString optDatumAviso.Checked = True Select Case frmHauptfenster.lblGrenzstelle.Text Case "SUB" : optSUB.Checked = True Case "SBG" : optSBG.Checked = True Case "NKD" : optNKD.Checked = True Case "WAI" : optWAI.Checked = True Case Else : optStandortAlle.Checked = True End Select cboFirma.Text = "" optFirmaBeides.Checked = True txtStdVon.Text = "0" txtStdBis.Text = "10" ' If cGlobal.AktiverMitarbeiter.Sicherheitsstufe > 0 Then 'optIntern.Visible = False ' End If End Sub Private Sub btnAbbruch_Click(sender As System.Object, e As System.EventArgs) Handles btnAbbruch.Click 'Fenster schließen Me.Close() End Sub Private Sub txtFeld_GotFocus(sender As Object, e As System.EventArgs) Handles txtMitarbeiter.GotFocus, txtLKW_Nr.GotFocus, txtFrächter.GotFocus, txtAuftraggeber.GotFocus, txtMonat.GotFocus, txtJahr.GotFocus CType(sender, TextBox).SelectAll() End Sub Private Sub txtZahl_KeyPress(sender As Object, e As System.Windows.Forms.KeyPressEventArgs) Handles txtStdVon.KeyPress, txtStdBis.KeyPress, txtMonat.KeyPress, txtJahr.KeyPress 'Es sind nur Zahleneingaben erlaubt Dim asc As Integer = Convert.ToInt32(e.KeyChar) Select Case asc 'Folgende Tasten sind erlaubt '8 = Rücktaste (Back) '13 = Enter '27 = Esc '48 To 57 = 0 bis 9 Case 8, 13, 27, 48 To 57 Case Else e.Handled = True End Select End Sub Private Sub btnDruck_Click(sender As System.Object, e As System.EventArgs) Handles btnDruck.Click 'Logische Prüfungen vor dem Drucken If optDatumAnkunft.Checked Then If dtpAnkunftBis.Value.Date < dtpAnkunftVon.Value.Date Then MsgBox("Ankunft-Bis-Datum darf nicht kleiner sein als Von-Datum.", vbInformation) dtpAnkunftVon.Focus() Exit Sub End If End If If optDatumAviso.Checked Then If dtpAvisoBis.Value.Date < dtpAvisoVon.Value.Date Then MsgBox("Aviso-Eingang-Bis-Datum darf nicht kleiner sein als Von-Datum.", vbInformation) dtpAvisoVon.Focus() Exit Sub End If End If If optDatumFreigabe.Checked Then If dtpFreigabeBis.Value.Date < dtpFreigabeVon.Value.Date Then MsgBox("Freigabe-Bis-Datum darf nicht kleiner sein als Von-Datum.", vbInformation) dtpFreigabeVon.Focus() Exit Sub End If End If If optMonatJahr.Checked Then Dim Monat As Integer = VarToInt(txtMonat.Text.Trim) If Monat < 1 Or Monat > 12 Then MsgBox("Monat muss zwischen 1 und 12 liegen.", vbInformation) txtMonat.Focus() Exit Sub End If Dim Jahr As Integer = VarToInt(txtJahr.Text.Trim) If Jahr < 2014 Or Jahr > Now.Year Then MsgBox("Jahr muss zwischen 2014 und " & Now.Year.ToString & " liegen.", vbInformation) txtJahr.Focus() Exit Sub End If End If If optFreigegeben.Checked Then If VarToInt(txtStdVon.Text) > VarToInt(txtStdBis.Text) Then MsgBox("Dauer-Bis darf nicht kleiner sein als Dauer-Von.", vbInformation) txtStdVon.Focus() Exit Sub End If End If 'alles OK --> Report starten ActiveReportAnzeigen() End Sub Private Sub ActiveReportAnzeigen() 'Zusammenbau der SQL-Abfrage und der Auswahlinfo für den Druck Dim hSQL As String = "SELECT * FROM Aviso WHERE Firma='" & VERAG_PROG_ALLGEMEIN.cAllgemein.FIRMA & "' AND " Dim hAuswahl As String = "Auswahl: " If optDatumAnkunft.Checked Then hSQL += "Ankunft >= " & SQLDatum(dtpAnkunftVon.Value.Date) & " AND Ankunft <= " & SQLDatum(dtpAnkunftBis.Value.Date.AddDays(1)) hAuswahl += "Ankunftsdatum von " & Format(dtpAnkunftVon.Value, "dd.MM.yyyy") & " bis " & Format(dtpAnkunftBis.Value, "dd.MM.yyyy") & "; " ElseIf optDatumFreigabe.Checked Then hSQL += "Freigabe >= " & SQLDatum(dtpFreigabeVon.Value.Date) & " AND Freigabe <= " & SQLDatum(dtpFreigabeBis.Value.Date.AddDays(1)) hAuswahl += "Freigabedatum von " & Format(dtpFreigabeVon.Value, "dd.MM.yyyy") & " bis " & Format(dtpFreigabeBis.Value, "dd.MM.yyyy") & "; " ElseIf optDatumAviso.Checked Then hSQL += "Datum >= " & SQLDatum(dtpAvisoVon.Value.Date) & " AND Datum <= " & SQLDatum(dtpAvisoBis.Value.Date.AddDays(1)) hAuswahl += "Aviso-Eingang von " & Format(dtpAvisoVon.Value, "dd.MM.yyyy") & " bis " & Format(dtpAvisoBis.Value, "dd.MM.yyyy") & "; " Else hAuswahl += "Monat: " & txtMonat.Text & "/" & txtJahr.Text Dim hVon As Date = DateSerial(VarToInt(txtJahr.Text), VarToInt(txtMonat.Text), 1) Dim hBis As Date = hVon.AddMonths(1) hSQL += "((Datum >= " & SQLDatum(hVon) & " AND Datum <= " & SQLDatum(hBis) & ") OR " & "(Ankunft >= " & SQLDatum(hVon) & " AND Ankunft <= " & SQLDatum(hBis) & ") OR " & "(Freigabe >= " & SQLDatum(hVon) & " AND Freigabe <= " & SQLDatum(hBis) & ")) " End If If optAlle.Checked Then hAuswahl += "Status=alle; " ElseIf optErfasst.Checked Then hSQL += " AND Status = " & VERAG_PROG_ALLGEMEIN.cGlobal.Status_Erfasst.ToString hAuswahl += "Status=erfasst; " ElseIf optNichtEingetroffen.Checked Then hSQL += " AND Status = " & VERAG_PROG_ALLGEMEIN.cGlobal.Status_NichtEingetroffen.ToString hAuswahl += "Status=LKW n.e.; " ElseIf optAnkunft.Checked Then hSQL += " AND Status = " & VERAG_PROG_ALLGEMEIN.cGlobal.Status_Ankunft.ToString hAuswahl += "Status=Ankunft; " ElseIf optFreigegeben.Checked Then hSQL += " AND Status = " & VERAG_PROG_ALLGEMEIN.cGlobal.Status_Freigegeben.ToString hAuswahl += "Status=freigegeben; " End If If optSUB.Checked Then hAuswahl += "Standort=Suben; " Auswahl_Standort = "SUB" ElseIf optSBG.Checked Then hAuswahl += "Standort=Salzburg; " Auswahl_Standort = "SBG" ElseIf optNKD.Checked Then hAuswahl += "Standort=Nickelsdorf; " Auswahl_Standort = "NKD" ElseIf optWAI.Checked Then hAuswahl += "Standort=Waidhaus; " Auswahl_Standort = "WAI" Else hAuswahl += "Standort=Alle; " Auswahl_Standort = "" End If If Auswahl_Standort <> "" Then hSQL += " AND Grenzstelle = '" & Auswahl_Standort & "' " If cboFirma.Text <> "" Then hAuswahl = "Firma " & cboFirma.Text If optFirmaBeides.Checked Then hAuswahl = " (Frächter+Auftraggeber); " hSQL += " AND (Frächter = '" & cboFirma.Text & "' OR Auftraggeber = '" & cboFirma.Text & "')" ElseIf optFrächter.Checked Then hAuswahl = " (Frächter); " hSQL += " AND Frächter = '" & cboFirma.Text & "'" ElseIf optAuftraggeber.Checked Then hAuswahl = " (Auftraggeber); " hSQL += " AND Auftraggeber = '" & cboFirma.Text & "'" End If End If Dim hStern As String = "" If txtLKW_Nr.Text.Trim <> "" Then hStern += "LKW_Nr LIKE '%" & txtLKW_Nr.Text.Trim & "%'" hAuswahl += "LKW-Nr=*" & txtLKW_Nr.Text.Trim & "*; " End If If txtFrächter.Text.Trim <> "" Then If hStern <> "" Then hStern += " OR " hStern += "Frächter LIKE '%" & txtFrächter.Text.Trim & "%'" hAuswahl += "Frächter=*" & txtFrächter.Text.Trim & "*; " End If If txtAuftraggeber.Text.Trim <> "" Then If hStern <> "" Then hStern += " OR " hStern += "Auftraggeber LIKE '%" & txtAuftraggeber.Text.Trim & "%'" hAuswahl += "Auftraggeber=*" & txtAuftraggeber.Text.Trim & "*; " End If If txtMitarbeiter.Text.Trim <> "" Then If hStern <> "" Then hStern += " OR " hStern += "LetzterMitarbeiter LIKE '%" & txtMitarbeiter.Text.Trim & "%'" hAuswahl += "Mitarbeiter=*" & txtMitarbeiter.Text.Trim & "*; " End If If hStern <> "" Then hStern = "(" & hStern & ")" hSQL += " AND " & hStern End If If optFreigegeben.Checked Then 'bei Freigabe auch die Dauer mitprüfen hSQL += " AND Dauer >= " & (VarToInt(txtStdVon.Text) * 60).ToString & " AND Dauer <= " & (VarToInt(txtStdBis.Text) * 60) hAuswahl += "Dauer: " & txtStdVon.Text.Trim & " - " & txtStdBis.Text.Trim & " Std." End If 'jetzt die Sortierung festlegen If optAnkunft.Checked Then hSQL += " ORDER BY Ankunft" ElseIf optFreigegeben.Checked Then hSQL += " ORDER BY Freigabe" Else hSQL += " ORDER BY Datum" End If ''nachsehen, ob Frächter speziell ausgewählt wurde 'Dim hFrächter As String = "" 'If txtFrächter.Text.Trim <> "" Then ' If txtFrächter.Text.Contains("*") Then ' hFrächter = "" ' Else ' hFrächter = txtFrächter.Text.Trim ' End If 'End If 'If hFrächter = "" Then ' If txtAuftraggeber.Text.Trim <> "" Then ' If txtAuftraggeber.Text.Contains("*") Then ' hFrächter = "" ' Else ' hFrächter = txtAuftraggeber.Text.Trim ' End If ' End If 'End If Try 'Dim Werte = New cWerteDAL Dim report As rptAuswertung = New rptAuswertung report.Auswahl = hAuswahl report.SQL = hSQL report.Intern = optIntern.Checked report.Frächter = cboFirma.Text report.Standort = Auswahl_Standort Dim arAuswertung As New frmDruck(report) arAuswertung.Text = "Saldenliste" arAuswertung.Show() Catch ex As Exception MsgBox("Beim Drucken ist ein Fehler aufgetreten: " & vbCrLf & ex.Message) Exit Sub End Try End Sub Private Sub btnDatum_Click(sender As System.Object, e As System.EventArgs) Handles btnLfdMonat.Click, btnLfdJahr.Click, btnVormonat.Click Dim Monatsanfang As Date = DateSerial(Now.Year, Now.Month, 1) If sender Is btnLfdMonat Then 'laufenden Monat überall vorschlagen dtpAvisoVon.Value = Monatsanfang dtpAvisoBis.Value = Now.Date dtpAnkunftVon.Value = Monatsanfang dtpAnkunftBis.Value = Now.Date dtpFreigabeVon.Value = Monatsanfang dtpFreigabeBis.Value = Now.Date txtMonat.Text = Now.Month.ToString txtJahr.Text = Now.Year.ToString End If If sender Is btnVormonat Then 'Vormonat überall vorschlagen dtpAvisoVon.Value = Monatsanfang.AddMonths(-1) dtpAvisoBis.Value = Monatsanfang.AddDays(-1) dtpAnkunftVon.Value = Monatsanfang.AddMonths(-1) dtpAnkunftBis.Value = Monatsanfang.AddDays(-1) dtpFreigabeVon.Value = Monatsanfang.AddMonths(-1) dtpFreigabeBis.Value = Monatsanfang.AddDays(-1) txtMonat.Text = dtpAvisoVon.Value.Month.ToString txtJahr.Text = dtpAvisoVon.Value.Year.ToString End If If sender Is btnLfdJahr Then 'Vormonat überall vorschlagen dtpAvisoVon.Value = DateSerial(Now.Year, 1, 1) dtpAvisoBis.Value = Now.Date dtpAnkunftVon.Value = DateSerial(Now.Year, 1, 1) dtpAnkunftBis.Value = Now.Date dtpFreigabeVon.Value = DateSerial(Now.Year, 1, 1) dtpFreigabeBis.Value = Now.Date txtMonat.Text = dtpAvisoVon.Value.Month.ToString txtJahr.Text = dtpAvisoVon.Value.Year.ToString End If End Sub End Class