Coldfusion为查询输出设置动态列



我试图设置动态查询列标头以从查询中获取其值。

<cfoutput query="qryGetData">
        <cfloop from="-18" to="18" index="i">
        <cfif i GTE 0>
            <cfset variables["target_MonthPlus_#abs(i)#"] = "Testing" />
            <td>
                <cfoutput>#variables["target_MonthPlus_#abs(i)#"]#</cfoutput>
             </td>     
         <cfelse>
            <cfset variables["target_MonthMinus_#abs(i)#"] = "Testing" />

            <td>
            <cfoutput>#variables["target_MonthMinus_#abs(i)#"]#</cfoutput>
             </td>     
         </cfif>  
        </cfloop>

代码我没有真正工作,我从另一个答案中发现它,我已经尝试了所有我能想到的,并尝试使用EVALUATE(),即使我知道我不应该使用。

所以基本上我的查询有37个月字段从target_MonthMinus18到target_MonthMinus1。然后target_MonthPlus0到target_MonthPlus18。正如你在上面看到的,我已经处理了CFIF的正负关系。所以唯一不同的是月份的值

最接近的事情,我实际上已经动态命名列是这样的,但这只是输出列的名称,这将返回target_MonthPlus0, target_MonthPlus1, targetMonthPlus2,等。但是我需要使用该名称来返回查询中列的实际值。

 <cfif i GTE 0>
            <cfset monthInLoop = "target_MonthPlus_" & #ABS(i)#>
            <td>
                <cfoutput>#monthInLoop#</cfoutput>

target_monthMinus18是一个列名,它可能从我需要在其td中显示的qryGetData返回值100

target_monthMinus17是一个列名,它可能从qryGetData返回值95,我需要在其td

中显示该值

target_monthPlus17是一个列名,它可能从我需要在其td

中显示的qryGetData返回值205。

等等…我们总是回到过去的18个月和未来的18个月,你可以看出来。

我发现了几个类似的问题,并已应用到我的代码,但不知何故,他们试图做不同的事情,或者我仍然不明白我做错了什么。

提前感谢您的帮助:)

PC

我想你可能想多了。您可以使用以下命令直接从查询中访问列:

<cfloop query="qryGetData">
      <cfloop from="-18" to="18" index="i">
        <cfif i GTE 0>
            <td>
                <cfoutput>#qryGetData["target_MonthPlus_" & abs(i)][currentrow]#</cfoutput>
             </td>     
         <cfelse>
              <td>
            <cfoutput>#qryGetData["target_MonthMinus_" & abs(i)][currentrow]#</cfoutput>
             </td>     
         </cfif> 
    </cfloop>
</cfloop>

这利用了CF的查询数组语法。请记住,您还有qryGetData。要处理的Columnlist(所有列的列表)。你也可以创造性地使用它。

相关内容

  • 没有找到相关文章

最新更新