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!