tutorials.de Buch-Aktion 05/2012
Like Tree2Danke
  • 1 Beitrag von deepthroat
  • 1 Beitrag von deepthroat
ERLEDIGT
JA
ANTWORTEN
4
ZUGRIFFE
933
EMPFEHLEN
  • An Twitter übertragen
  • An Facebook übertragen
AUF DIESES THEMA
ANTWORTEN
  1. #1
    kickerxy123 kickerxy123 ist offline Mitglied Gold
    Registriert seit
    Mar 2008
    Beiträge
    147
    Guten Tag,

    ich habe ein Problem beim Gruppieren/Sortieren einer SharePoint-Liste per XSL.

    Wenn ich nach etwas sortiere und gleichzeitig nach etwas gruppiere, so ist er Output schematisch:
    GROUP1: A B C D
    GROUP2: E F G
    GROUP1: H
    GROUP2: I J
    ....

    d.h. er priorisiert das Sortieren über das Gruppieren. Ich hätte es gern genau anders herum.

    Deshalb hatte ich mehrere Ansätze:

    HTML-Code:
    							<xsl:call-template name="dvt_1.body">
    								<xsl:with-param name="Rows" select="$Rows[position() &gt;= $FirstRow and position() &lt;= $LastRow]" />
    								<xsl:with-param name="FirstRow" select="1" />
    								<xsl:with-param name="LastRow" select="$LastRow - $FirstRow + 1" />
    							</xsl:call-template>
    In dem CodeSegment wird das Template aufgerufen, dass alle Reihen der Liste rendert. Mein Ansatz war es, den Parameter "Rows" bereits richtig sortiert zu übergeben. Kann ich das irgendwie realisieren?

    oder: Innerhalb des Templates geschieht folgendes:
    HTML-Code:
    	<xsl:template name="dvt_1.body">
    				<xsl:param name="Rows"/>
    				<xsl:param name="FirstRow" />
    				<xsl:param name="LastRow" />
    				<xsl:for-each select="$Rows">
    <!--...jetzt kommen alle Spalten, Formatierungen etc -->
    </xsl:for-each> 
    Jetzt hätte ich gedacht, dass ich ein xsl:sort in die FOR-Schleife einbaue und dann mein Problem gelöst ist. Leider nicht.

    Generell war mein Ansatz:
    -Sortiere nach dem, nach dem er gruppieren soll
    -Sortiere danach nach dem, nach dem er sortieren soll

    Ich denke, dass mein Ansatz realisierbar ist (Zwei einfache xsl:sort hintereinander bewirken dies ja normalerweise auch so).


    Ich hoffe, dass ihr mir helfen könnt. Falls ihr noch weitere Angaben braucht, zögert nicht zu fragen. Ich wollte allerdings nicht alle 3000 Zeilen anhängen


    Danke und Gruß,
    kickerxy
     
    hilfreiche Antwort? Es gibt einen Danke-Button ;)
    Rettet das Internet!

  2. #2
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.169
    Hi.

    Was genau meinst du mit gruppieren?

    Welche XSL Version setzt du denn ein?

    Und kannst du mal ein einfaches Beispiel machen, ausgehend von Eingabewerten bis zum Ziel was du dann als Ergebnis haben möchtest?

    Wenn du .NET einsetzt, könntest du auch selbst Funktionen definieren.

    Gruß
    kickerxy123 bedankt sich. 
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  3. #3
    kickerxy123 kickerxy123 ist offline Mitglied Gold
    Registriert seit
    Mar 2008
    Beiträge
    147
    Hallo deepthroat,

    danke für die Antwort.

    Ich habe inzwischen herausgefunden, warum mein xsl:sort innerhalb von xsl:for-each nicht funktioniert hat:

    HTML-Code:
    <!--Falsch: --> <xsl:sort select="$dvt_groupfield" />
    <!--Richtig: --> <xsl:sort select="@*[name()=$dvt_groupfield]" />
    Denjenigen, die mit XSL oft arbeiten, wäre es vermutlich nicht passiert/direkt aufgefallen. Aber da ich erst vor kurzem mit XSL angefangen habe, kam ich nicht darauf, dass ich den zu übergebenen String noch in ein XSL-Pfad matchen muss.

    Auf jeden Fall sortiert und gruppiert er mir jetzt alles genauso, wie ich es haben wollte. Ich habe zwar noch ein kleines anderes Problem, werde dazu aber dann ggf. einen neuen Thread starten.

    Danke soweit und Gruß,
    kickerxy
     
    hilfreiche Antwort? Es gibt einen Danke-Button ;)
    Rettet das Internet!

  4. #4
    deepthroat deepthroat ist offline Mitglied Diamant
    tutorials.de Premium-User
    Registriert seit
    Jun 2005
    Beiträge
    8.169
    Hi.

    Für das Gruppieren solltest du dir evtl. mal die Muenchian Methode anschauen.

    In XSLT 2.0 gibt es eine for-each-group Schleife.

    Gruß
    kickerxy123 bedankt sich. 
    If at first you don't succeed, try again. Then quit. No use being a damn fool about it.

  5. #5
    kickerxy123 kickerxy123 ist offline Mitglied Gold
    Registriert seit
    Mar 2008
    Beiträge
    147
    Hi,

    danke für den Hinweis. Meine jetzige Gruppierlösung ist nicht so schick, wie mir die Muenchian Methode erscheint. Eventuell werde ich das noch ändern. XSLT 2.0 kann ich leider nicht benutzen.

    Da es aber ersteinmal produktiv so läuft, wie es soll, belasse ich das vorerst so.

    Viele Grüße
    k.
     
    hilfreiche Antwort? Es gibt einen Danke-Button ;)
    Rettet das Internet!

Ähnliche Themen

  1. Sortierproblem in Kombination mit JOIN
    Von flowryan im Forum Relationale Datenbanksysteme
    Antworten: 2
    Letzter Beitrag: 23.09.10, 10:42
  2. Antworten: 12
    Letzter Beitrag: 18.07.05, 18:31
  3. Sortierproblem
    Von Jon02 im Forum Relationale Datenbanksysteme
    Antworten: 6
    Letzter Beitrag: 10.06.05, 11:40
  4. JTable: Sortierproblem mit Renderer
    Von stookie im Forum Swing, Java2D/3D, SWT, JFace
    Antworten: 4
    Letzter Beitrag: 03.12.04, 08:31
  5. Sortierproblem
    Von xtraMen im Forum PHP
    Antworten: 5
    Letzter Beitrag: 26.09.04, 11:48