2016-11-22 8 views
0

У меня есть свойство документа, которое используется в качестве фильтра для отчетов. Это многопользовательский список. Я создал вычисляемое поле (флаг), который использует это выражение:Spotfire 6.5: Как проверить точное значение в функции поиска

if(find(Upper(Concatenate([Col1],' | ',[Col2])),Upper('$map("sum([${Property}])", ",")'))>0,"Yes", "No") 

Дела здесь, когда я выбираю значение из свойств а именно список. «TV | HDTV», тогда все те значения из таблицы данных начинаются. Возвращаясь к позиции, а именно. «TV | HD», «TV | HDTV» оба значения появляются на графике. Значения объединяются в строку, которую я не хочу. Есть ли способ, которым я могу сделать точное совпадение, или эта формула может быть изменена.

Я не могу изменить этот флаг на любой другой тип данных, так как на основе этого поля используется около 30 вычислений.

С уважением,

Subro

ответ

2

Построил это самостоятельно. Я понял, что функция карты действует как шаблон. Поэтому я подумал, почему бы не изменить шаблон. Вот код, который я использовал:

If(Upper(Concatenate([Col1],' | ',[Col2])) in ($map("'${Property}'", ",")),"Yes","No") 

Это прекрасно работает с моими значениями. Я проверил его для многих сценариев. Также для свойства я использовал поле, чтобы заполнить его, где я применил Upper, так что в основном он содержит уже значения, которые входят в верхний. @niko: Благодарим вас за помощь. Я уверен, что это сработало бы. Приносим извинения за потраченное время от моего имени.

С уважением,

Subro

1

вы могли бы попробовать регулярное выражение заменить сравнения:

If(RXReplace(Concatenate([Col1], ' | ', [Col2]), Concatenate('^', '$map("sum([${Property}])", ",")', '$'), "", "i") = "", "Yes", "No") 

если матч игольчатые и Haystack строк, RXReplace() (я добавил "i" десенсибилизировать случай) вернет пустую строку.

вы может должен выбрать другой соединительный символ, кроме трубы, или вам может понадобиться конкатенация с "\\|", если это невозможно.

+1

Спасибо @niko. Я уже понял это. Я использовал что-то более легкое. – Subro

+0

Нет проблем! Было бы здорово, если бы вы приняли решение в качестве ответа. Я не видел много примеров '$ map()', поэтому было бы полезно посмотреть, что вы придумали :) – niko

+1

Уже сделано братом! :) – Subro

 Смежные вопросы

  • Нет связанных вопросов^_^