Re: Sql*Forms (Highlighting Fields / using pointer)

From: <rzx2122_at_mcvax2.d48.lilly.com>
Date: 11 Jun 93 15:16:38 EST
Message-ID: <1993Jun11.151638.1_at_mcvax2.d48.lilly.com>


Reply-To: 72072.2122_at_compuserve.com
Sender: 72072.2122_at_compuserve.com
Subject: Re: Sql*Forms (Highlighting Fields / using pointer) Jennifer Farnham asks:
I would like to use the arrow keys to highlight the choices as I move thru them.

  • cut here ----------------------------- /* Copyright (c) 1988 by the Oracle Corporation */

SQL*FORMS_VERSION = 03.00.16.04.00
TERSE = ON DEFINE FORM    COMMENT = <<<
   Placed in the public domain by
   Thomas L. Harleman
   Paradigm Consulting, Inc.
   11080 Willowmere Drive
   Indianapolis, IN 46280
   CIS: 72072,2122
   This form is an example of

  1. a simplified menu system,
  2. using a pointer to highlight menu options,
  3. building a non-database block of information,
  4. a simplified user interface (turning off all unnecessary keys) In response to an INTERNET request by Jennifer Farnham. Newsgroups: comp.databases.oracle Subject: Sql*Forms (Highlighting Fields / using pointer) Message-ID: <1993Jun9.220847.485_at_stortek.com> From: v045100_at_otis1.stortek.com (Jennifer Farnham) Date: Wed, 9 Jun 1993 22:08:47 GMT Sender: usenet_at_stortek.com Organization: Storage Technology Corp. Originator: v045100_at_otis1.stortek.com Nntp-Posting-Host: otis1.stortek.com What I want to do is create a menu. I would like to use the arrow keys to highlight the choices as I move thru them. Does anyone else know of a "fancy-shmancy" way of creating a menu with highlighted bars around the choices? Also, has anyone programmed a little pointer to move down the sides of the choices like: Add User Delete User ----> Add Personnel Info Reports Now this isn't our real menu, just a sample to show you what I meant by the pointer. I have seen other menus (sql*forms) with pointers like this, just can't find the code or sample code in the Advanced Sql*Forms book. If anyone has really cool code that they want to share, I would greatly appreciate it. Thanks, Jennifer Farnham StorageTek Boulder, Colorado email to: Jenny_Farnham_at_stortek.com or post here to this newsgroup... :-) >>>

   NAME = SAMPLE_MENU
   TITLE = SAMPLE MENU
   DEFAULT_MENU_APPLICATION = DEFAULT    DEFINE TRIGGER

      COMMENT = <<<
      This is a demonstration of building records in a non-database block.
      >>>

      NAME = KEY-STARTUP
      TRIGGER_TYPE = V3
      TEXT = <<<
      BEGIN
        :DESCRIPTION := 'SHOW DIRECTORY';
        :COMMAND := 'DIR';
        :COMMAND_TYPE := 'HOST';
        NEXT_RECORD;
        :DESCRIPTION := 'ACCOUNTS RECEIVABLE';
        :COMMAND := 'RUNFORM RECEIVABLES /';
        :COMMAND_TYPE := 'HOST';
        NEXT_RECORD;
        :DESCRIPTION := 'ACCOUNTS PAYABLE';
        :COMMAND := 'PAYABLES';
        :COMMAND_TYPE := 'NEW_FORM';
        NEXT_RECORD;
        :DESCRIPTION := 'PAYROLL';
        :COMMAND := 'PAYROLL';
        :COMMAND_TYPE := 'CALL';
        NEXT_RECORD;
        :DESCRIPTION := 'GENERAL LEDGER QUERY';
        :COMMAND := 'GENLEDGER';
        :COMMAND_TYPE := 'CALL_QUERY';
        NEXT_RECORD;
        :DESCRIPTION := 'MOVE CURSOR UP';
        :COMMAND := 'UP';
        :COMMAND_TYPE := 'KEY';
        NEXT_RECORD;
        :DESCRIPTION := 'EXIT';
        :COMMAND := 'KEY-EXIT';
        :COMMAND_TYPE := 'TRIGGER';
      END;
      >>>

   ENDDEFINE TRIGGER    DEFINE BLOCK

      NAME = SAMPLE_MENU
      DESCRIPTION = pointer
      ROWS_DISPLAYED = 7
      ROWS_BUFFERED = 7
      BASE_LINE = 6
      LINES_PER_ROW = 1
      ARRAY_SIZE = 0

      DEFINE TRIGGER

         COMMENT = <<<
         This trigger turns the pointer ON for the current field.

>>>
NAME = PRE-FIELD TRIGGER_TYPE = V3 TEXT = <<< :POINTER := '--->'; DISPLAY_FIELD('DESCRIPTION','BOLD-INVERSE');
>>>
ENDDEFINE TRIGGER DEFINE TRIGGER COMMENT = <<< This trigger turns the pointer OFF as the field is exitted.
>>>
NAME = POST-FIELD TRIGGER_TYPE = V3 TEXT = <<< :POINTER := NULL; DISPLAY_FIELD('DESCRIPTION','NORMAL');
>>>
ENDDEFINE TRIGGER DEFINE TRIGGER COMMENT = <<< Checking for the last record will prevent SQL*Forms from automatically trying to create a new record.
>>>
NAME = KEY-DOWN TRIGGER_TYPE = V3 TEXT = <<< IF :SYSTEM.LAST_RECORD = 'FALSE' THEN DOWN; END IF;
>>>
ENDDEFINE TRIGGER DEFINE TRIGGER COMMENT = <<< This key is the logical processing key for the form.
>>>
NAME = KEY-ENTER TRIGGER_TYPE = V3 TEXT = <<< IF :COMMAND_TYPE = 'HOST' THEN MESSAGE('PLEASE WAIT...'); SYNCHRONIZE; HOST(:COMMAND); ELSIF :COMMAND_TYPE = 'CALL_QUERY' THEN CALL_QUERY(:COMMAND); ELSIF :COMMAND_TYPE = 'CALL' THEN CALL(:COMMAND); ELSIF :COMMAND_TYPE = 'NEW_FORM' THEN NEW_FORM(:COMMAND); ELSIF :COMMAND_TYPE = 'KEY' THEN DO_KEY(:COMMAND); ELSIF :COMMAND_TYPE = 'TRIGGER' THEN EXECUTE_TRIGGER(:COMMAND); END IF;
>>>
ENDDEFINE TRIGGER DEFINE TRIGGER COMMENT = <<< During development, always add this trigger FIRST, to give yourself a way out. If another EXIT is added in the menu, this trigger may be removed.
>>>
NAME = KEY-EXIT TRIGGER_TYPE = V3 TEXT = <<< EXIT_FORM;
>>>
ENDDEFINE TRIGGER DEFINE TRIGGER COMMENT = <<< This is the second trigger to add to an application. This simplifies the user interface by limiting the number of active keys. Add only the key triggers that add value to the user interface.
>>>
NAME = KEY-OTHERS TRIGGER_TYPE = V3 TEXT = <<< NULL;
>>>
ENDDEFINE TRIGGER DEFINE TRIGGER COMMENT = <<< Checking for the first record will prevent the SQL*Forms "At First Record" from appearing.
>>>
NAME = KEY-UP TRIGGER_TYPE = V3 TEXT = <<< IF :SYSTEM.CURSOR_RECORD > '1' THEN UP; END IF;
>>>
ENDDEFINE TRIGGER DEFINE FIELD NAME = NAVIGATION DATATYPE = CHAR LENGTH = 1 DISPLAY_LENGTH = 1 QUERY_LENGTH = 1 BASE_TABLE = OFF PAGE = 1 LINE = 1 COLUMN = 2 UPDATE = OFF QUERY = OFF ENDDEFINE FIELD DEFINE FIELD COMMENT = <<< This field is used for record navigation and displaying the pointer to the current record. (--->)
>>>
NAME = POINTER DATATYPE = CHAR LENGTH = 5 DISPLAY_LENGTH = 4 QUERY_LENGTH = 5 BASE_TABLE = OFF PAGE = 1 LINE = 1 COLUMN = 3 INPUT = OFF UPDATE = OFF QUERY = OFF ENDDEFINE FIELD DEFINE FIELD COMMENT = <<< This is the description of the menu option that the user will see.
>>>
NAME = DESCRIPTION DATATYPE = CHAR LENGTH = 21 DISPLAY_LENGTH = 21 QUERY_LENGTH = 21 BASE_TABLE = OFF PAGE = 1 LINE = 1 COLUMN = 8 HELP = Enter value for : DESCRIPTION INPUT = OFF UPDATE = OFF QUERY = OFF ENDDEFINE FIELD DEFINE FIELD COMMENT = <<< This hidden field identifies the processing method for the COMMAND.
>>>
NAME = COMMAND_TYPE DATATYPE = CHAR LENGTH = 11 DISPLAY_LENGTH = 11 QUERY_LENGTH = 0 BASE_TABLE = OFF PAGE = 1 LINE = 1 COLUMN = 30 INPUT = OFF UPDATE = OFF QUERY = OFF ENDDEFINE FIELD DEFINE FIELD COMMENT = <<< This is the line that SQL*Forms will process when this record is selected.
>>>
NAME = COMMAND DATATYPE = CHAR LENGTH = 40 DISPLAY_LENGTH = 39 QUERY_LENGTH = 40 BASE_TABLE = OFF PAGE = 1 LINE = 1 COLUMN = 42 INPUT = OFF UPDATE = OFF QUERY = OFF ENDDEFINE FIELD

   ENDDEFINE BLOCK    DEFINE SCREEN       DEFINE PAGE

         PAGE = 1
         PAGE_XS = 0
         PAGE_YS = 0
         PAGE_PX0 = 0
         PAGE_PY0 = 0
         PAGE_PXS = 0
         PAGE_PYS = 0
         PAGE_SX0 = 0
         PAGE_SY0 = 0
         MODE = TEXT
         BOILER = <<<
                                           SAMPLE MENU

>>>
LINE = 4 BOILER = <<< Option
>>>
MODE = BOX LINE = 3 BOILER = <<< p---------------------------q | | (---------------------------) | | | | | | | | | | | | | | b---------------------------d
>>>
ENDDEFINE PAGE

   ENDDEFINE SCREEN ENDDEFINE FORM

------------------------------ cut here -----------------------------

========================================================================
                                            chicago ,--------+  detroit
Tom Harleman                                        |        |
INOUG Committee Member                              |Indiana |
Paradigm Consulting, Inc.                 st.       | Oracle |
11080 Willowmere Drive                    louis     |  Users |
Indianapolis, IN  46280                             |   Group|
USA                                                 |        |
                                                    |      _,+cincinnati
INTERNET:   72072.2122_at_compuserve.com               /   _,'
Compuserve: 72072,2122                             /_,-'louisville
                                                   `
EXECUTE_TRIGGER('DISCLAIMER');
Received on Fri Jun 11 1993 - 22:16:38 CEST

Original text of this message