Used with the cfchart
and cfchartseries
tags. This tag defines chart data points. Its data is submitted to the cfchartseries
tag.
Data output tags, Extensibility tags
<cfchartdata
item = "text"
value = "number">
cfchart
, cfchartseries
; Creating Charts and Graphs in ColdFusion MX Developer's Guide
ColdFusion MX: Added this tag.
Attribute | Req/Opt | Default | Description |
---|---|---|---|
item |
Required |
|
Data point name; string. |
value |
Required |
|
Data point value; number or expression. |
<!--- The following example analyzes the salary data in the cfdocexamples
database and generates a bar chart showing average salary by department. The
body of the cfchartseries tag loops over a cfchartdata tag to include data
available from the query. --->
<!--- Get the raw data from the database. --->
<cfquery name="GetSalaries" datasource="cfdocexamples">
SELECT Departmt.Dept_Name,
Employee.Dept_ID,
Employee.Salary
FROM Departmt, Employee
WHERE Departmt.Dept_ID = Employee.Dept_ID
</cfquery>
<!--- Use a query of queries to generate a new query with --->
<!--- statistical data for each department. --->
<!--- AVG and SUM calculate statistics. --->
<!--- GROUP BY generates results for each department. --->
<cfquery dbtype = "query" name = "DataTable">
SELECT
Dept_Name,
AVG(Salary) AS avgSal,
SUM(Salary) AS sumSal
FROM GetSalaries
GROUP BY Dept_Name
</cfquery>
<!--- Reformat the generated numbers to show only thousands. --->
<cfloop index = "i" from = "1" to = "#DataTable.RecordCount#">
<cfset DataTable.sumSal[i] = Round(DataTable.sumSal[i]/1000)*1000>
<cfset DataTable.avgSal[i] = Round(DataTable.avgSal[i]/1000)*1000>
</cfloop>
<h1>Employee Salary Analysis</h1>
<!--- Bar graph, from Query of Queries. --->
<cfchart format="flash"
xaxistitle="Department"
yaxistitle="Salary Average">
<cfchartseries type="bar"
itemcolumn="Dept_Name"
valuecolumn="avgSal">
<cfloop query="DataTable">
<cfchartdata
item="#DataTable.Dept_Name#" value="#DataTable.avgSal#">
</cfloop>
</cfchartseries>
</cfchart>