| |
VB.NET - Ein- und UmsteigerKalender Filterstring | | | Autor: Knabber | Datum: 01.04.18 20:58 |
| Hallo
Tch habe ein problem mit dem Monthcalendar
Vorweg, Ich benutze ein eigenes Control also nicht das Bordeigene von VS12
aber das ist für mein Problem belanglos.
Also
Ich möchte bei klick auf ein Datum im Kalender
die jeweiligen Daten des ausgewählten Tages im Datagridview
dargestellt bekommen.
Ich plage mich also mit einem Filterstring herum.
Die Daten sind in einer Access DB und das Datagridview ist daran gebunden
Option Strik ist natürlich on
mein bisheriger code. gibt keine Fehlermeldung aber funktionieren tut er auch nicht
Dim BegEnd As New List(Of Date)
Dim Anzeige_Beg As Date
Dim Anzeig_End As Date
Me.SteuernBindingSource.RemoveFilter()
Dim Sel_Datum As Date
Dim ts_Zeit As TimeSpan = Now.TimeOfDay
Dim ts_A As TimeSpan = New Date(Today.Year, Today.Month, Today.Day, 0, _
0, 0, 0).TimeOfDay
Dim ts_B As TimeSpan = New Date(Today.Year, Today.Month, Today.Day, 23, _
59, 59, 999).TimeOfDay
If ts_Zeit >= ts_A AndAlso ts_Zeit <= ts_B Then
Anzeige_Beg = New Date(Sel_Datum.Year, Sel_Datum.Month, _
Sel_Datum.Day, 0, 0, 0)
Anzeig_End = New Date(Sel_Datum.Year, Sel_Datum.Month, _
Sel_Datum.Day, 23, 59, 59, 999)
End If
BegEnd.Add(Anzeige_Beg)
BegEnd.Add(Anzeig_End)
Dim _Detail_filter As String = String.Empty
Me.SteuernBindingSource.Filter = _Detail_filter kann mir da mal jemand auf die Sprünge helfen? | |
Re: Kalender Filterstring | | | Autor: Manfred X | Datum: 02.04.18 09:22 |
| Hallo!
Mir ist nicht klar, welcher Zweck hinter der BegEnd-Liste steht.
Der Filter der SteuernBindingSource ist im Code auf String.Empty gesetzt,
also wird nicht gefiltert.
Die TimeSpan-Klasse dient der Arbeit mit Zeitintervallen und ist nicht
für Datumsfilter geeignet. Nutze statt dessen Date (VB) oder DateTime (FW).
Für einen Bindingsource-Filter benötigst Du die Datums-Darstellung als
String in der invarianten Kultur (Monat/Tag/Jahr). | |
Re: Kalender Filterstring | | | Autor: Knabber | Datum: 02.04.18 11:18 |
| habe nun das bordeigene Monthcalendar wieder integriert.
in der msdn steht, wenn start und ende gleich sind dann genügt selektion Start
irgendwie steige ich als Anfänger nicht durch.
hast du eventuell ein Beispiel wie ich mit dem Calendar ein Filterstring erzeugen kann mit dem ich bei klick auf ein Datum im Control die Anzeige im DGV anzeigen lassen kann.
im Objektbrowser kann ich dazu nicht das richtige finden.
Habe den Kalender auch an das Dataset gebunden. Das heisst, bei click aus einen Datensatz im DGV wird schon mal das richtige Datum im Kalender angezeigt.
MFG
Sabine | |
Re: Kalender Filterstring | | | Autor: Manfred X | Datum: 03.04.18 06:11 |
| Vielleicht so ....
Public Class frmMonthCalender
Dim WithEvents mc As New MonthCalendar With
{.Parent = Me, .Size = New Drawing.Size(200, 200)}
Dim dt As New DataTable
Dim bs As New BindingSource
Dim dgv As New DataGridView With
{.Parent = Me, .DataSource = bs, .Top = 220}
Dim WithEvents btnClear As New Button With
{.Parent = Me, .Left = 220, .Text = "All"}
Dim rndm As New Random(1234)
Private Sub frmMonthCalender_Load(sender As Object, _
e As EventArgs) Handles MyBase.Load
dt.Columns.Add("ID", GetType(Integer))
dt.Columns.Add("DATE", GetType(DateTime))
For i As Integer = 0 To 1000
dt.Rows.Add(i, GetRandomDate)
Next i
bs.DataSource = dt
With mc.DataBindings
.Add("SelectionStart", bs, "Date", True)
.Add("SelectionEnd", bs, "Date", True)
End With
With dt.AsEnumerable
mc.MinDate = _
.Min(Of DateTime)(Function(row) row.Field(Of Date)("Date"))
mc.MaxDate = _
.Max(Of DateTime)(Function(row) row.Field(Of Date)("Date"))
End With
End Sub
Private Sub mc_DateSelected(sender As Object,
e As DateRangeEventArgs) Handles mc.DateSelected
bs.Filter =
"Date >= " & GetBindingsourceDate(e.Start) &
" AND Date <= " & GetBindingsourceDate(e.End)
End Sub
Private Sub btnClear_Click(sender As Object, _
e As EventArgs) Handles btnClear.Click
bs.RemoveFilter()
End Sub
Private Function GetRandomDate() As Date
Dim start As Date = New Date(2017, 1, 1)
Return start.AddDays(rndm.Next(0, 400))
End Function
Private Function GetBindingsourceDate(dat As Date) As String
Return "#" & dat.Month.ToString & "/" &
dat.Day.ToString & "/" &
dat.Year.ToString & "#"
End Function
End Class | |
Re: Kalender Filterstring | | | Autor: Knabber | Datum: 03.04.18 12:59 |
| So, falls es jemanden Interessiert. hab's selber hinbekommen.....
(nicht vergessen, habe ein eigenes Kalendercontrol)
Private Sub Kalender_ValueChanged(sender As Object, value As Date) Handles _
Kalender.ValueChanged
lbl_datum.Text = Kalender.AktDatum.ToShortDateString
Dim filterGesamt As String = String.Empty
Dim filterA As String = String.Empty
Dim sel_Datum_von As Date = Kalender.AktDatum
Dim sel_Datum_bis As Date = Kalender.AktDatum
Dim _Beginn, _Ende As Date
_Beginn = New Date(sel_Datum_von.Year, sel_Datum_von.Month, _
sel_Datum_von.Day, 0, 0, 0)
_Ende = New Date(sel_Datum_von.Year, sel_Datum_von.Month, _
sel_Datum_von.Day, 23, 59, 59)
filterA = String.Format("[{0}] >= '{1}' AND [{0}] <= '{2}'", _
"Datum", _Beginn, _Ende)
filterGesamt = String.Concat(filterA)
Me.SteuernBindingSource.Filter = filterGesamt
End Sub
MFG
SA | |
| Sie sind nicht angemeldet! Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.
Einloggen | Neu registrieren |
|
|
sevISDN 1.0
Überwachung aller eingehender Anrufe!
Die DLL erkennt alle über die CAPI-Schnittstelle eingehenden Anrufe und teilt Ihnen sogar mit, aus welchem Ortsbereich der Anruf stammt. Weitere Highlights: Online-Rufident, Erkennung der Anrufbehandlung u.v.m. Weitere InfosTipp des Monats Neu! sevDTA 3.0 Pro
SEPA mit Kontonummernprüfung
Erstellen von SEPA-Dateien mit integriertem BIC-Verzeichnis und Konto- nummern-Prüfverfahren, so dass ungültige Bankdaten bereits im Vorfeld ermittelt werden können. Weitere Infos
|