snextfld - set next field to process


snextfld (fieldname)

char *fieldname;


Snextfld specifies the next field to be processed for data entry. Normally, after exiting a field, the cursor moves to the next field in the formfile, or, if a up arrow key was pushed, the cursor moves to the previous field. Snextfld changes the next field to be processed to the first field in the current form with a field_name or edit_name equal to the fieldname parameter. Only operator modifiable fields can be specified as field names for snextfld. Thus, no fields are valid when in FIND mode, and key fields are not valid when in UPDATE mode. If the specified field name is valid, then snextfld returns a nonzero value.

If fieldname is NULL or an empty string, then snextfld sets the next field to be processed back to the next sequential field. This can be used to undo the effect of a previous snextfld call.

Snextfld does not actually move the cursor at the time of call, but instead saves the field to process next. It is not necessary to use snextfld to position the cursor before calling sread(C-3) or swrite(C-3). Swrite "positions" the cursor automatically to the correct field, and sread does not read the contents of the screen.

The user edit routine may inspect a record when the STORE key is pushed, and if any errors are discovered, snextfld may be used to position the cursor to the field in error. The user edit routine can then return an error message. Form displays the error message, and then positions the cursor to the field specified in the snextfld call. This allows the operator to easily identify the field in error and to correct the error.




Snextfld returns a value of zero if the field name cannot be found, or if the cursor may not be moved to the named field.