1. Greg Winfield
  2. PowerBuilder
  3. Tuesday, 8 October 2024 13:23 PM UTC

Hi all. I have an MDI app using ribbon control and all was fine until I decided to employ the tabbedview option for sheets within the frame. I'm not suggesting tab is the culprit, but it is the last significant change to the app involving the MDI Frame that I remember making, and had moved onto other unrelated tasks. Point is all had worked fine for awhile until suddenly now sheets will not open, yet the program does not freeze or abort. The following are the tests/results I've determined thus far:

Both opensheet() and opensheetwithparm() returns 1 yet sheets won't load fully

isvalid() is true, and placing a messagebox() in the closequery event of the sheet will fire when shutting down the frame.

Property values of height, x and y are very low double digits at best and some even in the negatives even though they have larger values in property settings.

Property values(X, Y, Width, Height) assigned dynamically after sheet has "loaded" do not take effect

Sheets dynamically assigned above values(X, Y, Width, Height) will not retain the new values

Lowering the ribbon dynamically reveals the top of the sheet frame starting to be displayed. See Pic

Tabbedview on or off doesn't affect outcome, including the secondary maximizealltabsheets option

All other windows called using opensheet() or opensheetwithparm() produce the same result

Same windows called using open() works fine

ControlMenu option on sheets is unchecked

Suspected inheritance or underlying code was interfering with loading process...created a clean stock PB window with one button and loading problem persists

Suspected code within the MDI Frame might be an issue.....stripped it all out and problem still exists

Suspected the ribbon control might be the problem...Removed the control and sheets DID load correctly! Finally getting somewhere

Suspected my custom ribbon control the problem...Loaded a stock PB Ribbon and problem returned.

Suspected the MDI frame the problem...Created a fresh MDI frame and the same problem persists with the ribbon present, BUT, return code for opensheet() is now -1!

Using opehsheet() in a Try/Catch and getmessage() returns an empty string.

Tried a PBDebug trace file but not sure what to look for within it. I can provide it if requested.

Using 2022R3 3391 32 bit W11......and no themes employed.

So my conclusion right now in the rawest form is.....

No MDI Ribbon = sheets load properly, MDI Ribbon present = sheets won't load correctly.

I'm not sure if there is a simple setting somewhere, or I've omitted and/or introduced something critical, all I know is it all did work at one time

Your thoughts/ideas are appreciated

TIA

Attachments (1)
René Ullrich Accepted Answer Pending Moderation
  1. Tuesday, 8 October 2024 13:39 PM UTC
  2. PowerBuilder
  3. # 1

Do you have written code to modify position and size of mdi_1 in the frame?

see here: https://docs.appeon.com/pb2022/pbug/Replace_an_Application_Menu_with_a_RibbonBar.html#d0e25044

 

Comment
  1. Greg Winfield
  2. Tuesday, 8 October 2024 13:59 PM UTC
I did initially for sure, but, in all the testing of stripping code etc it's quite possible I might have blocked the execution of that. I'll take a look at it shortly
  1. Helpful
  1. Greg Winfield
  2. Tuesday, 8 October 2024 15:49 PM UTC
No change in behaviour
  1. Helpful
There are no comments made yet.
John Fauss Accepted Answer Pending Moderation
  1. Tuesday, 8 October 2024 18:53 PM UTC
  2. PowerBuilder
  3. # 2

Here is how I would investigate this issue if I were in your shoes:

1. Create a very simple, bare-bones MDI app and a single, resizable sheet window that contains a Close button; Use base PB objects, not the ancestor/descendant objects your production app uses. Don't include a ribbon bar or use tabbed views. Verify it works.

2. Add a simple ribbon bar to the example app. Verify it works.

3. Temporarily discontinue using the ribbon bar, and enable tabbed view feature. Verify it works.

4. Add the ribbon bar back in. Verify it works.

If you complete step 4 and the example app works ok, then the problem is very likely cause by the ancestor/descendant objects used in your production application.

At this point, I would repeat steps 1-4 to create a second example app, but this time create it using the ancestor and descendant objects used in your production app, if possible.

If you can get this second example app working successfully, then the problem is likely in some past/recent changes that have been made. Hopefully you have some source code control and/or backups that you can test with to determine the point at which things begin to go wonky.

Good luck!

Comment
  1. Greg Winfield
  2. Wednesday, 9 October 2024 14:41 PM UTC
So, some good news. It works now but I'm not sure what I did to correct it

Opened the source of clean MDI and noticed the reference to MDIClient was missing and throwing an error not recognizing MDI_1 in the resizing script. Closed the editor and opened the window in the painter and it was no longer listed as MDI but rather a Popup window. Reset it as MDI and MDIClient reinstalled, reinstated the code pointing to the MDIclient and then everything worked as expected!

I decided to go back and test my original problem frame(it was still MDI type) and sheets load now properly



Question is why now? What did I do that was significant to correct things? It leaves me wondering if there something corrupt underneath and will this problem show up again?



Only time will tell and I'll keep a tighter eye on it, but thanks for all the feedback/suggestions



Greg
  1. Helpful
  1. Chris Pollach @Appeon
  2. Wednesday, 9 October 2024 15:00 PM UTC
Thanks for that great news Greg!

OK... now do a full backup - LOL. ;-)
  1. Helpful
  1. John Fauss
  2. Wednesday, 9 October 2024 15:03 PM UTC
Glad to hear of this news, Greg. Good luck on your upgrade project!
  1. Helpful
There are no comments made yet.
John Fauss Accepted Answer Pending Moderation
  1. Tuesday, 8 October 2024 13:35 PM UTC
  2. PowerBuilder
  3. # 3

Hi, Greg -

Are you using a framework for your PB app? If so, which one, and are you using an up-to-date version of that framework?

Best regards, John

Comment
  1. Chris Pollach @Appeon
  2. Tuesday, 8 October 2024 19:59 PM UTC
Hi John;

FYI: the STD Framework does have RB smarts since the 2021 versions. I have no idea if the PFC does.

AFAIK, Greg is not using any framework.

However, speaking with him directly the other day - I believe that he has the RB on a Sheet(s) and not just on an MDI Frame (maybe, even nothing on the frame). I do not have much more details ATM.

Regards .. Chris
  1. Helpful
  1. Greg Winfield
  2. Tuesday, 8 October 2024 20:22 PM UTC
I had tried that in different test modes with the tab option

I'm not seeing anything else that would interfere
  1. Helpful
  1. Greg Winfield
  2. Wednesday, 9 October 2024 01:14 AM UTC
Chris is correct, I did have ribbons on the sheets, however for the bulk of the testing it was with a clean sheet and only a ribbon on the frame.
  1. Helpful
There are no comments made yet.
  • Page :
  • 1


There are no replies made for this question yet.
However, you are not allowed to reply to this question.