cfoutput

説明

ColdFusion の変数および関数の処理結果が含まれる出力を表示します。データベースクエリーの結果をループすることができます。

シンタックス

<cfoutput  
    group = "query column" 
    groupCaseSensitive = "yes|no" 
    maxRows = "maximum rows to display" 
    query = "query name" 
    startRow = "start row"> 
</cfoutput>
注意: このタグの属性は attributeCollection 属性で指定でき、その値は構造体になります。attributeCollection 属性で構造体の名前を指定し、タグの属性名を構造体のキーとして使用します。

関連項目

cfcolcfcontentcfdirectorycftable

履歴

ColdFusion 4.5.0: groupCaseSensitive 属性が追加されました。

属性

属性

必須 / オプション

デフォルト

説明

group

オプション

レコードのセットをグループ化するために使用するクエリー列です。データをソートする場合、隣り合う重複行は削除されます。クエリー列で順序付けられたレコードセットを取得した場合に使用します。たとえば、cfquery タグ内で "Customer_ID" に従って順序付けられているレコードセットがある場合は、"Customer_ID" に関する出力をグループ化することができます。

groupCaseSensitive

オプション

yes

ブール値です。行のグループ化で大文字と小文字を区別するかどうかを指定します。

maxRows

オプション

すべての行を表示

表示する行の最大数です。

query

オプション

出力セクションのデータを取り出す cfquery の名前です。

startRow

オプション

1

出力を開始する行です。

使用方法

cfoutput タグ本文内では、シャープ記号 (#) で囲まれたテキストは ColdFusion 変数または関数呼び出しとして扱われます。たとえば、次のコードでは "Hello World!" というテキストが表示されます。

<cfset myVar="Hello World!"> 
<cfoutput>#myVar#</cfoutput>

query 属性を指定すると、このタグはクエリー行をループし、startRow 値および maxRows 値で指定された範囲内の行ごとに出力を生成します。さらに、グループ化属性の値で指定されている場合は、重複エントリをグループ化または削除します。また、query.currentRow 変数を、処理中の現在の行に設定します。

クエリーを処理する cfoutput ブロックをネストする場合は、最上位レベルで query 属性と group 属性を指定します。一番内側の cfoutput ブロックを除いて、内側の各ブロックに group 属性を指定できます。

このタグには終了タグが必要です。

<!--- 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>