I tried googling and it did not help me in finding or even giving me a hint on how to do this.
I am basically looking for a sample rexx and ispf with two scrollable area side-by-side like below, i could not find any.
In the below panel example i am just trying to point source database to the appropirate target database. The source and target can have varying no. of items in the list.
Code:
Map the correct source & target databases,
OP OBJ# DATABASE CREATOR | MAP# DATABASE CREATOR
__ 1 SOURCE1 TEST | 5____ TARGET5 TEST
__ 2 SOURCE2 TEST | 4____ TARGET4 TEST
__ 3 SOURCE3 TEST | 3____ TARGET3 TEST
__ 4 SOURCE4 TEST | 2____ TARGET2 TEST
__ 5 SOURCE5 TEST | 1____ TARGET1 TEST
*********** BOTTOM OF DATA ********| ********** BOTTOM OF DATA ***********
I have tried REXX & ISPF Panel having single scrollable area like below using Z Variables and populating ISPF table.
I am not able to think and dont know how to use z variables in a panel having two scrollable areas side-by-side and how rexx would interact with these two areas. Definately there will be two ISPF tables one for each areas, i am not sure how MODEL or INIT will be written in this case
Joined: 01 Sep 2006 Posts: 2593 Location: Silicon Valley
Please get your terminology straight. You ask about a scrollable area, but your example, and what you want, is a table display. They are different.
I do not think you can do what you want with a table display.
my suggestion: Try a table display showing a single table, with a a line command for MAP. When the MAP line command is issued, display a second table and allow the user to select the matching database.
Joined: 03 May 2010 Posts: 158 Location: Kuala Lumpur
I've never heard of Two scrolling in a single panel as of now. If you really want to achieve (make illusion to user) two scroll in a panel, here is the thought that MIGHT work (can't grantee, because I never tried).
1. As Pedro told, create a table display ( Make one table combined all the columns from Side-A and Side-B).
2. Populate table with all the details.
3. You can decide which side user scrolling based on cursor position or however you've planned already.
4. When the user scroll Side-A, Keep Side-B columns Same as it is and re-populate Side-A columns accordingly (starting from last record in panel +1 to till end-of-rows or limit of the display row).
5. Vice-Versa for Side-B scroll.
Hope I didn't confuse and Once again.. it's just a thought.
Sorry for using the wrong terminologies, i want to create something similar to below screen from CA DB2 RC/Migrator Tool - Compare Strategy
After the WHERE condition at both the sides(left-OP, OBJ#, DATABASE, CREATOR. on the right-MAP#, DATABASE, CREATOR), you can see two tables actually having varying number of rows and they can be scrolled independently. I want to do something similar.
STRATEGY ===> TEST1 DESCRIPTION ===> TEST1
CREATOR ===> BOBBYLL SHARE OPTION ===> Y (U,Y,N,X,L)
--------------------------------------------------------------------- bobbyll
OBJECT ===> DB (SG,DB,TS,T,I,V,S,A,TG,SQ,PR) REFRESH ===> N
SOURCE SSID => DB2P | TARGET SSID => DB2P
SOURCE LOC => LOCAL | TARGET LOC => LOCAL
NAME => bobbyll% > | NAME => TES% >
CREATOR => * > | CREATOR => * >
WHERE => N | WHERE => N
|
OP OBJ# DATABASE CREATOR | MAP# DATABASE CREATOR
__ 1 bobbyllT DB2ADMIN | _____ TESAU1MO DB2ADMIN
__ 2 bobbyllY DB2ADMIN | _____ TESAU1MT DB2ADMIN
__ 3 bobbyllZ DB2ADMIN | _____ TESAU1TE DB2ADMIN
*********** BOTTOM OF DATA ************ | _____ TESAU1UJ DB2ADMIN
| _____ TESAU1UO DB2ADMIN
| _____ TESAU2MO DB2ADMIN
Src Cmds: RC/Query jump commands Trg Cmds: RC/Query jump or Map nbr
Press ENTER to process Query commands Enter END to process mapped objects
Luckily i was also able to find the panel definations also. In the attribute section i could see two AREAs(@, #) and in the body i could see DATALINE and SATALINE variables. And down in the PROC section i could see they have used &CURSOR = .CURSOR &CSRPOS = .CSRPOS, as suresh mentioned they have used that technique also. Since dont have the codes to analyze anything, i just want a confirmation from experts here, is that a mere illusion of one-ispf table display making look like two scrollable tables and there is no concept of two scrollable areas in one ispf panel.
Initially i had the idea that it was possible from the link Scrollable Area Examples Figure 61 as it says it is an invalid scrollable defination. In the defination AREA1 is having 7 lines and AREA2 is having 9 lines, by making it both 7 and 7 lines will it become valid or entire defination itself is wrong in the example.
Joined: 01 Sep 2006 Posts: 2593 Location: Silicon Valley
The sample panel is actually an example of a dynamic area. I suppose, an example of two dynamic areas.
As a developer, you have total control of the data within the dynamic area. You have to provide the attributes and data that makes it appear and behave like a table display.
So far i have worked on panels having one dynamic area like below, from the look itself its explainable that $Z is output, second and third z variable are inputs.
Code:
+-----------------------------------------------------------------------
!TableName Setting Value +
)MODEL
$Z ¯Z ¯Z
In the CA Migrator panel, i don't see any attribute characters of type INPUT or OUTPUTs
DATALINE & DATALIN2 are area names. I suppose SATALINE & SATALIN2 are variables. Can you please let me know how the attribute types are dynamically changed just to get an understanding. Like in the first line it is all header of type OUTPUT and in the second line for OP it is an INPUT and for MAP# it is input.
Joined: 01 Sep 2006 Posts: 2593 Location: Silicon Valley
Quote:
So far i have worked on panels having one dynamic area like below
No, no you have not. Your example is of a table display panel (it uses the )MODEL tag). You use the TBDISPL service to display it.
A panel with a scrollable area is different than a table panel. And a panel with a dynamic area is still different than that. You use the DISPLAY service to display panels with a scrollable area or with a dynamic area.
You use 'dynamic area' as a descriptive term, but it is actually a technical term with a specific meaning in ISPF. Search the ISPF Dialog Developers Guide and Reference for 'dynamic area'
Joined: 01 Sep 2006 Posts: 2593 Location: Silicon Valley
Quote:
DATALINE & DATALIN2 are area names. I suppose SATALINE & SATALIN2 are variables. Can you please let me know how the attribute types are dynamically changed just to get an understanding.