使用 cfquery 和数组格式化表

问题描述

我编写了以下查询,其功能完全符合我的计划:

<cfquery name="myquery" datasource="abc">
SELECT disTINCT Right((Format([vDatum],"yyyy")),2) AS DDate
FROM tVCal RIGHT JOIN tVEvents ON tVCal.VItem = tVEvents.EvDate
</cfquery>

每次运行此查询时,它都会输出一系列与 1940 年到 2039 年之间的年份对应的两位数年份数字,这些年份的数据在数据库中可用,例如: 00,04,15,28,42,56,58,75,89

然后我有一个从 (19)40 到 (20)39 以表格形式排列的所有年份数字的非变化列表,第一个十年看起来像这样:

<tr><td>40</td><td>41</td><td>42</td><td>43</td><td>44</td><td>45</td><td>46</td><td>47</td><td>48</td><td>49</td>       
</tr>

每次显示此表并且文档准备好时,我都需要一个 CF 或 jQuery 函数,它将所有年份数字格式化为红色,这些数字也包含在原始查询输出中。

十年前我可能可以自己写这个,但今年我将 80 岁,每当我尝试新事物时,我的头就会游泳。如果我在这里走错了地方,我会很感激你能告诉我该去哪里。 弗兰克

解决方法

你可以尝试这样的事情:

<cfoutput>
<table>
<tr>
<cfloop list = "#YourListOfNumbers#" index = "number">
<cfset ThisColour = ListFind(ValueList(myquery,DDate),number) ? "red" : "black">
    
<td style = "Color:#ThisColour#">#number#</td>
    
</cfloop>
</tr>
</table>
</cfoutput>

您需要做一些额外的工作才能获得不止一行,但这不是问题的一部分。

此处提供了此逻辑的示例 ==> https://trycf.com/gist/dcedc5c1264a4ce18a91ce496a8c0405/lucee5?theme=monokai