主题:  cftipsplusCF编程技巧集之一 《自动报表》

dannyr

职务:普通成员
等级:1
金币:0.0
发贴:39
#12002/3/29 13:47:03
自动报表

这是一个简单的例子,至少是很直接了当的。我们将使用HTML标记来创建一个柱状表。
但有可能你只需要创建一个用空格分隔的文本报表,你可以使用CFOUTPUT标记,并在
每个要显示的元素之间用一个固定的长度来分隔。然而这里有一个更简单的方法:使用
CFTABLE标记。CFTABLE标记提供了一些参数可以允许你格式化每个显示列。尽管它能创建
HTML的TABLE,但它强大的功能可以创建预格式化的报表。

数据准备
为了展示这个例子的强大功能,你需要准备一些数据。把第一列命名为"Boss",第二列为:"Title"
第三列为:"Grp",表名为:"Org"

Northern Division Governor Area 1 Governor District
Southern Division Governor Area 10 Governor District
Southern Division Governor Area 11 Governor District
Southern Division Governor Area 12 Governor District
Northern Division Governor Area 2 Governor District
Northern Division Governor Area 3 Governor District
Northern Division Governor Area 4 Governor District
Metro Division Governor Area 5 Governor District
Metro Division Governor Area 6 Governor District
Metro Division Governor Area 7 Governor District
Metro Division Governor Area 8 Governor District
Metro Division Governor Area 9 Governor District

空格预定格式的报表
下面的代码生成了一个预定格式的柱状报表。默认的列宽为20,第一列为了避免被中间截断
而比较宽(没有使用换行文本模式)


select * from org







你会认为通过cfcol和cfloop标记来显示报表是相当简单的。然而它工作的并不很好,
CFTABLE标记也许是COLDFUSION里最古老的标记,它不允许任何其他的标记放在它的里面

HTML报表
你可以通过增加一个属性来生成HTML报表


select * from org







你会认为这样可以很简单通过"htmltable"选择输出的报表格式。这个方法一般在COLDFUSION的
其他地方,而不是这里,而且在这种方式下这个古老的标记不会识别其他变量。

选择报表格式
因此,如果你想提供两个不同版本的报表,通过变量选择报表类型,但是你必须复制整个报表



select * from org















把上面的代码保存为table.cfm ,调用 table.cfm?mode=html 来获得HTML模式的报表
如果没有使用任何参数,将使用一个没有均衡的字符。

如果你用这个标记来生成HTML报表,它还有一些其他的属性你可以来使用。我认为它可以飞快的创建纯文本的报表。



5DDC版主

职务:版主
等级:6
金币:10.0
发贴:3820
#22002/3/29 16:45:46
如果需要做比较复杂的!比如有样式!
还是用 得好!