Example of Creating the EaxDataBox Component

To execute the example, create an HTML page and execute the following operations:

1. Add links to the following files: PP.css, PP.Express.css.

Also add links to the following JS files: PP.js, PP.Metabase.js, PP.Express.js and resources.ru.js.

2. In the <head> tag specify style for the elements:

<style type="text/css">
    body, html {
        height: 100%;
        width: 100%;
        overflow: hidden;
    }
</style>

3. Then in the <head> tag add a script that creates a container for the express report data area EaxDataBox:

<script type="text/javascript">
    PP.setCurrentCulture(PP.Cultures.ru);
    var metabase, eaxAnalyzer, eaxMbService, eaxDataBox;
    function Ready() {
        // Create repository connection
        metabase = new PP.Mb.Metabase({
            ExportUrl: "PPService.axd?action=export",
            ImportUrl: "PPService.axd?action=import",
            PPServiceUrl: "PPService.axd?action=proxy",
            Id: "WAREHOUSE",
            UserCreds: {
                UserName: "user",
                Password: "password"
            }
        });
        // Open repository connection
        metabase.open();
        // Create a service for working with express reports
        eaxMbService = new PP.Exp.EaxMdService({
            Metabase: metabase
        });
        eaxAnalyzer = eaxMbService.editDocument(109);
        // Create a container for express report data area
        eaxDataBox = new PP.Exp.Ui.EaxDataBox({
            ParentNode: "ExpressBox",
            Source: eaxAnalyzer, // Set data source
            Service: eaxMbService, // Set service
            Width: 600,
            Height: 600,
            ImagePath: "../Debug/img/", // Specify path to icons folder
            // Set visibility of the button used to select data view display mode
            EaxModeSelectorViewIsVisible: true,
            // Set visibility of a group of buttons used to select data view option
            EaxToolBarViewIsVisible: true,
            // Set view mode for container with title and  buttons used to select
            // data view option
            HeaderContainerVisibility: PP.Exp.Ui.HeaderContainerVisibility.ShowAll,
            // Set visibility of tab panel in container for express report data area
            TabControl: {IsVisible: false},
            // Create DataChanged event handler 
            DataChanged: function (sender, args) {
                   alert("Data is changed");
            },
            // Set ActiveSheetChanged event handler
            ActiveSheetChanged: function (sender, args) {
                alert("Active sheet is changed");
            },
            // Set DocDataChanged event handler
            DocDataChanged: function (sender, args) {
                alert("Document data is changed");
            },
            // Set DimSelectionChanged event handler
            DimSelectionChanged: function (sender, args) {
                alert("Report dimension selection is changed");
            },
            // Set ObjSizeChanged event handler
            ObjSizeChanged: function (sender, args) {
                alert("Object is resized");
            },
            // Set RequestMetadata event handler
            RequestMetadata: function (sender, args) {
               alert("Metadata query");
            },
            // Set SheetClick event handler
            SheetClick: function (sender, args) {
               alert("SheetClick");
            }
 
        });
        window.onresize(); // Resize EaxDataBox container
        // Refresh all contents of express report data area
        eaxDataBox.refreshAll();
    };
    var idTime;
    // Function for resizing EaxDataBox container on resizing window
    window.onresize = function updateSize() {
        if (idTime) clearTimeout(idTime);
        idTime = setTimeout(function () {
            if (eaxDataBox) {
                // Set new size for EaxDataBox container
                eaxDataBox.setWidth(document.body.offsetWidth - 30);
                eaxDataBox.setHeight(document.body.offsetHeight - 30);
            }
            idTime = null;
        }, 100);
    };
</script>

4. In the <body> tag specify name of the function that creates express report working area, as the value of the attribute onLoad, and position a block with the ExpressBox identifier:

<body onselectstart="return false" onload="Ready()">
    <div id="ExpressBox" style="height: 860px;"></div>
</body>

After executing the example the HTML page contains the EaxDataBox component that looks as follows:

See also:

EaxDataBox