Page 1 of 1

"panelizing" a multi program/screen application

Posted: Mon Dec 06, 2010 5:27 pm
by Wayne C.
I'm hoping for feedback from other users regarding this as well as from Profound staff.
We are a transportation company who have (over the last 10 - 15 years) developed and modifed our own home grown order entry system. Although it is reasonably complex, for discussion sake, we can break it down into 4 basic modules; 1.) General Info regarding order, 2.) Dimensions of load being transported, 3.) Revenue being generated by this order, 4.) Payables/ Driver pay being generated by this order. These are 4 separate programs being called in succession, with 20 or 30 parameters being passed during each call.
When entering an order for the first time, essentially a user would have to enter thru all 4 steps/screens to establish the order in the system. Once the order is in the system, we have given the user the ability to go from the orders subfile directly to any one of the 4 steps.
My supervisor inquired on the feasibility of making each of the above steps a panel. In other words, if a user selected an order, the General Info screen would be displayed as Panel Tab 1. Panel Tab 2 could then be selected to access Dimension and so on. Has anyone attempted this and is it feasible?

Re: "panelizing" a multi program/screen application

Posted: Tue Dec 07, 2010 10:20 am
by Rob
Yes this is possible, if fact it is a very clean way to organize multiple screens that follow a natural sequence.

You would have 4 separate screens (record formats) and on each screen there would be a tab panel. The tab panels would need to be in the exact same position with identical height and width on each of the screens. The tab panel widget has a property called active tab. If this is set to 0, the first tab will be active or selected when the screen is rendered. If it is set to 1, the second tab will be selected etc. So on each of the four screens you set the active tab property to 0,1,2 and 3 respectively.

There is another tab panel property called tab response. Bind this property to a 1A field. When a user clicks on a tab, a response will be sent to your RPG program and this field will be set to '0', or '1' or '2' or '3' depending on which tab was clicked.

Using these two tab panel properties, you can display the tab panel(s) with the correct active tab and also detect which tab was clicked by a user so you can determine which screen to display next.

Re: "panelizing" a multi program/screen application

Posted: Mon Aug 08, 2011 10:27 am
by kfritz
This action can be done in only one program, right? I want to know, if I could create a n-Tab-Panel with multiple progams, best one tab/program and format - is this possible?

Example:
Customer/Contract/Dues/...
pgm1/pgm2/pgm3/... with parameters

Tab population in n rows? ;-)

Re: "panelizing" a multi program/screen application

Posted: Tue Aug 09, 2011 10:06 am
by Brian
KFritz,

It does not necessarily have to be in a single program. Each of the separate programs will just need to have logic to detect the tab click and call the right program. To avoid recursion problems, I would code a driver program to call the programs based on tab number and have each of the individual programs detect the click of a different tab. When a new tab is clicked, each program should close and pass the tab number clicked back to the driver program.

Re: "panelizing" a multi program/screen application

Posted: Tue Aug 09, 2011 11:51 am
by kfritz
Brian,

That sounds superb, but...
... how do i integrate a converted green screen onto a tab?
(Format/Recordname DDS)

Re: "panelizing" a multi program/screen application

Posted: Tue Aug 09, 2011 3:00 pm
by Brian
Each display would have to be reformated to make it work.

Let's say you have three programs that you want to display like they are three tabs on the same page.

You would put a tab panel with three tabs in the first programs display record format and move all of the fields for that display on to the first tab. You would also bind the active tab and tab response properties so your RPG program can ensure the proper tab is selected and receive the tab number clicked.

You would then repeat the process for the record formats of programs 2 and 3 and put their fields on the second and third tabs respectively.