如何从 icCube 中的 html 下拉菜单触发事件

How to fire an event from html dropdown in icCube

我有以下用于列出月份的下拉菜单的代码。

<select>
 {{ for( var col = 0; col < d.colCount; col++ ) { }}  <!-- This is the way adding js code -->
<option value="[Time].[Month].[month].[{{=d.colLabel(col) }}]">{{=d.colLabel(col) }}</option>
{{ } }}

当用户选择一个选项时,应触发一个名为 month 的事件。我怎样才能在 icCube OLAP 中做到这一点。

您可以通过多种方式实现所需的功能

单元格点击功能

有一个特殊的属性允许点击名为 ic3a read more...

的特定数据单元格
<select>
{{ for( var col = 0; col < d.colCount; col++ ) { }}
    <option ic3a="fireClick(0,{{=col}})" value="[Time].[Month].[month].[{{=d.colLabel(col) }}]">
        {{=d.colLabel(col) }}
    </option>
{{ } }}
</select>

您应该为 "on Cell Click" 指定事件名称:"month" 在选项的 "Events" 选项卡中。

外部代码

如果您有权访问 ic3Reporting 实例

例如:

var ic3Application = ic3.startReport(options);

并希望使用您网站上的代码处理当前功能,您可以通过以下方式触发 ic3 内部事件:

<script type="text/javascript">
    //get ic3application instance

    var ic3Application = ic3.startReport(options);

    function selectMonth (value) {
        ic3Application.fireEvent("month", new viz.event.ValueEvent(value))
    }    
</script>
<select onchange="selectMonth(this.value)">  
    {{ for( var col = 0; col < d.colCount; col++ ) { }}
    <!-- This is the way adding js code -->
    <option value="[Time].[Month].[month].[{{=d.colLabel(col) }}]">
       {{=d.colLabel(col)}}
    </option>
    {{ } }}
</select>

ic3 过滤器小部件

当您想从立方体中获取预定义月份的列表时适用。 添加 MDX 过滤器 > ICCUBE > 下拉小部件并按需要配置其设置。

ic3 动作小部件

当您有特定的月份列表时,此选项适用。

只需创建 Tools/Utilities > 操作 > 下拉小部件并在 "Items Wizard" 选项选项卡中提供所需的月份,并将 "month" 设置为 "on Selection" 事件名称的值"Events" 选项卡。