Flexmonster Pivot allows you to set the specific sorting order for hierarchy members in columns, rows, or report filters. By default, hierarchy members are sorted alphabetically in the component. In OLAP cubes, Flexmonster takes the order that was defined inside the cube. The following options are available to define sorting:
Alphabetical order is used by default. To set reverse alphabetical order or display members unsorted, use the setSort() method. Here is a simple example:
pivot.setSort("Category", "desc");
The sorting type can also be specified directly in the report:
report: { dataSource: { filename: "https://cdn.flexmonster.com/data/data.csv", }, slice: { rows: [ { uniqueName: "Category", sort: "desc", }, ], measures: [ { uniqueName: "Price", }, ], }, }
The sort order can be set via the sortingMethod(). Here is a simple example, where the new sorting function is applied to the "Category"
hierarchy:
pivot.sortingMethod("Category", function (a, b) {
return a < b ? 1 : -1;
});
Adding a custom sorting function is used to override the default alphabetical order. For example, you can make sure that some members are always kept at the end or at the start of the list.
Custom sorting for JSON and CSV data sources can be set via the sortOrder
array. This property can be specified like so: ["member_1", "member_2", etc.]
.
We will analyze a simple example to understand how it works. There is a report with one hierarchy defined as a row:
report: { dataSource: { filename: "https://cdn.flexmonster.com/data/data.csv", }, slice: { rows: [ { uniqueName: "Category", }, ], measures: [ { uniqueName: "Price", }, ], }, }
This hierarchy has the following members: "Accessories", "Bikes", "Clothing", "Components", and "Cars". To define custom sorting, we add the sortOrder
property:
report: { dataSource: { filename: "https://cdn.flexmonster.com/data/data.csv", }, slice: { rows: [ { uniqueName: "Category", sortOrder: [ "Bikes", "Cars", "Clothing", "Accessories", "Components", ], }, ], measures: [ { uniqueName: "Price", }, ], }, }
Now hierarchy members will be displayed in the predefined order:
The reverse alphabetical order will sort in the opposite order to the one defined in the sortOrder
property:
If you remove both alphabetical and reverse alphabetical sorting, hierarchy members will be displayed in the same order they came from the data source:
Custom sorting is an easy way to predefine your own order for columns, rows, or report filters in the slice.