DOCUMENT #779
===========================================================================
MENULESS FORMS
===========================================================================
PRODUCT: R:BASE VERSION: 4.5+ or Higher
===========================================================================
CATALOG: Forms, Reports & Labels AREA : Forms
===========================================================================
Menuless forms have been available in R:BASE since 3.1B but the Esc and
Enter keys were the only ones that could be used to control data entry --
Esc left the form, and Enter added a row. This limited the usablity of
menuless forms and they could not be used in forms with regions. New form
features and EEP commands in 4.5 Plus! make menuless forms much more
usable.
Adding data with a menuless form
Use the F10 key in 4.5 Plus! when adding data to save a row and present a
new row for entering data. The F10 key acts just like the Add row option
on the form menu. It works well with all types of forms, including
multi-table forms with regions. Without this option, if your last table
is a region you can't use menuless forms to add data.
You can also use the F9 key to discard data. When you Esc to leave the
form, if you have not saved your data you will get the Do you want to
save your changes? dialog box.
Editing data with a menuless form
Note that the F9 and F10 keys will not work when editing data with a
menuless form. They are only active in edit mode if you have the menu
selections Add row and Delete row selected. Instead of using the function
keys, place a "toolbar" on your form that simulates these actions as well
as moving between rows. This tip comes from Wayne Erickson, Microrim
Chairman and Founder. He has used new EEP commands to create a "toolbar"
for use with the mouse and a menuless form.
The "toolbar" is a series of variables. The variable definition is simply
the text you want to appear in the "button", for example,
vnextrow = 'Next'. Customize the field settings for colors. You can change
the color of the line draw character now on the Form settings screen, so
you can draw a different colored line, red, for example, around the
"buttons" on the "toolbar". Make sure all the variables allow data entry.
Each variable has an EEP defined "On entry to the field". The EEP executes
when the mouse clicks on the field. This type of form is designed for use
with a mouse, not for keyboard entry -- you need to be able to randomly
select the "buttons" on the "toolbar", you can't access them in order since
you have entry EEPs defined and they will all execute as you move through
them. It works best on a single page, single table form.
The form has these "buttons" on the "toolbar":
Next -- move to the next row in the table, the same as pressing F8
Prev -- move to the previous row in the table, the same as
pressing F7
Search -- search for a specific data row, the users is prompted
to enter a search value
NewRow -- add a new, empty row to the table
Delete -- delete the current row from the table, the unique row
identifier is passed to the EEP through a form expression
Quit -- leave the form
These EEPs are placed on the respective "toolbar buttons". They all use th
e
SKIP TO command to return to the first data field in the form after
executing the EEP commands.
*(NEXTROW.EEP)
NEXTROW
SKIP TO firstname
SCREEN RESTORE OFF
*(PREVROW.EEP
PREVROW
SKIP TO firstname
SCREEN RESTORE OFF
*(SEARCH.EEP)
SET ERROR VAR imstat
DIALOG 'Enter the last name you are looking for' +
vsearch=16 vkey 1 AT 15
IF vkey = '[Esc]' THEN
RETURN
ENDIF
-- Search for matching record
WHILE #PI <> 0.0 THEN
IF vlastname CONTAINS .vsearch THEN
BREAK
ENDIF
NEXTROW
IF imstat <> 0 THEN
PAUSE 2 USING 'No matches found' AT 15 CENTER DEFAULT
BREAK
ENDIF
ENDWH
SKIP TO firstname
SCREEN RESTORE OFF
SET ERROR VAR OFF
RETURN
*(NEWROW.EEP)
NEWROW
SKIP TO firstname
SCREEN RESTORE OFF
*(DELETE.EEP)
-- this EEP needs a form expression, vlastname = lastname,
-- to store the row identifier
SET MESSAGE OFF
DIALOG 'Are you sure you want to delete this row?' doit fkey NO AT 13
IF doit = 'YES' THEN
DELETE ROW FROM people WHERE lastname = .vlastname AND LIMIT = 1
SET MESSAGE ON
NEXTROW
ENDIF
SKIP TO firstname
SCREEN RESTORE OFF
*(QUIT.EEP)
PLAYBACK esc.ply
The file esc.ply contains the single keystroke Esc. It is easy to make
using the new RBEdit menu option, New playback file. Simply choose that
menu option, enter the keystroke enclosed in square brackets, [esc], then
save the file. That's it.