z/OS ISPF Dialog Tag Language Guide and Reference
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Defining scrollable fields

z/OS ISPF Dialog Tag Language Guide and Reference
SC19-3620-00

A scrollable field can be used when the size of the field defined on the panel is smaller than the amount of data to be displayed. With the cursor placed in the field, the LEFT and RIGHT commands can be used to scroll the data displayed. In addition, the EXPAND command can be used to display the data in a popup window.

With DTL, fields that can be made scrollable are defined using the DTAFLD or LSTCOL tags. A field is made scrollable by nesting a SCRFLD tag in the DTAFLD or LSTCOL tag. Here are the attributes of the SCRFLD tag that allow you to specify dialog variables to contain scroll indicators. The conversion utility generates output fields on the panel to allow the scroll indicators to be displayed along with the scrollable field:
INDVAR
A 2-byte left and right scroll indicator that shows whether left and right scrolling can be performed.
LINDVAR
A 1-byte left scroll indicator that shows whether left scrolling can be performed.
RINDVAR
A 1-byte right scroll indicator that shows whether right scrolling can be performed.
SINDVAR
A separator scroll indicator that shows the length of the scrollable field and whether left and right scrolling can be performed.
LCOLIND
A left column position indicator that shows the position of the character currently displayed in the leftmost byte of the scrollable field.
RCOLIND
A right column position indicator that shows the position of the character currently displayed in the rightmost byte of the scrollable field.
SCALE
A scale indicator showing the positions of the columns currently displayed in the scrollable field.

Here is the markup used for the Data Columns example (see Figure 1), modified to display the Name and Address fields as scrollable fields. The Name field is displayed with a separator scroll indicator and the Address field is displayed with a scale indicator. The conversion utility automatically generates the separator scroll indicator below the Name field and the scale indicator below the Address field.

<!doctype dm system>
<varclass name=sampcls type ='char 30'>
<varclass name=statcls type ='char 2'>
<varclass name=zipcls  type ='char 5'>
<varclass name=char1cls  type ='char 1'>

<varlist>
  <vardcl name=name varclass=sampcls>
  <vardcl name=addr varclass=sampcls>
  <vardcl name=city varclass=sampcls>
  <vardcl name=stat varclass=statcls>
  <vardcl name=day  varclass=char1cls>
  <vardcl name=zipc varclass=zipcls>
 </varlist>

<panel name=scr1xmp depth=24>Schedule Appointments
  <topinst>Enter your name and address and
  choose the most convenient day for your appointment.
  <area>
    <dtacol pmtwidth=12 entwidth=30 deswidth=29 selwidth=30>
      <dtafld datavar=name>Name
        <dtafldd>Last, First, M.I.
        <scrfld displen=50 sindvar=namesi>
      <dtafld datavar=addr>Address
        <scrfld displen=80 scale=addrsi>
      <dtafld datavar=city>City
      <dtafld datavar=stat entwidth=2>State
        <dtafldd>Use 2-character abbreviation
      <dtafld datavar=zipc entwidth=5>Zip code
      <divider type=solid gutter=3>
      <selfld name=day pmtloc=before>Weekdays
        <choice>Monday
        <choice>Tuesday
        <choice>Wednesday
        <choice>Thursday
        <choice>Friday
      </selfld>
    </dtacol>
  </area>
</panel>
 

This is how the panel displays:

Figure 1. Scrollable field
                           Schedule Appointments

 Enter your name and address and choose the most convenient day for your
 appointment.

 Name . . . . Veryveryverylongsurname, Alexa  Last, First, M.I.
              ----------------------------->
 Address  . . Apartment 52b, 446 Verylongstr
              ----+----1----+----2----+----3
 City . . . .                               
 State  . . .     Use 2-character abbreviation
 Zip code . .      

 ---------------------------------------------------------------------------

 Weekdays . .     1.  Monday
                  2.  Tuesday
                  3.  Wednesday
                  4.  Thursday
                  5.  Friday


 Command ===>                                             Scroll ===> CSR 
  F1=Help     F2=Split    F3=Exit     F9=Swap    F12=Cancel

When the scrollable field is defined using the LSTCOL tag the conversion utility automatically generates, along with the column heading, output fields for any scroll indicators you specify. Here is the markup used for the List Group Headings example (see Figure 1), modified to display the Appointment data in scrollable fields. This would allow more information than just the account name to be stored and displayed in the Appointment data. A scale indicator is displayed with the heading for each day's column.

<!doctype dm system>

<varclass name=timecls type='char 13'>
<varclass name=vc1     type ='char 9'>

<varlist>
  <vardcl name=timecol varclass=timecls>
  <vardcl name=moncol  varclass=vc1>
  <vardcl name=tuecol  varclass=vc1>
  <vardcl name=wedcol  varclass=vc1>
  <vardcl name=thrcol  varclass=vc1>
  <vardcl name=fricol  varclass=vc1>
</varlist>

<panel name=scrxmp2>Scheduling Account Visits
 <topinst>Enter the appointment details in the appropriate time slot.
 <area>
  <lstfld scrollvar=scrlamt scrvhelp=scrhelp>
    <lstcol datavar=timecol usage=out colwidth=13>
    <lstgrp headline=yes>Appointments
      <lstcol datavar=moncol colwidth=9>Monday
        <scrfld displen=30 scale=monscl>
      <lstcol datavar=tuecol colwidth=9>Tuesday
        <scrfld displen=30 scale=tuescl>
      <lstcol datavar=wedcol colwidth=9>Wednesday
        <scrfld displen=30 scale=wedscl>
      <lstcol datavar=thrcol colwidth=9>Thursday
        <scrfld displen=30 scale=thrscl>
      <lstcol datavar=fricol colwidth=9>Friday
        <scrfld displen=30 scale=friscl>
    </lstgrp>
  </lstfld>
</area>
<cmdarea>
</panel>
 

This is how the panel displays:

Figure 2. Scrollable field within a list column
                         Scheduling Account Visits          ROW 1 to 9 of 9

 Enter the account name in the appropriate time slot.

                --------------------- Appointments ----------------------
                Monday      Tuesday     Wednesday   Thursday    Friday
                ----+----   ----+----   ----+----   ----+----   ----+----
 08:00 - 08:59                                                           
 09:00 - 09:59                                                           
 10:00 - 10:59              Hart - Pl                                    
 11:00 - 11:59                                                           
 12:00 - 12:59                          Wife - lu                        
 01:00 - 01:59              XYZ - rev               ABC - upd            
 02:00 - 02:59                                                           
 03:00 - 03:59                                                           
 04:00 - 04:59                                                  Rod - ten
 ***************************** Bottom of data *****************************




 Command ===>                                             Scroll ===> CSR 
  F1=Help     F2=Split    F3=Exit     F9=Swap    F12=Cancel

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014