表Coldfusion中的动态行距

时间:2014-07-04 05:52:32

标签: oracle coldfusion coldfusion-9

给出一些背景知识。我们的用户遍布该地区的不同地区。我们的应用程序通过电子邮件发送报告,可以通过URL访问。通过这种方式,我们可以跟踪访问报告的人员以及其他各种属性。

现在,作为统计信息的一部分,我试图在HTML表格中显示属性。 我的查询包含有关"地区名称"," UserID"," ReportName"," AccessCount",&#34的详细信息; ViewDate"等等 要求是跨越"地区名称"跨过它的所有行。

对于前。来自墨尔本地区的10位不同用户可以访问XYZ报告。 我的桌子应该有墨尔本的行量=" 10"并且每行都有每个用户'细节。 我不希望墨尔本在桌子上重复10次。

我已尝试将<cfoutput group="RegionName"标记与HTML表格一起使用,但表格格式不正确。

我怎样才能做到这一点?

1 个答案:

答案 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>