2016-10-18 2 views
0

Я пытаюсь установить динамические заголовки столбцов запроса, чтобы получить их значения из запроса.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> 

код у меня есть на самом деле не работает, я нашел его из другого ответа, и я попробовал все, что я могу думать и попытался с помощью ОЦЕНИТЬ(), даже если я знаю, что не следует использовать.

Так что в основном у моего запроса есть 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 является имя столбца, которое может возвращать значение 100 из qryGetData, что мне нужно отобразить в его тд

target_monthMinus17 является имя столбца, которое может возвращать значение 95 из qryGetData, что мне нужно для отображения в тд

target_monthPlus17 это имя столбца, который может возвращать значение 205 из qryGetData, что мне нужно, чтобы отобразить в тд

и так далее ... Мы всегда возвращаемся 18 месяцев в прошлое и 18 месяцев в будущее, как вы можете сказать.

Я нашел несколько вопросов, подобных этому, и применил к моему коду, но каким-то образом они пытаются делать разные вещи, или я до сих пор не понимаю, что я делаю неправильно.

Заранее спасибо за помощь :)

PC

ответ

3

Я думаю, вы можете быть более думать, что это. Вы можете получить доступ к своим столбцам непосредственно из запроса, используя что-то вроде этого:

<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 для работы (список всех ваших столбцов). Вы могли бы также работать с этим творчески.

+1

Я знал это. Я передумал, пытаясь сделать так много неправильных путей. Спасибо за вашу помощь!! :) :) –