2015-12-31 3 views
0

Long пользователя время самый первый вопрос:Spotfire: изменение формулы в колонке известково с помощью IronPython

Я пытаюсь изменить формулу в вычисляемый столбец в Spotfire с использованием IronPython. У меня есть таблица 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
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>()' 

?

+0

Это работало как очарование! Я просто не понимал, что могу получить доступ к свойству Expression, если объект не является «CalculatedColumn», поскольку tbl_test.Columns.Item [] возвращает DataColumn. В основном я пытаюсь использовать метод . Большое спасибо! –

+0

http://stackoverflow.com/help/someone-answers –

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 содержит ваше выражение.

+0

Я попытался заменить раздел кода, и он дает мне и ошибку, что объект не содержит свойство «Выражение» –

+0

Луис, можете ли вы опубликовать то, что вы сделали, а не только раздел кода, но полный код? –