2016-08-09 11 views
3

グループ別に出力するクエリがあります。ここ は、私は今、私は https://jsfiddle.net/nbqqp0cb/2/グループごとに出力の最終レコードを取得する方法は?

"dataset": [ 
    <cfoutput query="all_dates" group="Month_new"> 
        { 

         "seriesname": "#all_dates.Month_new#", 

        "data": [ 
        <cfoutput> 
         <CFIF all_dates.CurrentRow EQ all_dates.RecordCount> 
          { 

          "value": "#sum_total#" 
          } 

         <br> 
        <cfelse> 
          { 

          "value": "#sum_total#" 

          }, <br> 
         </cfif> 
         </cfoutput> 

        ] 
        },<br> 


         </cfoutput> 

問題は、各グループの最後のコンマで作られたものです。私はそれが最後のレコードのために働くようにしたが、最後のレコードでさえも最後にカンマがあってはならない。

答えて

3

お客様の条件<CFIF all_dates.CurrentRow EQ all_dates.RecordCount>は、RecordCountの全文に対してCurrentRowを照会しています。代わりに、各グループの数に対してチェックする必要があります。クエリ結果セットにグループ数(私は仮定している)がないので、それを別の方法でチェックする必要があります。これは最もエレガントなアプローチではないかもしれませんが、うまくいくはずです。まず、このコードは上記

は、新しい変数を初期化します。そして、

<cfset previous_month = "" > 

次のように(これは擬似コードで、テストされていません)あなたのコードを変更:

"dataset": [ 
<cfoutput query="all_dates" group="Month_new"> 
    { 
     "seriesname": "#all_dates.Month_new#", 
     "data": [ 
     <cfoutput> 
      <cfif all_dates.CurrentRow GT 1> 
       <cfif previous_month EQ all_dates.Month_new and all_dates.CurrentRow LT all_dates.RecordCount> 
        , <br> 
       <cfelse> 
        <br> 
       </cfif> 
      </cfif> 
      { 
       "value": "#sum_total#" 
      } 
      <cfset previous_month = all_dates.Month_new> 
     </cfoutput> 
     ] 
    } 
    <cfif all_dates.CurrentRow LT all_dates.RecordCount>,</cfif> 
    <br> 
</cfoutput> 
+0

はい、それは良い仕事します、最終的に問題が発生するのは最後です}、最後には〜があってはいけません。末尾には –

+1

と同様の条件/ロジックを外側のループに追加する必要があります。私は私の答えにコードを追加しました。 –

+0

[リスト/値の配列を最初に構築する](http://trycf.com/gist/a6fdde2dbd28fed824eb0fd1d792da9b/acf2016?theme=monokai)も可能で、カンマの問題全体を避けることができますか?つまり、@ anatp_123 - JSON文字列を手動で構築する必要がありますか? – Leigh

関連する問題