Spotfire:使用 IronPython 更改计算列中的公式
Spotfire: changing formula in calc column using IronPython
老用户第一个问题:
我正在尝试使用 ironpython 更新 Spotfire 计算列中的公式。我有一个名为 tbl_test 的 table,其计算列为 'Biz_rule'。我创建了一个名为 str_statement 的字符串,并尝试使用它用下面的代码替换计算列中的表达式:
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>()
returns 一个布尔值,指示操作是否成功。如何获取计算列的实例以便更新表达式?
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['Column Name'].AsCalculatedColumn
lc_myField.Expression = ls_CalcExpression
添加的基础知识是:
ldt_tbl.Columns.AddCalculatedColumn('Column Name', ls_CalcExpression)
其中 ldt_tbl 是数据 table,ls_calcExpression 包含您的表达式。
老用户第一个问题:
我正在尝试使用 ironpython 更新 Spotfire 计算列中的公式。我有一个名为 tbl_test 的 table,其计算列为 'Biz_rule'。我创建了一个名为 str_statement 的字符串,并尝试使用它用下面的代码替换计算列中的表达式:
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>()
returns 一个布尔值,指示操作是否成功。如何获取计算列的实例以便更新表达式?
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['Column Name'].AsCalculatedColumn lc_myField.Expression = ls_CalcExpression
添加的基础知识是: ldt_tbl.Columns.AddCalculatedColumn('Column Name', ls_CalcExpression)
其中 ldt_tbl 是数据 table,ls_calcExpression 包含您的表达式。