Example of Creating the TransformDialog Component

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

1. Add links to the styles files: PP.css, PP.Express.css, PP.Metabase.css, PP.Ufe.css.

Also, add links to the scenarios files: PP.js, PP.Metabase.js, PP.Express.js, PP.Ufe.js, resources.ru.js.

2. Executing the example requires that the repository contains an express report with the 10902 key. It is allowed to specify another existing express report in the key example.

It is also available to specify own values instead of the 104 dimension key and the 20000 element key.

3. Add a scenario creating an express report and a dialog for editing a formula of the TransformDialog express report dimension:

PP.ImagePath = "../build/img/"; // Path to images folder
PP.ScriptPath = "../build/"; // Path to scenarios folder
PP.CSSPath = "../build/"; // Path to styles files folder
function createTransformer() {
    // Set a path to the root folder containing resources files
    PP.resourceManager.setRootResourcesFolder("../build/resources/");
    // Set language  settings for resources
    PP.setCurrentCulture(PP.Cultures.ru);
    // Create a repository connection
    mb = new PP.Mb.Metabase({
        PPServiceUrl: "PPService.axd?action=proxy",
        Id: "WAREHOUSE",
        UserCreds: {
            UserName: "user",
            Password: "password"
        }
    });
    // Open repository connection
    mb.open();
    // Create a service for working with express reports
    eaxMdService = new PP.Exp.EaxMdService({
        Metabase: mb
    });
    eaxMdService.setMetaGet(eaxMdService.getDefaultMetaGet());
    // Open a document with the 10902 key
    eaxDocument = eaxMdService.editDocument(10902);
    // Create a container for express reports
    expressBox = new PP.Exp.Ui.ExpressBox({
        // Set parent element
        ParentNode: document.body,
        // Set source
        Source: eaxDocument,
        // Set the service
        Service: eaxMdService
    });
    // Resize the ExpressBox container
    window.onresize();
    setTimeout(preloadDialog, 3000);
}
function preloadDialog() {
    // Select the Selection tab in the left panel
    expressBox.getSlidePanelViewToolBar().getItem(1).setIsChecked(True);
    // Expand the Socially Economic Indicators panel
    expressBox.getSlidePanelView().getDetailsContent().getControl().getItems()[9].expand();
    setTimeout(loadDialog, 1000);
}
function loadDialog() {
    // Create a dialog box for settings and editing a formula of express report dimension element
    dialog = new PP.Ufe.Ui.TransformDialog({
        // Set a repository connection
        Metabase: mb,
        // Set a data source
        EaxSource: expressBox.getSource(),
        // Set data of the element that will be loaded on displaying the dialog
        CurDimElementData: eaxDocument.getDims()[1].getElem("20000"),
        // Set key of the dimension, from which data is extracted
        EaxDimKey: 104,
    });
    // Display the dialog box
    dialog.showDialog();
}
var idTime;
// Function for resizing the ExpressBox container on resizing a page
window.onresize = function updateSize() {
    if (idTime)
        clearTimeout(idTime);
    idTime = setTimeout(function() {
        if (expressBox) {
            expressBox.setWidth(document.body.offsetWidth - 5);
            expressBox.setHeight(document.body.offsetHeight - 5);
        }
        idTime = null;
    }, 100);
};

4.  In the <body> tag as the value of the onLoad attribute, specify name of the createTransformer() function.

After executing the example a dialog box for creating and editing a formula of express report dimension element is created:

See also:

TransformDialog