Compaq ACMS for OpenVMS
Writing Applications


Previous Contents Index

If you make changes to add background text, you are adding literals, in DECforms terminology. Be sure that your new background text areas do not conflict with areas on the panel that are already defined for use in the ACMS_MENU.IFDL file.

To change the prompt, you must alter the wording in two panel definitions. These definitions begin with:


 
Panel DEFAULT_PANEL 
 

and


 
Panel COMMAND_PANEL 
 

Example A-7 shows the section of the default panel definition in the ACMS_MENU.IFDL file which needs to be altered to change the prompt.

Example A-7 Default Panel Field Definition

 
Literal Text 
    Line 22 
    Column 1 
    Value "Selection: " 
 

Example A-8 shows the section of the ACMS_MENU.IFDL file which needs to be altered to change the Command: prompt in the Command Panel definition.

Example A-8 Command Panel Field Definition

 
Literal Text 
    Line 22 
    Column 1 
    Value "Command: " 
 

You can replace the quoted string in either definition with text which suits your needs.

To change the text of the instructions which appear on multiple-page menus, you also make changes in the DEFAULT_PANEL and COMMAND_PANEL panel definitions in the ACMS_MENU.IFDL file.

To change these instructions, you must find the record group SELECT_LINE_GROUP in the ACMS_MENU.IFDL file. Example A-9 shows how the group entry appears in the ACMS_MENU.IFDL file supplied with ACMS.

Example A-9 Record Group SELECT_LINE_GROUP

 
Group SELECT_LINE_GROUP 
                Entry Response 
                    If (CTL_MULTI_PAGE = "T") Then 
                        If (CTL_LAST_PAGE = "T") Then 
                            Let INFO_LINE_1 = "                  ....... "- 
                                "Press <RET> for first page ......." 
                        Else 
                            Let INFO_LINE_1 = "                     ....... "- 
                                "Press <RET> for more ......." 
                        End If 
 

To change the instructions, change the text within the quotation marks. Remember to change the text in both the DEFAULT_PANEL panel definition and the COMMAND_PANEL definition or the instructions the user sees will vary depending on what panel is in use.

If you want to change any other characteristics of the ACMS menu format, you must modify the other areas in the ACMS_MENU.IFDL file beyond the panel definitions.

A.2.5 Changing SELECTION_STRING Field Lengths

The SELECTION_STRING is an ACMS-supplied system workspace. It allows a user to enter input after making a menu selection. ACMS places this input in the SELECTION_STRING workspace and ACMS has access to it within the task called by the menu selection. It could be used, for example, to pass an employee number to an employee record update task.

In the ACMS_MENU.IFDL file, the selection string fields are defined as a 68-character field beginning after the Selection: or Command: prompt and a 79-character field beginning in column 1 of the line below the Selection: or Command: prompt.

If you need SELECTION_STRING fields of different lengths than these, you must alter the ACMS_MENU.IFDL file in four places.

First, you must change two record groups, SELECT_LINE_GROUP and RECORD_LIST. Example A-10 shows the two groups as they appear in the ACMS_MENU.IFDL file.

Example A-10 SELECTION_STRING Record Groups

 
Group SELECT_LINE_GROUP 
    SELECTION_STRING_1 Character(68) 
    SELECTION_STRING_2 Character(79) 
End Group 
 
Group RECALL_LIST 
    Occurs 20 
    RECALL_ITEM_1 Character(68) 
    RECALL_ITEM_2 Character(79) 
End Group 
 

The length values for the fields can be changed. If a change is made in one group, however, the corresponding change must be made in the other group.

Next, you must change the SELECTION_STRING field sizes in the panel definitions to correspond to the new values you entered in the record group definitions. Remember to change the field sizes in both the DEFAULT_PANEL and COMMAND_PANEL definitions. Example A-11 shows the field definitions as they appear in the panel definitions in the ACMS_MENU.IFDL file supplied by ACMS.

Example A-11 SELECTION_STRING Panel Definitions

 
Field SELECTION_STRING_1 
    Line 22 
    Column 12 
    Autoskip 
    Output Picture X(68) 
End Field 
 
Field SELECTION_STRING_2 
    Line 23 
    Column 1 
    Output Picture X(79) 
End Field 
 

Remember that the values in the panel field definitions must correspond to the changes you made earlier in the record group definitions.

A.2.6 Changing the Number of Entries per Screen

The menu file supplied with ACMS causes a maximum of 16 entries per screen to be displayed when the DEFAULT_PANEL panel definition is used. The ACMS_MENU.IFDL file also contains panel definitions for a COMMAND_PANEL and for two expert panels.

As supplied by ACMS, the menu file allows up to 16 lines per menu screen in the default panel and eight lines per screen in the command panel. The expert panels display only the prompts Selection: or Command: for those who want to make selections without seeing menu entries.

When there are fewer than 16 menu entries, ACMS fills out the screen with blanks. When there are more than 16 menu entries, ACMS will break up the menu into multiple pages. Each screen will display one page of the menu. If you need to change the number of entries allowed per screen, you need to make changes in two places: in a record definition and in the DEFAULT_PANEL definition.

The first change you need to make is in the record group ENTRIES. Example A-12 shows how that record group appears in the ACMS_MENU.IFDL file as supplied with ACMS.

Example A-12 ENTRIES Record Group

 
Group ENTRIES 
    Occurs 16 
    Current MENU_ENTRIES_INDEX 
    ENTRY_ENABLE Character(1) 
    ENTRY_NUMBER Character(6) 
    ENTRY_FILL Character(3) 
    ENTRY_KEY Character(10) 
    ENTRY_FLAG_TEXT Character(56) 
End Group 
 

You can change the "Occurs 16" line to the number of lines you wish to be the maximum per menu screen.

CAUTION

Do not, under any conditions, change any other field in the group ENTRIES. This is a record used by the ACMS CP and changing values other than the 16 in "Occurs 16" may cause the ACMS system to fail.

Next you must change the Displays statement of the record group ENTRIES in the DEFAULT_PANEL panel definition. Example A-13 shows how that section of the panel definition appears in the ACMS_MENU.IFDL file.

Example A-13 ENTRIES Record in Default Panel Definition

 
Group ENTRIES 
    Vertical 
        Displays 16 
 

You can change the number of entries allowed per screen for the Command Panel in a similar fashion.

When you change the number of entries allowed per screen, you must also change the size of the record for the entries passed from the ACMS CP to the menu form. To let the ACMS CP know about the change in the size of the record for the entries, you have to specify the new number of entries allowed per screen in the ACMS menu definition. Example A-14 shows an example of this.

Example A-14 Menu Definition Specifying Entries per Screen

CREATE MENU PERSONNEL_MENU 
  HEADER IS "          P E R S O N N E L     M E N U"; 
  CONTROL TEXT IS "DFMNU" WITH 12 ENTRIES PER SCREEN; 
  DEFAULT APPLICATION IS "PERSONNEL"; 
  ENTRIES ARE 
    ADD  : TASK IS ADD_EMPLOYEE; 
 
           TEXT IS "Add a new employee record"; 
       . 
       . 
       . 
  END ENTRIES; 
END DEFINITION; 

DFMNU is the default control text response. If you have defined other control text responses in the form, you can specify those responses. On each system, all the menus use the same form, so all menus must use the same number of entries allowed per screen.

Caution

If you change the "Occurs 16" entry in the ENTRIES Record Group, then all menus on your system must use this number of entries and all menu definitions must include the "WITH n ENTRIES PER SCREEN" phrase. So if you change the number of entries per screen all menu definitions on the system that use DECforms must be altered.

You can include more entries in the menu definition than the number you specify in the WITH ENTRIES PER SCREEN phrase. For example, you can include 13 or more entries in the menu definition shown in Example A-14 even though the WITH ENTRIES PER SCREEN phrase specifies 12 entries for each screen. In this case, when ACMS displays the menu it also displays the message:


"....... Press <RET> for more .......". 

If the user presses [Return], ACMS displays the additional entries listed in the menu definition. But remember that whatever number of entries per screen you choose, that is the number that must be used by all menus on your system.

A.2.7 Changing the Size of the Command Line Recall Buffer

Another item that can be changed, if need be, is the number of lines in the command line recall buffer. This buffer stores the commands you issue at the terminal keyboard. Commands can be recalling by pressing the up-arrow key, much as commands can be recalled at the DCL level. As supplied by ACMS, the number of commands that can be recalled is 20.

To change the number of commands that can be recalled, you need to change the default value of 20 in two definitions in the ACMS_MENU.IFDL file. Example A-15 shows how those definitions appear in the form file supplied with ACMS.

Example A-15 Command Line Recall Buffer Definitions

 
Group RECALL_LIST 
    Occurs 20 
    RECALL_ITEM_1 Character(68) 
    RECALL_ITEM_2 Character(79) 
End Group 
 
RECALL_MAX Longword Integer 
    Value 20 
 

Remember to change the definitions so that the two values match.

A.2.8 Changing the DECforms Layout Size

Another area of the ACMS menu format which you can change is the layout size.

The layout size specifies the largest rectangular area on the terminal screen that the menu form will occupy at any given time. In the ACMS_MENU.IFDL file supplied with ACMS, this size is the DECforms default value, 24 lines deep by 80 columns wide.

If you need to change this, you must alter the DEFAULT_LAYOUT definition in the ACMS_MENU.IFDL file. Example A-16 shows how that definition appears.

Example A-16 Definition of Default Screen Layout

 
Layout DEFAULT_LAYOUT 
    Device 
        Terminal VT_100_DEV 
            Type %VT100 
        Terminal VT_200_DEV 
            Type %VT200 
    End Device 
    Size 24 Lines by 80 Columns 
 

A.2.9 Using a Customized Response and Panel Definition

You can write new control text responses and panel definitions in the ACMS_MENU.IFDL file in order to create exactly the responses or panels that meet your needs. If so, you must include a CONTROL TEXT clause in your menu definition to point to the new panel definition.

When you use the CONTROL TEXT clause in a menu definition, you specify the control text response or responses that you want to execute when the ACMS CP gets input from users. By default, ACMS executes the DFMNU control text response for the default menu and the COMND control text response for the command menu.

Example A-17 shows an example of a menu definition that uses the CONTROL TEXT clause.

Example A-17 Menu Definition Using CONTROL TEXT

CREATE MENU PERSONNEL_MENU 
  HEADER IS "          P E R S O N N E L     M E N U"; 
  CONTROL TEXT IS "MENU1MENU2MENU3"; 
  DEFAULT APPLICATION IS "PERSONNEL"; 
  ENTRIES ARE 
    ADD  : TASK IS ADD_EMPLOYEE; 
 
           TEXT IS "Add a new employee record"; 
       . 
       . 
       . 
  END ENTRIES; 
END DEFINITION; 

In the CONTROL TEXT clause, you must include the five-character string that identifies the CONTROL TEXT RESPONSE. Here, the string "MENU1MENU2MENU3" sets up a sequence of three responses. DECforms automatically reads each five characters as the CONTROL TEXT definition. You can specify up to five control text responses. At least one of these responses must have an accept phase, or input from the user. Otherwise, you will get a "control text response not found" error.

A.2.10 Building and Installing the New Menu Form

After you have customized the ACMS_MENU.IFDL file, you must build the new menu form as an executable image and make it available to the ACMS system.

You build a new menu form by creating a new ACMS_MENU.EXE file. This involves translating the form, extracting an object from the .FORM file to create a .OBJ file, linking the object file to produce a shareable image, and copying the new executable file to the common SYS$SHARE directory on the system.

If you have customized the ACMS menu form definition file, you must rebuild the form image file. Use the following DCL command to rebuild and install the new form image file on the system:


$ @SYS$MANAGER:ACMS_BUILD_MENU_FORM.COM 

In order to make the new version of the menu form file available to the command process, you must stop and restart the ACMS terminal subsystem. Do this by using the ACMS/STOP TERMINALS and ACMS/START TERMINALS commands. Make sure your ACMS user definition points to the menu database containing the menu that uses the new menu format. Then sign in to ACMS and check whether or not:

If ACMS cannot display the new menu, you get this error message when signing in to ACMS:


A DECforms request failed in the menu form SYS$SHARE:ACMS_MENU.EXE 

If you get this message, check the record, form, control text response, and panel definitions for unmatched names, inappropriate file protection, or differences in the number of entries.

A.3 Disabling the SELECT Command in the ACMS Command Menu

The SELECT command appears on the ACMS Command Menu and permits a user to select tasks by application and task name. To disable the SELECT command, remove it from the ACMS Command Menu by editing and replacing the command menu definitions, and rebuilding the command database as outlined in the following steps:

  1. Rename the file SYS$LIBRARY:ACMS$MENU_CUST.COM to ACMSMENU.COM. This file contains the ACMS command menu and the ACMS default menu.
  2. Edit the file ACMSMENU.COM and delete or comment out the SELECT command entry. The exclamation points (!) in the following example mark the lines you need to comment out or delete.


    HEADER IS "                      ACMS Command Menu"; 
    ENTRIES ARE 
      "Continue": 
        TEXT IS "Continue interrupted operation"; 
        COMMAND 3; 
      "Exit": 
        TEXT IS "Leave the ACMS menu environment"; 
        COMMAND 8; 
      "Help": 
        TEXT IS "Display ACMS help information on the terminal"; 
        COMMAND 17; 
      "Menu": 
        TEXT IS "Display selection and command menus"; 
        COMMAND 18; 
      "Nomenu": 
        TEXT IS "Do not display selection and command menus"; 
        COMMAND 19; 
      !"Select": 
      !  TEXT IS "Select task by application name and task name"; 
      !  COMMAND 20; 
    END ENTRIES; 
    END DEFINITION; 
    

  3. Change the CDD path names specified in ACMSMENU.COM to be the CDD path names of your choice.
  4. Use the following ADU commands to insert the definition file ACMSMENU.COM in the CDD:


    $ ADU
    ADU> @ACMSMENU.COM
    

  5. Use the following ADU commands to rebuild the ACMS command menu database:


    $ ADU
    ADU> BUILD MENU COMMAND$ROOT ACMS$DIRECTORY:ACMSCMD.MDB
    ADU> EXIT
    


Previous Next Contents Index