Можно ли создавать динамические раскрывающиеся списки в формах Hyperion Planning

Я работаю над своим первым приложением планирования Hyperion для песочницы, и мне любопытно, возможно ли создать динамические раскрывающиеся списки в формах планирования. Например, если форма требует, чтобы планировщик выбрал команду / центр затрат, компанию и валюту, можно было бы создать динамическую форму, такую, чтобы:

Когда планировщик выбирает конкретный МВЗ, динамически заполняются раскрывающиеся списки "Компания" и "Валюта" со всеми действительными вариантами выбора для данного МВЗ / группы.

1 ответ

Решение

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

В скрипте Dropdown1 OnChange:

var objDD1 = this;
var objDD2 = ActiveDocument.Sections['Dashboard'].Shapes['Dropdown2'];

var value1 = 'Selection';
var objTable1 = ActiveDocument.Sections['Table'];
var objColumn1 = objTable1.Columns['List_Items'];

var value2 = 'Selection2';
var objTable2 = ActiveDocument.Sections['Another Table'];
var objColumn2 = objTable2.Columns['List_Items'];

// go through this dropdown
for(var x=1; x<=objDD1.Count; x++)
{
  // stop when you get to the item that's selected
  if(objDD1.Item(x) == objDD1.SelectedIndex)
  {
    // pick the correct list
    switch(objDD1.Item(x))
    {
      case value1:
        var objTable = objTable1;
        var objColumn = objColumn1;
        break;
      case value2:
        var objTable = objTable2;
        var objColumn = objColumn2;
        break;
      default:
        Console.Writeln('Error with selection');
    }

    // empty the target dropdown
    objDD2.RemoveAll();

    // Go through all the rows of the table
    for(var y=1; y<=objTable.RowCount; y++)
    {
      // from the column, go through each cell in order
      var value = objColumn.GetCell(y);

      // add the contents of that cell to the dropdown options
      objDD2.Add(value);
    }
  // dropdowns only have one selection.  
  // once that's found, stop the for loop
  break;
  }
}
Другие вопросы по тегам