长期用户第一个问题:
我正在尝试使用ironpython更新Spotfire中计算列中的公式。我有一个名为tbl_test的表,其中包含计算列' Biz_rule'。我创建了一个名为str_statement的字符串,并尝试使用它来用下面的代码替换caluclated列中的表达式:
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>()
返回一个布尔值,指示操作是否成功。如何获取计算列的实例以便我可以更新表达式?
答案 0 :(得分:0)
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 :(得分:0)
我首先尝试更新现有的计算。 如果失败,我尝试删除第1列(如果它已冻结),然后我添加一个新列进行计算。
替换的基础是: lc_myField = ldt_tbl.Columns ['Column Name']。AsCalculatedColumn lc_myField.Expression = ls_CalcExpression
添加的基础是: ldt_tbl.Columns.AddCalculatedColumn('Column Name',ls_CalcExpression)
其中ldt_tbl是数据表,ls_calcExpression包含你的表达式。