Spotfire:使用IronPython更改计算列中的公式



长期用户的第一个问题:

我正在尝试使用ironpython更新Spotfire中计算列中的公式。我有一个名为tbl_test的表,其计算列为"Biz_rule"。我创建了一个名为str_statement的字符串,并尝试使用它将calucated列中的表达式替换为以下代码:

calc_col = tbl_test.Columns.Item['Biz_rule']
calc_col = calc_col.As<CalculatedColumn>()
calc_col.Expression = str_statement;

我得到以下错误。

Traceback (most recent call last):
  File "Spotfire.Dxp.Application.ScriptSupport", line unknown, in ExecuteForDebugging
  File "<string>", line 25, in <module>
  AttributeError: 'bool' object has no attribute 'Expression'

我想是因为

calc_col.As<CalculatedColumn>() 

返回一个布尔值,指示操作是否成功。如何获取计算列的实例以便更新表达式?

tbl_test = Document.Data.Tables['data source scott']
calc_col = tbl_test.Columns.Item['Job Job']
calc_col.Properties.SetProperty('Expression','[JOB]')

上面的代码对我有效。这是你试图做的吗?问题是你为什么使用

'calc_col.As<CalculatedColumn>()' 

我首先尝试更新现有的计算。如果失败,我会尝试删除第1列(如果它被冻结),然后添加一个新的计算列。

更换的基础是:lc_myField=ldt_tbl.Columns["列名"].AsCalculatedColumnlc_myField.Expression=ls_CalcExpression

添加的基本内容包括:ldt_tbl.Columns.AddCalculatedColumn("列名",ls_CalcExpression)

其中ldt_tbl是数据表,ls_calcExpression包含您的表达式。

最新更新