Frage

Ich durchläufe die Ergebnisse einer Abfrage und muss die Anzahl der angezeigten Zeilen einschränken. Ich muss verwenden cfoutput Weil ich das benutze group Attribut, und ich kann das nicht verwenden maxrows Weil nicht alle Zeilen angezeigt werden.

Ich habe versucht zu benutzen <cfbreak> im Inneren <cfoutput>, Aber das wirft einen Fehler auf.

Wie kann ich aus dem ausbrechen? <cfoutput> Schleife?

War es hilfreich?

Lösung

Wenn Ihre Gruppe nur vorhanden ist, um Duplikate aus Ihren Ergebnissen zu entfernen, würde ich empfehlen, Ihre Abfrage zu verwenden, um sie abzuschneiden, dann können Sie CFLOOP (Auswahl und Reduzieren Ihrer zurückgegebenen Spaltenliste).

Wenn Sie Ihre Gruppe mit "Gruppen" Ihre Ergebnisse verwenden, können Sie einen Zähler in Ihrer Schleife und eine CFIF -Anweisung in Ihrer ersten Schleife ausführen, um spätere Ergebnisse wegzulassen.

Sie können die Gruppe nach Option in Ihrem CFLOOP vortieren, indem Sie den Wert aus der vorherigen Zeile übereinstimmen, wenn Sie cfbreak benötigen

<cfloop query="queryname">
  <cfif queryname.column[currentrow-1] neq queryname.column[currentrow]>
    #queryname.column#
  </cfif>
</cfloop>

Zufälliger Hinweis: Sie können maximal auf allen Ebenen Ihres gruppierten CFOutputs maximal

<cfset tmp = querynew('id,dd')>
<cfloop from="1" to="20" index="i">
  <cfset queryaddrow(tmp,1)>
  <cfset querysetcell(tmp,'id',rand(),i)>
  <cfset querysetcell(tmp,'dd',(i mod 4),i)>
</cfloop>
<cfquery dbtype="query" name="tmp">select * from tmp order by dd</cfquery>

<cfoutput query="tmp" group="dd" maxrows="2">#dd#<br
  <ul>
    <cfoutput maxrows="2" group="id"><li>#id#</li></cfoutput>
  </ul>
</cfoutput>

Andere Tipps

Sie können das CFthrow -Tag verwenden, um eine Ausnahme auszulösen, mit der Sie mithilfe von CFCatch aus der Schleife ausbrechen können. Sie können dann die Ausnahme ignorieren und die Verarbeitung fortsetzen. Das gibt dir, was du willst.

    <cftry>
    <cfset i = 0>
    <cfoutput query="qMyQuery" group="someGroup">
            <cfset i = i + 1>
            Parent
                    <cfoutput>
                            Child
                    </cfoutput>

                    <cfif i GTE 10>
                            <cfthrow type="break">
                    </cfif>
    </cfoutput>

    <cfcatch type="break">
            <!--- DO NOTHING - THIS IS A HACK FOR NOT BEING ABLE TO USE CFBREAK inside cfoutput. --->
    </cfcatch>
    </cftry>
Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top