createWorkbook(context)

Example

            function createWorkbook(context) {
    var dataset = ds.load({
        id: 'customscript_dataset'
    });

    var idExpr = dataset.getExpressionFromColumn({
        alias: 'id'
    });
    var sort = wb.createSort({
        ascending: false
    });

    var col1 = wb.createTableColumn({
        datasetColumnAlias: 'id'
    });
    var col2 = wb.createTableColumn({
        datasetColumnAlias: 'name'
    });
    var col3 = wb.createTableColumn({
        datasetColumnAlias: 'date'
    });
    var col4 = wb.createTableColumn({
        datasetColumnAlias: 'total'
    });
    var tableview = wb.createTableDefinition({
        id: 'view',
        name: 'View',
        dataset: dataset,
        columns: [col1, col2, col3, col4]
    });

    var rowItem = wb.createDataDimensionItem({
        label: 'A',
        expression: dataset.getExpressionFromColumn({
            alias: 'date'
        })
    });

    var rowDataDimension = wb.createDataDimension({
        items: [rowItem]
    });

    var rowSection = wb.createSection({
        children: [rowDataDimension]
    });

    var columnItem = wb.createDataDimensionItem({
        label: 'B',
        expression: dataset.getExpressionFromColumn({
            alias: 'total'
        })
    });

    var columnDataDimension = wb.createDataDimension({
        items: [columnItem]
    });

    var columnMeasure = wb.createMeasure({
        label: 'M',
        expression: idExpr,
        aggregation: workbook.Aggregation.MAX
    });

    var columnSection = wb.createSection({
        children: [columnDataDimension, columnMeasure]
    });

    var constExpr = wb.createConstant(1);
    var anyOfExpr = wb.createExpression({
        functionId: workbook.ExpressionType.ANY_OF,
        parameters: {
            expression: idExpr,
            set: [constExpr]
        }
    });
    var notExpr = wb.createExpression({
        functionId: workbook.ExpressionType.NOT,
        parameters: {
            a: anyOfExpr
        }
    });

    var allSubNodesSelector = wb.createAllSubNodesSelector();
    var rowItemSelector = wb.createDimensionSelector({
        dimension: rowDataDimension
    });
    var columnItemSelector = wb.createDimensionSelector({
        dimension: columnDataDimension
    });

    var rowSelector = wb.createPathSelector({
        elements: [allSubNodesSelector, rowItemSelector]
    });
    var columnSelector = wb.createPathSelector({
        elements: [allSubNodesSelector, columnItemSelector]
    });

    var rowSort = wb.createDimensionSort({
        item: rowItem, sort:sort
    });

    var columnSort = wb.createMeasureSort({
        measure: columnMeasure,
        sort: sort,
        otherAxisSelector: allSubNodesSelector
    });

    var rowSortDefinition = wb.createSortDefinition({
        sortBys: [rowSort],
        selector: rowSelector
    });

    var columnSortDefinition = wb.createSortDefinition({
        sortBys: [columnSort],
        selector: columnSelector
    });

    var rowAxis = wb.createPivotAxis({
        root: rowSection,
        sortDefinitions: [rowSortDefinition]
    });

    var columnAxis = wb.createPivotAxis({
        root: columnSection,
        sortDefinitions: [columnSortDefinition]
    });

    var limitingFilter = wb.createLimitingFilter({
        row: true,
        filteredNodesSelector: rowSelector,
        limit: 1,
        sortBys: [rowSort]
    });

    var conditionalFilter = wb.createConditionalFilter({
        row: false,
        filteredNodesSelector: rowSelector,
        otherAxisSelector: columnSelector,
        measure: columnMeasure,
        predicate: notExpr
    });

    var pivot = wb.createPivotDefinition({
        id: 'pivot',
        name: 'Pivot',
        dataset: dataset,
        rowAxis: rowAxis,
        columnAxis: columnAxis,
        filterExpressions: [notExpr],
        aggregationFilters: [limitingFilter, conditionalFilter]
    });

    var firstAxis = wb.createChartAxis({
        title: 'First axis'
    });
    var secondAxis = wb.createChartAxis({
        title: 'Second axis'
    });

    var category = wb.createCategory({
        axis: firstAxis,
        root: rowSection
    });
    var legend = wb.createLegend({
        axes: [secondAxis],
        root: columnSection
    });
    var aspect = wb.createAspect({
        measure: columnMeasure
    });
    var series = wb.createSeries({
        aspects: [aspect]
    });

    var chart = wb.createChartDefinition({
        id: 'chart',
        name: 'Chart',
        dataset: dataset,
        category: category,
        legend: legend,
        series: [series]
    });

    var workbook = wb.create({
        description: 'My Test Workbook',
        name: 'Test Workbook',
        tableDefinitions: [tableview],
        pivotDefinitions: [pivot],
        chartDefinitions: [chart]
    });

    context.workbook = workbook;
} 

          

Related Topics

Workbook Builder Plug-in Interface Definition

General Notices