到目前为止,我已经制作了一个包含产品及其总和的表,根据一个月,我是一个新的,所以我有一个错误:变量total2_1_27未定义。我不能按月收到产品的总和,我发现到目前为止连续但是无法通过列...所以这里是代码: http://jsfiddle.net/Tskak/1/我只是无法理解如何定义这个total2,这一行:
<cfset 'total2_#ddd_other#_#p_index#'=evaluate('total2_#ddd_other#_#p_index#') + #evaluate('alan2_#ddd_other#_#p_index#')#>
有人帮忙!谢谢大家的帮助!
答案 0 :(得分:1)
希望您使用的是SQL Server 2005或更高版本。由于使用了DATEPART功能,我假设您使用的是SQL Server。我实际上会使用SQL Server中的PIVOT命令来解决您的问题,以按产品ID和月份获取总计列表,并将它们转换为CFQUERY
中的列。它将大大减少页面上的代码量,如果你在查询中进行总计,则应将代码缩减到CFQUERY
,然后在表格周围简化CFOUTPUT
/ CFLOOP
。它会清除列表中的所有列表和循环。将使这个页面成为代码的乐趣,而不是现在的头痛。
答案 1 :(得分:0)
请勿在{{1}}之类的cfset中使用评估或将变量名称放在引号内。
而是引用这样的变量:
<cfset 'blah_#x#' = foo>
或
<cfset variables['total2_#ddd_other#_#p_index#'] = variables['total2_#ddd_other#_#p_index#'] + variables['alan2_#ddd_other#_#p_index#']>
这假设值在变量范围内。如果它在会话范围内,你会引用它<cfset variables['total2_' & ddd_other & '_' & p_index] = variables['total2_' & ddd_other & '_' & p_index] + variables['alan2_' & ddd_other & '_' & p_index]>
。你也可以在CF8和CF9中使用+ =,所以这没关系:
session['total2_' & ddd_other & '_' & p_index]