синтаксис для свойств в выражениях древовидной карты - spotfire analyst 10.8 - PullRequest
0 голосов
/ 11 марта 2020

Я пытаюсь создать древовидную карту с пользовательскими входами для выбора столбцов в иерархии. У меня есть три (раскрывающихся) свойства документа, называемые treemap1, treemap2 и treemap3, значениями каждого являются строки с именами столбцов. Я борюсь с выражением для оси иерархии. Если я использую ...

<${treemap1} NEST ${treemap2} NEST ${treemap3}>

... визуализация работает отлично. Однако я хотел бы добавить опцию «none» для второго и третьего элементов управления, но когда я это сделаю, когда один из них будет установлен на «none», визуализация не будет отображаться и выдает ошибку », выражение недопустимо после NEST ... ". Это имеет смысл, потому что [column] NEST null NEST null не является допустимым выражением. Поэтому я хотел бы добавить оператор case, чтобы обойти проблему, проверить нулевые значения и соответственно изменить выражение. Я пробовал различные варианты этого:

<
case    
    when "${treemap2}" ="" and "${treemap3}" ="" then ${treemap1}
    when "${treemap2}" ="" then ${treemap1} NEST ${treemap3}
    when "${treemap3}" ="" then ${treemap1} NEST ${treemap2}
    else ${treemap1} NEST ${treemap2} NEST ${treemap3}
end
>

... но он никогда не позволяет мне сохранять, всегда возвращая "выражение недопустимо после NEST в строке 4". Я предполагаю, что это проблема синтаксиса, но я застрял. Итак, у меня следующие вопросы: 1) могу ли я использовать указание случая таким образом на категориальной оси и 2) если да, что нужно изменить, чтобы Spotfire принял его?

Заранее спасибо ...

1 Ответ

1 голос
/ 12 марта 2020

Лучше всего было бы добавить 3 кнопки, каждая из которых связана с железным python скриптом, который принимает визуализацию в качестве параметра (назовем его vis).

from Spotfire.Dxp.Application.Visuals import Treemap

vis.As[Treemap]().HierarchyAxis.Expression = "<${treemap1} NEST ${treemap2} NEST ${treemap3}>"

Сделайте то же самое для 2 других, с выражениями <${treemap1} NEST ${treemap2}> и <${treemap1}>.


Вы можете даже иметь только один скрипт для 3 кнопок, установив выражение в качестве параметра (назовем его e):

from Spotfire.Dxp.Application.Visuals import Treemap

vis.As[Treemap]().HierarchyAxis.Expression = e
...