Menu
Free Trials
Table of contents

Slice

Slice is a definition of what data subset from your data source is going to be shown in your report when you open it. By using slice in a report you can easily switch between different sets of values. Find more details below in the sections:

Slice properties

You can define fields that go to rows, go to columns and go to measures, add filtering, sorting, report filtering, expands and drills. Here is a list of all available properties for slice:

  • columns – Array of objects. A list of hierarchies selected in the report slice for columns. Each object can have the following properties:
    • uniqueName – String, hierarchy unique name.
    • caption (optional) – String, hierarchy caption;
    • dimensionName (optional) – String, dimension name;
    • filter (optional) – object with the information on filtering:
      • members – Array of hierarchy’s members to be reflected/shown according to the applied filter;
      • negation – Boolean. Represents the filter on hierarchy’s members. It tells the component to show the members of hierarchy specified in items (true) or to show all the members of hierarchy except the items (false).
      • measure – Represents the filter on values. The name of the measure on which Top X or Bottom X filter will be applied.
      • quantity – Represents the filter on values. Number of elements to choose for the Top X filter if type is 'top' or for the Bottom X filter if type is 'bottom'.
      • type – Represents the filter type applied to the hierarchy. It can be: 'none' – filter is not applied to the hierarchy, 'members' – the filter on hierarchy’s members is applied, 'top' – the filter Top X is applied on values, 'bottom' – the filter Bottom X is applied on values.
    • levelName (optional) – String. Used to specify the level of the hierarchy that is shown on the grid.
    • sort (optional) – String, sorting type for the members ("asc", "desc" or "unsorted");
    • sortOrder (optional) – Array. Using this property you can set custom sorting for hierarchy members. You can specify sortOrder the following way: [“member_1”, “member_2”, etc.].
  • drills (optional) – Object. Stores the information about drill-downs in multilevel hierarchies.
    • drillAll (optional) – Boolean. Indicates whether all levels of all hierarchies in slice will be drilled down (true) or drilled up (false).
    • columns (optional) – Array of objects. It is used to save and restore drilled down columns.
    • rows (optional) – Array of objects. It is used to save and restore drilled down rows.
  • expands (optional) – Object. Stores the information about expanded nodes.
    • expandAll (optional) – Boolean. Indicates whether all nodes in the data tree will be expanded (true) or collapsed (false) on the grid and on charts.
    • columns (optional) – Array of objects. It is used to save and restore expanded columns.
    • rows – Array of objects. It is used to save and restore expanded rows.
  • measures – Array of objects. A list of selected measures and those which have different properties from default ones. Each object has the following properties:
    • uniqueName – String, measure unique name.
    • active (optional) – Boolean value that defines whether the measure will be in the list of available values but not selected (false) or will be selected for the report (true).
    • aggregation (optional) — String, unique name of aggregation that will be applied to the measure ("sum", "count", "distinctcount", "average", "product", "min", "max", "percent", "percentofcolumn", "percentofrow", "index", "difference", "%difference"). If it is calculated measure, it will be "none".
    • availableAggregations (optional) — Array of strings that represents the list of aggregation functions which can be applied to the current measure. If it is calculated measure, it will be [].
    • caption (optional) – String, measure caption.
    • formula (optional) – String that represents the formula that can contain the following operations: +, -, *, /; other measures can be addressed using measure unique name and aggregation function, for example sum("Price") or max("Order"). Pivot supports the following aggregation functions for CSV data source: "sum", "count", "distinctcount", "average", "product", "min", "max", "percent", "percentofcolumn", "percentofrow", "index", "difference", "%difference".
    • format (optional) – String, name of number formatting.
    • grandTotalCaption (optional) – String, measure grand total caption.
  • pages – Array of objects. A list of hierarchies selected in the report slice for pages (“Report Filter”). Each object has the following properties:
    • uniqueName – String. Hierarchy unique name.
    • caption (optional) – String, hierarchy caption;
    • dimensionName (optional) – String, dimension name;
    • filter (optional) – object with the information on filtering:
      • members – Array of hierarchy’s members to be reflected/shown according to the applied filter;
      • negation – Boolean. It tells the component to show the members of hierarchy specified in items (true) or to show all the members of hierarchy except the items (false).
    • levelName (optional) – String. Used to specify the level of the hierarchy that is shown on the grid.
    • sort (optional) – String. Sorting type for the members ("asc", "desc" or "unsorted");
    • sortOrder (optional) – Array. Using this property you can set custom sorting for hierarchy members. You can specify sortOrder the following way: [“member_1”, “member_2”, etc.].
  • rows – Array of objects. A list of hierarchies selected in the report slice for rows. Each object can have the following properties:
    • uniqueName – String, hierarchy unique name.
    • caption (optional) – String, hierarchy caption;
    • dimensionName (optional) – String, dimension name;
    • filter (optional) – object with the information on filtering:
      • members – Array of hierarchy’s members to be reflected/shown according to the applied filter;
      • negation – Boolean. Represents the filter on hierarchy’s members. It tells the component to show the members of hierarchy specified in items (true) or to show all the members of hierarchy except the items (false).
      • measure – Represents the filter on values. The name of the measure on which Top X or Bottom X filter will be applied.
      • quantity – Represents the filter on values. Number of elements to choose for the Top X filter if type is 'top' or for the Bottom X filter if type is 'bottom'.
      • type – Represents the filter type applied to the hierarchy. It can be: 'none' – filter is not applied to the hierarchy, 'members' – the filter on hierarchy’s members is applied, 'top' – the filter Top X is applied on values, 'bottom' – the filter Bottom X is applied on values.
    • levelName (optional) – String. Used to specify the level of the hierarchy that is shown on the grid.
    • sort (optional) – String, sorting type for the members ("asc", "desc" or "unsorted");
    • sortOrder (optional) – Array. Using this property you can set custom sorting for hierarchy members. You can specify sortOrder the following way: [“member_1”, “member_2”, etc.].
  • sorting (optional) – Object. Defines the sorting for numbers in a specific row and/or column in the pivot table.
    • column – Object. Defines the sorting for numbers in a specific column. Object has 3 properties:
      • tuple – Array. Consists of unique names that identifies the column in the table based on data in it;
      • measure – String. Measure unique name on which sorting will be applied;
      • type – String, sorting type ("asc" or "desc").
    • row – Object. Defines the sorting for numbers in a specific row. Object has 3 properties:
      • tuple – Array. Consists of unique names that identifies the row in the table based on data in it;
      • measure – String. Measure unique name on which sorting will be applied;
      • type – String, sorting type ("asc" or "desc").
  • useOlapFormatting (optional) – Boolean. It works for MSAS data source (XMLA and Accelerator) and for Mondrian (only Accelerator). Indicates whether the values from data source will be formatted according to the format defined in the cube (true) or not (false). Default value is false. useOlapFormatting is saved in the report JSON only if it is true.

Default slice

If slice was not defined, Flexmonster will select a default slice for the report, where the first hierarchy from data goes to rows and the first measure goes to columns. The automatic default slice selection available for JSON, CSV and OCSV data sources (it is not available for OLAP). You can turn off default slice by setting showDefaultSlice from options to false. For example, have a look at JSON data below:

var jsonData = 
	[
	    {
	        "Category": "Accessories",
	        "Price": 125,
	        "Quantity": 100
	    },
	    {
	        "Category": "Accessories",
	        "Price": 74,
	        "Quantity": 235
	    },
	    {
	        "Category": "Bikes",
	        "Price": 233,
	        "Quantity": 184
	    }
	]

"Category" is the first hierarchy, so it goes to rows. "Price" is the first measure, so it goes to columns. For this dataset, default slice will look the following way:

{
    "dataSource": {
        "data": jsonData
    },
    "slice": {
        "rows": [
            {
                "uniqueName": "Category"
            }
        ],
        "columns": [
            {
                "uniqueName": "[Measures]"
            }
        ],
        "measures": [
            {
                "uniqueName": "Price"
            }
        ]
    }
}

Rows, columns and measures

This is the example of slice with rows, columns and measures

{
    "dataSource": {
        "filename": "http://www.flexmonster.com/download/data.csv"
    },
      "slice": {
        "rows": [
            {
                "uniqueName": "Category",
                "filter": {
                    "members": [
                        "category.[cars]",
                        "category.[bikes]"
                    ]
                },
                "sort": "desc"
            }
        ],
        "columns": [
            {
                "uniqueName": "[Measures]"
            }
        ],
        "measures": [
            {
                "uniqueName": "Price",
                "aggregation": "sum",
                "active": true
            }
        ]
    }
}

Report filter

Report filter allows displaying different data subsets in the report. In Pivot Component pages property is used for defining report filters as follows:

{
    "dataSource": {
        "filename": "http://www.flexmonster.com/download/data.csv"
    },
    "slice": {
        "pages": [
            {
                "uniqueName": "Color",
                "filter": {
                    "members": [
                        "color.[yellow]",
                        "color.[white]"
                    ]
                }
            }
        ],
        "rows": [
            {
                "uniqueName": "Category"
            }
        ],
        "columns": [
            {
                "uniqueName": "[Measures]"
            }
        ],
        "measures": [
            {
                "uniqueName": "Price"
            }
        ]
    }
}

Sorting

This object defines the sorting for numbers in a specific row and/or column in the pivot table. Sorting is usually configured on the grid and then saved within the report. It looks the following way:

"sorting": {
    "column": {
        "type": "desc",
        "tuple": [],
        "measure": "Price"
    }
}

Sorting for the members of columns and rows is defined like this:

"rows": [
    {
        "uniqueName": "Category",
        "filter": {
            "members": [
                "category.[cars]",
                "category.[bikes]"
            ]
        },
        "sort": "desc"
    }
]

Expands

The information about expands and collapses is stored within the slice. When the customer performs one of these operations, all the changes can be saved within the report. Use expandAll property to apply the operation to all levels of data detail at once. This is how expands object looks:

"expands": {
    "expandAll": false,
    "rows": [
        {
            "tuple": [
                "category.[accessories]"
            ]
        },
        {
            "tuple": [
                "category.[cars]"
            ]
        }
    ]
}

Drills

drills object is used to store the information about drill-downs in multilevel hierarchies. Here is the example of drills object:

"drills": {
    "drillAll": false,
    "rows": [
        {
            "tuple": [
                "category.[accessories]"
            ]
        },
        {
            "tuple": [
                "category.[accessories].[bike racks]"
            ]
        },
        {
            "tuple": [
                "category.[accessories].[bottles and cages]"
            ]
        }
    ]
}

Calculated values

You can create as many calculated measures for one report as you need, there is no limit towards the number of calculated measures. When you save the report all the calculated measures will be saved as well and loaded when the report is retrieved. Please note that you can add calculated measures only for reports based on JSON, CSV, OCSV data source. Below is the example of such calculated measure:

"measures": [
    {
        "uniqueName": "Avg",
        "formula": "sum('Price') / count('Category') ",
        "caption": "Avg",
        "active": true
    }
]

Change slice using the Fields List and controls on the grid

Please use the Fields List to define report filters, rows, columns and values in run time.

fieldsList

Sorting, filtering, expand/collapse operations, drill up and down are available directly on the grid and on built-in pivot charts.

You can change slice among with other report parts using API call setReport(). To change only the slice please use runQuery() call.