使用查询中的多个工作表创建工作簿

时间:2016-06-27 20:02:51

标签: excel coldfusion coldfusion-9 coldfusion-2016

我正在使用ColdFusion 2016,我发现我使用的服务器只有CF9,我对此非常陌生。我一直致力于更新现有代码以适应用户现在想要的内容。到目前为止,我已经管理过,但这超出了我的范围。我有一个网站,生成一张Excel工作簿。它使用HTML和查询来创建它。从A1中的查询名称开始,A3中的报告日期,A5:H5中的表头,然后是A6中的数据:H53(确切长度可能不同,但始终来自A列 - H列)。我将发布用于创建工作簿的内容。我想要做的是使用3个以上的查询来向工作簿添加3个工作表。我尝试添加一个功能,我发现here并没有做任何好事。我尝试修改现有代码,尝试使用所有4个查询,没有快乐。

任何帮助将不胜感激。如果我需要添加更多细节,请告诉我。 这是代码:(我添加了对我试图让它工作的内容的评论)

<cfsilent>
<!--- *******************************************************************
Filename:   execSummary_Excel.cfm, v1.0 03/07/2012
Created By: Original Writer
Description:    Excel report export for Executive Summary Report.       
Change History:
Date........Name...........Description of Change........................
08/01/2012  Original Writer Added committed column.
02/28/2013  Original Writer Added stateGM and GM.
*************************************************************************--->
<cfinvoke component="financial.financial" method="getExecSummary" returnvariable="qExecSummary">
    <cfinvokeargument name="level" value="#URL.level#" />
    <cfinvokeargument name="stateGM" value="#URL.stateGM#" />
    <cfinvokeargument name="GM" value="#URL.GM#" />
    <cfinvokeargument name="engVP" value="#URL.engVP#" />
    <cfinvokeargument name="engDir" value="#URL.engDir#" />
</cfinvoke>
<!---Added this to test if I can get more than one sheet to the Workbook--->
<cfinvoke component="financial.financial" method="getExecSummary_OLD" returnvariable="qExecSummary_OLD">
    <cfinvokeargument name="level" value="#URL.level#" />
    <cfinvokeargument name="stateGM" value="#URL.stateGM#" />
    <cfinvokeargument name="GM" value="#URL.GM#" />
    <cfinvokeargument name="engVP" value="#URL.engVP#" />
    <cfinvokeargument name="engDir" value="#URL.engDir#" />
</cfinvoke>
<!--- Get Report Date since qExecSummary is more complex than the other report queries --->
<cfquery name="qRpt_Date" datasource="#application.dsn#">
    SELECT DISTINCT rpt_date
    FROM fin_data
</cfquery>
<cfsetting requesttimeout="5000" />
</cfsilent>
<!---Added this as a function that should allow me to use multiple queries and create a workbook with more than one sheet--->
<cfscript>
    //Create new workbook with one sheet
    //by default that sheet is the active sheet
    Workbook = SpreadsheetNew("ExecSummary");
    //Add Data to the sheet
    format1.bold="true";
    formatNum.dataformat="0.00%";
    Spreadsheetformatcell(Workbook,format1,1,1);
    SpreadSheetSetCellValue(Workbook,"Executive Summary Report",1,1);
    Spreadsheetformatcell(Workbook,format1,3,1);
    SpreadSheetSetCellValue(Workbook,"#dateFormat(now(),'mm/dd/yyyy')#",3,1);
    SpreadSheetSetCellValue(Workbook,"Data Date",5,1);
    SpreadSheetSetCellValue(Workbook,"Level",5,2);
    SpreadSheetSetCellValue(Workbook,"Name",5,3);
    SpreadSheetSetCellValue(Workbook,"Description",5,4);
    SpreadSheetSetCellValue(Workbook,"Budget",5,5);
    SpreadSheetSetCellValue(Workbook,"Commited",5,6);
    SpreadSheetSetCellValue(Workbook,"Spent YTD",5,7);
    SpreadSheetSetCellValue(Workbook,"% Spent",5,8);
        arr="Here";
        writedump(arr);
    //if (qExecSummary.recordCount) {
    //  rowNum = 6;
    //  arr="Here";
    //  writedump(rowNum);
        //alert(qExecSummary.recordCount);
        //for(dataRow in qExecSummary){
            //SpreadSheetSetCellValue(Workbook,dateFormat(qRpt_Date.rpt_Date, 'mm/dd/yyyy'),rowNum,1);
            //SpreadSheetSetCellValue(Workbook,dataRow.responsible,rowNum,2);
            //SpreadSheetSetCellValue(Workbook,dataRow.name,rowNum,3);
            //SpreadSheetSetCellValue(Workbook,dataRow.Description,rowNum,4);
            //SpreadSheetSetCellValue(Workbook,dataRow.bud_sum,rowNum,5);
            //SpreadSheetSetCellValue(Workbook,dataRow.committed,rowNum,6);
            //SpreadSheetSetCellValue(Workbook,dataRow.Spent_YTD,rowNum,7);
            /*if (qExecSummary.bud_sum NEQ 0){
                Spreadsheetformatcell(Workbook,formatNum,rowNum,8);
                //percentSpent="#(qExecSummary.Spent_YTD/qExecSummary.bud_sum)*100#";
                SpreadSheetSetCellValue(Workbook,(dataRow.Spent_YTD/dataRow.bud_sum)*100,rowNum,8);
            }
            else {*/
                //SpreadSheetSetCellValue(Workbook,0,rowNum,8);
            //}
            //rowNum++;
        //}
        //End of WriteOutput
    //} else {
    //  SpreadSheetAddRows(Workbook,"No results for your criteria.");
    //} 
</cfscript>
<!---
<cffunction name="QueriesToXLS" access="public">
    <cfargument name="queryArr" required="true">
    <cfargument name="sheetNameArr" required="false">
    <cfset tempPath="C:\Temp\ExecutiveSummary" & ".xls">
    <cfset counter= 1>
    <cfloop array="#ARGUMENTS.queryArr#" index="i" >
        <cfset sheetName="Sheet#counter#">
        <cfif isDefined("ARGUMENTS.sheetNameArr")>
            <cfset sheetName=ARGUMENTS.sheetNameArr[counter]>
        </cfif>
        <cfspreadsheet action="update" filename="#tempPath#" query="i" sheetName="#sheetName#"/>
        <cfset counter += 1>
    </cfloop>
    <cfreturn SpreadsheetRead(tempPath)>
</cffunction>

<cfset xlsData = QueriesToXLS([qExecSummary,qExecSummary],["ExecutiveSummary","ExecutiveSummaryOLD"])>
--->

<cfheader name="Content-Disposition" value='attachment; filename="execSummaryNew.xls"'>
<!---cfcontent type="application/msexcel" variable="#SpreadsheetReadBinary(xlsData)#" reset="true"--->

<cfcontent type="application/vnd.ms-excel"> <!---This is where the application type is being set to Excel--->
<!---html xmlns:x="urn:schemas-microsoft-com:office:excel">
<head>

</head>
<h2>Executive Summary Report</h2>
<cfoutput>
<p>#dateFormat(now(), 'mm/dd/yyyy')#</p>
</cfoutput>
<table id="tableOne" class="yui" cellspacing="0" cellpadding="5">
<thead>
<tr>
    <th>Data Date</th>
    <th>Level</th>
    <th>Name</th>
    <th>Description</th>                    
    <th>Budget</th>
    <th>Committed</th>
    <th>Spent YTD</th>
    <th>% Spent</th>
</tr>
</thead>
<cfif qExecSummary.recordCount>
<tbody>
<cfoutput query="qExecSummary">
<tr>
    <td>#dateFormat(qRpt_Date.rpt_Date, 'mm/dd/yyyy')#</td>
    <td>#qExecSummary.responsible#</td>
    <td>#qExecSummary.name#</td>
    <td>#qExecSummary.Description#</td>
    <td>#qExecSummary.bud_sum#</td>
    <td>#qExecSummary.committed#</td>
    <td>#qExecSummary.Spent_YTD#</td>
    <td><cfif qExecSummary.bud_sum NEQ 0> 
            #numberFormat((qExecSummary.Spent_YTD/qExecSummary.bud_sum)*100,"9.9")#%
        <cfelse>
            0
        </cfif> 
    </td>
</tr>
</cfoutput>
</tbody>
<cfelse>
<tr>
    <td colspan="9">No results for your criteria.</td>
</tr>
</cfif>
</table>
</html--->

修改

我已尝试按照副本中提到的问题提供的答案。我无法使用我的查询。我添加了以下代码来代替我的脚本:

编辑2

更新了此脚本,但仍无效。 writeOutput()上的错误。我不确定如何使用查询来创建行的数据?

    <cfscript>
    //Create new workbook with one sheet
    //by default that sheet is the active sheet
    Workbook = SpreadsheetNew("ExecSummary");
    //Add Data to the sheet
    format1.bold="true";
    formatNum.dataformat="0.00%";
    Spreadsheetformatcell(Workbook,format1,1,1);
    SpreadSheetSetCellValue(Workbook,"Executive Summary Report",1,1);
    Spreadsheetformatcell(Workbook,format1,3,1);
    SpreadSheetSetCellValue(Workbook,"#dateFormat(now(),'mm/dd/yyyy')#",3,1);
    SpreadSheetSetCellValue(Workbook,"Data Date",5,1);
    SpreadSheetSetCellValue(Workbook,"Level",5,2);
    SpreadSheetSetCellValue(Workbook,"Name",5,3);
    SpreadSheetSetCellValue(Workbook,"Description",5,4);
    SpreadSheetSetCellValue(Workbook,"Budget",5,5);
    SpreadSheetSetCellValue(Workbook,"Commited",5,6);
    SpreadSheetSetCellValue(Workbook,"Spent YTD",5,7);
    SpreadSheetSetCellValue(Workbook,"% Spent",5,8);
    if (qExecSummary.recordCount) {
        rowNum = 6;
        //writeOutput(query="qExecSummary");
        for(dataRow in qExecSummary){
            SpreadSheetSetCellValue(Workbook,dateFormat(qRpt_Date.rpt_Date, 'mm/dd/yyyy'),rowNum,1);
            SpreadSheetSetCellValue(Workbook,dataRow.responsible,rowNum,2);
            SpreadSheetSetCellValue(Workbook,dataRow.name,rowNum,3);
            SpreadSheetSetCellValue(Workbook,dataRow.Description,rowNum,4);
            SpreadSheetSetCellValue(Workbook,dataRow.bud_sum,rowNum,5);
            SpreadSheetSetCellValue(Workbook,dataRow.committed,rowNum,6);
            SpreadSheetSetCellValue(Workbook,dataRow.Spent_YTD,rowNum,7);
            if (qExecSummary.bud_sum NEQ 0){
                Spreadsheetformatcell(Workbook,formatNum,rowNum,8);
                percentSpent="#(qExecSummary.Spent_YTD/qExecSummary.bud_sum)*100#";
                SpreadSheetSetCellValue(Workbook,(qExecSummary.Spent_YTD/qExecSummary.bud_sum)*100,rowNum,8);
            }
            else {
                SpreadSheetSetCellValue(Workbook,0,rowNum,8);
            }
            rowNum++;
        }
        //End of WriteOutput
    } else {
        SpreadSheetAddRows(Workbook,"No results for your criteria.");
    }   
</cfscript>

然而,它在Output的行上显示错误。我不知道该怎么改变它。我已经搜索了cfscript代码中可用的内容并找到了this,但是那里看起来没有任何帮助吗?

<cfscript>进行更新,现在我收到此错误:

Error Message from newly updated script

最终编辑

这是工作脚本:

<cfsilent>
<!--- *******************************************************************
Filename:   execSummary_Excel.cfm, v1.0 03/07/2012
Created By: Original Writer
Description:    Excel report export for Executive Summary Report.       
Change History:
Date........Name...........Description of Change........................
08/01/2012  Original Writer Added committed column.
02/28/2013  Original Writer Added stateGM and GM.
*************************************************************************--->
<cfinvoke component="financial.financial" method="getExecSummary" returnvariable="qExecSummary">
    <cfinvokeargument name="level" value="#URL.level#" />
    <cfinvokeargument name="stateGM" value="#URL.stateGM#" />
    <cfinvokeargument name="GM" value="#URL.GM#" />
    <cfinvokeargument name="engVP" value="#URL.engVP#" />
    <cfinvokeargument name="engDir" value="#URL.engDir#" />
</cfinvoke>
<!---Added this to test if I can get more than one sheet to the Workbook--->
<cfinvoke component="financial.financial" method="getExecSummary331" returnvariable="qExecSummary331">
    <cfinvokeargument name="level" value="#URL.level#" />
    <cfinvokeargument name="stateGM" value="#URL.stateGM#" />
    <cfinvokeargument name="GM" value="#URL.GM#" />
    <cfinvokeargument name="engVP" value="#URL.engVP#" />
    <cfinvokeargument name="engDir" value="#URL.engDir#" />
</cfinvoke>
<!--- Get Report Date since qExecSummary is more complex than the other report queries --->
<cfquery name="qRpt_Date" datasource="#application.dsn#">
    SELECT DISTINCT rpt_date
    FROM fin_data
</cfquery>
<cfsetting requesttimeout="5000" />
</cfsilent>

<!---Added this as a function that should allow me to use multiple queries and create a workbook with more than one sheet--->
<cfscript>
    //Create new workbook with one sheet
    //by default that sheet is the active sheet
    Workbook = SpreadsheetNew("ExecSummary");
    //Add Data to the sheet
    //Formatting
    format1.bold="true";
    format1.fontsize=12;
    format1.font="Calibri";
    format2.bold="true";
    format2.fontsize=18;
    format2.font="Calibri";
    formatNum.dataformat="0.0%";
    //adding the Headers
    Spreadsheetformatcell(Workbook,format2,1,1);
    Spreadsheetformatcell(Workbook,format1,3,1);
    Spreadsheetformatcell(Workbook,format1,5,1);
    Spreadsheetformatcell(Workbook,format1,5,2);
    Spreadsheetformatcell(Workbook,format1,5,3);
    Spreadsheetformatcell(Workbook,format1,5,4);
    Spreadsheetformatcell(Workbook,format1,5,5);
    Spreadsheetformatcell(Workbook,format1,5,6);
    Spreadsheetformatcell(Workbook,format1,5,7);
    Spreadsheetformatcell(Workbook,format1,5,8);
    SpreadSheetSetCellValue(Workbook,"Executive Summary Report",1,1);
    SpreadSheetSetCellValue(Workbook,"#dateFormat(now(),'mm/dd/yyyy')#",3,1);
    SpreadSheetSetCellValue(Workbook,"Data Date",5,1);
    SpreadSheetSetCellValue(Workbook,"Level",5,2);
    SpreadSheetSetCellValue(Workbook,"Name",5,3);
    SpreadSheetSetCellValue(Workbook,"Description",5,4);
    SpreadSheetSetCellValue(Workbook,"Budget",5,5);
    SpreadSheetSetCellValue(Workbook,"Commited",5,6);
    SpreadSheetSetCellValue(Workbook,"Spent YTD",5,7);
    SpreadSheetSetCellValue(Workbook,"% Spent",5,8);
        arr=server.ColdFusion.ProductVersion;
    if (qExecSummary.recordCount) {
        rowNum = 6;
        do {
            SpreadSheetSetCellValue(Workbook,dateFormat(qRpt_Date.rpt_date,'mm/dd/yyy'),rowNum,1);
            SpreadSheetSetCellValue(Workbook,qExecSummary.responsible[rowNum-5],rowNum,2);
            SpreadSheetSetCellValue(Workbook,qExecSummary.name[rowNum-5],rowNum,3);
            SpreadSheetSetCellValue(Workbook,qExecSummary.Description[rowNum-5],rowNum,4);
            SpreadSheetSetCellValue(Workbook,qExecSummary.bud_sum[rowNum-5],rowNum,5);
            SpreadSheetSetCellValue(Workbook,qExecSummary.committed[rowNum-5],rowNum,6);
            SpreadSheetSetCellValue(Workbook,qExecSummary.Spent_YTD[rowNum-5],rowNum,7);
            if (qExecSummary.bud_sum[rowNum-5] NEQ 0){
                Spreadsheetformatcell(Workbook,formatNum,rowNum,8);
                SpreadSheetSetCellValue(Workbook,(qExecSummary.Spent_YTD[rowNum-5]/qExecSummary.bud_sum[rowNum-5]),rowNum,8);
            }
            else {
                SpreadSheetSetCellValue(Workbook,0,rowNum,8);
            }
            rowNum++;
        } while (rowNum - 6 LT qExecSummary.recordCount);
    } else {
        SpreadSheetAddRows(Workbook,"No results for your criteria.");
    }   
    SpreadsheetCreateSheet(Workbook,"ExecSummaryTest");
    SpreadsheetSetActiveSheet(Workbook,"ExecSummaryTest");
    //Formatting
    format1.bold="true";
    format1.fontsize=12;
    format1.font="Calibri";
    format2.bold="true";
    format2.fontsize=18;
    format2.font="Calibri";
    formatNum.dataformat="0.0%";

    Spreadsheetformatcell(Workbook,format2,1,1);
    Spreadsheetformatcell(Workbook,format1,3,1);
    Spreadsheetformatcell(Workbook,format1,5,1);
    Spreadsheetformatcell(Workbook,format1,5,2);
    Spreadsheetformatcell(Workbook,format1,5,3);
    Spreadsheetformatcell(Workbook,format1,5,4);
    Spreadsheetformatcell(Workbook,format1,5,5);
    Spreadsheetformatcell(Workbook,format1,5,6);
    Spreadsheetformatcell(Workbook,format1,5,7);
    Spreadsheetformatcell(Workbook,format1,5,8);
    SpreadSheetSetCellValue(Workbook,"Executive Summary Report",1,1);
    SpreadSheetSetCellValue(Workbook,"#dateFormat(now(),'mm/dd/yyyy')#",3,1);
    SpreadSheetSetCellValue(Workbook,"Data Date",5,1);
    SpreadSheetSetCellValue(Workbook,"Level",5,2);
    SpreadSheetSetCellValue(Workbook,"Name",5,3);
    SpreadSheetSetCellValue(Workbook,"Description",5,4);
    SpreadSheetSetCellValue(Workbook,"Budget",5,5);
    SpreadSheetSetCellValue(Workbook,"Commited",5,6);
    SpreadSheetSetCellValue(Workbook,"Spent YTD",5,7);
    SpreadSheetSetCellValue(Workbook,"% Spent",5,8);
        arr=server.ColdFusion.ProductVersion;
    if (qExecSummary331.recordCount) {
        rowNum = 6; 
        do {
            SpreadSheetSetCellValue(Workbook,dateFormat(qRpt_Date.rpt_date,'mm/dd/yyy'),rowNum,1);
            SpreadSheetSetCellValue(Workbook,qExecSummary331.responsible[rowNum-5],rowNum,2);
            SpreadSheetSetCellValue(Workbook,qExecSummary331.name[rowNum-5],rowNum,3);
            SpreadSheetSetCellValue(Workbook,qExecSummary331.Description[rowNum-5],rowNum,4);
            SpreadSheetSetCellValue(Workbook,qExecSummary331.bud_sum[rowNum-5],rowNum,5);
            SpreadSheetSetCellValue(Workbook,qExecSummary331.committed[rowNum-5],rowNum,6);
            SpreadSheetSetCellValue(Workbook,qExecSummary331.Spent_YTD[rowNum-5],rowNum,7);
            if (qExecSummary331.bud_sum[rowNum-5] NEQ 0){
                Spreadsheetformatcell(Workbook,formatNum,rowNum,8);
                SpreadSheetSetCellValue(Workbook,(qExecSummary331.Spent_YTD[rowNum-5]/qExecSummary331.bud_sum[rowNum-5]),rowNum,8);
            }
            else {
                SpreadSheetSetCellValue(Workbook,0,rowNum,8);
            }
            rowNum++;
        } while (rowNum - 6 LT qExecSummary331.recordCount);
    } else {
        SpreadSheetAddRows(Workbook,"No results for your criteria.");
    }
    SpreadsheetSetActiveSheet(Workbook,"ExecSummary");
</cfscript>

<cfheader name="Content-Disposition" value='attachment; filename="execSummaryNew.xls"'>
<cfcontent type="application/msexcel" variable="#SpreadsheetReadBinary(Workbook)#" reset="true">

1 个答案:

答案 0 :(得分:1)

WriteOutput()用于在屏幕上显示数据。要将数据添加到电子表格,您需要使用电子表格功能。在您的方案中,您可以使用for / in循环来遍历查询行。然后使用SpreadSheetSetCellValue(sheet, value, row, col)填充单个单元格。

更新1:

如果您运行下面的代码(来自“编辑2”),在全新的.cfm脚本中,您将看到它完美运行。因此,任何错误都必须来自代码的不同部分。如果您在追踪错误时遇到问题,我建议您重温一下。使用非常简单的代码创建一个全新的脚本:只是生成电子表格所需的最小值。省略任何额外的功能,下载等等,并使基本代码先工作。

<cfscript>
    // FOR DEMO ONLY: Create manual queries
    qRpt_Date = queryNew("");
    queryAddColumn(qRpt_Date, "Rpt_Date", [now()]);
    qExecSummary = queryNew("");
    queryAddColumn(qExecSummary, "responsible", [1,12,13]);
    queryAddColumn(qExecSummary, "bud_sum", [0,50,100]);
    queryAddColumn(qExecSummary, "Spent_YTD", [0,50,100]);
    queryAddColumn(qExecSummary, "Name", ["Name A","Name B","Name C"]);
    queryAddColumn(qExecSummary, "Description", ["Description A","DescriptionB","Description C"]);
    queryAddColumn(qExecSummary, "Committed", [0,50,100]);


    //Create new workbook with one sheet
    //by default that sheet is the active sheet
    Workbook = SpreadsheetNew("ExecSummary");

    //Add Headers
    headerTextFormat.bold=true;
    Spreadsheetformatcell(Workbook,headerTextFormat,1,1);
    SpreadSheetSetCellValue(Workbook,"Executive Summary Report",1,1);
    Spreadsheetformatcell(Workbook,headerTextFormat,3,1);
    SpreadSheetSetCellValue(Workbook, dateFormat(now(),'mm/dd/yyyy'),3,1);
    SpreadSheetSetCellValue(Workbook,"Data Date",5,1);
    SpreadSheetSetCellValue(Workbook,"Level",5,2);
    SpreadSheetSetCellValue(Workbook,"Name",5,3);
    SpreadSheetSetCellValue(Workbook,"Description",5,4);
    SpreadSheetSetCellValue(Workbook,"Budget",5,5);
    SpreadSheetSetCellValue(Workbook,"Commited",5,6);
    SpreadSheetSetCellValue(Workbook,"Spent YTD",5,7);
    SpreadSheetSetCellValue(Workbook,"% Spent",5,8);

    //Add data detail
    if (qExecSummary.recordCount) {
        // Start populating the spreadsheet on this row number
        // Change as needed.
        rowNum = 6;

        // Loop through query rows
        for(dataRow in qExecSummary) {
            // add 
            SpreadSheetSetCellValue(Workbook,dateFormat(qRpt_Date.rpt_Date, 'mm/dd/yyyy'),rowNum,1);
            SpreadSheetSetCellValue(Workbook,dataRow.responsible,rowNum,2);
            SpreadSheetSetCellValue(Workbook,dataRow.name,rowNum,3);
            SpreadSheetSetCellValue(Workbook,dataRow.Description,rowNum,4);
            SpreadSheetSetCellValue(Workbook,dataRow.bud_sum,rowNum,5);
            SpreadSheetSetCellValue(Workbook,dataRow.committed,rowNum,6);
            SpreadSheetSetCellValue(Workbook,dataRow.Spent_YTD,rowNum,7);
            if (qExecSummary.bud_sum != 0){
                Spreadsheetformatcell(Workbook,formatNum,rowNum,8);
                SpreadSheetSetCellValue(Workbook,(qExecSummary.Spent_YTD/qExecSummary.bud_sum)*100,rowNum,8);
            }
            else {
                SpreadSheetSetCellValue(Workbook,0,rowNum,8);
            }
            rowNum++;
        }
        //End of WriteOutput
    } else {
        SpreadSheetAddRows(Workbook,"No results for your criteria.");
    }   

    //For test purposes, save the results to a file
    SpreadSheetWrite(Workbook, "c:/path/to/yourFile.xls", true);

    WriteOutput("Done!");
</cfscript>

更新2:

如评论中所述,CF9不支持for..in查询循环。如果您使用的是较旧版本的CF,则需要使用from/to循环。

// Loop through query rows
for(x = 1; x lte yourQueryName.recordCount; x++) {
    SpreadSheetSetCellValue(Workbook, yourQueryName.YourColumnName[x], theSheetRowNum, 1);
    // ...

    theSheetRowNum++;
} 

旁注,我个人更喜欢cfscript。但是,如果您对CFML感觉更舒服,可以随时重写the example。只需摆脱cfscript标签并替换:

<cfscript>
    SomeFunctionName(....); 
</cfscript>

使用:

<cfset SomeFunctionName(....)>