Overlays Not Showing

Use this board to ask questions or have discussions with other Rich Displays users.
DaveLClarkI
Experienced User
Posts: 165
Joined: Wed Dec 11, 2013 10:40 am
First Name: Dave
Last Name: Clark
Company Name: WinWholesale, Inc.
Phone: 937-294-5331
Address 1: 31101 Kettering Blvd.
City: Dayton
State / Province: Outside Canada/USA
Zip / Postal Code: 45439
Country: United States
Contact:

Re: Overlays Not Showing

Post by DaveLClarkI »

Rob wrote:The css panels should not have a parent tab panel or parent tab number. The way you are rendering with overlays, the tab contents are simply rendered on top of the tab panel. They are not a child of the tab panel, just overlaid on top.

These two properties only apply to a tab panel in the same display file as the contents. If you remove these it should get you going.
Thanks, that did it. I first did the layout with both the tab panel and overlay panels in the same display file so that I could get the positioning and sizing correct. Then I did a "Save As" to create a second display file and deleted the overlay panel from the first display file and the tab panel from the second display file. Then I copied that second display file for each of the other tab panels. That left those attributes in every one of my overlay tab panels. Often what we think is a shortcut turns out to be fraught with other kinds of delays. ;-)
dpankowski
Profound User
Posts: 35
Joined: Fri Jul 12, 2013 12:58 pm
First Name: Dan
Last Name: Pankowski
Company Name: Sinclair Services
Phone: 8015242956
Address 1: 550 E South Temple
City: Salt Lake City
State / Province: Utah
Zip / Postal Code: 84102
Country: United States
Contact:

Re: Overlays Not Showing

Post by dpankowski »

DaveLClarkI wrote:I've reexamined Mr. Russo's example code and he does have his program events in a slightly different order. I also realized I didn't post the actual order I was using. Here is the corrected order:
  • start program1
  • callp tabwrite in service program
  • open tabmenu
  • write tabmenu
  • return
  • open displayf1
  • write overlay1
  • callp tabread in service program
  • read tabmenu
  • press ENTER
  • return
  • read overlay1
  • click [X]
  • ...etc...
If I were to use Mr. Russo's order, it would be more like the following -- and I'm sure this would solve the problem of having to press ENTER before the overlay content appears.
  • start program1
  • callp tabwrite in service program
  • open tabmenu
  • write tabmenu
  • return
  • open displayf1
  • write overlay1
  • read overlay1
  • click a different tab
  • callp tabread in service program
  • read tabmenu
  • return
  • ...etc...
So, I'm starting on program changes to use the same order of events as the example; but, though I could be wrong, I don't expect that to also solve the issue of the overlay panels not showing up when their content does. Ideas on that?

Hi,
We're trying to do kind of the same thing. How does "read overlay1" know that a different tab was clicked? They will be doing things on the overlay1 screen.
Thanks
Scott Klement
Experienced User
Posts: 2711
Joined: Wed Aug 01, 2012 8:58 am
First Name: Scott
Last Name: Klement
Company Name: Profound Logic
City: Milwaukee
State / Province: Wisconsin

Re: Overlays Not Showing

Post by Scott Klement »

I believe David Russo sent sample code to Dave Clark, so he'd have a working example.... Unfortunately, that code doesn't appear to be in this forum thread, and Mr. Russo is not in the office this week. If you need to figure it out just from this conversation, I think it'll be rather difficult, since this is only part of what was exchanged. But, if you can do it, more power to you!

Anyway, if your only question is how to tell which tab was clicked, there's a property on the tab panel called 'tab response' that can be bound to a variable. It will return the tab number that was clicked to your RPG program.
dpankowski
Profound User
Posts: 35
Joined: Fri Jul 12, 2013 12:58 pm
First Name: Dan
Last Name: Pankowski
Company Name: Sinclair Services
Phone: 8015242956
Address 1: 550 E South Temple
City: Salt Lake City
State / Province: Utah
Zip / Postal Code: 84102
Country: United States
Contact:

Re: Overlays Not Showing

Post by dpankowski »

Thanks Scott,

I know how the tab menus work, it appears to me that the tab menu is on "tabmenu" and the program is reading format "overlay1", how does the overlay program know a different tab was clicked?
Does this make sense?

-dan
DaveLClarkI
Experienced User
Posts: 165
Joined: Wed Dec 11, 2013 10:40 am
First Name: Dave
Last Name: Clark
Company Name: WinWholesale, Inc.
Phone: 937-294-5331
Address 1: 31101 Kettering Blvd.
City: Dayton
State / Province: Outside Canada/USA
Zip / Postal Code: 45439
Country: United States
Contact:

Re: Overlays Not Showing

Post by DaveLClarkI »

The overlay program doesn't know a different tab was clicked until the tab menu program tells that overlay program that this is so. I do it in my overlay programs with this piece of code in each one:

Code: Select all

         when (wsi.f3_exit);           // if F3 key...
           pPgmName = '*EXIT';         // exit all the way out
           more_input = *off;          // signal end of input

         ...snip...

         when (dsp_aid = $enter);      // if ENTER key...
           PgmSelected = TrgMgt_ReadTabMenu(pKeyData: ErrMesg); // get current tab menu selection
           select;
             when (PgmSelected = PROC_PGM); // if no change in program selection
               callp ProcessTheSubfile(); // check and process selections
             when (PgmSelected <> '*ERROR'); // if no error returned
               pPgmName = PgmSelected; // store selected program name and exit
             other;                    // else
               errors_found = *on;     // set program error indicator on
               Screen.ERROR_MSG = ErrMesg;
               Screen.ERROR_IND = *on;
           endsl;
This is part of the SELECT group where I am checking to see which workstation AID key (or command/function key) was pressed. When a tab is clicked it is as if the ENTER key was pressed. My service routine passes back the name of the overlay program associated with the current active tab (i.e., the one clicked this time or was previously clicked). All the overlay program has to know is that if the program name changed then it has to exit to the menu driver program.

Just for information purposes, this is my service routine:

Code: Select all

      *========================================================================*
      * This procedure reads the tab menu and returns the appropriate program  *
      * name for the selected tab read.  The caller is responsible for acting  *
      * on a change in program name if that occurs.                            *
      *========================================================================*
     P TrgMgt_ReadTabMenu...
     P                 B                   export
     D                 PI            10a
     D  pKeyData                           likeds(TrgMgt_KeyData)
     D  pErrMesg                    132a   varying(2)
      *------------------------------------------------------------------------*
     D MissingData     S              3p 0 inz(*zero)
     D TabSelected     S              3p 0
      /free
       read ACTMENUC;                  // read the tab menu
       TabSelected = TABNUM + 1;

       select;
         when GenUtl_InList(%char(TabSelected): '2,3,4')
         and pKeyData.Application <= *blanks;
           MissingData = 1;            // selection missing from tab 1

         when GenUtl_InList(%char(TabSelected): '3,4')
         and pKeyData.Feature <= *blanks;
           MissingData = 2;            // selection missing from tab 2

         when TabSelected = 4
         and pKeyData.Process <= *blanks;
           MissingData = 3;            // selection missing from tab 3

         when TabSelected = 7
         and pKeyData.Company <= *blanks;
           MissingData = 6;            // selection missing from tab 6

         other;
           return TabMenu.Entry(TabSelected).Program; // return selected program to caller
       endsl;

       callp TrgMgt_WriteTabMenu(TabMenu.Entry(CurrentTab).Program); // restore tab

       pErrMesg = 'Navigation to the "'
                + %trimr(TabMenu.Entry(TabSelected).Label) + '" tab'
                + ' cancelled due to missing selection from the "'
                + %trimr(TabMenu.Entry(MissingData).Label) + '" tab.';

       return '*ERROR';                // return error condition to caller
      /end-free
      *------------------------------------------------------------------------*
     P TrgMgt_ReadTabMenu...
     P                 E
      *========================================================================*
dpankowski
Profound User
Posts: 35
Joined: Fri Jul 12, 2013 12:58 pm
First Name: Dan
Last Name: Pankowski
Company Name: Sinclair Services
Phone: 8015242956
Address 1: 550 E South Temple
City: Salt Lake City
State / Province: Utah
Zip / Postal Code: 84102
Country: United States
Contact:

Re: Overlays Not Showing

Post by dpankowski »

When a tab is clicked it is as if the ENTER key was pressed
Thanks do you use js on the tab service program to "press enter"? I've used js before to press a button on a program in an iFrame.

Thanks for your help.
DaveLClarkI
Experienced User
Posts: 165
Joined: Wed Dec 11, 2013 10:40 am
First Name: Dave
Last Name: Clark
Company Name: WinWholesale, Inc.
Phone: 937-294-5331
Address 1: 31101 Kettering Blvd.
City: Dayton
State / Province: Outside Canada/USA
Zip / Postal Code: 45439
Country: United States
Contact:

Re: Overlays Not Showing

Post by DaveLClarkI »

Not required. Profound UI handles this.
dpankowski
Profound User
Posts: 35
Joined: Fri Jul 12, 2013 12:58 pm
First Name: Dan
Last Name: Pankowski
Company Name: Sinclair Services
Phone: 8015242956
Address 1: 550 E South Temple
City: Salt Lake City
State / Province: Utah
Zip / Postal Code: 84102
Country: United States
Contact:

Re: Overlays Not Showing

Post by dpankowski »

Thanks for your help. We'll give it a try.

-dan
Post Reply

Who is online

Users browsing this forum: No registered users and 6 guests