Results 1 to 10 of 10

Thread: Dataset sorteren op veldnaam hoogste eerst

  1. #1
    Hobby fröbelaar
    Join Date
    Nov 2002
    Location
    Goes
    Posts
    458

    Dataset sorteren op veldnaam hoogste eerst

    Beste allemaal,

    Het is vast heel simpel, maar ik weet het niet:

    Ik heb een ClientDataSet met een veld met een integer waarde. Deze wil ik sorteren.

    Ik weet dat dit kan met

    Code:
    Dataset.IndexFieldNames := 'Veldnaam';

    Maar.. dan komt de laagste waarde bovenaan te staan, en de hoogste waarde onderaan.

    Hoe krijg ik dit omgekeerd?

    Alvast bedankt.
    Greetzz Jacco

  2. #2
    client dataset sort order
    Ik heb het zelf nooit gebruikt, maar misschien dat dit je helpt.

  3. #3
    Hobby fröbelaar
    Join Date
    Nov 2002
    Location
    Goes
    Posts
    458
    Ik heb helaas de BDE niet.
    Greetzz Jacco

  4. #4
    Ik begrijp niet wat de BDE er mee te maken heeft? Je gebruikt toch een TClientDataSet component?

  5. #5
    Hobby fröbelaar
    Join Date
    Nov 2002
    Location
    Goes
    Posts
    458
    Ja klopt. Maar link waar je naar vewijst kwam ik uit bij Midas componenten. Met daarin een Dbgrid component met de mogelijkheid om op verschillende manieren te sorteren. Maar die werkt nog op BDE (borland data engine)

  6. #6
    Senior Member Wok's Avatar
    Join Date
    Dec 2002
    Location
    Alkmaar
    Posts
    2,085
    Mag het ook een Query zijn?

    Select xxxx from yyyy order by zzz asc
    10.4.2, Delphi2010, of Lazarus 2.2.0

  7. #7
    Hobby fröbelaar
    Join Date
    Nov 2002
    Location
    Goes
    Posts
    458
    @Wok ja mag in principe wel, maar ik heb daar nog nooit mee gewerkt.

    Ik heb nu een functie gevonden die doet wat ik wil:

    Code:
    function TForm1.DBGridToggleSort(AFieldName: String; dsGrid: TClientDataSet): boolean;
    var
      ix: TIndexDef;
    begin
     //Reverse column sorting with each click
     if dsGrid.IndexFieldNames <> '' then
     begin
       //Sort Descending
       dsGrid.IndexFieldNames := '';
       ix := TIndexDef.Create(dsGrid.IndexDefs, AFieldName, AFieldName, [ixDescending]);
       dsGrid.IndexName := ix.Name;
     end
     else
     begin
       //Sort Ascending
       dsGrid.IndexName := '';
       dsGrid.IndexFieldNames := AFieldName;
     end;
    end;
    Hiermee is mijn probleem opgelost.
    Dank voor jullie reacties!
    Greetzz Jacco

  8. #8
    John Kuiper
    Join Date
    Apr 2007
    Location
    Almere
    Posts
    8,747
    Quote Originally Posted by Bolus View Post
    Ja klopt. Maar link waar je naar vewijst kwam ik uit bij Midas componenten. Met daarin een Dbgrid component met de mogelijkheid om op verschillende manieren te sorteren. Maar die werkt nog op BDE (borland data engine)
    Ik heb nog nooit gehoord van CDS, die gebruik maakt van BDE (wat ook niet mogelijk is).
    Mooi dat het is opgelost. Kijk ook eens naar de indexfieldnames. Daar kan je aardig sorteren zoals in een query.
    Delphi is great. Lazarus is more powerfull

  9. #9
    mov rax,marcov; push rax marcov's Avatar
    Join Date
    Apr 2004
    Location
    Ehv, Nl
    Posts
    10,357
    CDS is onderdeel van Midas vziw, niet BDE.

    Maar misschien dat Bolus bedoelt dat TDBGRID VCL is en niet Vuuraap.

  10. #10
    Dus even recappend voor de zekerheid.

    TDBGrid koppel je aan een TDataSource, een algemene, abstracte koppeling tussen DB aware componenten en een dataset.

    Voor een standaard TDataSource moet die dataset een TDataSet-afgeleide zijn. Dat kan elk soort dataset zijn, inclusief de oorspronkelijke TTable en TQuery (BDE), maar net zo goed datasets voor ADO, of memory datasets, of dus een TClientDataSet.

    De TClientDataset kan alleenstaand werken als in-memory dataset, maar bestaat vooral om een client-side (vandaar de naam) te vormen voor data uit een externe bron. Die bron boor je aan d.m.v. een provider.

    Als je een provider gebruikt, kan dat een TDataSetProvider zijn die z'n data weer uit zo'n willekeurige TDataSet haalt (lokaal of vanaf een server), of een provider die bijvoorbeeld XML leest of Json responses van REST requests vertaalt naar tabulaire data.
    1+1=b

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •