ColdFusion 9 CFCHART CFCHARTSERIES Выпуск

Я показываю график с одной или несколькими рядами линий. Данные поступают из запроса и работают правильно, если на графике больше, чем рядов. Однако, если возвращается только одна серия, она отображается неправильно.

Вот код, используемый:

<cfchart format="flash" tipstyle="mouseover" showlegend="yes" xaxistitle="Date" yaxistitle="Hits" chartwidth="1200" chartheight="300">
    <cfoutput query="qryReport" group="APP_SYS_NR">
        <cfchartseries serieslabel="#qryReport.APP_NA#" type="line">
        <cfoutput>
            <cfchartdata item="#DateFormat(qryReport.CDR_DT, "mm/dd/yyyy")#" value="#qryReport.TOT_HIT_CNT#">               
        </cfoutput>
        </cfchartseries>
    </cfoutput>
</cfchart>

Заштрихованная область в верхней части этой таблицы содержит список ключей, обозначающих две строки: Рабочая Диаграмма

На этом графике (когда возвращается только один APP_SYS_NR) вместо того, чтобы иметь только одну метку, все даты превращаются в метки. Очевидно не то, что я хочу: Сломанная диаграмма

Изменить: я проследил это до атрибута showlegend cfchart. Согласно Adobe, стоит ли отображать легенду, если диаграмма содержит более одного ряда данных. Я предполагаю, что когда он содержит только одну серию данных, он полностью разбирает себя и делает точки данных в легенде. Я тестировал на ColdFusion 9 и ColdFusion 10.

1 ответ

Решение

Решение здесь состоит в том, чтобы установить showlegend в no, если для отображения требуется только одна серия. Вместо этого вы должны использовать заголовок диаграммы в этом случае. Смотрите следующий модифицированный код:

<cfset VARIABLES.blnShowLegend = "no">
<cfset VARIABLES.strChartTitle = "#qryReport.APP_NA#">
<cfif ListLen(URL.lstApps) GT 1>
    <cfset VARIABLES.blnShowLegend = "yes">
    <cfset VARIABLES.strChartTitle = "">
</cfif>
<cfchart format="flash" title="#VARIABLES.strChartTitle#" tipstyle="mouseover" style="appstats" showlegend="#VARIABLES.blnShowLegend#" xaxistitle="Date" yaxistitle="Hits" chartwidth="1200" chartheight="300">
    <cfoutput query="qryReport" group="APP_SYS_NR">
        <cfchartseries serieslabel="#qryReport.APP_NA#" type="line">
        <cfoutput>
            <cfchartdata item="#DateFormat(qryReport.CDR_DT, "mm/dd/yyyy")#" value="#qryReport.TOT_HIT_CNT#">               
        </cfoutput>
        </cfchartseries>
    </cfoutput>
</cfchart>
Другие вопросы по тегам