我在Spotfire中创建了一个仪表板,它将不可见的数据从SQL查询中提取到数据表中。然后,基于特定列中的唯一值的数量来旋转数据表。我有一个盒子图可视化,它链接到这个数据表并显示表中的几列。问题是在某些数据查询中,并非所有列都存在。如果缺少一列,则不显示任何数据。相反,Spotfire会返回消息"找不到列:'列名'"。在这些可能缺少一列或多列的情况下,如何使可视化仍然绘制表中存在的其余列?
编辑: 我编写了这个脚本并将其分配给每次文档属性更改值时要执行的文档属性。现在唯一的问题是我的If语句出了问题。即使前面的陈述为真,也只返回最后的else:语句。
import Spotfire.Dxp.Data.DataTable
from Spotfire.Dxp.Application.Visuals import VisualContent
cols = []
for column in DataPull.Columns:
cols.append(str(column))
if("[1 Pre-stress]" in cols and "[2 Post-stress]" in cols):
columns = ("[1 Pre-stress]", "[2 Post-stress]")
else:
if("[1 Pre-stress]" in cols):
columns = ("[1 Pre-stress]")
else:
columns = ("[1 Post-stress]")
vc = RawDataVisualization.As[VisualContent]()
vc.YAxis.Expression = (columns)
好了,现在脚本正在运行。但是,每次我更改文档属性的参数时,脚本都会执行,但我认为它会在转轴发生之前检查表,因此它找不到正确的列。它只能在表更改更新之前找到表中的列。我该如何解决这个问题?