页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。


...

##

...

数据模型取数

...






-<strong>接口调用-方式1</strong>


```java
import smartbi.net.sf.json.JSONObject;

...


import

...

smartbi.net.sf.json.JSONArray;

...


import

...

smartbi.sdk.ClientConnector;

...


import

...

smartbi.sdk.InvokeResult;

...



public

...

class

...

DataModelDemo

...

{

        publicstaticvoidmain(String[]

...

args)

...

{
        //

...

用户名
        Stringuser = "admin";

...


        //

...

密码
        Stringpassword = "admin";

...


        // Smartbi链接http://10.10.35.85:18080/smartbi

...


        StringsmartbiURL = "http://localhost:8080/smartbi";

...


        //

...

创建Smartbi链接对象
        ClientConnectorconn = newClientConnector(smartbiURL);

...


        //

...

建立此连接时,就对smartbi进行了登录
        booleanret = conn.open(user,

...

password);

...


        Stringstr = "参考下面post的内容";

...


        //

...

post的内容说明,参考接口调用-方式2的说明,如:

...


        //

...

str

...

=

...

"{\"dataSetId\":

...

\"I8a8aa3d4018220a120a154fd018220c691c50013\",\"rows\":

...

[

...

\"product_name\"],\"columns\":

...

[\"store_sales_m\"]}";

...


        JSONObjectobj = JSONObject.fromString(str);

...


        //

...

查询模型
        InvokeResultres = conn.remoteInvoke("AugmentedDataSetForVModule",

...

"getData",

...

new

...

Object[]{obj});

...


        //

...

结果示例可以看附件,result.

...

txt:https://wiki.smartbi.com.cn/download/attachments/136905788/result.txt?api=v2

...


        /*JSONObject

...

result

...

=

...

(JSONObject)

...

res.getResult();

...


        JSONArray rows = result.getJSONArray("iterator");

...


        for (int

...

i

...

=

...

0;

...

i

...

<

...

rows.length();

...

i++)

...

{
          JSONArray cells = (JSONArray)

...

rows.get(i);

...


          for (int

...

j

...

=

...

0;

...

j

...

<

...

cells.length();

...

j++)

...

{
            JSONObject cell = (JSONObject)

...

cells.get(j);

...


            System.out.println(cell.get("value").toString());

...


          }
        }*/
        conn.close();

...


        }
}
```

-<strong>接口调用-方式2(仅支持在已登录的情况下)</strong>

http://host:port/smartbi/smartbix/api/augmentedQuery/data/

...



-<strong>接口请求类型</strong>

POST

-<strong>返回值</strong>

<strong>DataIterator 数据结果</strong>

| <strong>属性</strong> | <strong>类型</strong>    | <strong>说明</strong>            |
| ---------------------

...

|

...

------------------------

...

|

...

--------------------------------

...

|

...


|

...

columnLabels          | List<String>             | 数据迭代器对应的列表标题列表占位 |
| iterator              | Iterator<List<CellData>> | 结果(二维数组)                 |
| totalRowCount         | Int                      | 总行数,目前不支持,返回-1       |

<strong>CellData 单元格数据</strong>

| <strong>属性</strong> | <strong>类型</strong> | <strong>说明</strong> |
| ---------------------

...

|

...

---------------------

...

|

...

---------------------

...

|

...


|

...

type                  | ValueType             | 数据类型              |
| displayValue          | String                | 显示值                |
| value                 | Object                | 真实值                |

### 示例-普通二维查询

普通二维查询,维度放行区、度量放列区

```json
{
    "dataSetId": "I8a8aa3d4018220a120a154fd018220c691c50013",
    "rows": [
        "product_name"
    ],
    "columns": [
        "store_sales_m"
    ]
}
```

![](https://wiki.smartbi.com.cn/download/attachments/115002507/ZD2lbXy2CooAHIxnYkbcEvJSnYc.png)

...



###

...

示例-交叉表查询

...



交叉表查询的情况,度量放行区

...



```json

...


{
    "dataSetId":

...

"I8a8aa3d4018220a120a154fd018220c691c50013",

...


    "rows":

...

[
        "product_name","store_sales_m"

...


    ]
}
```

### 示例-过滤

...



```json

...


{
    "dataSetId":

...

"I8a8aa3d4018220a120a154fd018220c691c50013",

...


    "rows":

...

[
        "product_name"

...


    ],
    "columns":

...

[
        "store_sales_m"

...


    ],
    "filters":

...

[
        {
            "name":

...

"product_name",

...


            "operation":"EQUALS",

...


            "values":["型号1"]

...


        }
    ]
}
```
### 示例-过滤关系

使用RelationNode组织筛选器之间的关系
relationNode有两种结构,

关系组,用于设置子项的连接关系
```json
{
  "childNodes":

...

[],

...

//

...

relationNode列表:

...

可以是关系组

...

也可是叶子节点

...


  "leaf":

...

false

...


}

...


```

...



叶子节点,即筛选器节点

...


```json

...


{
  "filter":

...

{},

...

//

...

filters

...

中对应的

...

filter

...

此时filters中的filter要有id,且此处filter的id与filters中的id要对应,详见下方完整示例

...


  "leaf":

...

true

...


}

...


```

...


完整示例

...


![](https://wiki.smartbi.com.cn/download/thumbnails/136905788/image2025-2-13_14-9-19.png)

...



```json

...


//

...

使用relationNode设置

...

筛选关系节点

...


//

...

(OrderID

...

>

...

10250

...

OR

...

CustomerID

...

=

...

'VIENT')

...

AND

...

EmployeeID

...

=

...

5

...



{
  "dataSetId":

...

"I8a8a9f230194f2cef2ce390b0194f2ce390b0000",

...


  "rows":

...

[
    "OrderID",

...


    "CustomerID",

...


    "EmployeeID"

...


  ],

...


  "columns":

...

null,

...


  "nameLabelMap":

...

null,

...


  "filters":

...

[
    {
      "id":

...

"I8a8a9f230194f3e6f3e64dfa0194f3e64dfa0000",

...

//

...

此处id与relationNode中的filter的id要对应上
      "name":

...

"OrderID",

...


      "operation":

...

"GREATER",

...


      "values":

...

[
        "10250"
      ]
    },
    {
      "id":

...

"I8a8a9f230194f3e6f3e64dfa0194f3e64dfa0001",

...


      "name":

...

"CustomerID",

...


      "operation":

...

"EQUALS",

...


      "values":

...

[
        "VINET"
      ]
    },
    {
      "id":

...

"I8a8a9f230194f3e6f3e64dfa0194f3e64dfa0002",

...


      "name":

...

"EmployeeID",

...


      "operation":

...

"EQUALS",

...


      "values":

...

[
        "5"
      ]
    }
  ],
  "relationNode":

...

{
    "childNodes":

...

[
      {
        "childNodes":

...

[
          {
            "filter":

...

{
              "id":

...

"I8a8a9f230194f3e6f3e64dfa0194f3e64dfa0000",

...


              "name":

...

"OrderID",

...


               "operation":

...

"GREATER",

...


              "values":

...

[
                "10250"
              ]
            },
            "leaf": true
          },
          {
            "filter": {
              "id": "I8a8a9f230194f3e6f3e64dfa0194f3e64dfa0001",
              "name": "CustomerID",
              "operation": "EQUALS",
              "values": [
                "VINET"
              ]
            },
            "leaf": true
          }
        ],
        "relation": "OR",
        "leaf": false
      },
      {
        "filter": {
          "id": "I8a8a9f230194f3e6f3e64dfa0194f3e64dfa0002",
          "name": "EmployeeID",
          "operation": "EQUALS",
          "values": [
            "5"
          ]
        },
        "leaf": true
      }
    ],
    "relation": "AND",
    "leaf": false
  }
}
```
### 示例-快速度量、排序

![](https://wiki.smartbi.com.cn/download/attachments/115002507/PyTgb04QAoytS4xvlo4cULJxnhg.png)

...



###

...

示例-分类汇总、提示

...



![](https://wiki.smartbi.com.cn/download/attachments/115002507/CHfSb950Uo9Dzjx9zXjcLrpDnsc.png)

...



###

...

私有计算度量、私有分组字段

...



```json

...


{
        "dataSetId":

...

"I8a8aa3d4018220a120a154fd018220c691c50013",

...


        "rows": ["sales_region2",

...

"customGroup"],

...


    "columns":

...

["store_sales_m",

...

"custom1"],

...


    "custom":

...

{
        "items":

...

[
            {
                "name":

...

"custom1",

...


                "expression":

...

"[Measures].[store_sales_m]

...

+

...

1",

...


                "valueType":

...

"BIGDECIMAL",

...


                "type":

...

"CALC_MEASURE"

...


            }, {
                "name":

...

"customGroup",

...


                "expression":

...

"{\"calcField\":{\"type\":\"CALC_GROUP\",\"define\":{\"expression\":{\"groupType\":\"ENUM\",\"valueList\":[{\"enumData\":[[\"中型卖场\",\"中型卖场\"],[\"大型超市\",\"大型超市\"],[\"小型卖场\",\"小型卖场\"]],\"id\":1,\"name\":\"卖场\"}],\"otherName\":\"其他\",\"mergeIntoOneItem\":\"merge\",\"valueType\":\"STRING\"},\"ref\":\"AUGMENTED_DATASET_FIELD.I8a8aa3d4018220a120a154fd018220c691c50013.Field-FoodmartCN_datamodel-null-null-store-store_type\"}}}",

...


                "valueType":

...

"STRING",

...


                "type":

...

"CALC_GROUP"

...


            }
        ]
    }
}
```

![](https://wiki.smartbi.com.cn/download/attachments/115002507/JLa0bmnGuoBwWOxD5gccowQanId.png)

...



-<strong>接口参数及其说明</strong>

##### <strong>DataModelQueryVO 模型查询</strong><strong>VO</strong>

| <strong>属性</strong> | <strong>类型</strong>      | <strong>说明</strong>                                                                                          |
| --------------------- | --------------------------

...

|

...

--------------------------------------------------------------------------------------------------------------

...

|

...


|

...

dataSetId             | Stirng                     | 模型 id                                                                                                        |
| rows                  | List<String>               | 行区字段名称列表                                                                                               |
| columns               | List<String>               | 列区字段名称列表                                                                                               |
| nameLabelMap          | Map<String, String>        | 汇总别名设置                                                                                                   |
| filters               | List<DataModelFilterVO>    | 筛选区列表                                                                                                     |
| quickCalculations     | List<DataModelQuickCalcVO> | 快速计算定义列表                                                                                               |
| custom                | DataModelCustomVO          | 多维元素私有定义                                                                                               |
| orderBys              | List<DataModelOrderByVO>   | 排序设置列表                                                                                                   |
| subtotals             | List<DataModelSubtotalVO>  | 分类汇总设置列表                                                                                               |
| tooltips              | List<DataModelTooltipVO>   | 提示字段设置列表                                                                                               |
| paramValues           | Map<String, Object>        | 参数值映射:参数名 <-> 参数值                                                                                   |
| rowPageNum            | int                        | 第几页(行区),默认是 1                                                                                       |
| rowsPerPage           | int                        | 每页几行(行区),默认是 20                                                                                    |
| queryType             | QueryType                  | 查询方式:LIST_QUERY、MONDRIAN_QUERY,分别代表:清单查询、多维查询;清单查询时只能查维度、层次;默认是多维查询 |

##### <strong>DataModelFilterVO 筛选区</strong><strong>VO</strong>

| <strong>属性</strong> | <strong>类型</strong> | <strong>说明</strong> |
| ---------------------

...

|

...

---------------------

...

|

...

---------------------

...

|

...


|

...

name                  | Stirng                | 字段名称              |
| operation             | FilterOperationType   | 运算符类型            |
| values                | List<Object>          | 过滤器的值            |

##### <strong>DataModelQuickCalcVO 快速计算设置</strong><strong>VO</strong>

| <strong>属性</strong> | <strong>类型</strong> | <strong>说明</strong>                                                              |
| ---------------------

...

|

...

---------------------

...

|

...

----------------------------------------------------------------------------------

...

|

...


|

...

name                  | Stirng                | 快速计算命名                                                                       |
| fieldName             | String                | 需要快速计算的字段名称                                                             |
| calcType              | CalculationType       | 计算类型(取值见下方)                                                                           |
| timeType              | FieldTreeNodeType     | 时间层次类型:LEVEL_TIME_YEAR、LEVEL_TIME_QUARTER、LEVEL_TIME_MONTH、LEVEL_TIME_

...

DAY,分别代表:年、季、月、日|

...


|

...

timeHierId            | String                | 时间层次 Id (可不填,当行、列区有多个不同日期层次的时候才填)                       |
##### <strong>CalculationType 计算类型</strong>

| 分类          | 枚举值                                      | 说明                          |
|---------------|-----------------

...

---------------------------

...

|-----------------------------

...

|

...


| &zwnj;**统计计算**&zwnj;  | `GLOBAL_PERCENT_OF_TOTAL`                  | 全局总额百分比(占比)        |
|               | `GROUP_PERCENT_OF_TOTAL`                   | 分组总额百分比(占比)        |
|               | `GLOBAL_RANK_ASC`                          | 全局升序排名                  |
|               | `GROUP_RANK_ASC`                           | 分组升序排名                  |
|               | `GLOBAL_RANK_DESC`                         | 全局降序排名                  |
|               | `GROUP_RANK_DESC`                          | 分组降序排名                  |
| &zwnj;**环比计算**&zwnj;  | `PREV_VALUE`                               | 前期值                        |
|               | `PREV_VALUE_COMPARE`                       | 环比                          |
|               | `PREV_VALUE_COMPARE_RISE`                  | 环比增长                      |
|               | `PREV_VALUE_COMPARE_RISE_RATE`             | 环比增长率                    |
| &zwnj;**同比计算**&zwnj;  | `CORRESPONDING_PERIOD_VALUE`               | 同期值                        |
|               | `CORRESPONDING_PERIOD_COMPARE`             | 同比                          |
|               | `CORRESPONDING_PERIOD_RISE`                | 同期增长                      |
|               | `CORRESPONDING_PERIOD_RISE_RATE`           | 同期增长率                    |
| &zwnj;**累计计算**&zwnj;  | `GROWTH_VALUE`                             | 累计值                        |
|               | `CORRESPONDING_PERIOD_GROWTH`              | 同期累计                      |
|               | `CORRESPONDING_PERIOD_GROWTH_COMPARE`      | 同期累计比                    |
|               | `CORRESPONDING_PERIOD_GROWTH_RISE`         | 同期累计增长                  |
|               | `CORRESPONDING_PERIOD_GROWTH_RISE_RATE`    | 同期累计增长率                |
| &zwnj;**累计环比**&zwnj;  | `PREV_PERIOD_GROWTH`                       | 前期累计值                    |
|               | `PREV_PERIOD_GROWTH_COMPARE`               | 累计值环比                    |
|               | `PREV_PERIOD_GROWTH_RISE`                  | 累计值环比增长                |
|               | `PREV_PERIOD_GROWTH_RISE_RATE`             | 累计值环比增长率              |
| &zwnj;**期初期末**&zwnj;  | `PERIOD_BEGIN`                             | 期初值(时点)                |
|               | `PERIOD_GROWTH`                            | 比期初增长(时点)            |
|               | `PERIOD_GROWTH_RISE`                       | 比期初增长率(时点)          |
|               | `PERIOD_CUMULATIVE_BEGIN`                  | 期初值(累计)                |
|               | `PERIOD_CUMULATIVE_GROWTH`                 | 比期初增长(累计)            |
|               | `PERIOD_CUMULATIVE_GROWTH_RISE`            | 比期初增长率(累计)          |
|               | `PERIOD_END`                               | 期末值(时点)                |
|               | `PERIOD_CUMULATIVE_END`                    | 期末值(累计)                |
| &zwnj;**日均计算**&zwnj;  | `PERIOD_AVERAGE_YEAR`                      | 年日均                        |
|               | `PERIOD_AVERAGE_HALFYEAR`                  | 半年日均                      |
|               | `PERIOD_AVERAGE_QUARTER`                   | 季日均                        |
|               | `PERIOD_AVERAGE_MONTH`                     | 月日均                        |

##### <strong>DataModelCustomVO 模型私有定义</strong><strong>VO</strong>

| <strong>属性</strong> | <strong>类型</strong>       | <strong>说明</strong> |
| --------------------- | --------------------------- | --------------------- |
| items                 | List<DataModelCustomItemVO> | 模型私有定义列表      |

##### <strong>DataModelCustomItemVO 模型查询</strong><strong>VO</strong>

| <strong>属性</strong> | <strong>类型</strong> | <strong>说明</strong>                                                     |
| --------------------- | --------------------- | ------------------------------------------------------------------------- |
| name                  | 名称                  | 模型私有定义列表                                                          |
| expression            | String                | mdx 表达式                                                                |
| type                  | FieldTreeNodeType     | CALC_MEASURE、CALC_MEMBER、NAMEDSET,分别代表:计算度量、计算成员、命名集 |
| dataFormat            | String                | 数据格式                                                                  |
| valueType             | ValueType             | 数据类型                                                                  |

##### <strong>DataModelOrderByVO 排序设置 VO</strong>

| <strong>属性</strong> | <strong>类型</strong> | <strong>说明</strong>                                                            |
| --------------------- | --------------------- | -------------------------------------------------------------------------------- |
| fieldName             | Stirng                | 字段名称                                                                         |
| type                  | OrderByType           | 排序类型:ASC、DESC、BASC、BDESC、NONE,分别代表:升序、降序、全局升序、全局降序 |
| orderPriority         | int                   | 优先级                                                                           |

##### <strong>DataModelSubtotalVO 分类汇总 VO</strong>

| <strong>属性</strong> | <strong>类型</strong> | <strong>说明</strong>                         |
| ---------------------

...

|

...

---------------------

...

|

...

---------------------------------------------

...

|

...


|

...

name                  | Stirng                | 字段名称                                      |
| subtotal              | Subtotal              | 字段是否汇总,SHOW、SHOW 分别代表:显示、隐藏 |

##### <strong>DataModelTooltipVO 提示设置 VO</strong>

| <strong>属性</strong> | <strong>类型</strong> | <strong>说明</strong> |
| ---------------------

...

|

...

---------------------

...

|

...

---------------------

...

|

...


|

...

name                  | Stirng                | 字段名称              |