给出一些背景知识。我们的用户遍布该地区的不同地区。我们的应用程序通过电子邮件发送报告,可以通过URL访问。通过这种方式,我们可以跟踪访问报告的人员以及其他各种属性。
现在,作为统计信息的一部分,我试图在HTML表格中显示属性。 我的查询包含有关"地区名称"," UserID"," ReportName"," AccessCount",&#34的详细信息; ViewDate"等等 要求是跨越"地区名称"跨过它的所有行。
对于前。来自墨尔本地区的10位不同用户可以访问XYZ报告。 我的桌子应该有墨尔本的行量=" 10"并且每行都有每个用户'细节。 我不希望墨尔本在桌子上重复10次。
我已尝试将<cfoutput group="RegionName"
标记与HTML表格一起使用,但表格格式不正确。
我怎样才能做到这一点?
答案 0 :(得分:1)
您应该能够实现这一目标,并且通过查看groupby属性(实际上属性为group=""
),您正朝着正确的方向前进。虽然cfml看起来不太漂亮(我更喜欢cfscript,并且可能会使用一些函数执行以下操作)。像下面这样的东西应该渲染一个结构良好的表,RegionName单元格以一个格式良好的方式跨越多行,只需按照你认为合适的类/格式等进行调整!
<!---
Make sure that myQuery is ordered by
RegionName ASC before anything else to
ensure the group by works as intended
--->
<table>
<thead>
<tr>
<th>Region</th>
<th>User</th>
</tr>
</thead>
<tbody>
<cfoutput query="myQuery" group="RegionName">
<!--- set up an array to hold the users for this region --->
<cfset arrOfUsers = ArrayNew(1)>
<cfoutput>
<cfset ArrayAppend(arrOfUsers,'<td>'&myQuery.UserName&'</td>)>
</cfoutput>
<!--- render time, use the array just generated so we know how many users are in this group --->
<cfloop from="1" to="#ArrayLen(arrOfUsers)#" index="i">
<tr>
<cfif i EQ 1>
<td rowspan="#ArrayLen(arrOfUsers)#">#myQuery.RegionName#</td>
</cfif>
#arrOfUsers[i]#
</tr>
</cfloop>
</cfoutput>
</tbody>
</table>