As prerequisites, I’ve created a page with an Interactive Grid region on it, I’ve given it a Static ID (‚interactive_grid‘) and I’ve saved two alternative reports (‚A‘ and ‚B‘, each with a different setting).

In order to change the saved reports dynamically, I use JavaScript. For our case, I’ve just written code in the ‚Execute when Page Loads‘ area from the page’s properties and it is as follows:

$( document ).ready(function() {
    var v_array = apex.region("interactive_grid").widget().interactiveGrid("getReports"), // get the full list of saved reports as an array
        v_value = "",
        BreakException = {};
        
    try {
        v_array.forEach(function(element) {
            if (element.name == "B") { // find the desired report's name
                v_value = element.id; // get the report's ID
                throw BreakException; // stop the loop with an exception
            }
        });
    } catch (e) {
        if (e !== BreakException) throw e;
    }

    /* set the displayed report */
    apex.region("interactive_grid").widget().interactiveGrid("getActions").set("change-report", v_value);
});

Previously, I believe that you’ve seen that I set ‚B‘ as the current report. As long as I check for the name of an existing report, I will always get its ID. Therefore, I will be able to use this ID to set which saved report is displayed. You might be asking yourself now the following question: ‚If I want the primary report to be displayed, what element name should I use in the IF clause?‘. The answer is quite simple. The element name for the primary report is an empty string:

$( document ).ready(function() {
    // ...
    try {
        v_array.forEach(function(element) {
            if (element.name == "") { // find the desired report's name
                v_value = element.id; // get the report's ID
                throw BreakException; // stop the loop with an exception
            }
        });
    }
    // ...
});

In order to see what functions could be called on one action, I’ve used the following line:

console.log("action", apex.region("interactive_grid").widget().interactiveGrid("getActions").lookup("change-report"));

By using this, you’ll be able to explore all the action’s options, such as name, label, list of saved reports (‚choices‘), as well as the functions which could be called; in our case, ‚get‘ or ’set‘.

Good luck coding!

Der virtual7 Podcast!

Frei nach dem Motto: „Geht ins Ohr – bleibt im Kopf“ startet die virtual7 GmbH ihren Podcast „Expertengeflüster“.

Getrieben durch die Mission, die digitale Zukunft Deutschlands zu gestalten, werden verschiedene Themen rund um KI, Analytics, DevOps, Fachverfahrensentwicklung und natürlich auch die Unternehmensentwicklung von virtual7 behandelt.

Gelangen Sie hier zu den ersten Folgen!