Диаграммы серии Coldfusion от QoQ - PullRequest
0 голосов
/ 02 июня 2018

Я пытаюсь вставить в электронное письмо диаграмму, которая будет отображать данные нескольких серий с течением времени.Электронная почта работает нормально, диаграмма присоединяется успешно, но что-то не так с тем, как я ее генерирую.

Что я пытаюсь сделать: Прокручиваем результаты запроса, группируем по 'описание территории »(чтобы создать серию для каждой территории), затем сгенерируйте точку данных для каждой территории за каждый месяц.

Вот пример результатов запроса, которые я пытаюсь отобразить:

query of queries results

Существует запись для каждой из шести «территорий» для каждого из шести месяцев.

Вот код, который я нашел в Интернете, чтоЯ пытался работать с.

 <cfchart
        format="png"
        name="marketADH"
        xAxisTitle="Month"
        yAxisTitle="% Adherence"
        chartHeight = "500"    
        chartWidth = "500" 
        scalefrom="60"
        scaleto="90"
        font="Arial"
        gridlines="10"
        showXGridlines="no"
        showYGridlines="no"
        showborder="no"
        show3d="no" 
        showlegend="yes"
        sortxaxis="no"
        showmarkers="yes" 
 > 



 <cfloop query="HISTORY_CHART" group="TERRITORY_DESC"> 
      <!---- this part of the code will run ONCE for each territory ---->

   <cfchartseries 
     type="curve"
     paintStyle="plain"
     seriesLabel="#HISTORY_CHART.TERRITORY_DESC#">

     <cfloop>
         <!----- this part of the code will run once for every record for the territory  ------>
         <cfchartdata item="#HISTORY_CHART.RPT_MTH#" value="#HISTORY_CHART.ADHERENCE_PCT#">
     </cfloop>

   </cfchartseries>

  </cfloop>

 </cfchart>

Результаты: Диаграмма генерируется и прикрепляется в электронном письме, но существует значение только одного месяца - 12/01/2017, который является первым из шести месяцев внабор данных.Все 36 или около того значений, кажется, заполняют на оси Y в этом месяце.

То, что я ожидал увидеть, было что-то вроде этого:

Excel Mockup

В итоге я получил следующее:

Actual Result

Любая помощь, которую кто-либо может оказать, будет принята с благодарностью.Большое спасибо.

1 Ответ

0 голосов
/ 03 июня 2018

<cfloop query="HISTORY_CHART" group="TERRITORY_DESC">

Я предполагаю, что "группа" не работает должным образом, поскольку данные запроса не отсортированы правильно.

Что за документация cfloop недостаточно подчеркивает, что функция "группа" требует, чтобы данные запроса были отсортированы в том же порядке, что и оператор (ы) "group" .Если он отсортирован по другому столбцу (скажем, «Rpt_Mth»), а cfloop сгруппирован по «Territory_Desc», вы не получите ожидаемый результат.

Сортировка и пример без сортировки на TryCF.com

Убедитесь, что SQL-запрос сортирует по тому же столбцу, который используется в group , "Territory_Desc".Тогда график должен сформироваться правильно.

<cfquery ...>
  SELECT Adherence_Pct,Rpt_Mth,Territory_Desc 
  FROM   TableName 
  ORDER BY Territory_Desc 
</cfquery>
...