vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
sevDataGrid - Gönnen Sie Ihrem SQL-Kommando diesen krönenden Abschluß!  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2024
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

VB.NET - Ein- und Umsteiger
Kalender 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?
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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).
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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
Themenbaum einblendenGesamtübersicht  |  Zum Thema  |  Suchen

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

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2024 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel