Files
AVISO/Aviso/frmAuswahl_Aviso.vb

341 lines
12 KiB
VB.net

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