Hallo Leute,
echt schade das hier über 10 Leute sich das hier angeschaut haben, aber noch keine Antwort zu finden ist. NAJA eben alles hier
Ich hab noch etwas eingebaut was Dieter sicher für die neue Version 2 mit einbinden könnte.
Mehrfache SortierungsAuswahl per Mittlere MausTaste:
Modul frmSevDataGrid folgendes oben einfügen
Public SortDescString As String Modul modAutoFilter folgende Sub ersetzen
Public Sub ShowPopUpWindows(dynID As Integer, nCol As Long)
' PopUp-Fenster 'AutoFilter' anzeigen
If GetAsyncKeyState(VK_RBUTTON) Then
dynDB_Form(dynID).MenuAutoFilter.Tag = nCol
If GetAllFilter2String(dynID) = "" Then
dynDB_Form(dynID).mnuAutoFilter(10).Enabled = False ' (Alle) Daten
' in dieser Spalte anzeigen
dynDB_Form(dynID).mnuAutoFilter(60).Enabled = False ' Filter
' komplett ausschalten
Else
dynDB_Form(dynID).mnuAutoFilter(60).Enabled = True ' Filter
' komplett ausschalten
If dynDB_Form(dynID).txtAutoFilter(nCol).Tag = "" Then
dynDB_Form(dynID).mnuAutoFilter(10).Enabled = False ' (Alle)
' Daten in dieser Spalte anzeigen
Else
dynDB_Form(dynID).mnuAutoFilter(10).Enabled = True ' (Alle)
' Daten in dieser Spalte anzeigen
End If
End If
dynDB_Form(dynID).PopupMenu dynDB_Form(dynID).MenuAutoFilter
ElseIf GetAsyncKeyState(VK_LBUTTON) Then
dynDB_Form(dynID).SortDescString = nCol
ElseIf GetAsyncKeyState(VK_MBUTTON) Then
Dim tempSortDescString As String
Dim ChanceSortDesc As Byte
With dynDB_Form(dynID).Grid1
' alte ausgewählte SortDesc berücksichtigen
If dynDB_Form(dynID).SortDescString = "" Then
tempSortDescString = "0"
Else
tempSortDescString = dynDB_Form(dynID).SortDescString
End If
' neue ausgewählte SortDesc hinzufügen
ChanceSortDesc = .Columns(nCol).SortDesc
If InStr(1, tempSortDescString, nCol & ",") > 0 Then
ChanceSortDesc = ChanceSortDesc + 1
If ChanceSortDesc > 2 Then ChanceSortDesc = 0
tempSortDescString = StringInhaltEntfernen(1, _
tempSortDescString, Val(nCol))
End If
tempSortDescString = nCol & "," & tempSortDescString
' überprüfen ob AutoSorty aktiv ist, ansonsten auf True setzen
If .AutoSort = False Then .AutoSort = True
' sortier Reihenfolge nach dem letzten zustand von der aktiven (
' geklickten) Spalte setzen
.DoSort tempSortDescString, ChanceSortDesc
' Sortierreihenfolge für späteres in SortDescString speichern
dynDB_Form(dynID).SortDescString = tempSortDescString
End With
End If
End Sub Modul modSystemErweiterung folgende Function einfügen
Public Function StringInhaltEntfernen(Start As Long, Expression As String, _
eraseString As String, Optional eraseDelimiter As Boolean = True) As String
Dim temp_Long As Long
Dim temp_ByteLeft As Integer
Dim temp_ByteRight As Integer
temp_Long = InStr(Start, Expression, eraseString)
StringInhaltEntfernen = ""
If temp_Long > 0 Then
If eraseDelimiter = True Then temp_ByteLeft = 2: temp_ByteRight = 0 _
Else: temp_ByteLeft = 0: temp_ByteRight = 1
On Error Resume Next
StringInhaltEntfernen = Left$(Expression, temp_Long - 1) & _
Right$(Expression, Len(Expression) - temp_Long - Len(eraseString) + _
temp_ByteRight)
If Err.Number > 0 Then StringInhaltEntfernen = Left$(Expression, _
temp_Long - temp_ByteLeft)
On Error GoTo 0
Else
StringInhaltEntfernen = Expression
End If
End Function Gruß Tim
PS: würde mich freuen wenn jetzt mal ein paar Antworten erscheinen würden, ob Lob oder Bugs, oder Tipps usw...
*greetz*
Tim
.
http://www.DotNetWorld.de |