来自QoQ的Coldfusion图表多系列

时间:2018-06-02 00:43:02

标签: coldfusion cfloop cfchart

我正在尝试在电子邮件中插入图表,该图表会随着时间的推移绘制多个系列的数据。电子邮件工作正常,图表成功附加,但我生成图表的方式有问题。

我正在尝试做什么:循环查询结果,按“地区描述”分组(为每个地区制作一个系列),然后为每个地区生成一个数据点一个月。

以下是我尝试绘制的查询查询结果示例:

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 :(得分:2)

  

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

我在猜测&#34;组&#34;因为查询数据没有正确排序,所以没有按预期工作。

cfloop documentation几乎没有强调的是&#34;组&#34;功能要求查询数据的排序的顺序与&#34; group&#34;相同。声明(S)即可。如果它按不同的列排序(例如&#34; Rpt_Mth&#34;)并且cfloop按&#34; Territory_Desc&#34;分组,则您无法获得预期的输出。

Sorted vs Unsorted example on TryCF.com

确保sql查询按中使用的相同列进行排序,&#34; Territory_Desc&#34;。然后图表应该正确生成。

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