View previous topic :: View next topic
|
Author |
Message |
Pragati Soni
New User
Joined: 18 Jan 2008 Posts: 47 Location: India
|
|
|
|
My requirement is to make a panle where few opcodes names are already there then if we put the cursor and hit enter another panel should open with the details of that opcode.
This should be there for all the opcodes. I mean seperate panels for all the opcodes but one will open at one point of time.
Please guide me.
Thanks a lot. |
|
Back to top |
|
|
Pedro
Global Moderator
Joined: 01 Sep 2006 Posts: 2547 Location: Silicon Valley
|
|
|
|
Look in the ISPF Dialog Developer's Guide and Reference. Study the section on 'point and shoot fields'. |
|
Back to top |
|
|
ofer71
Global Moderator
Joined: 27 Dec 2005 Posts: 2358 Location: Israel
|
|
|
|
If your panel content is steady, you can use the undocumented ISPF variable ZSCREENC. Google it for examples.
O. |
|
Back to top |
|
|
MBabu
Active User
Joined: 03 Aug 2008 Posts: 400 Location: Mumbai
|
|
|
|
The suggestions above are good. Also you can implement the point-and-shoot yourself. But a better approach for usability is to do this in the editor as an edit macro. I would not bother to write your own panels either. If your users are running the ISPF workstation agent and are connected, you can simply have the macro bring up the information in the manual. Here is an example that does this for assembler opcodes:
Code: |
/* rexx - view principle of ops for an opcode */
/* - to use: place cursor on an opcode and run macro. */
/* Best if macro name is assigned to a PF key. Assumes windows*/
/* Requires connected ISPF Workstation Agent connection */
address isredit
'MACRO NOPROCESS'
'(row,col) = cursor'
validchars='ABCDEFGHIJKLMNOPQRSTUVWXYZ'
if row>0 & col>0 Then /* if cursor in data area */
Do
'(CODELINE) = LINE ' row
codeline=translate(codeline)
c=''
Do a=1 to length(codeline) /* remove invalid opcode characters*/
thischar=substr(codeline,a,1)
If 0=verify(thischar,validchars) Then
c=c || thischar
Else
c=c || ' '
End
codeline=c
code=' 'codeline' '
p=lastpos(' ',substr(code,1,col))
Parse Value substr(codeline,p) With opcode .
If opcode <> "" Then /* could also check for valid opcode here */
Do
uri="http://publibz.boulder.ibm.com/cgi-bin/"
uri=uri || "/bookmgr_OS390/SEARCH?"
uri=uri || "Book=dz9zr002%&"
uri=uri || "Type=EXACTW%&searchTopic=TOPIC%&searchText=TEXT%&"
uri=uri || "searchIndex=INDEX%&rank=RANK%&"
uri=uri || "searchRequest=" || opcode
uri='%comspec% /c start "" /wait "' || uri || '"'
Address ispexec 'SELECT WSCMDV(URI) MODELESS'
End
/* could add sections for cics macros, asm directives, etc */
End |
Using ZSCREENI and ZSCREENC this can easily be adapted to look up anything based on any criteria (for example point to a problem report number on a screen and bring up your company's web based problem reporting system). This isn't perfect because looking for something common like the letter C (compare instruction) brings up lots of false hits, but it is better and cheaper than writing your own documentation for every assembler instruction. You can always change the search to be better too. |
|
Back to top |
|
|
MBabu
Active User
Joined: 03 Aug 2008 Posts: 400 Location: Mumbai
|
|
|
|
Looking at that, I don't know how the percent signs got in there before the & characters, but they should be removed. I'd also add that you can always create a table that maps specific opcodes to different places so for example AMODE, DC, or USING would point into the assembler book, opcodes could point to specific pages in the manual, DFHxxx could point to the CICS books, etc. |
|
Back to top |
|
|
|