Dynamic Coldfusion为查询输出设置动态列

Dynamic Coldfusion为查询输出设置动态列,dynamic,coldfusion,coldfusion-9,cfoutput,Dynamic,Coldfusion,Coldfusion 9,Cfoutput,我试图设置动态查询列标题,以便从查询中获取它们的值 <cfoutput query="qryGetData"> <cfloop from="-18" to="18" index="i"> <cfif i GTE 0> <cfset variables["target_MonthPlus_#abs(i)#"] = "Testing" /> <td>

我试图设置动态查询列标题,以便从查询中获取它们的值

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

#变量[“target_MonthPlus_35;abs(i)#”]#
#变量[“target_MonthMinus_#abs(i)#”]#

我编写的代码实际上不起作用,我从另一个答案中找到了它,我尝试了所有我能想到的方法,并尝试使用EVALUATE(),尽管我知道我不应该使用它

所以我的查询基本上有37个月的字段,从target_monthminus 18到target_monthminus 1。然后从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_monthminus 18是一个列名,它可能会从qryGetData返回值100,我需要在其td中显示该值

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

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

诸如此类……正如你所知,我们总是回顾过去18个月和未来18个月

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

提前感谢您的帮助:)


电脑

我想你可能想得太多了。您可以使用以下方式直接从查询中访问列:

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

#qryGetData[“目标月”和abs(i)][currentrow]#
#qryGetData[“目标月”和abs(i)][currentrow]#

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

我想你可能想得太多了。您可以使用以下方式直接从查询中访问列:

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

#qryGetData[“目标月”和abs(i)][currentrow]#
#qryGetData[“目标月”和abs(i)][currentrow]#

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

我就知道。我想得太多了,尝试了很多错误的方法。谢谢你的帮助!!:):)我就知道。我想得太多了,尝试了很多错误的方法。谢谢你的帮助!!:):)