TITLE(dataentry @@ Spreadsheet Interface for Entering Data)
USAGE(
data.entry(DOTS, Modes=NULL, Names=NULL)
dataentry(data, modes)
de(DOTS, Modes=NULL, Names=NULL)
)
ALIAS(data.entry)
ALIAS(dataentry)
ALIAS(de)
ALIAS(de.ncols)
ALIAS(de.restore)
ALIAS(de.setup)
DESCRIPTION(
This is a fairly big suite of programs designed to make the interface
to the spreadsheet painless for users.  LANG(data.entry) has side
effects, any changes made in the spreadsheet are reflected in the
variables.  The functions LANG(de), LANG(de.ncols), LANG(de.setup)
and LANG(de.restore) are designed to help achieve these side effects.
If the user passes in a matrix, LANG(X) say, then the matrix is
broken into columns before LANG(dataentry) is called. Then on return
the columns are collected and glued back together and the result
assigned to the variable LANG(X).  If you don't want this behaviour
use dataentry directly.
PARA
The primitive function is LANG(dataentry). It takes a list of
vectors of possibly different lengths and modes (the second argument)
and opens a spreadsheet with these variables being the columns.
The columns of the dataentry window are returned as vectors in a
list when the spreadsheet is closed.
PARA
LANG(de.ncols) counts the number of columns which are supplied as arguments
to LANG(data.entry). It attempts to count columns in lists, matrices
and vectors.  LANG(de.setup) sets things up so that on return the
columns can be regrouped and reassigned to the correct name. This
is handled by LANG(de.restore).
)
SEEALSO(
LANG(LINK(vi)), LANG(LINK(ed)).
)
EXAMPLES(
# call data entry with variables x and y
data.entry(x,y)
)
