CFOUTPUT  
説明

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

 
カテゴリ

データ出力タグ

 
シンタックス
<cfoutput 
   query = "query_name"
   group = "query_column"
   groupCaseSensitive = "yes"、"no"
   startRow = "start_row"
   maxRows = "max_rows_output">
</cfoutput>
 
関連項目

cfcol、cfcontent、cfdirectory、cftable

 
ヒストリ

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

 
使用方法

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

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

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

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

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

 
<!--- 例 : この例では、cfoutput の動作を示します。 --->
<!--- サンプルクエリーを実行します。 --->
<cfquery name = "GetCourses" dataSource = "cfdocexamples">
   SELECT Dept_ID, CorName, CorLevel
   FROM courseList
   ORDER by Dept_ID, CorLevel, CorName
</cfquery>
<h3>cfoutput の例</h3>
<p>cfoutput は ColdFusion Server に対して、処理を開始し、ページ表示の制御を Web サーバーに返すように
指示します。
<p>たとえば、今日の日付を表示するには、#DateFormat("#Now()#") と記述します。その式を cfoutput で囲
むと、<cfoutput>#DateFormat(Now())#</cfoutput> になります。

<p>さらに、cfoutput を使用して、次のようにクエリー操作の結果や結果の一部を表示することもできます。

<p>合計 <cfoutput>#getCourses.recordCount#</cfoutput> 個のレコードがクエリーに含まれています。
maxRows パラメータを使用して、表示する行数を 4 行に制限します。
<p><cfoutput query = "GetCourses" maxRows = 4>
   #Dept_ID# #CorName# #CorLevel#<br>
</cfoutput>

<p>例 : 次の例では、group 属性を使用して、各学部で教えている講義のレベルのリストから重複行を削除します。
</p>
<p><cfquery name = "GetCourses" dataSource = "cfdocexamples">
   SELECT Dept_ID, CorLevel 
   FROM courseList
   ORDER by Dept_ID, CorLevel
</cfquery>
<p><cfoutput query = "GetCourses" group="CorLevel" GroupCaseSensitive="True">
#Dept_ID# #CorLevel#<br>
</cfoutput>

<p>cfoutput では、今日の日付から曜日を取得するなど、より複雑な式の結果も
表示できます。最初に
サーバー関数 Now() から曜日を表す整数を取り出して、
結果を DayofWeekAsString 関数に
適用します。

<br>今日の曜日 : #DayofWeekAsString(DayofWeek(Now()))#
<br>今日の曜日 : <cfoutput>#DayofWeekAsString(DayofWeek(Now()))#</cfoutput>
<p>例 : この最後の例は、ネストされた cfoutput タグを示します。<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>

<!--- 外部 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 >
    <!--- 内部 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>
QUERY  
  オプション
 

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

GROUP  
  オプション
 

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

GROUPCASESENSITIVE  
  オプション
 
Default value: "Yes"

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

STARTROW  
  オプション
 
Default value: "1"

出力を開始する行です。

MAXROWS  
  オプション
 
Default value: "すべての行を表示"

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