BookmarkSubscribeRSS Feed
admattingly
Calcite | Level 5

I'm trying to debug a SAS/FSP application on z/OS.  It uses custom data entry screens stored in a separate library (containing a catalog for each screen).  I would like to print out the definitions for each screen (i.e. name, position, length of each field, special attributes assigned to each field, general attributes of the screen).  Is there a way to do this, or must I laboriously use the (online) MODIFY command against each screen and pick through the options to display the above definitions?

3 REPLIES 3
ballardw
Super User

First a caveat: It has been more than 25 years since I used SAS/AF and related so the memory is a bit hazy.

 

The screen definitions are basically SLIST items, if that helps. If you go to the Catalog holding the screens (and other AF stuff) using the SAS Explorer, you should be able to right click on the object with the screen definition and select the LIST command. This may be the default action from the Explorer window.

That will sending a listing of the the description to the LOG.

 

The SASHELP.AFTOOLS catalog has some of the AF used by SAS Foundation.

When I right click on the object DLGCHNG and select LIST I can get something like this as an example. Other types of object require a current AF license to List them but this may help.

Only a few lines of the object. It does have row, col, name, label (which IIRC is the text you see on the screen) and other info I only vaguely remember. I hope this helps.

SLIST(
   OBJECTS=(
      OBJ1=(
         USERATTR=()[9] {L}
         LENGTH=17 {S}
         COLOR=5 {B}
         INITIAL='Enter old string:' {C}
         ATTR_NAME='None' {C}
         COLOR_NAME='CYAN' {C}
         NAME='OBJ1' {C}
         LABEL='OBJ1' {C}
         ROW=2 {S}
         COL=4 {S}
         _CLASSNAME_='DLGTLAB.EFIELD' {C}
         _LEN_=17 {I}
         _VALUE_='Enter old string:' {C}
      )[7] {L}
      OLD=(
         LABEL='OLD' {C}
         USERATTR=()[13] {L}
         LENGTH=40 {S}
         ROW=3 {S}
         COL=4 {S}
         ATTR_NAME='None' {C}
         COLOR_NAME='YELLOW' {C}
         NAME='OLD' {C}
         _CLASSNAME_='DLGTEXT.EFIELD' {C}
         _LEN_=40 {I}
         _VALUE_='' {C}
      )[11] {L}
      OBJ3=(
         USERATTR=()[17] {L}
         LENGTH=17 {S}
         COLOR=5 {B}
         INITIAL='Enter new string:' {C}
         ATTR_NAME='None' {C}
         COLOR_NAME='CYAN' {C}
         NAME='OBJ3' {C}
         LABEL='OBJ3' {C}
         ROW=5 {S}
         COL=4 {S}
         _CLASSNAME_='DLGTLAB.EFIELD' {C}
         _LEN_=17 {I}
         _VALUE_='Enter new string:' {C}
      )[15] {L}
      NEW=(
         LABEL='NEW' {C}
         USERATTR=()[21] {L}
         LENGTH=40 {S}
         ROW=6 {S}
         COL=4 {S}
         ATTR_NAME='None' {C}
         COLOR_NAME='YELLOW' {C}
         NAME='NEW' {C}
         _CLASSNAME_='DLGTEXT.EFIELD' {C}
         _LEN_=40 {I}
         _VALUE_='' {C}
      )[19] {L}
      OBJ5=(
         USERATTR=()[25] {L}
         LENGTH=49 {S}
         COLOR=5 {B}
         INITIAL='NOTE: Enclose the string in quotes if it contains' {C}
         ATTR_NAME='None' {C}
         COLOR_NAME='CYAN' {C}
         NAME='OBJ5' {C}
         LABEL='OBJ5' {C}
         ROW=8 {S}
         COL=4 {S}
         _CLASSNAME_='DLGTLAB.EFIELD' {C}
         _LEN_=49 {I}
         _VALUE_='NOTE: Enclose the string in quotes if it contains' {C}
      )[23] {L}

admattingly
Calcite | Level 5

Thanks ballardw, I tried to adapt your advice to my circumstances (SAS/FSP on z/OS with only 3270 full screen terminal or batch JCL available) but the LIST command doesn't seem to produce any result, in terms of displaying (or playing into the SASLOG) the screen definitions.

SASKiwi
PROC Star

Not sure if this is going to help but there is a SAS Note about an undocumented SPRINT command that works on mainframe FSP: https://support.sas.com/kb/19/053.html

 

Failing that, do you have SAS available on a Windowing environment as well as on mainframe? Maybe transporting your FSP catalogs to Windows SAS where @ballardw 's suggestion might work is worth a try.

sas-innovate-white.png

Our biggest data and AI event of the year.

Don’t miss the livestream kicking off May 7. It’s free. It’s easy. And it’s the best seat in the house.

Join us virtually with our complimentary SAS Innovate Digital Pass. Watch live or on-demand in multiple languages, with translations available to help you get the most out of every session.

 

Register now!

How to Concatenate Values

Learn how use the CAT functions in SAS to join values from multiple variables into a single value.

Find more tutorials on the SAS Users YouTube channel.

SAS Training: Just a Click Away

 Ready to level-up your skills? Choose your own adventure.

Browse our catalog!

Discussion stats
  • 3 replies
  • 720 views
  • 0 likes
  • 3 in conversation