Установите маркировку на viz через IPython

Похож на этот вопрос, но не совсем так: Spotfire: "ограничить данные с помощью маркировки" скриптом Python

У меня есть скрипт, который в настоящее время выглядит так:

from Spotfire.Dxp import Data
from Spotfire.Dxp.Application.Visuals import *

#Remove the current Marking Filter
for filtering in vis.As[VisualContent]().Data.Filterings:
    vis.As[VisualContent]().Data.Filterings.Remove(filtering)

#Set the new Marking Filter
vis.As[VisualContent]().Data.Filterings.Add(Document.Data.Markings["Marking (4)"])

#Set the new Marking
#Need code here

Мне нужно установить новую маркировку для визуализации, чтобы затем я мог использовать ее для другой визуализации. В частности, мне нужно установить это поле: введите описание изображения здесь

ОБНОВЛЕНИЕ Я могу установить маркировку, используя этот кусок кода:

vc = vis.As[VisualContent]()
marking = vc.Data.MarkingReference
marking.SetSelection(marking.GetSelection(dataTable),dataTable)

Это действительно помечает записи, которые я хочу, но, поскольку это не меняет настройки в поле "Маркировка", оно не позволит мне продолжить детализацию (отфильтровано до той же маркировки, что и настройка).

1 ответ

Решение

Этот скрипт в конечном итоге работал для меня:

from Spotfire.Dxp import Data
from Spotfire.Dxp.Application.Visuals import *

if Document.Properties['KPIHierLevel'] == '<[SBA_NAME] NEST [MARKET_NAME]>':
    Document.Properties['KPIHierLevel'] = '<[MARKET_NAME] NEST [BRAND]>'
    for filtering in vis.As[VisualContent]().Data.Filterings:
        vis.As[VisualContent]().Data.Filterings.Remove(filtering)
    vis.As[VisualContent]().Data.Filterings.Add(Document.ActiveMarkingSelectionReference)
    vis.As[VisualContent]().Data.MarkingReference = (Document.Data.Markings["Marking (7)"])
elif Document.Properties['KPIHierLevel'] == '<[MARKET_NAME] NEST [BRAND]>':
    Document.Properties['KPIHierLevel'] = '<[BRAND] NEST [PRODUCT]>'
    for filtering in vis.As[VisualContent]().Data.Filterings:
        vis.As[VisualContent]().Data.Filterings.Remove(filtering)
    vis.As[VisualContent]().Data.Filterings.Add(Document.ActiveMarkingSelectionReference)
    vis.As[VisualContent]().Data.MarkingReference = (Document.ActiveMarkingSelectionReference)

Я также создал сценарий сброса, который похож на это, но устанавливает разметку на что-то отличное от маркировки (7).

Другие вопросы по тегам