sad_djeridi_ais
I'm new here

Entity sort absteigend

Jump to solution

Hallo Community,

kann man eine DB Enttity mit der funktion sort(lambda) auch absteigend sortieren?

Die entity hat ein Datum und möchte erst die neusten Datensätze anzeige.

Ist es mit FirtSpirit möglich, wenn ja, bitte ein Beispiel wie.

Danke

Viele Grüße,

Aissam

0 Kudos
1 Solution

Accepted Solutions

Hallo Aissam,

mir fiel gerade noch ein, dass das mit dem Minus nur geht wenn die Datums-Spalte ein Timestamp ist (typ date). Falls sie den Typ FirstSpirit-Editor (xml) hat, müsste es gehen per

.sort(x->x.datum).reverse()

Das sollte auch generell gehen und wäre wohl auch schöner zu lesen

Evtl. musst Du auch die Liste vorher einmal kopieren, weil das .sort "in situ" arbeitet, also keine neue Liste erzeugt sondern die vorhandene sortiert:

.copy().sort(x->x.datum).reverse()

Viele Grüße

Michael

View solution in original post

0 Kudos
8 Replies
mbergmann
Crownpeak employee

Hallo Aissam,

wie greifst Du denn auf die Daten zu? Ist es ein ContentSelect (=Header-Funktion) oder eine Content-Projektion (=Tabellenvorlage als Absatz)?

Viele Grüße

Michael

0 Kudos

Hallo Michael,

hier der Quellcode

<div class="infopool">

                              <table cellspacing="0" cellpadding="0" border="0">

                                    <thead>

                                            <tr class="header">

                                                              <th style="width: 1%;">Nr.</th>

                                                              <th style="width: 1%;">Datum</th>

                                                              <th>Titel</th>

                                                              <th style="width: 1%;"> </th>

                                            </tr>

                                    </thead>

                                    <tbody>                   

                                              $CMS_FOR(for_rundschreiben,st_infopool_typ.dataset.entity.rundschreibenList.sort(x -> x.datum))$

                                                        <tr class="element_$CMS_VALUE(#global.section.id)$ $CMS_IF(for_rundschreiben.aktiv)$gueltig$CMS_ELSE$ungueltig$CMS_END_IF$ $CMS_VALUE(for_rundschreiben.datum.format("yyyy"))$_$CMS_VALUE(#global.section.id)$" >

                                                                  <td style="vertical-align:top;"><a href="$CMS_REF(for_rundschreiben.datei)$"  title="$CMS_VALUE(for_rundschreiben.titel.convert2)$"   target="_blank">$CMS_VALUE(for_rundschreiben.nr)$</a></td>

                                                                        <td style="vertical-align:top;"><a href="$CMS_REF(for_rundschreiben.datei)$"  title="$CMS_VALUE(for_rundschreiben.titel.convert2)$"   target="_blank">$CMS_VALUE(for_rundschreiben.datum)$</a></td>

                                                                        <td style="vertical-align:top;"><a href="$CMS_REF(for_rundschreiben.datei)$"  title="$CMS_VALUE(for_rundschreiben.titel.convert2)$"   target="_blank">$CMS_VALUE(for_rundschreiben.titel.convert2)$</a></td>

                                                                  $CMS_IF(#global.is("WEBEDIT"))$

                                                                      <td style="vertical-align:top;">

                                                                                <a href="$CMS_REF(pageref:"rundschreiben_detailansicht", contentId:for_rundschreiben.id, template:extranet.rundschreiben)$">

                                                                                          <i>editieren</i>

                                                                                </a>

                                                                      </td>

                                                                      $CMS_END_IF$

                                                        </tr>

                                              $CMS_END_FOR$

                                  </tbody>

                        </table>

                        <p style="margin: 0px; padding: 5px; line-height: 14px;">

                            Die kursiven, durchgestrichenen Rundschreiben sind nicht mehr g&uuml;ltig. Diese Rundschreiben dienen lediglich zu Ihrer Information über zur&uuml;ckliegende Aktionen.

                  </p>

                    </div>

Viele Grüße,

Aissam

0 Kudos

Hallo Aissam,

ich verstehe das jetzt so, dass aktuell die Sortierung grundsätzlich funktioniert, nur eben aufsteigend, richtig?

In diesem Fall sollte es einfach reichen, die Sortierung umzudrehen:

.sort(x-> -x.datum)

Viele Grüße

Michael

0 Kudos

Hallo Michael,

und wie drehe ich die Sortierung um?

.sort(x-> -x.datum) steht ja schon da

Viele Grüße,

Aissam

0 Kudos

Hallo Aissam,

ist vielleicht zu einfach zu übersehen:

In meiner Variante ist noch ein Minuszeichen vor dem x.datum 😉

Viele Grüße

Michael

0 Kudos

ah ok hab ich nicht gesehen, Aber leider funktioniert das nicht.

Wenn ich das - hinzufüge dann ist es eher unsortiert.

Viele Grüße,

Aissam

0 Kudos

Hallo Aissam,

mir fiel gerade noch ein, dass das mit dem Minus nur geht wenn die Datums-Spalte ein Timestamp ist (typ date). Falls sie den Typ FirstSpirit-Editor (xml) hat, müsste es gehen per

.sort(x->x.datum).reverse()

Das sollte auch generell gehen und wäre wohl auch schöner zu lesen

Evtl. musst Du auch die Liste vorher einmal kopieren, weil das .sort "in situ" arbeitet, also keine neue Liste erzeugt sondern die vorhandene sortiert:

.copy().sort(x->x.datum).reverse()

Viele Grüße

Michael

0 Kudos

Hallo Michael,

danke das hat funktioniert:

rundschreibenList.copy().sort(x->x.datum).reverse()

Viele Grüße,

Aissam

0 Kudos