Focal Point
[SOLVED] MDE form editor forgets stack order of controls [SOLVED]

This topic can be found at:
https://forums.informationbuilders.com/eve/forums/a/tpc/f/7971057331/m/9521029013

December 18, 2008, 04:43 PM
J. Erickson
[SOLVED] MDE form editor forgets stack order of controls [SOLVED]
I have some forms where I'm putting text controls on top of other text or HTML controls for design purposes. When I reopen one of these forms after having previously worked on it and closed it, MDE opens the form but some controls are on top of other controls when they should be underneath them. This seems to happen randomly because occasionally I'll open the form and the controls will be exactly how I placed them as far what's on top and what's underneath. This same behavior occurs when I do a Run Procedure on the Maintain application in MDE. Sometimes it runs in IE with the controls in the correct stack order and sometimes not.

I've tried putting these controls on different layers too but this doesn't affect the random way the form editor opens the form. It seems like Layers don't really affect the stack order of controls in either the running Maintain app in the browser or in the MDE form editor. Layers seems to be only for being able to hide and showing controls during execution of the app. Is that correct? Is there any way I can guarantee that a control will always be on top of another control in the form in both the browser and in the form editor?

I'm basically putting some text inside a box with border and a different background color than the rest of the form. I've tried using both an empty text control with border and background color and an HTML control with no content and a background color and border. Either way I'm placing one or more text controls with actual text on top of these "boxes". After I save the form, close it, and reopen it, more times than not the "box" control is on top of the text control(s) containing the actual text. Putting the text right into the "boxes" I've created just isn't flexible enough. That's the best I can describe the problem.

I could do something with CSS and/or JavaScript but I'm not sure if just using z-index would work or what.

Thanks for any help/advice.

James

This message has been edited. Last edited by: Kerry,


FOCUS 7.7.03
WebFOCUS 8.0.x/8.1
z/OS, Windows
December 18, 2008, 04:49 PM
J. Erickson
Forgot to mention that when this problem occurs I then have to select all of the controls that are supposed to be under other text controls but have jumped on top and then select Send To Back on the Layout menu in MDE. That's what prompted me to post this question. I have a lot of forms where I'm putting controls on top of other controls so I have to Send To Back a lot when working with the forms. It's starting to get kind of annoying.


FOCUS 7.7.03
WebFOCUS 8.0.x/8.1
z/OS, Windows
December 19, 2008, 05:46 AM
<JG>
quote:
It's starting to get kind of annoying


None of the IBI layout tools have ever been able to manage this issue correctly.

And in almost every release the quirkiness is slightly different.
December 19, 2008, 09:35 AM
Dave Ayers
James,

Layers are really only for managing the display of controls in MDE during ' design time'. They don't have anytning to do with what happens when the form runs.

You should be using the Winform command:

Winform Set formname.controlname.Visible To Yes ; (or No)

To control what display at 'run time'. Alternatively, you could use Javascript.

I haven't noticed your problem, but I have become accustomed to selecting stacked controls from the dropdown box above the Properties window. So I haven't paid much attention to which control is on top of a set of overlapping controls.

So, use the Properties dropdown box to select controls to update their properties in MDE, and the Winform Set command (or Javascript)to change properties at run time, and you should be OK.


Regards,
Dave

http://www.daveayers.com

WebFocus/Maintain 7.6.4-8
on Win2000 and 2003 Server
December 19, 2008, 11:01 AM
J. Erickson
This issue isn't about making controls visible or not during runtime. It's about not seeing consistent behavior of which control is on top of another control during both execution of the Maintain app in the browser and when opening the form in MDE to edit it.

I'm already familiar with using all the WINFORM commands to set properties of controls during runtime. I use those quite a bit already. JG's comment is right on. I have seen this same inconsistent behavior on several different 7.x releases of Dev Studio MDE.

My thinking was that if you have 2 Text controls, for instance, and you put one on top of the other in the form editor, then the DIVs that comprise these Text controls might be assigned a z-index in the CSS. From looking at the source of my running app, there is no z-index in the inline style for any of those controls. And position is absolute so z-index is possible with these controls. Of course that's just the running application. The editor itself randomly places one control on top of the other each time the form is opened. I see in the code in the WFM file itself that there is nothing there that tells the editor to display one control on top of the other when the form is opened. There are attributes like BorderWidth, IsBoundToVar, Enabled, Left, Right, Top, TabIndex, etc. for the controls but nothing that says display this control above or below any other control. Based on that, it would make sense that the editor would randomly put one control on top of another. Too bad it means that I have to use Send To Back on several controls every time I open a form at least 50% of the time.

I just noticed that HTML Layout Painter has a Z-Index in the Style Composer. Now if we could just have that in the MDE form editor...


FOCUS 7.7.03
WebFOCUS 8.0.x/8.1
z/OS, Windows
December 19, 2008, 11:17 AM
Maintain Wizard
Well, the good news is, Zindex was added to 7.65. This option appears on the property sheet of every object in the MDE. There are still some things that we cannot control, like displaying objects over grids. However, this should solve some runtime issues.

As for design time, you may find that objects lower on the tab order list get displayed on top of other objects. Even though text objects don't actually get a tab order rank, the ones listed at the top of the tab order list seem to go to the back of the stack.

Mark
December 19, 2008, 11:26 AM
J. Erickson
That's great news. I didn't know that. I'm still on DS 7.6.4. Time to ask for a DS upgrade.
Thanks for the heads up on that, Mark.

James


FOCUS 7.7.03
WebFOCUS 8.0.x/8.1
z/OS, Windows