2015-04-29 6 views
0

Я учусь создавать отчеты с помощью spotfire. Не могли бы вы помочь мне понять выполнимость.Вложенные параметры фильтра в Spotfire

Можно ли изменить фильтры на основе предыдущего выбора (фильтров должен быть изменен на основе предыдущего раздела)

Для примера:

У меня есть следующая таблица с тремя колонками.

Filter1 Filter2 Data 
Name  Name1  test1 
Age  Age1  test2 
Location Location1 test3 

Я планирую иметь параметры фильтра на основе столбца Filter1 и Filter2.

Возможно ли создать выпадающее меню со значениями «Фильтр 1» и «Фильтр 2»? Возможно ли изменить список параметров фильтра на основе первого выпадающего списка.

Например., если «« Фильтр1 »выбран в раскрывающемся списке. Перечень вариантов фильтров должен быть «Наименование», «Возраст», «Местоположение».

если «« Фильтр2 »выбран в раскрывающемся списке. Список параметров фильтра должен быть «Наименование1», «Возраст1», «Location1».

Спасибо

ответ

0

У меня есть решение с использованием JavaScript для эффективного переключения между скрытым DIVs. Я не знаю, как манипулировать фильтром, и какой столбец он указывает в текстовой области через API. Если кто-то знает способ, я бы хотел его услышать!

Вот мое решение с JS:

  1. Настройка текстовой области с выпадающим для выбора в качестве селектора колонки (с колонками, представляющим интересом, выбранных через «Выбрать столбцы ...» диалог) , ярлык, отображающий этот выбор (мы скроем это, я понимаю, что это кажется излишним) и 2 фильтра для ваших 2 столбцов.
  2. Щелкните правой кнопкой мыши текстовую область и нажмите «Изменить HMTL». Используя HTML ниже, измените свой HTML, чтобы он соответствовал. Вы захотите, чтобы у вас был первый DIV, а SPAN - как ваш ярлык, который отображает это свойство drop down, а затем два последних DIVS (LETTER и NUMBER в моем случае) в качестве ваших двух фильтров. Убедитесь, что имя идентификатора DIV точно совпадает с именем столбца.

    <DIV><SpotfireControl id="8dc9d8974bde445cab4c97d38e7908d6" /></DIV> 
    <SPAN id=docProp style="DISPLAY: none"><SpotfireControl id="1311015997cd476384527d91cb10eb52" /></SPAN> 
    <DIV id=LETTER style="DISPLAY: none"><SpotfireControl id="760ae9ffd71a4f079b792fb5f70ac8b4" /></DIV> 
    <DIV id=NUMBER style="DISPLAY: none"><SpotfireControl id="488ef4b1289440d5be24b0dd8cfc3896" /></DIV> 
    
  3. Далее мы реализуем JS. Для этого нажмите кнопку + JS в редакторе HTML. Сам JS находится ниже. Вы захотите изменить мои вводы LETTER и NUMBER в первых двух ссылках getElementById, где мы установили их для отображения: none.

    filter = function(){ 
        input = $("#docProp").text().trim() //Take the text from our hidden label and trim it from any white space. 
        document.getElementById("LETTER").style.display = 'none'; //Reset DIV 
        document.getElementById("NUMBER").style.display = 'none'; //Reset DIV 
        document.getElementById(input).style.display = 'block'; //Set new display 
    } 
    
    //Run this function every 333ms or other length of time desired to update your filters. 
    setInterval(filter,333) 
    //Larger numbers mean slower response and better performance vs. faster response and worse performance. Tune as necessary. 
    

    В качестве альтернативы вместо сканирования каждые X миллисекунд (это может вызвать некоторое сопротивление производительности), вы можете сделать кнопку JS, чтобы запустить его вручную. например$("#divIdForButtonPlacement").button().bind('click',filter)

  4. Несколько изображений моей установки для тестирования показаны ниже. Дайте мне знать, если у вас есть какие-либо вопросы по этому поводу.

text_area

letter

number

+0

спасибо Clesiemo3. Позвольте мне попробовать этот вариант – sasecse

+0

@sasecse: Это работало для вас? Дайте знать, если у вас появятся вопросы. – clesiemo3

+0

есть. Это работало для меня. Спасибо, Clesiemo3 – sasecse

1

Мы также можем создать каскадный выпадающий список с помощью следующих шагов.

  1. Создать «свойство Control - Выпадающий список» myDropDownList
  2. Выберите «уникальное значение столбца» для заполнения выпадающего списка (значения).
  3. Перейти к «Вставка -> Рассчитано Колонка»
  4. Используйте простой условный оператор что-то вроде If ([VALUE1] = '$ {myDropDownList}', [Value 2], NULL)
  5. Используйте вновь созданный столбец в текстовом поле. Это будет обновлено в соответствии с предыдущим разделом.

Спасибо.

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