Hallo,
Achtet doch mal bitte kurz auf die Darstellung innerhalb des Windows-Explorers ab Windows Vista. Die Ausgabe der Verzeichnisse und Dateien lassen sich per Klick aufsteigend und absteigend nach den Spaltennamen in der Titelzeile sortieren. Die Spaltennamen widerum lassen sich der Übersicht halber über ein Popup ab- und hinzuschalten. Denkbar wäre noch ein zusätzlicher Filter der für jede Spalte unterschiedlichst definiert zu- und abschaltbar sein könnte etc.
Ich benutze häufig ein DBgrid ausschliesslich zur Anzeige und würde mich solche zusätzlichen Funktionalitäten wünschen. Wahrscheinlich ists nicht viel arbeit aber bevor ich mich daran versuche: Gibt es nicht schon sowas für laz (freeware)?
Thx
P.s. Benutze Windows, Lazarus und Mysql
DBGrid ala Explorer
Re: DBGrid ala Explorer
für die einfache column sortierung (mit ZeosLib), ansonsten musst du einfach auf den Query oder DS die Sortierreihenfolge ändern:
Code: Alles auswählen
procedure TDynDBPanel.DBGGridTitleClick(Column: TColumn);
var
temp : ZAbstractRODataset.TSortType;
begin
temp := ZTable.SortType;
ZTable.SortedFields := Column.FieldName;
if temp = stAscending then begin
ZTable.SortType := stDescending;
end else begin
ZTable.SortType := stAscending;
end;
end;
Windows 7, Lazarus 0.9.28.2 fpc 2.2.4, Firebird 2.1, Zeoslib 6.6.6-stable
-
- Lazarusforum e. V.
- Beiträge: 2809
- Registriert: Sa 9. Sep 2006, 18:05
- OS, Lazarus, FPC: Linux (L trunk FPC trunk)
- CPU-Target: 64Bit
- Wohnort: Dresden
- Kontaktdaten:
Re: DBGrid ala Explorer
Ich hab irgendwo auch ein Codestück rumliegen, was mit der SQL-DB Query arbeitet und nach jedem klick die entsprechende Spalte sortiert (mit neuem Select an die DB). Das kann ich auch raussuchen. Womit greifst du den auf MySQL zu?
Ansonsten kannst du dir auch mal KGrid anschauen. Ich meine, der hat eine interne Sortierfunktion. Davon gibt es auch eine DB-Anbindung. Du kannst KGrid direkt als Ersatz für den DBGrid einsetzen.
Schau es dir mal an:
http://www.tkweb.eu/en/delphicomp/kgrid.html" onclick="window.open(this.href);return false;
Ansonsten kannst du dir auch mal KGrid anschauen. Ich meine, der hat eine interne Sortierfunktion. Davon gibt es auch eine DB-Anbindung. Du kannst KGrid direkt als Ersatz für den DBGrid einsetzen.
Schau es dir mal an:
http://www.tkweb.eu/en/delphicomp/kgrid.html" onclick="window.open(this.href);return false;
Johannes
Re: DBGrid ala Explorer
Hallo und entschuldigung wenn ich den alten Beitrag nochmal rauskrame. Danke für eure Tips.
Leider reichen mir mittlerweile die Sortiermöglichkeiten nicht mehr aus und wünsche mir eine zusätzliche Möglichkeit nach Werten aus den jeweiligen Spalten filtern zu können. Ich stelle mir das so vor, dass nach Klick auf ein Title des DBgrids eine Checkboxlist erscheint die einem alle aufgeführten Werte (DISTINCT SELECT) dieser zum Filtern anbietet. (s.Anhang/Zeichnung)
Bsp.
TITEL
|---------- |
|ASC |
|DESC |
|-----------|
|Wert1 |
|Wert2 |
| ... |
|-----------|
So bleibt mir nichts anderes übrig als diese Komponente selber zu entwickeln und würde gerne meine Überlegungen kund tun. Vielleicht habt ihr ja ein paar Ratschlage,Warnungen etc. damit ich nicht in einer Sackgasse lande, da ich damit noch kaum Erfahrung habe.
Erste Überlegung(Pseudocode):
Komponente von DBgrid ableiten
Nach Titleklick eine Checkboxlist zeichnen
Werte aus dieser Spalte darin jeweils nur einmal aufführen
Dabei zuerst Clientseitig das Dataset durchsuchen
pro Spalte ein Objekt erzeugen:
{
Spaltenindex
SortTyp [ASC,DESC]
Limit
WerteFieldTyp
array/Stringlist Werte
array IsWertChecked
...
}
Alle Objecte in eine Objectlist speichern
Methode filtert Dataset über Dataset.Filter
Fertig!?
Leider reichen mir mittlerweile die Sortiermöglichkeiten nicht mehr aus und wünsche mir eine zusätzliche Möglichkeit nach Werten aus den jeweiligen Spalten filtern zu können. Ich stelle mir das so vor, dass nach Klick auf ein Title des DBgrids eine Checkboxlist erscheint die einem alle aufgeführten Werte (DISTINCT SELECT) dieser zum Filtern anbietet. (s.Anhang/Zeichnung)
Bsp.
TITEL
|---------- |
|ASC |
|DESC |
|-----------|
|Wert1 |
|Wert2 |
| ... |
|-----------|
So bleibt mir nichts anderes übrig als diese Komponente selber zu entwickeln und würde gerne meine Überlegungen kund tun. Vielleicht habt ihr ja ein paar Ratschlage,Warnungen etc. damit ich nicht in einer Sackgasse lande, da ich damit noch kaum Erfahrung habe.
Erste Überlegung(Pseudocode):
Komponente von DBgrid ableiten
Nach Titleklick eine Checkboxlist zeichnen
Werte aus dieser Spalte darin jeweils nur einmal aufführen
Dabei zuerst Clientseitig das Dataset durchsuchen
pro Spalte ein Objekt erzeugen:
{
Spaltenindex
SortTyp [ASC,DESC]
Limit
WerteFieldTyp
array/Stringlist Werte
array IsWertChecked
...
}
Alle Objecte in eine Objectlist speichern
Methode filtert Dataset über Dataset.Filter
Fertig!?

- Dateianhänge
-
- TitleSort.jpg (11.28 KiB) 1430 mal betrachtet
Re: DBGrid ala Explorer
Hallo,
...gibt es mittlerweile für dieses Problem eine Lösung??
Ich suche jetzt schon 14 Tage nach einer Lösung - habe aber bisher nicht viel gefunden. Gibt es in den bekannten (DB)Grid-Controls (DBGrid,K(DB)Grid,VirtualDBGrid) einen Ansatz für eine Kombination aus Combo-/Checkbox?
Was ich bisher gefunden habe ist das Rx-Package (RxLib) - das wird aber, glaube ich, nicht mehr weiterentwickelt wird - hat aber auch keine Combo/Checkbox.
...gibt es mittlerweile für dieses Problem eine Lösung??
Ich suche jetzt schon 14 Tage nach einer Lösung - habe aber bisher nicht viel gefunden. Gibt es in den bekannten (DB)Grid-Controls (DBGrid,K(DB)Grid,VirtualDBGrid) einen Ansatz für eine Kombination aus Combo-/Checkbox?
Was ich bisher gefunden habe ist das Rx-Package (RxLib) - das wird aber, glaube ich, nicht mehr weiterentwickelt wird - hat aber auch keine Combo/Checkbox.