Adobe ColdFusion Reports(5)
作为应用程序的一个很大组成部分,报表其实很少以单独形式存在,因此我们需要将报表作为模板应用到程序中。前面的几篇随笔简单介绍了报表的基本制作和样式控制等。其中的查询内容信息直接放在报表中。通过Query Builder生成的query可以通过Query Builder的Advanced模式进行查看。如图1.
图 1
下面笔者通过一个示例,更改报表中的查询数据来动态显示不同的结果。使用者可以通过不同的用户名登录信息,查看当前登录的艺术家的作品信息。
首先新建一个简单的登录窗体,代码如下。
<h3>Artist Login Form</h3> <p>Please enter your last name and password.</p> <cfform name="loginform" action="artSalesReport.cfm" method="post"> <table> <tr> <td>Last Name: </td> <td> <cfinput type="text" name="username" required="true" message="A username is required. "> </td> </tr> <tr> <td>Password: </td> <td> <cfinput type="password" name="password" required="true" message="A password is required. "> </td> </tr> </table> <br/> <cfinput type="submit" name="submit" value="Submit"> </cfform>
然后新建一个应用页面,注意这里主要新建了一个查询变量,并将这个变量赋给cfreport标签的query属性,而将原来的报表文件赋给template属性,查看格式为HTML, 代码如下。
<cfquery name="artsales" datasource="cfartgallery"> SELECT * FROM APP.ART, APP.ARTISTS WHERE APP.ART.ARTISTID = APP.ARTISTS.ARTISTID AND APP.ARTISTS.LASTNAME = <cfqueryparam value="#FORM.username#"> ORDER BY APP.ARTISTS.LASTNAME </cfquery> <cfreport query="artsales" template="ArtSalesReport1.cfr" format="HTML">
在浏览器中运行程序,效果如图2, 图3.
图 2
图 3
这里值得注意的是新建的查询中必须全部包括报表中的字段,当然可以增加新的字段。
人每天要做三件事,第一件是微笑,第二件是欢笑,第三件是大笑。