2

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

<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 中做到这一点。

4

1 回答 1

2

实现所需功能的方法有多种

单元格点击功能

有一个特殊属性允许单击名为ic3a的特定数据单元格 阅读更多...

<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>

您应该在选项的“事件”选项卡中为“单击单元格”指定事件名称:“月”。

外部代码

如果您有权访问 ic3Reporting 实例

例如:

var ic3Application = ic3.startReport(options);

并且想要使用您网站上的代码处理当前功能,您可以通过以下方式触发 ic3-internal 事件:

<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 动作小部件

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

只需创建工具/实用程序 > 操作 > 下拉小部件并在“项目向导”选项选项卡中提供所需的月份,并在“事件”选项卡上将“月份”设置为“选择时”事件名称的值。

于 2016-04-27T13:31:21.390 回答