Jump to content
Salesforce and other SMB Solutions are coming soon. ×

FM7/8 no longer keeps layouts hidden while printing?


ryobimike
 Share

Recommended Posts

In FM3-6, the following script steps would keep the layout xyz hidden from the user:

 

go to layout abc

go to layout xyz

print setup (restore, no dialog)

print (restore, no dialog)

go to layout abc

 

Now in FM7/8 when you use the same script, layout xyz appears (briefly but it is VERY annoying) to the user.

 

Even adding the script step "freeze window" as below does not help:

 

go to layout abc

freeze window

go to layout xyz

print setup (restore, no dialog)

print (restore, no dialog)

go to layout abc

 

Is this behavior normal in FM7/8?

 

Anybody have a workaround?

 

I really do NOT want the user to view "hidden" layouts.

Link to comment
Share on other sites

Hi RiyobiMike:

 

I don't know if it's a "bug," but it certainly has changed from previous versions.

 

Anybody have a workaround?

 

Here's one ... Open a New Window "offstage." In your script, place a "New Window" script step before your "Go to Layout" step. In the options for New Window, enter a negative value in the "Distance from Left" that is something like -1000 pixels ... just make sure this negative value is greater than the width of the triggering window.

 

When the script runs, it will open a New Window with its height and width dimensions inherited from your triggering window. The new "printing" window will open "offstage" on the left. Go to your desired layout, run your print routine, then close the window. Users should be returned to the triggering window.

 

Work with it a little and see what you think. There are several other ways to tweak it. Reply if you want to explore some of the "twists" and variations.

Link to comment
Share on other sites

...hmm, interesting workaround. I have a like concern when opening FM8 on XP. There is a flash of the previous screen used when closing. The only workaround I can think of is to end with the same flash screen that the application will begin with...any other suggestions?

 

DocD

Link to comment
Share on other sites

So Cool!

 

The "offstage" window does the trick. There's just a slight split-second when the window title bar disappears but that's nothing compared to having the undesired layout show up and confuse the user.

 

Thank you ThatOneGuy.

Link to comment
Share on other sites

Great! I use similar "Offstage" routines in all my stuff, now. On Windows, you can use space above your monitor's screen. On Mac, you can only use "offstage" space to the Left, Right, or Bottom.

 

There's just a slight split-second when the window title bar disappears ...

Right, that's because the window the user sees is no longer the current window ... but FM refocuses on the displayed window pretty quickly.

 

 

Glad it worked for you!

Link to comment
Share on other sites

A clever workaround. Just one caution, lots of people (such as myself) use two screens. Users may vary their setup. I need at least 2500 pixels to the right to keep the window hidden, but if tomorrow I decide to swap screens, I suddenly need 1300 pixels to the left. AFAIK there is no Get( ) function that returns the relative position of multiple screens.

 

Personally, I still think it's a bug and it should be fixed. In the meantime this trick may be a nice fix as long as the pixel offset is large enough (say over 2500 pixels).

 

kjoe

Link to comment
Share on other sites

... Just one caution, lots of people (such as myself) use two screens. Users may vary their setup. I need at least 2500 pixels to the right to keep the window hidden, but if tomorrow I decide to swap screens, I suddenly need 1300 pixels to the left....kjoe

True, having multiple monitors (lucky you!) demands a variation. Use the "offstage" space below your monitors' collective resolutions for both platforms. On Windows, you can use the space above.

 

Another way to approach this is by using the Get ( WindowDesktopHeight ) and/or Get ( WindowDesktopWidth ) functions.

• Want to open your hidden window Offstage-Bottom?... use the calculation of "Get ( WindowDesktopHeight ) + 1"

• How about Offstage-Right?... "Get ( WindowDesktopWidth ) + 1"

 

For multiple monitors, I seem to recall that FM executes all the Get Window dimensions functions in the context of monitor on which the application's Menu Bar resides ... if that makes sense.

Link to comment
Share on other sites

For multiple monitors, I seem to recall that FM executes all the Get Window dimensions functions in the context of monitor on which the application's Menu Bar resides ... if that makes sense.

 

I don't think so. If I tested correctly (mac 10.3.9), it returns the dimensions of the screen in which the current active window resides.

 

Another way to approach this is by using the Get ( WindowDesktopHeight ) and/or Get ( WindowDesktopWidth ) functions.

• Want to open your hidden window Offstage-Bottom?... use the calculation of "Get ( WindowDesktopHeight ) + 1"

• How about Offstage-Right?... "Get ( WindowDesktopWidth ) + 1"

 

My point is that in a multi-user environment, any user may do anything he likes and he should not be bothered with where to hide his windows. Also, he can decide to place his monitors one above the other, not just side to side. so my message was, just take a sufficiently large number of pixels to cover multiple screen areas. Then you should be ok in the majority of cases.

 

kjoe

Link to comment
Share on other sites

 Share



×
×
  • Create New...

Important Information

Terms of Use