vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Zippen wie die Profis!  
 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

Fragen & Antworten rund um sev-Komponenten
sevgrid2: Autosort 
Autor: BPSdata
Datum: 23.10.07 16:23

Hallo Dieter und Forum-Gemeinde,

Arbeite mit ADODB.Recordset, das im Grid geclont wird. Das Recordset selbst enthät keine Sortierung. Autosort steht auf True.

Nachfolgend der Code für das Erstellen des Grids.
Public Sub MakeGrid()
    Dim I As Integer
    ' Spalten festlegen
    With Grid1
        ' autom. Neuzeichnen des DataGrids unterbinden
        .LockUpdate True
        .CheckBoxStyle = CHECKBOX_XP
 
        ' Recordset-Kopie erstellen
        .CreateClone = True
        ' Recordset zuweisen
        '.Clear (True)
 
        Set .Recordset = mRS
        ' Eigenschaften "Einladungs-Spalte"
        With .Columns("Einladung")
            .Caption = "Einladung"
            .ColType = TYPE_CHECKBOX
            .Align = ALIGNMENT_CENTER
            .HeadAlign = ALIGNMENT_LEFT
        End With
        With .Columns("Plz")
            .BackColor = &HFDCEBB
        End With
        With .Columns("Ort")
            .BackColor = &HFDCEBB
        End With
        With .Columns("Kreis")
            .BackColor = &HFDCEBB
        End With
        With .Columns("Potential")
            .BackColor = &HC0C0FF
            .Align = ALIGNMENT_RIGHT
            .HeadAlign = ALIGNMENT_RIGHT
            .InputType = INPUT_NUMERIC
        End With
        With .Columns("Eingeladen")
            .BackColor = &H8000&
            .Align = ALIGNMENT_RIGHT
            .HeadAlign = ALIGNMENT_RIGHT
            .InputType = INPUT_NUMERIC
        End With
        With .Columns("Diff-Eingeladen")
            .BackColor = &H8000&
            .Align = ALIGNMENT_RIGHT
            .HeadAlign = ALIGNMENT_RIGHT
            .InputType = INPUT_NUMERIC
        End With
        With .Columns("Proz-Eingeladen")
            .BackColor = &H8000&
            .Align = ALIGNMENT_RIGHT
            .HeadAlign = ALIGNMENT_RIGHT
            .InputType = INPUT_NUMERIC
        End With
 
        With .Columns("Teilnahme")
            .BackColor = &H40C0&
            .Align = ALIGNMENT_RIGHT
            .HeadAlign = ALIGNMENT_RIGHT
            .InputType = INPUT_NUMERIC
        End With
        With .Columns("Diff-Teilnahme")
            .BackColor = &H40C0&
            .Align = ALIGNMENT_RIGHT
            .HeadAlign = ALIGNMENT_RIGHT
            .InputType = INPUT_NUMERIC
        End With
        With .Columns("Proz-Teilnahme")
            .BackColor = &H40C0&
            .Align = ALIGNMENT_RIGHT
            .HeadAlign = ALIGNMENT_RIGHT
            .InputType = INPUT_NUMERIC
        End With
 
        ' Filterkriterien...
        ReDim sFilter(Grid1.Cols)
 
        ' Filterzeile oberhalb der Spaltenköpfe anzeigen
        .FilterAlign = FILTER_ALIGN_TOP
        .FilterForeColorDisabled = vbGrayText
        .FilterVisible = True
        .AllowFilterEdit = True
        .FilterMoveTAB = False
        .FilterTextFixCol = "Suche:"
        ' Nach Name sortieren
        .ShowSortSymbols = True
        .AutoSort = True
        .DoSort "PLZ", SORT_ASC
 
        ' interaktives Ändern der Spaltenbreiten zulassen
        .AllowColumnSizing = True
 
        ' Drag & Drop von Spalten zulassen
        .AllowColumnReorder = True
 
        ' Breite der feststehenden Spalte
        .FixedCol = True
        .FixedColWidth = 800
        .FooterVisible = True
        ' Neuzeichnen des DataGrids wieder aktivieren
        .LockUpdate False
        .Refresh
        .Row = 1
 
        ' Summe der Beträge ermitteln
        Call ShowSumme
    End With
    Call AutoColSevGrid(Me, Grid1)
    'mRS.Close
    Exit Sub
End Sub
Dann noch die Prozedur, die das Recordset erzeugt:
Public Sub LoadRecordset(sSql, sGroup, sOrder As String)
    Dim I As Integer
 
    'Debug.Print "Loadrecordset: " & sSql & sGroup & sORDER
    Set mRS = New ADODB.Recordset
    mRS.CursorType = adOpenStatic
    mRS.LockType = adLockOptimistic
    Debug.Print sSql
    mRS.Open sSql & sGroup & sOrder, mCon, , , adCmdText
    'Debug.Print mRs.RecordCount
    Exit Sub
End Sub
und abschließend die Prozedur für das ERzeugen des SQL-Strings:
Private Sub txtGruppierungen_Click()
    Select Case Me.txtGruppierungen.Text
        Case "Alle Datensätze"
            sSql = " ..." & _
                 "WHERE tbl_Drucklisten.TerminTyp<>'ER' Or" & _
                 "tbl_Drucklisten.TerminTyp Is Null "
 
         Case Is <> "Alle Datensätze"
            sSql = "...."
    End Select
 
    Call LoadRecordset(sSql, sGroup, sOrder)
    Me.Grid1.Clear (True)
    Me.Grid1.Refresh
    Call MakeGrid
    Exit Sub
End Sub
SQL-Abfrage wurde gekürzt.
Was ist falsch, dass durch Klick auf den Spaltenheader nicht sortiert wird. Ein Doppelklick setzt ein zusätzliches Sortiersymbol.

Für die Unterstüzung schon jetzt recht herzlichen Dank.

Gruß
Udo
alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
sevgrid2: Autosort494BPSdata23.10.07 16:23
Re: sevgrid2: Autosort355ModeratorDieter23.10.07 16:32
Re: sevgrid2: Autosort342BPSdata24.10.07 05:39

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