|
cfoutput
DescriptionDisplays
output that can contain the results of processing ColdFusion variables and
functions. Can loop over the results of a database query.
Syntax<cfoutput
group = "query column"
groupCaseSensitive = "yes|no"
maxRows = "maximum rows to display"
query = "query name"
startRow = "start row">
</cfoutput>
Note: You can specify
this tag’s attributes in an attributeCollection attribute
whose value is a structure. Specify the structure name in the attributeCollection attribute
and use the tag’s attribute names as structure keys.
HistoryColdFusion
4.5.0: Added the groupCaseSensitive attribute.
Attributes
Attribute
|
Req/Opt
|
Default
|
Description
|
group
|
Optional
|
|
Query column to use to group sets of records.
Eliminates adjacent duplicate rows when data is sorted. Use if you
retrieved a record set ordered on one or more a query columns. For
example, if a record set is ordered on "Customer_ID"
in the cfquery tag, you can group the output on "Customer_ID."
|
groupCaseSensitive
|
Optional
|
yes
|
Boolean. Whether to consider the case in
grouping rows.
|
maxRows
|
Optional
|
Displays all rows
|
Maximum number of rows to display.
|
query
|
Optional
|
|
Name of cfquery from which
to draw data for output section.
|
startRow
|
Optional
|
1
|
Row from which to start output.
|
UsageIn the cfoutput tag
body, ColdFusion treats text that is surrounded by number signs
(#) as a ColdFusion variable or function call. For example, the
following code displays the text "Hello World!":
<cfset myVar="Hello World!">
<cfoutput>#myVar#</cfoutput>
When you
specify a query attribute, this tag loops over
the query rows and produces output for each row within the range
specified by the startRow and maxRows values,
and groups or eliminates duplicate entries as specified by the grouping
attribute values, if any. It also sets the query.currentRow
variable to the current row being processed.
If you nest cfoutput blocks
that process a query, you specify the query and group attributes
at the top-most level; you can specify a group attribute
for each inner block except the innermost cfoutput block.
This
tag requires an end tag.
Example<!--- EXAMPLE: This example shows how cfoutput operates. --->
<!--- Run a sample query. --->
<cfquery name = "GetCourses" dataSource = "cfdocexamples">
SELECT Dept_ID, CorName, CorLevel
FROM courseList
ORDER by Dept_ID, CorLevel, CorName
</cfquery>
<h3>cfoutput Example</h3>
<p>cfoutput tells ColdFusion Server to begin processing, and then to hand back control of page rendering to the web server.
<p>For example, to show today's date, you could write #DateFormat("#Now()#"). If you enclosed that expression in cfoutput, the result would be<cfoutput>#DateFormat(Now())#</cfoutput>.
<p>In addition, cfoutput may be used to show the results of a query operation, or only a partial result, as shown:
<p>There are <cfoutput>#getCourses.recordCount#</cfoutput> total records in our query. Using the maxRows parameter, we are limiting our display to 4 rows.
<p><cfoutput query = "GetCourses" maxRows = 4>
#Dept_ID# #CorName# #CorLevel#<br>
</cfoutput>
<p>EXAMPLE: The next example uses the group attribute to eliminate duplicate lines from a
list of course levels taught in each department.</p>
<p><cfquery name = "GetCourses" dataSource = "cfdocexamples"></p>
SELECT Dept_ID, CorLevel
FROM courseList
ORDER by Dept_ID, CorLevel
</cfquery>
<p><cfoutput query = "GetCourses" group="CorLevel" GroupCaseSensitive="True">
#Dept_ID# #CorLevel#<br></p>
</cfoutput>
<p>cfoutput can also show the results of a more complex expression,
such as getting the day of the week from today's date. We first
extract the integer representing the Day of the Week from
the server function Now() and then apply the result to
the DayofWeekAsString function:</p>
<br>Today is #DayofWeekAsString(DayofWeek(Now()))#
<br>Today is <cfoutput>#DayofWeekAsString(DayofWeek(Now()))#</cfoutput>
<p> EXAMPLE: This last example shows nested cfoutput tags:</p>
<cfquery datasource="cfdocexamples" name="empSalary">
SELECT Emp_ID, firstname, lastname, e.dept_id, salary, d.dept_name
FROM employee e, departmt d
WHERE e.dept_id = d.dept_id
ORDER BY d.dept_name
</cfquery>
<!--- Outer cfoutput. --->
<cfoutput query="empSalary" group="dept_id">
<h2>#dept_name#</h2>
<table width="95%" border="2" cellspacing="2" cellpadding="2" >
<tr>
<th>Employee</th>
<th>Salary</th>
</tr>
<cfset deptTotal = 0 >
<!--- Inner cfoutput. --->
<cfoutput>
<tr>
<td>#empSalary.lastname#, #empSalary.firstname#</td>
<td align="right">#DollarFormat(empSalary.salary)#</td>
</tr>
<cfset deptTotal = deptTotal + empSalary.salary>
</cfoutput>
<tr>
<td align="right">Total</td>
<td align="right">#DollarFormat(deptTotal)#</td>
</tr>
<cfset deptTotal = 0>
</table>
</cfoutput>
|