Skip to main content
rombanks
Inspiring
Jun 27, 2019 2:17 PM UTC
Answered

Save All Open Files Constant - Exists?

Hello fellows,

In the Scripting Guide, I don't see such a constant. Is there such a thing?

It is the same as <Shift> + Click File --> Save All Open Files

I need it for an event script. Is there any other way to catch such an event?

BTW, what does Constants.FV_SaveFmtBookWithFm do?

Thanks!

Roman

This topic is closed to new replies. Start a new post to keep the conversation going.
frameexpert
frameexpertCorrect answer
Community Expert
Jun 27, 2019 3:14 PM UTC

Hi Roman,

You can use a general script to capture the "number" of a function that doesn't have a specific Notification. Then you can use this number in an event script to capture that event and do what you need to.

#target framemaker

setupNotifications ();

function setupNotifications () {

   

    Notification (Constants.FA_Note_PreFunction, true);

    Notification (Constants.FA_Note_PostFunction, true);

}

function Notify (note, object, sparam, iparam) {

   

    var element, regex;

   

    // Handle the before/after function events.

    switch (note) {

       

        case Constants.FA_Note_PreFunction :

       

            alert ("PreFunction: " + iparam);

            break;

   

        case Constants.FA_Note_PostFunction :

       

            alert ("PostFunction: " + iparam);

            break;

    }

}

It looks like Save All Open Files is 796. So now you can do something like this:

#target framemaker

setupNotifications ();

function setupNotifications () {

   

    Notification (Constants.FA_Note_PreFunction , true);

}

function Notify (note, object, sparam, iparam) {

   

    // Handle the pre-function event.

    switch (note) {

       

        case Constants.FA_Note_PreFunction :

       

            if (iparam === 796) {

                 // Do something before the Save All Open Files function.

            }

       

        break;

       

    }

}

www.frameexpert.com

4 replies

frameexpert
Community Expert
frameexpertCommunity ExpertCorrect answer
Community Expert
Jun 27, 2019 3:14 PM UTC

Hi Roman,

You can use a general script to capture the "number" of a function that doesn't have a specific Notification. Then you can use this number in an event script to capture that event and do what you need to.

#target framemaker

setupNotifications ();

function setupNotifications () {

   

    Notification (Constants.FA_Note_PreFunction, true);

    Notification (Constants.FA_Note_PostFunction, true);

}

function Notify (note, object, sparam, iparam) {

   

    var element, regex;

   

    // Handle the before/after function events.

    switch (note) {

       

        case Constants.FA_Note_PreFunction :

       

            alert ("PreFunction: " + iparam);

            break;

   

        case Constants.FA_Note_PostFunction :

       

            alert ("PostFunction: " + iparam);

            break;

    }

}

It looks like Save All Open Files is 796. So now you can do something like this:

#target framemaker

setupNotifications ();

function setupNotifications () {

   

    Notification (Constants.FA_Note_PreFunction , true);

}

function Notify (note, object, sparam, iparam) {

   

    // Handle the pre-function event.

    switch (note) {

       

        case Constants.FA_Note_PreFunction :

       

            if (iparam === 796) {

                 // Do something before the Save All Open Files function.

            }

       

        break;

       

    }

}

Translate
www.frameexpert.com
rombanks
rombanksAuthor
Inspiring
Jun 30, 2019 11:21 PM UTC

Hi Rick,

Thank you for your valuable input!

I've just recalled that you had shown me this method once.

Best Wishes,

Roman

Translate
frameexpert
Community Expert
Community Expert
Jul 1, 2019 2:36 AM UTC

Hi Roman, Mark my answer as Correct, if you were able to use it. Thanks -Rick

Translate
www.frameexpert.com