Interpreted Commands

DCSTD.CH.............The "Standard" command set
AEDIT................Edit an Array
AEVAL................Evaluate an Array
APPEND...............Append and Edit a new record
APPEND BLANK.........Append a Blank record
APPEND FROM..........Append records from another file
APPEND VIRTUAL.......Append Virtual Record to selected database
AVERAGE..............Average numeric fields in selected database
AVIEW................A Tree style array/object browser
BATCH................Process a Batch file with Dot-Prompt commands
BLANK................Blank record(s) in currently selecte database
BROWSE...............A text-base Database browsing system
CALC.................A popup, full-function calculator
CD | CHDIR...........Change system directory
CHR..................Display an ASCII Character Chart
CLEAR SCOPE..........Clear scoping values for the current work area
CODE DELETE..........Delete a code table
CODE EDIT............Edit a Code Table
CODE IMPORT..........Import a code table
CODE RENAME..........Rename a Code Table
COMPILE..............Compile a source .PRG or all changed .PRGs
CONTINUE.............Continue Locating a record
COPY TO..............Copy records from selected database to a new database
COPYNEW..............Copy only new files to another directory
COUNT................Count records in selected database
CREATE...............Create a new database
CRT..................Run a text-based procedure in a new CRT Window
DATACONVERT..........Convert a database to a different DBE driver
DATE.................A pop-up calendar for selecting a date
DELETE...............Mark record(s) for deletion
DELETE FILE..........Delete a file
DELETE TAG...........Delete a tag from a combined index
DIR..................Display a directory of files or databases
DISPLAY MEMORY.......Display the contents of a memory file or current memory
DISPLAY STATUS.......Display System status window
DISPLAY STRUCTURE....Display the structure of the selected database
DLL LIST.............List all loaded dynamic .DLLs
DLL LOAD.............Load a dynamic .DLL
DLL UNLOAD...........UnLoad a dynamic .DLL
EDIT FILE............Edit a source file
EDIT VIRTUAL.........Edit the Virtual Record
FILE DELETE..........Delete a file group from the DCFILES.DBF dictionary
FILE EDIT............A Database File / Work area Definition editor
FILE IMPORT..........Import File Group(s) from the Import File Dictionary
FILE RESTORE.........Restore work areas, indexes, relations, from dictionary
FILE SAVE............Save Work area definition array to dictionary
FIND.................GUI dialog for finding a record using an index
GO BOTTOM............Go to the Bottom of a set of Scoped Records
GO TOP...............Go to the Top of a set of Scoped Records
HELP.................Display HELP for a command or function
HUNT.................Hunt for a record by search all indexes
IF ELSE..............Evaluate a list of expressions based on a condition
INDEX FIELDS.........Create index tags for all fields in a database
INDEX ON.............Create an index
INKEY................Display Inkey() and AppEvent() values for pressed keys
INSERT...............Insert Blank or Virtual records in selected database
INTERP...............Browse an array
INTERP...............Save current record to Virtual record
INTERP...............Login to application to establish user rights
INTERP...............Create a new menu with Menu Editor
INTERP...............Set a relation with a child scope
INTERP...............Set the Dialogue mode to GUI or TEXT
INTERP...............Recall record(s) that were previously marked for deletion
INTERP...............Interpret a command string
INTERP...............Select a database driver
INTERP...............Replace the current record contents with Virtual record arra
INTERP...............Assign new values to field variables
INTERP...............Search all fields in a set of databases for a value
INTERP...............Restore a multidimensional array from a binary file
INTERP...............Save info about all open workareas to an array
INTERP...............Restore work areas
INTERP...............Seek a record in a set of Scoped Records
INTERP...............Select a database from a picklist of open files
INTERP...............Pop up an editing screen for all SET environment variables
INTERP...............Save the SET environment to a file
INTERP...............Restore the SET environment from a file
INTERP...............A Complex Pull-Down Menu Editor
INTERP...............Modify the structure of a database
INTERP...............Maintain the "Lock" definition database
INTERP...............Lock the current record
INTERP...............Lock the current file
INTERP...............Pack the current database
INTERP...............Run a Program from the Program Dictionary
INTERP...............Maintain the DCPROG.DBF Program Dictionary File
INTERP...............Dynamically load an Xbase++ compiled .OBJ for execution
INTERP...............Purge duplicate records from a database
INTERP...............Locate a record
INTERP...............Establish the working directory for .OBJ files
INTERP...............Set and/or view an environment variable
INTERP...............Establish the working directory for .PRG files
INTERP...............Establish the type of prompt for the Dot-prompt
INTERP...............Toggle automatic File/Record locking
INTERP...............Create a command to run a batch file
INTERP...............Set Dot-Prompt command stack to DOS-Key emulation
INTERP...............Set the size of the Dot-prompt command stack
INTERP...............Establish the default source code editor
INTERP...............Establish the hot key for popping up a field list
INTERP...............Set percentage update of progress odometer
INTERP...............Create a command to run a function or procedure
INTERP...............Create a command to run an executable program
SET SCOPE............Set a scoping value for the current work area
SET STATUS...........Toggle display of GUI Status Window
SET TALK.............Toggle display of pre-processed output
SET USEEXCLDATA......Force Exclusive use of application databases
SET XPPOPT...........Set the default Compiler switches
SET XPPPATH..........Set the directory when the Compiler resides
SKIP.................Skip records in a set of Scoped Records
STACK................Display the callstack and optionally edit the source
SUM..................Sum numeric fields in selected database
TAG..................Build or add to a Record Tag Array
TAG CLEAR............Clear the Record Tag Array
UNLOCK...............Unlock the current record
USE..................Open a database file in a work area
USER EDIT............Maintain the DCUSERS.DBF User Database
UTIL.................A menu of database utilities
WHERE PUBLIC.........List .OBJ(s) that contain public function
WHERE SOURCE.........Display a list of .OBJ/.PRG files containing PUBLIC proc
ZAP..................Zap the database
DBU..................A Gui Database Management Utility

DCSTD.CH

The "Standard" command set

Description:

    The DCSTD.CH file is an "include" file that is used to
    pre-process miscellaneous commands and dot-prompt commands.
   
    This is the "standard" command set that is basically equivalent
    to Alaska's STD.CH.  This command set overloads some commands
    in STD.CH to provide extra functionality, such as progress
    bars in database commands.
   
    DCSTD.CH is automatically loaded the first time a command is
    entered at the dot-prompt.  This file must exist in your
    INCLUDE=<þincludeþ> path or an error window will be displayed
    the first time you try to enter a command.
   

Source/Library:

  DCSTD.CH

See Also:

   DC_Dot()



AEDIT

Edit an Array

Syntax:

   AEDIT <  array  >
   

Arguments:

   < array > is the name of any multidimensional array or subarray to
   edit.  If this command is used at the dot-prompt, the array
   must be a private or public variable.
   

Description:

    AEDIT is a full-screen (text-mode) array editor that allows
    editing of any type of multidimensional array.
   

Examples:

    . aDir := directory()
    . AEDIT aDir
   

Source/Library:

  DCSTD.CH

See Also:

   AVIEW



AEVAL

Evaluate an Array

Syntax:

   AEVAL < array > [,< parameter >] [DO] < xpr list > ;
     [START < elem >] [COUNT < elems >]
   

Arguments:

   < array > is the name of the array to evaluate.
   
   < parameter > is an optional parameter used by expressions in
   the expression list.
   
   < xpr list > is a list of expressions (separated by commas) to
   evaluate for each array element.
   
   START < elem > is the starting element number.
   
   COUNT < elems > is the number of elements to evaluate.
   

Description:

    AEVAL functions identically to the AEVAL() function except the
    expressions do not need to be code blocks.
   

Examples:

    . DIR := DIRECTORY()
    . AEVAL DIR QOUT(DIR[1],DIR[2]) START 10 COUNT 5
   

Source/Library:

  DCSTD.CH

APPEND

Append and Edit a new record

Syntax:

    APPEND
   

Arguments:

   None.
   

Description:

    APPEND adds a new record to the currently selected database and
    then invokes the full-screen (text-mode) editor.
   

Examples:

    . USE COLLECT
    . APPEND
   

Source/Library:

  DCSTD.CH

See Also:

   APPEND FROM



APPEND BLANK

Append a Blank record

Syntax:

    APPEND BLANK
   

Arguments:

   None.
   

Description:

    APPEND BLANK will append a blank record to the currently
    selected database.  This functions identical to the Xbase++
    APPEND BLANK command except it automatically locks and unlocks
    the record.
   

Examples:

    . USE COLLECT
    . APPEND BLANK
    . EDIT
   

Source/Library:

  DCSTD.CH

See Also:

   APPEND



APPEND FROM

Append records from another file

Syntax:

   APPEND FROM < file > [ < args > ]
   

Arguments:

   See the Xbase++ documentation for details about < args >.
   

Description:

    APPEND FROM works identical to the Xbase++ APPEND FROM command
    except a progress odometer will display the number of records
    scanned and the number of records that were actually appended
    if using the FROM option.
   

Examples:

   . USE COLLECT
   . APPEND FROM JUNK
   

Source/Library:

  DCSTD.CH

See Also:

   APPEND



APPEND VIRTUAL

Append Virtual Record to selected database

Syntax:

   APPEND VIRTUAL
   

Arguments:

   None
   

Description:

   APPEND VIRTUAL will append the virtual record to the currently
   selected database.  The virtual record must first exist in the
   form of a *.DCV file originally created by the SAVE VIRTUAL
   command or DC_VirtSave() function.
   

Examples:

   . USE COLLECT
   . GO 10
   . SAVE VIRTUAL
   . APPEND VIRTUAL
   

Source/Library:

  DCSTD.CH

AVERAGE

Average numeric fields in selected database

Syntax:

    AVERAGE [ < args > ]
   

Arguments:

    See the Xbase++ documentation for details about < args >.
   

Description:

    AVERAGE is used to average numeric fields in the currently
    selected database based on a set of conditions. This command
    functions identical to the Xbase++ AVERAGE command with the
    exception that a progress bar is displayed during the averaging
    and the number of records actually averaged is displayed.
   
    If no arguments are given, then AVERAGE uses the DC_Average()
    function to display a GUI dialog for selecting fields and
    options.
   

Examples:

    . USE COLLECT
    . AVERAGE orig_price TO nPrice
    . AVERAGE
   

Source/Library:

  DCSTD.CH

See Also:

   dc_average()



AVIEW

A Tree style array/object browser

Syntax:

    AVIEW  aArray | oObject [EXPAND]
   

Arguments:

   < aArray > is any type of array.
   
   < oObject > is any type of object.
   
   EXPAND will expand all elements in the tree.
   

Returns:

    NIL.
   

Description:

    AVIEW is used to browse multidimensional arrays and/or objects
    using a Tree-View style browser.
   
    The array can be any type of array with any dimensions and may
    contain any type of data. When expanding the array tree, the
    user has the option of opening a new window to display the
    contents of the sub-tree.  When expanding an object, the user
    has the option of displaying the properties of the object
    using DC_InspectObject().
   

Examples:

    . aDir := directory()
    . AVIEW aDir EXPAND
   

Source/Library:

  DCSTD.CH

See Also:

   dc_arrayview()
   dc_inspectobject()



BATCH

Process a Batch file with Dot-Prompt commands

Syntax:

   BATCH [NEW] < batch file > ;
      [ < param1 > [ < param2 > [ < param3 > [
   < param4 > [ < param5 > ]]]]]
   

Arguments:

   < batch file > is the name of the batch file to execute.  If no
   extension is given, then .DCB is assumed.  If no directory
   path is included, then eXPress++ will search the current
   directory followed by the directory established in the SET
   DCLIP=< directory > environment command.
   
   NEW will run the batch file in a new thread.
   
   < param1 > - < param5 > are arguments which are replaced in
   the
   batch file by %1 - %5 in the same manner as replacement is
   accomplished in DOS .BAT files.
   

Description:

    BATCH execute all commands in a .DCB batch file in sequential
    order.   A batch file can include any commands which can be
    entered at the dot-prompt and executed by the eXPress++
    interpreter other than structural commands, like DO WHILE, DO CASE
    IF..ENDIF or FOR..NEXT.  All commands in DCSTD.CH, DCDIALOG.CH,
    or DCCUSTOM.CH may be used in batch files.
   

Notes:

    DC_Dot() will automatically execute an AUTOEXEC.DCB batch file
    found in the directory containing the executable program or
    the or the directory named by the dos SET DCLIP=<þdirectoryþ>
    environment setting.
   

Examples:

    . BATCH OUTPUT MYFILE.PRG PRN
   
   // start up the same browse in two different threads
    . BATCH NEW BROWSE
    . BATCH NEW BROWSE
   

Source/Library:

  DCSTD.CH

See Also:

   DC_Batch()
   DC_BatchNewThread()



BLANK

Blank record(s) in currently selecte database

Syntax:

   BLANK [FOR < lCondition] ;
         [WHILE < lCondition >] ;
         [NEXT < nRecords >] ;
         [RECORD < nRecNo >] ;
         [REST] ;
         [ALL]
   

Arguments:

   See the Xbase++ documentation for information on how to use the
   FOR, WHILE, NEXT, ALL, REST, and RECORD clauses.
   
   If no arguments are used, only the current record will be
   blanked.
   

Description:

    BLANK is used to blank out all fields in selected records
    of the current work area.
   

Examples:

    . BLANK FOR deleted()
    . BLANK FOR user_id='GOOFY'
    . BLANK
   

Source/Library:

  DCSTD.CH

See Also:

   dc_blank()



BROWSE

A text-base Database browsing system

Syntax:

   BROWSE [PROTECT] ;
          [EDIT] ;
          [CLEAR [ALL]] ;
          [FIELDS < fields,... >] ;
          [HEADERS < headers,... >] ;
          [DEFAULT] ;
          [RESTORE [FROM] < cBrowName >]
          [OVERLAY]
   

Arguments:

   EDIT will re-paint all previously created Editing Screens
   that were created with the EDIT command.
   
   FIELDS < fields > is a list of fields to browse.  If no field
   list is passed, then all fields will be included in the
   browse.
   
   HEADERS < headers > is a list of headers that matches the list
   of fields to browse.  If no header list is passed, then the
   headers will default to the field names.
   
   CLEAR will clear any previously configured browse window for
   the current work area and create a browse window with the
   default configuration using the full screen and all fields.
   
   CLEAR ALL will clear all browse windows for all work areas.
   
   PROTECT will protect data from being modified by the user.
   
   DEFAULT will display a default browse even if there is a
   browse in the Browse dictionary that matches the alias name
   of the browse.  A default browse is a one that displays all
   fields.
   
   RESTORE FROM < cBrowName > will restore a specified browse
   from the Browse dictionary.  < cBrowName > is the name of the
   browse to restore.  This stored browse configuration much
   match the field names of the current database or an error
   will occur.
   
   OVERLAY will display the browse screen over any existing
   screens.  If this clause is not used, then the screen will
   be cleared first.
   

Description:

    BROWSE is a multi-windowing database manager that utilizes a
    browse-style menu for viewing, printing or editing databases.
   
    BROWSE maintains a multi-dimensional array of information for
    all open work areas which is remembered even after the browse
    is exited. When the BROWSE command is used again in any work
    area which was previously browsed, the browse configuration
    (including field pointers, column configuration, etc.) will
    automatically be restored.
   
    BROWSE is a complete DBMS system that supports a set of pop-up
    menus for selection of files, viewing options, editing options,
    printing options, search options, and utilities.
   
    BROWSE supports importing/exporting, cut and paste and a
    built-in support for replaceable database drivers (DBE's).
    Databases of different types may be opened in different windows
    and macros can be created to easily move data between fields
    and records from any database window.
   

Examples:

    . USE CUSTOMER
    . BROWSE CUST_NAME, BALANCE
   

Source/Library:

  DCSTD.CH

See Also:

   dc_browsedb()



CALC

A popup, full-function calculator

Syntax:

    CALC
   

Arguments:

    None.
   

Description:

    CALC displays a GUI calculator.
   

Examples:

    . CALC
   

Source/Library:

  DCSTD.CH

See Also:

   dc_popcalc()



CD | CHDIR

Change system directory

Syntax:

    CD | CHDIR < dir >
   

Arguments:

   < dir > is the drive and directory to select.
   

Returns:

   .
   

Description:

    CD is used to select a new system drive and directory.
   

Examples:

    . C:
    . CD \express\lib
    . CD ..\sample
   

Source/Library:

  DCSTD.CH

See Also:

   dc_chdir()



CHR

Display an ASCII Character Chart

Syntax:

    CHR
   

Arguments:

    None.
   

Description:

    CHR will display a chart of the 256 ASCII text-mode characters
    in a new CRT window.
   

Examples:

    . CHR
   

Source/Library:

  DCSTD.CH

See Also:

   dc_chrsel()



CLEAR SCOPE

Clear scoping values for the current work area

Syntax:

    CLEAR SCOPE
   

Arguments:

    None.
   

Description:

    CLEAR SCOPE is used to clear both the SCOPETOP and SCOPEBOTTOM
   "scoping range" values that were previously set by SET SCOPE or
    DC_SetScope().
   

Notes:

    SET SCOPE does not establish the scoping range at the
    DBE-layer level, but instead is just a handy way of storing
    the SCOPE TOP and SCOPE BOTTOM to be retrieved by programs
    that can use this information such as data-entry systems and
    browse systems.  It does not affect the behavior of the
    data-driver nor does it set any filters on the data.
   

Examples:

    . SET SCOPETOP TO 'B'
    . SET SCOPEBOTTOM TO 'D'
    . BROWSE
    . CLEAR SCOPE
   

Source/Library:

  DCSTD.CH

See Also:

   dc_clrscope()



CODE DELETE

Delete a code table

Syntax:

    CODE DELETE [ < tableName > ]
   

Arguments:

   < tableName > is the name of the code table.  This is a name of
   up to eight (8) characters.  If no argument is passed, then a
   pick list of all code tables in the code table file will be
   displayed.
   

Description:

    CODE DELETE is used to delete a code table from the code
    table file.
   

Notes:

    The DCCODES.DBF file and its indexes will be created by
    the DC_CodeOpen() function if it they do not already exist.
   

Examples:

    CODE DELETE POSITION
   

Source/Library:

  DCSTD.CH

See Also:

   dc_codedelete()
   CODE EDIT



CODE EDIT

Edit a Code Table

Syntax:

   CODE EDIT [ [TABLE] < cTable > ]
   

Arguments:

   < cTable > is the name of the code table in DCCODES.DBF
   to load and edit (up to 8 characters).  If no parameter is
   passed then a pick-list of available code tables will be
   displayed.
   

Description:

    CODE EDIT is an editor that is used to maintain the DCCODES.DBF
    dictionary file.  Code Tables are groups of records that are
    loaded into an array pick-list and used in validations when
    using the eXPress++ data-driven Browse and Edit (data-entry)
    system.  When a "T" validation is used in a field-array, this
    pops-up a code table pick-list for the operator to choose
    possible values.  Code tables can also be used in custom
    applications where validations and/or choice boxes are required.
   
    For example a code table named "POSITION" can be added to
    provide a picklist of available entries for a field of
    baseball player positions.  They would be entered in a code
    table as follows:
   
     1B  -  First Base
     2B  -  Second Base
     3B  -  Third Base
     P   -  Pitcher
     SS  -  Short Stop
     RF  -  Right Field
     LF  -  Left Field
     CF  -  Center Field
     C   -  Catcher
   
    A choice from this table can then be selected by calling
    DC_CodeGet() in a validation or popup routine.
   

Notes:

    The DCCODES.DBF file and its indexes will be created by
    the DC_CodeOpen() function if it they do not already exist.
   

Examples:

    -- Example 1 --
    // Load a code table from the dictionary and edit it //
    CODE EDIT
   
    -- Example 2 --
    // Edit code table "POSITION"
    CODE EDIT POSITION
   

Source/Library:

  DCSTD.CH

See Also:

   dc_codeedit()



CODE IMPORT

Import a code table

Syntax:

   CODE IMPORT [table name] | "ALL"]
   

Arguments:

   < tablename > is the name of the code table.  This is a name of
   up to eight (8) characters.  If a code table name is passed then
   the DXCODES.DBF database will be searched and all code table
   items that match the code table name will be imported into
   DCCODES.DBF.  If no name is passed, then a pick-list of all tables
   stored in the DXCODES.DBF database will be displayed.
   
   If ALL is passed as the table name, then all tables in the
   DXCODES.DBF will be imported into DCCODES.DBF.
   

Returns:

    A logical .TRUE. if the code table was saved, .FALSE. otherwise.
   

Description:

    CODE IMPORT is used to import a code table from the DXCODES.DBF
    import/export file to the DCCODES.DBF file.
   

Notes:

    The DCCODES.DBF file is the data-dictionary database that
    contains all code tables.  If this file does not exist in your
    default directory or path then it will be created.   The
    DXCODES.DBF file is the data-dictionary database that contains
    all code tables that were exported from another system.
   

Examples:

    . CODE IMPORT ALL
   

Source/Library:

  DCSTD.CH

See Also:

   dc_codeimp()
   CODE EDIT



CODE RENAME

Rename a Code Table

Syntax:

    CODE RENAME < cTableName > TO < cNewName >
   

Arguments:

   < cTableName > is the name of the table to rename.  This is a
   name of up to 10 characters.  If no name is given, then a pick
   list of all code tables will be displayed.
   
   TO < cNewName > is the new name.  If no name is given, then a
   dialog window will be displayed to enter a new name.
   

Description:

    CODE RENAME is used to rename a Code Table.
   

Examples:

   CODE RENAME BULLET TO BULLETS
   

Source/Library:

  DCSTD.CH

See Also:

   dc_coderename()
   CODE EDIT



COMPILE

Compile a source .PRG or all changed .PRGs

Syntax:

    COMPILE [ < filename > ], ;
            [OPTIONS < options >], ;
            [QUIET], ;
            [NOWINDOW], ;
            [RECOMPILE]
   

Arguments:

   < filename > is the name of the file to compile.  If this
   argument is left blank, then all .PRG files which have a later
   date stamp than the associated .OBJ file will be compiled.
   
   OPTIONS < options > is a string of compiler options.  If no argument
   is
   given, then the options established by DC_SETT('XPPOPT',< cOptions >),
   SET XPPOPT TO < cOptions > or XPPOPT=< cOptions > (DCLIP.SYS)
   are
   used as the default.
   
   QUIET will prevent displaying the status after compiling.
   
   NOWINDOW will suppress the display a window showing the compiled
   results.
   
   RECOMPILE will force a recompile of < filename > regardless of
   the date/time of < filename >.  If this clause is not used,
   then < filename > will be compiled only if it's date/time stamp
   is later than the date/time stamp of it's associated. .OBJ file.
   

Description:

    COMPILE | XPP compiles a specified .PRG file into an .OBJ file
    or recompiles all .PRG files which have been modified and
    have a later date/time stamp than their associated .OBJ file.
   
    Use COMPILE | XPP after editing your source files.  COMPILE | XPP
    checks the date and time stamp on .PRG files and compares them
    to the date and time on any corresponding .OBJ files.  If the
    date and/or time on a .PRG is later than the corresponding
    .OBJ, the .PRG will be compiled with the /m option.
   

Notes:

    If <þcFileNameþ> contains a full-path specification of a .PRG
    file, then the compiled .OBJ will be created in the same
    directory as the .PRG file unless the /o compiler switch is
    used to direct the output.
   
    If <þcFileNameþ> does not contain a full path then the .PRG file
    must exist in the current directory or the directory
    established by DC_SETT('PDIR',<þcPathþ>),  SET PDIR TO
   <þcPathþ>
    or PDIR=<þcPathþ> (DCLIP.SYS).
   
    If <þcFileNameþ> does not contain a full path or the /o compiler
    switch is not used, then the compiled .OBJ will be created in
    the directory established by DC_SETT('ODIR',<þcPathþ>),  SET ODIR
    TO <þcPathþ> or ODIR=<þcPathþ> (DCLIP.SYS).
   

Examples:

    accept 'Enter a file to edit and compile' TO cFile
    dc_editprg(cFile)
    DC_COMPILE(cFile,'/n/m/w/l')
   

Source/Library:

  DCSTD.CH

See Also:

   dc_compile()



CONTINUE

Continue Locating a record

Syntax:

    LOCATE [ < clauses > ]
   

Arguments:

    See the Xbase++ documentation for a description of < clauses >.
   

Description:

    CONTINUE is a front-end to the Xbase++ CONTINUE command. It
    functions identically with the exception that it stays within
    any scope that was  previously set with SET SCOPE or
    DC_SetScope().
   

Examples:

    . USE EXPRESS VIA FOXCDX
    . LOCATE FOR COMMAND = 'dc_dot'
   

Source/Library:

  DCSTD.CH

See Also:

   dc_dbcontinue()
   dc_dblocate()



COPY TO

Copy records from selected database to a new database

Syntax:

    COPY TO [ < args > ]
   

Arguments:

    See the Xbase++ documentation for details about < args >.
   

Description:

    COPY TO is used to copy records from the currently selected
    database to a new database based on a set of conditions.
    This command function identical to the Xbase++ COPY TO command
    with the exception that a progress bar is displayed during the
    copy and the number of records actually copied is displayed.
   

Examples:

    . USE COLLECT
    . COPY TO JUNK FOR RecNo() > 5
   

Source/Library:

  DCSTD.CH

COPYNEW

Copy only new files to another directory

Syntax:

    COPYNEW < cFromSpec > TO < cToSpec >
   

Arguments:

   < cFromSpec > is the specification of the file(s) to copy from.
   If this argument is not given, then a dialog will be displayed
   prompting the user for the file specification.
   
   < cToSpec > is the specification of the directory to copy to.
   If this argument is not given, then a dialog will be displayed
   prompting the user for the directory specification.
   

Description:

    COPYNEW is used to copy a file or set of files to another
    directory only if they are newer than the sames files in the
    destination directory.
   
    A dialog window will display the status of all files copied.
   

Examples:

    COPYNEW *.TXT TO C:\express\sample
   

Source/Library:

  DCSTD.CH

See Also:

   dc_copynew()



COUNT

Count records in selected database

Syntax:

    COUNT [ < args > ]
   

Arguments:

    See the Xbase++ documentation for details about < args >.
   

Description:

    COUNT is used to count records from the currently selected
    database based on a set of conditions. This command functions
    identical to the Xbase++ COUNT command with the exception that
    a progress bar is displayed during the copy and the number of
    records actually counted is displayed.
   
    If no arguments are passed COUNT will use DC_Count() to display
    a GUI dialog for selection of conditions.
   

Examples:

    . USE COLLECT
    . COUNT FOR RecNo() > 5
    . COUNT
    . COUNT TO nCount
   

Source/Library:

  DCSTD.CH

See Also:

   dc_count()



CREATE

Create a new database

Syntax:

    CREATE < database >
   

Arguments:

   < database > is the name of the new database to create.  If you
   do not include an extension, then the default extension for the
   currently selected database driver will be used.
   

Description:

    CREATE is used to create a new database from a menu in which
    the user is prompted for entering field names, types, lengths,
    etc.
   
    The currently selected default DBE is used when the new database
    is created.
   

Examples:

    . SET DBE TO FOXCDX
    . CREATE JUNK
   

Source/Library:

  DCSTD.CH

See Also:

   dc_create()



CRT

Run a text-based procedure in a new CRT Window

Syntax:

    CRT < bBlock > [TITLE < cTitle >] ;
                 [COLOR < cColorString >]
   

Arguments:

   < bBlock > is the code block to evaluate after the CRT window
   is created or selected.
   
   TITLE < cTitle > is the title to place into the title bar of the CRT
   window.
   
   COLOR < cColorString > is the color to clear the CRT window.
   

Description:

    CRT is used to run a text-based procedure in a new CRT Window.
   
    The function DC_CrtRunWindow() is used to store a pointer to
    any existing XbpCrt() class window to use.  If this function
    returns anything other than an XbpCrt() object, then a new
    CRT window is created before the code block is evaluated and
    then destroyed after returning from the code block.
   

Examples:

    . CRT {||DC_ChrSel()} TITLE 'ASCII Chart' COLOR 'N/W'
   

Source/Library:

  DCSTD.CH

See Also:

   dc_crtrun()



DATACONVERT

Convert a database to a different DBE driver

Syntax:

    DATACONVERT < cFileName > ;
          FROMDBE < fromDBE > ;
          TODBE < toDBE >] ;
          EXTENSION < ext >
   

Arguments:

   < filename > is the name of the database to convert.  If this
   argument is not passed a GUI dialog window will be displayed to
   enter information required.  Enter ALL to convert all databases
   with a specified extension.
   
   < fromDBE > is the DBE to use to open < cFileName >.
   
   < toDBE > is the DBE to use to create the converted file.
   
   < ext > is the extension to use when using ALL as the file name.
   

Description:

    DATACONVERT is used to convert a database to use another
    DBE driver.
   

Examples:

    // convert all files that have a .DBT memo file.
    . DATACONVERT COLLECT FROMDBE DBFNTX TODBE FOXCDX EXTE .DBT
   
    // convert all files that have a .DBF extension
    . DATACONVERT ALL FROMDBE DBFNTX TODBE DBFCDX EXTE .DBF
   

Source/Library:

  DCSTD.CH

See Also:

   dc_dataconvert()



DATE

A pop-up calendar for selecting a date

Syntax:

    DATE
   

Arguments:

    None.
   

Description:

    DATE displays a GUI calendar.
   

Examples:

    . DATE
   

Source/Library:

  DCSTD.CH

See Also:

   dc_popdate()



DELETE

Mark record(s) for deletion

Syntax:

    DELETE [ < args > ]
   

Arguments:

    See the Xbase++ documentation for < args >.
   

Description:

    DELETE without arguments is used to mark the current record for
    deletion.  This command is a front-end to the Xbase++ dbDelete()
    function that automatically locks and unlocks the record to
    prevent a runtime error on shared databases.
   
    DELETE with arguments works identical to the Xbase++ DELETE
    command except a progress odometer will display the number of
    records scanned and the number of records that were actually
    deleted.
   

Examples:

    . USE EXPRESS INDEX EXPRESS.CDX SHARED
    . GO 10
    . DELETE
    . DELETE WHILE RecNo() < 20
   

Source/Library:

  DCSTD.CH

See Also:

   dc_delete()



DELETE FILE

Delete a file

Syntax:

    DELETE FILE [ < filename > ]
   

Arguments:

   < filename > is the name of the file to delete. If this argument
   is not used then a GUI dialog will be displayed to choose a file.
   

Description:

    DELETE FILE is used to delete a file from the disk.
   

Examples:

    . DELETE FILE JUNK.PRN
    . DELETE FILE
   

Source/Library:

  DCSTD.CH

See Also:

   dc_erase()



DELETE TAG

Delete a tag from a combined index

Syntax:

    DELETE TAG
   

Arguments:

    None.
   

Description:

    DELETE TAG is used to delete an index tag from a combined
    index.
   

Examples:

    . USE EXPRESS INDEX EXPRESS.CDX EXCL
    . DELETE TAG
   

Source/Library:

  DCSTD.CH

See Also:

   dc_tagdelete()



DIR

Display a directory of files or databases

Syntax:

    DIR [ < FileSpec > ]
   

Arguments:

   DIR < FileSpec > is the specification of the files to display
   including
   path and extension.  The file dialog shows the file name, date,
   size and time.
   
   If no argument is passed, then only .DBF database files will be
   displayed.  This dialog allows for the file to be automatically
   opened when the item is selected.  The database dialog shows the
   file name, date, size, number of records, and type of database.
   

Description:

    DIR is used to display a directory of files or databases.
   

Examples:

    . DIR       // display all database files
    . DIR *.TXT // display all text files
   

Source/Library:

  DCSTD.CH

See Also:

   dc_dir()



DISPLAY MEMORY

Display the contents of a memory file or current memory

Syntax:

    DISPLAY MEMORY [FILE cMemFileName]
   

Arguments:

   FILE < cMemFileName > is the name of the memory file.  If no
   extension is given then .XPF is assumed.
   
   If no argument is passed then the current contents of memory
   are saved to a file named EXPRESS.XPF and the contents of
   EXPRESS.XPF are displayed.  NOTE: If any PUBLIC or PRIVATE
   memory variables exist containing non-persistent data such as
   objects or some type of code blocks, a runtime error will
   result and the contents of memory cannot be displayed.
   

Description:

    DISPLAY MEMORY is used to display the contents of an .XPF (memory)
    file or the current contents of memory (PUBLICS/PRIVATES only)
    in a GUI scrolling browse window.
   

Examples:

    . custname := 'Donnay Software'
    . product := 'eXPress++ 2.0'
    . DISPLAY MEMORY
    . DISPLAY MEMORY FILE PRODUCT.XPF
   

Source/Library:

  DCSTD.CH

See Also:

   dc_xpftoarray()
   dc_dispmem()



DISPLAY STATUS

Display System status window

Syntax:

    DISPLAY STATUS
   

Arguments:

    None.
   

Description:

    DISPLAY STATUS is used to display a scrollable window of information
    about the system application.
   

Examples:

    . USE COLLECT INDEX COLLECT
    . DISPLAY STATUS
   

Source/Library:

  DCSTD.CH

See Also:

   dc_status()



DISPLAY STRUCTURE

Display the structure of the selected database

Syntax:

    DISPLAY STRUCTURE [WIDE]
   

Arguments:

   WIDE displays the structure in a Wide Window with the data
   formatted in the screen to view more fields in the viewable
   area of the window.  Use this option when viewing the structure
   of databases with many fields.
   

Description:

    DISPLAY STRUCTURE is used to display the structure of the selected
    database file.  A GUI dialog window displays the structure in
    a scrollable window with options to Print or save to a File.
   

Examples:

    . USE COLLECT
    . DISPLAY STRUCTURE
   

Source/Library:

  DCSTD.CH

See Also:

   dc_dbstru()
   dc_dbstruw()



DLL LIST

List all loaded dynamic .DLLs

Syntax:

    DLL LIST
   

Arguments:

   < cDllName > is the name of the .DLL to load.  If this argument
   is not passed a GUI dialog will be displayed prompting for the
   name.
   
   < lMessage > if .TRUE. (default) will display a GUI message box
   if the .DLL could not be loaded.
   

Description:

    DLL LIST is used to list all the dynamic .DLLs that are
    currently loaded.  These .DLLs must have been loaded with
    DC_DllLoad() or DLL LOAD.
   

Examples:

    . DLL LOAD MYTEST
    . DLL LOAD MYFUNCS
   

Source/Library:

  DCSTD.CH

See Also:

   dc_dlllist()



DLL LOAD

Load a dynamic .DLL

Syntax:

    DLL LOAD [ < cDllName > ]
   

Arguments:

   < cDllName > is the name of the .DLL to load.  If this argument
   is not passed a GUI dialog will be displayed prompting for the
   name.
   

Description:

    DLL LOAD is used to load a dynamic .DLL and save away
    information about the .DLL in a static array to be used later
    with DLL UNLOAD or DC_DllUnload().
   

Examples:

    . DLL LOAD MYTEST
    . DO test
    . DLL UNLOAD MYTEST
   

Source/Library:

  DCSTD.CH

See Also:

   dc_dllload()



DLL UNLOAD

UnLoad a dynamic .DLL

Syntax:

    DLL UNLOAD [ < cDllName > ]
   

Arguments:

   < cDllName > is the name of the .DLL to unload.
   

Description:

    DLL UNLOAD is used to unload a dynamic .DLL that was previously
    loaded with DLL LOAD or DC_DllLoad().
   

Examples:

    . DLL LOAD MYTEST
    . DO test
    . DLL UNLOAD MYTEST
   

Source/Library:

  DCSTD.CH

See Also:

   dc_dllunload()
   DLL LOAD



EDIT FILE

Edit a source file

Syntax:

    EDIT FILE < cFileName > ;
         [LINE < nLineNmbr >] ;
         [ < cParameters > ]
   

Arguments:

   < cFileName > is the name of the ascii file to edit.  If no
   argument is given, then the user will be prompted for the name
   of the file. If no extension is included, then .PRG is
   assumed.
   
   LINE < nLineNmbr > is the line number to go to.  If no parameter is
   passed then the editing will start at line 1.
   
   < cParameters > is an optional set of parameters to pass to the
   editor.
   

Returns:

    A logical .TRUE. if editor was called successfully.
   

Description:

    EDIT FILE is used to edit a source code file.  This function
    will use the editor defined as the "system" editor via the
    EDITOR= command in DCLIP.SYS, the DC_EDITCONFIG() function
    or the SET EDITOR command.
   
    If no external editor is defined, then an imbedded GUI text
    editor will be used.
   

Notes:

    If the drive and directory is not included in the <þcFileNameþ>
    argument, then DC_EDITPRG() will search for the file first in
    the SET DCLIP directory followed by the SET PDIR directory (if
    file is a .PRG).
   

Examples:

    . dc_editconfig( '\express\util\MEW2.BAT' ) // Multi-Edit (Windows)
    . DC_EDITPRG( 'test' )
   

Source/Library:

  DCSTD.CH

See Also:

   dc_editprg()



EDIT VIRTUAL

Edit the Virtual Record

Syntax:

    EDIT VIRTUAL
   

Arguments:

    None.
   

Description:

    EDIT VIRTUAL pops up a full-screen (text-mode) editor to modify
    the contents of the virtual record previously saved by the SAVE
    VIRTUAL command.
   

Examples:

    . USE CUSTOMER
    . GO 10
    . SAVE VIRTUAL
    . EDIT VIRTUAL
    . GO 20
    . REPLACE WITH VIRTUAL
   

Source/Library:

  DCSTD.CH

FILE DELETE

Delete a file group from the DCFILES.DBF dictionary

Syntax:

    FILE DELETE ;
        [GROUP < cFileGroup >] )
   

Arguments:

   GROUP < cFileGroup > is the name of the file group in DCFILES.DBF
   to delete (up to 8 characters).  If no parameter is passed then
   a pick list will be displayed.
   

Description:

    FILE DELETE is used to delete a file group from the DCFILES.DBF
    file dictionary.
   

Examples:

    // Delete the file group named JUNK
    . FILE DELETE JUNK
   

Source/Library:

  DCSTD.CH

See Also:

   dc_filedel()



FILE EDIT

A Database File / Work area Definition editor

Syntax:

    FILE EDIT [ < acFileGroup > ]
   

Arguments:

   < acFileGroup > is the name of the file group in DCFILES.DBF
   to load and edit (up to 8 characters) or < acFileGroup > is a
   File Group array.  See DC_FileEdit() (RETURNS) for a specification
   of this array.  If no parameter is passed, a pick-list of all
   File Groups in DCFILES.DBF will be displayed.
   

Description:

    FILE EDIT is an editor that maintains the definition of
    each database and it's indexes and relations.
   
    Each file group is stored in the DCFILES.DBF dictionary file.
   
    A file group contains all the information necessary to
    restore work areas for editing and browsing.  The data
    dictionary contains information for opening databases and
    indexes (or creating indexes that do not exist).
   

Examples:

    -- Example 1 --
    // Load a file group from the dictionary and edit it //
    . FILE EDIT
   
    -- Example 2 --
    // Edit file group "CUSTOMER"
    . FILE EDIT GROUP CUSTOMER
   
    -- Example 3 --
    // Edit a file group array //
    . aFileGroup := DC_FilePik()
    . FILE EDIT GROUP aFileGroup
   

Source/Library:

  DCSTD.CH

See Also:

   dc_fileedit()



FILE IMPORT

Import File Group(s) from the Import File Dictionary

Syntax:

    FILE IMPORT ;
      [GROUP < cFileGroup > | ALL ]
   

Arguments:

   GROUP < cFileGroup > is the name of the file group.  This is a
   name of up to eight (8) digits.  If a group name is passed then
   the DXFILES.DBF database will be searched and all group
   items that match the group name be imported into DCFILES.DBF.
   If no name is passed, then a pick-list of all file groups stored
   in the DXFILES.DBF database will be displayed.
   
   If ALL is passed as the group name, then all groups in the
   DXFILES.DBF will be imported into DCFILES.DBF.
   

Description:

    FILE IMPORT is used to import file group configurations from a
    DXFILES.DBF file into the DCFILES.DBF file.
   

Notes:

    The DCFILES.DBF file is the data-dictionary database that
    contains all file group configurations.  If this file does not
    exist in your default directory or path then it will be created.
    The DXFILES.DBF file is the data-dictionary database that contains
    all file groups that were exported from another system.
   

Source/Library:

  DCSTD.CH

See Also:

   dc_fileimp()



FILE RESTORE

Restore work areas, indexes, relations, from dictionary

Syntax:

    FILE RESTORE [ < acFileGroup > ], ;
                 [ADDITIVE], ;
                 [EXCLUSIVE], ;
                 [TAG < cTagName >]
   

Arguments:

   < acFileGroup > is the name of a file group in the DCFILES.DBF
   dictionary or an array that conforms to the specifications of
   the array returned by DC_FileEdit().  If no argument is passed,
   a picklist will be displayed.
   
   ADDITIVE is an optional clause which will insure that
   currently used work areas are not affected.  If a database is
   already opened in a work area, it will not be reopened in a new
   work area.  If the < lAdditive > parameter is not passed, then
   all work areas will be closed before restoring the old work.
   
   EXCLUSIVE if .TRUE. will override the settings in the DCFILES.DBF
   file for the file group and open the files EXCLUSIVE.  If the
   parameter is not passed or is .FALSE., then files will be
   opened in the default mode.
   
   TAG < cTagName > if passed as a character string or numeric value
   will override the tag name or index order in the DCFILES.DBF
   file group.
   

Description:

    FILE RESTORE is used to restore a complete work area
    environment from a the DCFILES.DBF data dictionary. This
    function will accomplish the following:
   
     * Re-open all databases, using the required RDD (Replaceable
       Data Driver).
   
     * Open all indexes or rebuild indexes that don't exist or have
       not been properly updated.
   
     * Set parent-child relations.
   
     * Restore record, index and tag pointers.
   
     * Restore browse windows. (optional)
   
     * Restore filters.
   
     * Restore Database environment such as PATH, DEFAULT, UNIQUE,
       etc.
   

Examples:

    use maillist via 'ADSDBE"
    index on zip tag zip
    index on phone tag phones
    use customer via 'ADSDBE' new index custnmbr
    use invoice via 'ADSDBE' new index invoice
    set relation to cust_nmbr into customer
    FILE SAVE MYWORK
    close all
    FILE RESTORE MYWORK
   

Source/Library:

  DCSTD.CH

See Also:

   dc_filerest()
   FILE SAVE



FILE SAVE

Save Work area definition array to dictionary

Syntax:

    FILE SAVE [FROM < aFileGroup >] ;
              [WORKAREAS] ;
              [GROUP < cFileGroup >]
   

Arguments:

   FROM < aFileGroup > is a file group array that conforms to the
   specification of the array returned by DC_FILEEDIT().
   
   WORKAREAS will save the information about currently open
   workareas rather than a passed array. The < aFileGroup >
   parameter is not needed and will be ignored if WORKAREAS is
   used.
   
   GROUP < cFileGroup > is needed only if the WORKAREAS clause is
   used. This is the name of the file group (up to 8 characters)
   to assign to the file group.
   

Description:

    FILE SAVE is used to save the contents of a file group
    array or the current workareas to the DCFILES.DBF
    data-dictionary.
   

Examples:

    -- Example 1 --
    /* Save Work areas to file dictionary */
    FILE SAVE WORKAREAS GROUP CUSTOMER
   
    -- Example 2 --
    /* Edit and Save a file group array //
    cFileGroup := DC_FilePik()
    aFileGroup := DC_FileEdit( cFileGroup )
    FILE SAVE FROM aFileGroup
   

Source/Library:

  DCSTD.CH

See Also:

   dc_filesave()
   FILE RESTORE



FIND

GUI dialog for finding a record using an index

Syntax:

    FIND
   

Arguments:

    None.
   

Description:

    FIND is a high-level command that scans all index keys
    and creates an input screen to allow the user to find
    information by simply typing in the value in the box next to
    the associated index key.  This is a quick method of finding
    information in a database that has multiple index files open or
    multiple index tags in a combined index.
   
    After the user enters in the value next to the referenced
    index, the database is checked to see if more than one record
    matches the entered value.  If duplicates are found, then a
    pick-list of records is displayed to allow the user to choose
    one.
   

Examples:

    . USE EXPRESS VIA FOXCDX INDEX EXPRESS.CDX
    . FIND
   

Source/Library:

  DCSTD.CH

See Also:

   dc_find()
   HUNT



GO BOTTOM

Go to the Bottom of a set of Scoped Records

Syntax:

    GO | GOTO BOTTOM
   

Arguments:

    None.
   

Description:

    GO BOTTOM is used to go to the first record in a group of
    "scoped" records.  Scopes are set via the DC_SetScope() function.
    If a scope is not set, then GO BOTTOM simply calls dbGoBottom().
   

Examples:

    . USE EXPRESS INDEX EXPRESS.CDX
    . SET ORDER TO 'COMMAND'
    . SET SCOPE TOP TO 'C'
    . SET SCOPE BOTTOM TO 'E'
    . GO BOTTOM
   

Source/Library:

  DCSTD.CH

See Also:

   dc_dbgobottom()



GO TOP

Go to the Top of a set of Scoped Records

Syntax:

    GO | GOTO TOP
   

Arguments:

    None.
   

Description:

    GO TOP is used to go to the first record in a group of "scoped"
    records.  Scopes are set via the DC_SetScope() function.
    If a scope is not set, then GO TOP simply calls dbGoTop().
   

Examples:

    . USE EXPRESS INDEX EXPRESS.CDX
    . SET ORDER TO 'COMMAND'
    . SET SCOPE TOP TO 'C'
    . SET SCOPE BOTTOM TO 'E'
    . GO TOP
   

Source/Library:

  DCSTD.CH

See Also:

   dc_dbgotop()



HELP

Display HELP for a command or function

Syntax:

   HELP [< command >]
   

Arguments:

   < command > is the name of a command or function.
   

Description:

   HELP will display the help window and optionally go to a
   specified help item.
   

Examples:

   HELP
   HELP @ DCBROWSE
   HELP dc_arrayview()
   

Source/Library:

  DCSTD.CH

HUNT

Hunt for a record by search all indexes

Syntax:

    HUNT < xValue >
   

Arguments:

   < xValue > is the value to HUNT.  This can be a value or an
   expression. If entered as an expression ( includes quotes or
   parenthesis ) it will be evaluated and converted to the proper
   value before performing the seek.  If entered as a literal
   argument, then a "smart" process in invoked which will
   determine the type of argument based on the kind of information
   entered.
   

Description:

    HUNT is a method of FINDing a record by searching all open
    index files or tags for the value entered.  This is the
    quickest method of finding information by scanning all the keys
    for the first match.  The value entered on the command line is
    automatically converted to the proper "type" to perform the
    seek.  For example, if you entered the command HUNT 12.5, only
    numeric indexes will be seeked, or if you enter the command
    HUNT 01/02/03, only date indexes will be seeked.  If you enter
    an expression, such as HUNT DATE()-30, then only the indexes
    that match the type of the expression entered will be seeked.
   
    Using HUNT and RESUME is the fastest method of finding
    information in a large database that uses many index keys.  It
    is recommended that you build a set of keys for all fields that
    you want to include in the HUNT operation.  This can be
    accomplished easily by using the INDEX FIELDS command to create
    a set of tags all at one time.
   

Notes:

    HUNT automatically capitalizes the passed argument, so make
    sure that your character type indexes are UPPER() case.  When
    building index tags with INDEX FIELDS, this is accomplished
    automatically.
   

Examples:

    . USE MAILLIST
    . INDEX FIELDS LAST, FIRST, COMPANY, MAIL_DATE, SOURCE ;
                   TO MAILLIST.CDX
    . HUNT COMP
    . RESUME
    . HUNT DATE()
    . HUNT LARRY
    . HUNT EGGHEAD
   

Source/Library:

  DCSTD.CH

See Also:

   FIND
   dc_hunt()



IF ELSE

Evaluate a list of expressions based on a condition

Syntax:

    IF < bIf > DO < bDoIf > ;
       [ELSE < bDoElse >]
   

Arguments:

   < bIf > is a code block to be that is evaluated as the IF
   statement.
   
   DO < bDoIf > is a code block that is evaluated if < bIf >
   evaluates
   .TRUE.
   
   ELSE < bDoElse > is a code block that is evaluated if < bIf >
   evaluates
   .FALSE.
   

Description:

    IF ELSE is a dot-prompt replacement for IF...ELSE...ENDIF
    programming structure to be used when a single line command
    is needed.
   

Examples:

    . USE COLLECT
    . IF eof() DO DC_MsgBox('End of file') ELSE dbSkip()
   

Source/Library:

  DCSTD.CH

See Also:

   dc_ifelse()



INDEX FIELDS

Create index tags for all fields in a database

Syntax:

    INDEX FIELDS [ < list > ] ;
          [LENGTH < nLength >] ;
          [TO < cCDXName >]
   

Arguments:

   TO < cCDXName > is the name of the Combined Index file to create.
   If no extension is given, then if the default extension for
   combined indexes supported by the Data driver in use will be
   appended.
   
   If no < cCDXName > name is given, then the index will be created
   using the same prefix as the open database and with the default
   extension for combined indexes supported by the Data driver in
   use.
   
   < list > is a list of index tag names to create, separated by
   commas.  The tag name(s) must be the same as the name(s) of
   valid fields in the current work area.  If no list is passed
   then tags for ALL fields will be created.
   
   LENGTH < nLength > is an optional argument only to determine the
   maximum length of character type indexes.  For example, if you
   have a character field of 100 bytes, you most likely will not
   want to index on all 100 bytes, but instead on only the first
   10 characters.  If this argument is not passed, then a default
   length of 10 will be used. If the length of any character field
   is less than < nLength > then the index length for that specific
   tag will be the field length.
   

Description:

    INDEX FIELDS is used to create an index tag for all fields
    (up to 99) in a database.  This command is handy when you wish
    to have an index for each field in the database and are using
    the HUNT..RESUME  .or DC_HUNT() "smart seeking" feature of
    eXPress++.
   

Examples:

    . USE MAILLIST VIA DBFCDX
    . INDEX FIELDS "LAST", "COMPANY", "SOURCE"
    . HUNT 'SCOTT'
   

Source/Library:

  DCSTD.CH

See Also:

   dc_tagallcreate()



INDEX ON

Create an index

Syntax:

    INDEX ON [ < clauses > ]
   

Arguments:

    See the Xbase++ documentation for a description of < clauses >.
   

Description:

    INDEX ON is a front-end to the Xbase++ INDEX ON command and
    supports all the same options.  It functions identically with
    the exception that it displays a progress bar during the
    index process.
   

Examples:

    . USE CUSTOMER
    . INDEX ON CUST_NMBR TO  CUSTNMBR
    . INDEX ON NAME TO CUSTNAME
    . SET INDEX TO CUSTNAME, CUSTNMBR
    . USE COLLECT VIA DBFCDX
    . INDEX ON TYPE TAG TYPE
   

Source/Library:

  DCSTD.CH

INKEY

Display Inkey() and AppEvent() values for pressed keys

Syntax:

    INKEY
   

Arguments:

    None.
   

Description:

    INKEY is used to display Inkey() and AppEvent() values for
    keys pressed by the user.
   

Examples:

    . INKEY
   

Source/Library:

  DCSTD.CH

See Also:

   dc_inkeydsp()
   dc_inkey()



INSERT

Insert Blank or Virtual records in selected database

Syntax:

   INSERT [VIRTUAL] [< nRecords >]
   

Arguments:

   < nRecords > is the number of new records to insert.
   
   VIRTUAL option will replace all new records with the value of
   the virtual record created by using the SAVE VIRTUAL command.
   

Description:

    INSERT will insert a specified number of blank or virtual
    records into the currently selected database starting at the
    current record. All records after the current record will be
    pushed down and the selected number of records will be inserted
    into the database.
   

Examples:

    . INSERT 20
    . INSERT VIRTUAL 5
   

Source/Library:

  DCSTD.CH

See Also:

   BLANK



INTERP

Browse an array

Syntax:

   ABROWSE <  array  > [SYMMETRICAL] [NONSYMETRICAL]
   

Arguments:

   < array > is the name of an array to browse.  If this command is
   used at the dot prompt, then the array must be public or private.
   
   SYMMETRICAL will browse the array using the columnar-style
   browser.
   
   NONSYMMETRICAL will browse the array using the indented-
   style browser.
   

Description:

    ABROWSE is a full-screen (text-mode) array browser that gives
    a full-view of all elements in a multi-dimensional array or
    object.  A symetrical array may be browsed using a columnar
    style browse or any type of array may be browsed using an
    indented-style browse.
   
    Indented style browsing displays sub-elements as automatically
    indented and the type and value of each element is displayed.
    Indented-style browsing allows you to change the type, value, or
    length of any element or sub-element.  You can grow or shrink
    arrays or change elements of any type to an array or arrays to
    any other type.
   

Examples:

    . DIR := DIRECTORY('*.PRG')
    . ABROWSE DIR
   

Source/Library:

  DCSTD.CH

See Also:

   AVIEW
   DC_ArrayView()



INTERP

Save current record to Virtual record

Syntax:

   SAVE VIRTUAL
   

Arguments:

   None
   

Description:

    SAVE VIRTUAL is used to save the contents of the current record
    to a virtual record.  A virtual record is a file with the same
    prefix as the database alias and with the extension .DCV.
    The virtual record can then be used at any time to replace the
    contents of specified records in the same database by using the
    REPLACE WITH VIRTUAL, INSERT VIRTUAL or APPEND VIRTUAL commands.
   

Examples:

    . USE MAILLIST
    . GO 2345
    . SAVE VIRTUAL
    . APPEND BLANK
    . REPLACE WITH VIRTUAL
    . GO 1000
    . INSERT VIRTUAL 10
   

Source/Library:

  DCSTD.CH

See Also:

   APPEND VIRTUAL
   DC_VirtSave()



INTERP

Login to application to establish user rights

Syntax:

    LOGIN [USER < cUserID >] ;
       [PASSWORD < cPassword >]
   

Arguments:

   USER < cUserID > is the User ID of the logging on user.  If this
   parameter IS NOT passed and the PASSWORD < cPassword > parameter
   IS passed, then the DCUSERS.DBF will be searched only for a
   match to the < cPassword >.  If < cUserID > is passed and
   < cPassword > is not passed, then the user will be prompted to
   enter a password.  If neither < cUserID > or < cPassword > is
   passed, then the user will be prompted for both a User ID
   and a password.
   

Description:

    LOGIN is used to log a user onto the system in the event that
    it is necessary to establish rights to menus, files, or
    specified fields.  LOGIN calls the function DC_UserLogin().
   
    The eXPress++ menu system, data-entry (editing) system, browsing
    system, and file system provide for establishing locks on menu
    items, fields and/or files.  If these systems are used without
    first calling DC_Userlogin(), then the user will be given full
    rights.  If however, DC_UserLogin() is called first, then the
    user will be given access to only those items in which the user
    has the exact key or a master key for each specified lock.
   
    If the user logs on with the MASTER PASSWORD, then he/she is
    automatically established as a "programmer" and is given full
    access.  The MASTER PASSWORD is hard-coded by a definition in
    DCUSER.CH.  To change the MASTER PASSWORD you must redefine it
    in DCUSER.CH and then recompile _DCUSER.DBF and include the
    new _DCUSER.OBJ in your link-script.
   
    User PASSWORDS are stored in the DCUSER.DBF database in
    encrypted form.  Passwords may be assigned or changed only
    with the DC_USERMAINT() function or the USER EDIT command.
   
    User KEYS are stored in the DCUSER.DBF database and may be
    assigned or changed only with the DC_USERMAINT() function or
    the USER EDIT command. Locks are placed on menu items or
    fields by entering a 3-character "lock" sequence when using
    the menu-designer and/or data-entry designer.  A database of
    standard locks and their definitions may be maintained by
    DC_LOCKMAINT().  When assigning a user a set of "keys" they
    may be specific keys or "master" keys.  A Master key is
    assigned by using wild-cards.  For example, the Master Key
    "5****" will allow access to any lock starting with the number
    "5", whereas the Master Key "67***" will allow access to any
    lock with the number "67".  Keys are stored in the USR_KEYS
    field and are separated by commas.
   
    Example:
   
     "1****,2****,3****,41***,42***,52231,6****"
   

Examples:

    . LOGIN USER LARRY PASSWORD BOOZER
   

Source/Library:

  DCSTD.CH

See Also:

   dc_userlogin()



INTERP

Create a new menu with Menu Editor

Syntax:

    MENU CREATE < cMenuName >
   

Arguments:

   < cMenuName > is the name of the new menu to create.  The menu
   will be saved to the DCMENU.DBF dictionary.
   

Description:

    MENU CREATE is used to create a new menu using the menu editor
    system - DC_MenuEdit().
   

Examples:

    . MENU CREATE NEWMENU
   

Source/Library:

  DCSTD.CH

See Also:

   dc_menuedit()



INTERP

Set a relation with a child scope

Syntax:

    SET RELATION                                  ;
        TO < key1 > ;
        INTO < alias1 > ;
        [SCOPED]          ;
        [, TO < keyN > INTO < (aliasN) > [SCOPED]]    ;
        [ADDITIVE]
   

Arguments:

   < alias1 > through < aliasN > are character string containing
   the
   alias name for the work area(s) to which a link is defined.
   
   TO < key1 > through < keyN > are expression(s) used to position
   the
   record pointer in the child work area in order to synchronize it
   with the record pointer in the parent work area.  The return
   value of the relation is passed to DbSeek() to position the
   record pointer in the child work area.
   
   SCOPED will automatically set the scope in the child work area
   to the value of the data in the parent work area whenever the
   parent record pointer is changed.
   
   ADDITIVE will add the relation to existing relations.  If this
   clause is not used then all existing relations will be closed
   first.
   

Description:

   SET RELATION is a front-end to the Xbase++ function
   dbSetRelation() which defines a link between two work areas. The
   dependent or child work area is specified by the argument <þcAliasþ>
   The controlling or parent work area is determined by the alias
   operator. If the alias operator is not used, the current work area
   is the parent work area the child area is synchronized with.
   Existing links in the parent work area are not deleted by
   SET RELATION.
   
   The synchronization of the record pointer in the child work area
   occurs using the return value of <þbRelationþ> . The child work area
   is automatically searched for this value using DbSeek() anytime the
   record pointer in the parent work area changes. If no index is
   active in the child work area, synchronization is done using the
   function DbGoto(). This means that an attempt is made to set the
   record pointer in the child work area using the value returned
   from <þbRelationþ> as a record ID.
   
   The range for navigating the record pointer in the child work area
   can be restricted to a subset of records by specifying .T. (true)
   for the optional parameter SCOPED . In this case, only those
   records are accessible in the child work area where the link
   expression <þbRelationþ> results in the same value for both work
   areas. When attempting to move the record pointer in the child
   work area outside this defined range, either Bof() or Eof() is set
   to .T. (true). In this way, a time consuming filter expression can
   be avoided.
   

Examples:

   . USE INVOICES
   . USE INVITEMS INDEX INVITEMS
   . SELECT INVOICES
   . SET RELATION TO "01122" INTO INVITEMS SCOPED
   

Source/Library:

  DCSTD.CH

See Also:

   dc_setrelation()
   SET SCOPE



INTERP

Set the Dialogue mode to GUI or TEXT

Syntax:

    SET GUI ON | OFF
   

Arguments:

   SET GUI ON will cause eXPress++ to process Dual-Mode functions as
   a GUI dialogue.  SET GUI OFF will cause eXPress++ to process all
   Dual-Mode functions as a TEXT dialogue.
   

Description:

    SET GUI or GUI is used to set Text or Gui mode for Dual-Mode
    Functions.  The eXPress++ library contains a variety of
    functions which operate in "Dual-Mode".  When GUI mode is
    ON, the function uses a GUI dialogue based on Xbase Parts.  When
    the GUI mode is OFF the function works in standard text-mode.
   

Examples:

    . SET GUI ON
    . DC_PopCalc()  // pop up a GUI based calculator
    . SET GUI OFF
    . DC_PopCalc()  // pop up a Text based calculator
   

Source/Library:

  DCSTD.CH

See Also:

   dc_gui()



INTERP

Recall record(s) that were previously marked for deletion

Syntax:

    RECALL [ < args > ]
   

Arguments:

    See the Xbase++ documentation for < args >.
   

Description:

    RECALL without arguments is used to recall the current record
    after it was previously marked for deletion.  This command is
    a front-end to the Xbase++ dbRecall() function that automatically
    locks and unlocks the record to prevent a runtime error on
    shared databases.
   
    RECALL with arguments works identical to the Xbase++ RECALL
    command except a progress odometer will display the number of
    records scanned and the number of records that were actually
    recalled.
   

Examples:

    . USE EXPRESS INDEX EXPRESS.CDX SHARED
    . GO 10
    . RECALL
    . RECALL WHILE RecNo() < 20
   

Source/Library:

  DCSTD.CH

See Also:

   dc_recall()
   DELETE



INTERP

Interpret a command string

Syntax:

   INTERPRET [CLIPBOARD] ;
             [MEMVAR < memvar >] ;
             [FILE < file >] ;
             [WITH < params,... >]
   

Arguments:

   MEMVAR < memvar > is a string containing a set of commands or an
   array containing a procedure.  If < memvar > is an array, then it
   must conform to the specifications of the array returned by
   DC_PROGLOAD(). If this parameter is a NIL, then the Windows
   ClipBoard will be used as the program to interpret.  This
   allows for cutting code snippets out of a help file, copying
   them to the ClipBoard and then interpreting the code snippet.
   
    - or -
   
   FILE < file > is a text file containing a set of commands.
   
   WITH < params > is a single-dimensional array of parameters to
   pass to the program being interpreted.  There should be one
   element in the array for each parameter included in the
   PARAMETERS statement in the interpreted program.
   
   NOTE: The CLIPBOARD clause or no parameters will use the Windows
         ClipBoard as the source of the program.
   

Description:

    INTERPRET is a command-line interpreter that will translate
    and execute any sequence of commands that is supported by Xbase++,
    eXPress++ and/or any command that has been user defined in
    DCCUSTOM.CH.  INTERPRET requires that the file DCSTD.CH and
    DCCUSTOM.CH exist in the INCLUDE path of the workstation.  The
    DCSTD.CH file contains all the standard eXPress++ commands and
    pointers to the Xbase++ include files for the standard Xbase++
    commands and defines.
   
    INTERPRET will execute a single command string or an array of
    commands that encompass an entire procedure with passed parameters
    and a return value.
   
    INTERPRET was designed to work in conjuction with DC_PROGRAM()
    and/or DC_PROGLOAD() which will load a program from the DCPROG.DBF
    program catalog, compile the program into a multi-dimensional
    array, then pass the program to INTERPRET for execution.
   

Examples:

    . INTERPRET MYPROG.TXT
   

Source/Library:

  DCSTD.CH

See Also:

   dc_dot()
   dc_translate()
   dc_interpret()



INTERP

Select a database driver

Syntax:

    SET DBE | RDD [TO < cDbe >]
   

Arguments:

   TO < cDbe > is the database driver to select.
   

Description:

    SET DBE | RDD is used to select a database driver (DBE) from a
    picklist of available drivers.
   

Examples:

    . SET RDD TO DBFNTX  // set DBFNTX as the default driver
    . SET RDD // display a list of drivers to select
   

Source/Library:

  DCSTD.CH

See Also:

   dc_rddsel()



INTERP

Replace the current record contents with Virtual record arra

Syntax:

    REPLACE WITH VIRTUAL
   

Arguments:

    None.
   

Description:

    REPLACE VIRTUAL will replace the contents of the current
    record with the data in the virtual record.  This function will
    automatically handle the record locking, so it is not necessary
    to lock the record.
   

Examples:

    . USE COLLECT
    . GO 5
    . SAVE VIRTUAL
    . GO 6
    . REPLACE VIRTUAL
   

Source/Library:

  DCSTD.CH

See Also:

   dc_virtrepl()



INTERP

Assign new values to field variables

Syntax:

    REPLACE [ < args > ]
   

Arguments:

    See the Xbase++ documentation for the REPLACE command.
   

Description:

    REPLACE works identical to the Xbase++ REPLACE command except
    a progress odometer will display the number of records scanned
    and the number of records that were actually replaced. Also,
    each record is individually locked and unlocked thus allowing
    REPLACE to be used with shared applications.
   
    If no arguments are used, then REPLACE displays a GUI dialog
    so the user may enter the conditions for the replacement.
   

Examples:

    . USE COLLECT
    . REPLACE ALL CONDITION WITH 'E'
    . REPLACE
   

Source/Library:

  DCSTD.CH

See Also:

   dc_virtrepl()



INTERP

Search all fields in a set of databases for a value

Syntax:

   SEARCH [ < cFileName > ] ;
       [FOR < cText >] ;
       [TOPRINT ] ;
       [TOFILE < dest >]
   

Arguments:

   < cFileName > is the name of the database to search.  If no path
   is given then the current SET DEFAULT directory is assumed.  If
   < cFileName > is "ALL", then all databases that match the
   currently selected RDD will be searched.  If no argument is
   passed then a GUI dialog will be displayed prompting for a
   file name, text and output.
   
   FOR < cText > is the text to search for.  This is a case
   non-sensitive search and the first occurrence of the text in
   each field will be listed.  If no argument is passed then a
   GUI dialog will be displayed prompting for a file name, text
   and output.
   
   TOPRINT will send the report to the printer.  TOFILE < dest >
   will send the report to the file < dest >.
   

Description:

    SEARCH is used to search all fields of specified work
    areas for matching text and list all occurences of found text.
   
    The output can be sent to the screen, printer or a file and all
    occurrences where the text is found will be listed as follows:
   
    File        Record  Field        Text
    ----------- ------  ------------ ---------------------------
    CUSTOMER       123  PHONE        714-555-1212
    MAILLIST     23567  PHONE_NUM    (619)555-1212
   

Examples:

    // search CUSTOMER.DBF for occurrences of "O'BRIEN"
    // and display results on screen
    . SET RDD TO DBFNTX
    . SEARCH CUSTOMER FOR "O'BRIEN"
   
    // search CUSTOMER.DBF for occurrences of "O'BRIEN"
    // and copy results to file OBRIEN.TXT
    . SET RDD TO DBFNTX
    . SEARCH CUSTOMER FOR "O'BRIEN" TO FILE OBRIEN.TXT
   
    // search all .DBF's for occurences of "CLIPPER"
    . SET RDD TO DBFNTX
    . SEARCH ALL FOR CLIPPER
   

Source/Library:

  DCSTD.CH

See Also:

   dc_search()



INTERP

Restore a multidimensional array from a binary file

Syntax:

    RESTORE ARRAY < aArray > [FROM < cFileName >]
   

Arguments:

   < aArray > is the name of the variable to store the array contents.
   
   FROM < cFileName > is the name of the binary file that was previously
   created with SAVE ARRAY or DC_ASave().  If this argument is not
   passed then a file named < aArray >.DCA will be the default.
   

Description:

    RESTORE ARRAY will create an multidimensional array from the
    contents of a binary file that was created with SAVE ARRAY.
   

Examples:

    . aDir := Directory()
    . SAVE ARRAY aDir
    . RESTORE ARRAY aDir
    . SAVE ARRAY aDir TO junk.ar
    . RESTORE ARRAY aDir FROM junk.ar
   

Source/Library:

  DCSTD.CH

See Also:

   dc_arestore()
   SAVE ARRAY



INTERP

Save info about all open workareas to an array

Syntax:

    SAVE DATA TO < aWorkArea >
   

Arguments:

   < aWorkArea > is the name of the variable to store the array
   pointer.
   

Description:

    SAVE DATA will store all work area info to an array.
   
    RESTORE DATA will reopen all databases, indexes and relations
    from the array created by SAVE DATA or DC_DataSave().  This
    function is handy when it is necessary to insure that database
    work areas are restored to their original condition after
    calling a routine that may close files, open files, select
    different indexes or clobber relations.
   

Examples:

    . USE EXPRESS ALIAS XDOC VIA FOXCDX INDEX EXPRESS
    . SET TAG TO COMMAND
    . SAVE DATA TO aWorkArea
    . CLOSE ALL
    . RESTORE DATA FROM aWorkArea
   

Source/Library:

  DCSTD.CH

See Also:

   dc_datasave()



INTERP

Restore work areas

Syntax:

    RESTORE DATA FROM < aWorkArea >
   

Arguments:

   < aWorkArea > is a multidimensional array created by the SAVE DATA
   command or DC_DataSave() function.
   

Description:

    RESTORE DATA will reopen all databases, indexes and relations
    from the array created by SAVE DATA or DC_DataSave().  This
    function is handy when it is necessary to insure that database
    work areas are restored to their original condition after
    calling a routine that may close files, open files, select
    different indexes or clobber relations.
   

Examples:

    . USE EXPRESS ALIAS XDOC VIA FOXCDX INDEX EXPRESS
    . SET TAG TO COMMAND
    . SAVE DATA TO aWorkArea
    . CLOSE ALL
    . RESTORE DATA FROM aWorkArea
   

Source/Library:

  DCSTD.CH

See Also:

   dc_datarest()



INTERP

Seek a record in a set of Scoped Records

Syntax:

    SEEK < xValue >
   

Arguments:

   < xValue > is any value of the same type as the index key for
   the selected order.  If no argument is passed then a GUI dialog
   will be displayed for entering a value.  See FIND and DC_Find()
   for a description of this GUI dialog.
   

Description:

    SEEK is used to SEEK a record in a group of "scoped"
    records.  Scopes are set via the DC_SetScope() function.  This
    functions identical to the Xbase++ dbSeek() function except if
    the record is not found or is outside the range of the scope,
    it behaves as follows:
   
    1. If the record is not found the record pointer is placed at
       Eof() and a .FALSE. is returned.
   
    2. If the record is found but the indexkey() value is less
       than the top scope, the record pointer is placed at the
       beginning record of the scope and a .FALSE. is returned.
   
    3. If the record is found but the indexkey() value is greater
       than the bottom scope, the record pointer is placed at the
       last record of the scope and a .FALSE. is returned.
   
    4. If the record is found and the indexkey() value is within
       the range of the top and bottom scope, the record pointer
       is placed at the found record and a .TRUE. is returned.
   
    If no scope is set, then SEEK simply calls dbSeek().
   

Examples:

    . USE EXPRESS VIA FOXCDX INDEX EXPRESS
    . SET SCOPE TOP TO 'DC_F'
    . SET SCOPE BOTTOM TO 'DC_H'
    . SEEK 'DC_G'
    . ? Eof()
   .F.
   

Source/Library:

  DCSTD.CH

See Also:

   dc_dbseek()
   dc_find()
   HUNT
   FIND



INTERP

Select a database from a picklist of open files

Syntax:

    SELECT
   

Arguments:

    None.
   

Description:

    SELECT will pop-up a picklist of all work areas and
    display the alias and database file name open in each work
    area.  It will also allow the user to select an unused work
    area to open a new database.
   
    If arguments are passed, then SELECT functions identical to the
    Xbase++ SELECT command.  If no arguments are passed, SELECT
    uses the DC_DbfSel() function to select or open a new database.
   

Examples:

    . SELECT
   

Source/Library:

  DCSTD.CH

INTERP

Pop up an editing screen for all SET environment variables

Syntax:

    SET [ < cSetName > ]
   

Arguments:

   < cSetName > is the name of the SET environment variable to
   edit.  If this parameter is not passed, then a picklist of all
   environment variables will be displayed for editing.
   

Description:

    SET is used to invoke a GUI editor for observing or
    modifying the value of any SET value in the environment.
   
    The SET environment is the complete set of standard Xbase++
    SETs such as SET EPOCH, SET DEFAULT, etc. and the additional
    eXPress++ SETs such as SET ODIR, SET PROMPT, etc.
   

Examples:

    . SET
    . SET DEFAULT
    . SET ODIR
   

Source/Library:

  DCSTD.CH

See Also:

   dc_setedit()



INTERP

Save the SET environment to a file

Syntax:

    SAVE SET TO < cFileName >
   

Arguments:

   < cFileName > is the name of the file to create.  If no extension
   is given then the extension .DCA will be added.
   

Description:

    SAVE SET is used to save the values of all Xbase++ and
    eXPress++ environment variables to a file to be later restored
    by RESTORE SET or DC_SetRest().
   
    The SET environment is the complete set of standard Xbase++
    SETs such as SET EPOCH, SET DEFAULT, etc. and the additional
    eXPress++ SETs such as SET ODIR, SET PROMPT, etc.
   

Examples:

    . SAVE SET TO MYFILE.SET
   

Source/Library:

  DCSTD.CH

See Also:

   dc_setsave()
   dc_setrest()



INTERP

Restore the SET environment from a file

Syntax:

    RESTORE SET FROM < cFileName >
   

Arguments:

   < cFileName > is the name of the file previously created by
   DC_SetSave() or SAVE SET.  If no extension is given then the
   extension .DCA will be added.
   

Description:

    RESTORE SET is used to restore the values of all Xbase++ and
    eXPress++ environment variables from a file previously created
    by SAVE SET.
   
    The SET environment is the complete set of standard Xbase++
    SETs such as SET EPOCH, SET DEFAULT, etc. and the additional
    eXPress++ SETs such as SET ODIR, SET PROMPT, etc.
   

Examples:

    . SAVE SET TO MYFILE.SET
    . DoSomethingThatChangesEnvironment()
    . RESTORE SET FROM MYFILE.SET
   

Source/Library:

  DCSTD.CH

See Also:

   dc_setrest()
   dc_setsave()



INTERP

A Complex Pull-Down Menu Editor

Syntax:

    MENU EDIT [ < acMenu > ] ;
       [CREATE]
   

Arguments:

   < acMenu > is the name of the menu or the menu contents. If
   < acMenu > is a character string, it is a name of up to eight (8)
   digits.  If < acMenu > is an array, it must conform to the
   specifications of a menu array defined in the RETURNS section.
   If a menu name is passed then the DCMENU.DBF menu dictionary
   database will be searched and all menu items that match the
   menu name be loaded into an array for editing. If a NIL is
   passed, then a pick-list of all menus stored in the DCMENU.DBF
   database will be displayed.  If none is chosen, then it will
   be assumed that you wish to create a new menu.
   
   CREATE will create a new menu.
   

Description:

    MENU EDIT is a menu-designer system that will create complex
    pull-down menus.  Menus are designed by entering information in
    a browse-style window that displays menu items and sub-menus in
    an easy-to-read "indented" format.  The designed menu can be saved
    to an array, an array file, the data-dictionary, or to source-code
    which can be compiled and run by your application.
   
    MENU EDIT creates menus that are passed as an array to the
    DC_MENUMAIN() (Text Mode Reader) or DC_MENUOSYS() (Gui Mode Reader)
    functions for execution.  During the menu design process, the
    menu can be executed in a WYSIWIG fashion to provide instant
    feedback that the menu will function as it has been designed.
   
    MENU EDIT supports all the features of DC_MENUMAIN() and
    DC_MENUOSYS() including sub-sub-menus, automatic mouse support,
    message boxes, help-codes, accelerator keys, code-blocks, and access
    keys.  In addition, DC_MENUEDIT() supports conditional compiling of
    menu items to exclude key items at run-time based on a key list that
    is passed to DC_MENURUN() or DC_MENUCOMPILE() or based on a
    code block.
   

Examples:

    /* -- Edit the Main Menu -- */
    MENU EDIT MAINMENU
   

Source/Library:

  DCSTD.CH

See Also:

   dc_menuedit()
   dc_menuload()



INTERP

Modify the structure of a database

Syntax:

    MODIFY STRUCTURE [TO < cNewFileName >]
   

Arguments:

   TO < cNewFileName > is the name to assign to the new modified file.
   If no argument is given, then the new file name will be the
   same as the original and the original file will be renamed to
   the same name as the file alias with a .DBK extension.  If the
   file contained at least one memo field, then the memo file
   will be renamed to the same name as the file alias with the
   .DTK extension.
   

Description:

    MODIFY STRUCTURE is used to change the structure of the
    database in the current work area and restore all the data in
    the file or save the database to a new name.
   
    You can add perform the following operations with a GUI dialog:
   
     1. Add a new field
     2. Delete a field
     3. Move a field
     4. Rename a field
     5. Replicate a set of new fields
     6. Change the type of a field
     7. Change the length of a field
   
    All data in the former file will restored to the modified
    file except for any fields that were deleted.
   

Examples:

    . USE COLLECT
    . MODIFY STRUCTURE TO COLLECT2
   

Source/Library:

  DCSTD.CH

See Also:

   dc_modstru()
   dc_struupdate()



INTERP

Maintain the "Lock" definition database

Syntax:

    LOCK EDIT
   

Description:

    LOCK EDIT is used to maintain a database of "Locks"
    which are put onto files, menu items, or fields when
    designing an application.  This database, DCLOCKS.DBF, is used
    as a reference only and is not needed to establish locks on menu
    items or other locks.  The database simply provides a handy
    picklist to choose a lock to put on an item.  The database
    assigns names and codes to locks.
   

Examples:

    . LOCK EDIT
   

Source/Library:

  DCSTD.CH

See Also:

   dc_lockmaint()
   dc_usermaint()



INTERP

Lock the current record

Syntax:

    LOCK
   

Arguments:

    None.
   

Description:

    LOCK is used to lock the currently selected record
    before attempting to replace field data.
   

Examples:

    . USE COLLECT
    . GO 5
    . LOCK
    . COLLECT->condition := 'P'
    . UNLOCK
   

Source/Library:

  DCSTD.CH

See Also:

   dc_reclock()
   UNLOCK



INTERP

Lock the current file

Syntax:

    LOCK FILE | ALL
   

Arguments:

    None.
   

Description:

    LOCK FILE is used to lock the currently selected file before
    attempting to perform database operations that modify the data
    in mulitiple records.
   

Examples:

    . use customer
    . LOCK ALL
    . replace print_flag with .F. for print_flag
    . UNLOCK ALL
   

Source/Library:

  DCSTD.CH

See Also:

   dc_filock()



INTERP

Pack the current database

Syntax:

    PACK
   

Arguments:

    None.
   

Description:

    PACK is a high-level command that will pack the database
    in the currently selected work area.  This function does not
    use the Clipper dbPack() function but instead packs the file as
    follows:
   
    1. Displays a progress odometer during the packing process.
    2. Optimizes size of memo fields (removes dead space).
    3. Creates a backup file.
   

Examples:

    . USE EXPRESS INDEX EXPRESS.CDX VIA FOXCDX
    . PACK
   

Source/Library:

  DCSTD.CH

See Also:

   dc_pack()



INTERP

Run a Program from the Program Dictionary

Syntax:

    PROGRAM [ < cProgName > ] ;
       [WITH < aParams >]
   

Arguments:

   < cProgName > is the Tag Name of the program in the DCPROG.DBF
   Program Catalog file.  If no parameter is passed, then a pick-
   list of available programs will be displayed.  If an array
   < aProgram > is passed then it must conform to the structure
   of the array returned by DC_PROGLOAD() or interpreted
   programs.
   
   WITH < aParams > is a single-dimensional array of parameters to pass
   to the program being interpreted.  There should be one element
   in the array for each parameter included in the PARAMETERS
   statement in the interpreted program.  If less parameters are
   passed than specified in the PARAMETERS statement, the unpassed
   parameters will be initialized to NIL.
   

Description:

    PROGRAM is used to load a program from the DCPROG.DBF
    program catalog database and execute the program using the
    interpreter or runtime compiler.  Programs in the dictionary
    are pre-designated as "Interpreted" or "Compiled".
   
    Interpreted programs may contain any command that can be
    intrepreted at the dot-prompt plus the same type of structural
    elements as standard Clipper programs such as DO..WHILE and
    FOR..NEXT loops, IF..ELSE, DO..CASE statements, PARAMETERS
    statement and RETURN value, however they cannot contain
    CLASS statements, FUNCTION statements, LOCALS or STATICS.  If
    a program is designated to be Interpreted, the program is
    passed to the DC_INTERPRET() function.
   
    Compiled programs may contain any type of code that can be
    compiled with the XPP.EXE compiler.   IF a program is designated
    to be Compiled, the program is first compiled by the DC_COMPILE()
    function, then loaded into memory with the DC_OBJLOAD() function
    and executed.
   

Examples:

    . PROGRAM TEST WITH { Date(), Time() }
   

Source/Library:

  DCSTD.CH

See Also:

   dc_program()



INTERP

Maintain the DCPROG.DBF Program Dictionary File

Syntax:

    PROGRAM MAINTENANCE
   

Arguments:

    None.
   

Description:

    PROGRAM MAINTENANCE is used to maintain a database catalog of
    programs for later interpreting with PROGRAM or DC_PROGRAM().
    This system in intended for creating small programs that may
    be run from the dot-prompt, menus, data-entry validations, etc.
   
    PROGRAM MAINTENANCE provides an editor, search routines, print
    routines, etc.
   
    Programs are saved in a MEMO field in the DCPROG.DBF/.DBT file.
    These "interpreted" programs are not intended to replace compiled
    code but are instead a handy way of creating additional on-the-fly
    functions and procedures to give a data-driven system some extra
    convenience and functionality.
   

Examples:

    . PROGRAM MAINT
   

Source/Library:

  DCSTD.CH

See Also:

   dc_progmaint()



INTERP

Dynamically load an Xbase++ compiled .OBJ for execution

Syntax:

    OBJ LOAD < cObjName > ;
       [RUN [< bcRunProc >] ]
   

Arguments:

   < cObjName > is the name of the .OBJ file to link.  If no drive/
   directory is included in the file name, then the .OBJ must
   exist in the directory specified by the SET ODIR command, ODIR=
   in DCLIP.SYS, or DC_SETT('ODIR',< path >).
   
   RUN < bcRunProc > will be automatically execute the
   < bcRunProc >
   procedure.  This may be the name of a procedure or function
   in quotes or a code block.
   

Returns:

    A logical .TRUE. if the .OBJ file could be linked into a .DLL
    and the .DLL loaded for execution, .FALSE. otherwise.
   

Description:

    OBJ LOAD is used to "dynamic-link" an Xbase++-compiled .OBJ
    file into memory for execution of any functions within the
    compiled .OBJ.  This is done by creating a temporary .DLL with
    the same name as the .OBJ file and loading the .DLL.
   

Examples:

    . OBJ mytest RUN test
   

Source/Library:

  DCSTD.CH

See Also:

   dc_objload()
   dc_compile()



INTERP

Purge duplicate records from a database

Syntax:

    PURGE ON < exp1 > ;
          [TO < file >] ;
          [RETAIN < exp2 > ;
          [MAX | MIN]] ;
          [FIELD < field >]
   

Arguments:

   ON < exp1 > is an expression of field names to use in determining
   how to determine the duplication of records.  For example, if
   you want to purge records that have duplication of information
   in which LAST_NAME, FIRST_NAME and STREET are identical, then
   use UPPER(LAST_NAME+FIRST_NAME+STREET) as the expression.
   
   If an < expression > is not given then a window will appear with
   a user prompt to enter an expression or to press ALT-F for the
   index builder.  If ALT-F is pressed, a pick-list of fields will
   appear to aid in building the expression.
   
   TO < file > will create a new database that contains the purged
   records.
   
   RETAIN < exp2 > is an expression that determines which record of
   the set of duplicate records to retain (not mark for deletion).
   The default is "RECNO()".  MAX will retain the maximum value.
   MIN will retain the minimum value.  The default is MIN.
   
   FIELD < field > is the name of an optional numeric field in the
   database being purged. This field is used to write a number from
   0 to N.  If there are no duplicates, then a 0 will be written to
   the record.  If there ARE duplicates then a 1 will be written to
   the RETAINED record and a number from 2 to N will be written to
   each duplicate.
   

Description:

    PURGE is used to remove records from a database that have
    duplicates based on a test of specified fields.  The purged
    records will be marked as *deleted* but will not actually be
    removed from the data file until the file is packed.  This will
    allow you to BROWSE the file and monitor the purged information
    before completing the final reduction.
   
    PURGE actually creates a temporary index file based on an
    expression that is passed or created from the pop-up index
    builder.
   
    Purged records can be written to a new data file for recovery
    at any time.
   

Notes:

    PURGE will not actually remove duplicate records from the
    database, but will instead mark them for deletion.  To complete
    a full purge of the duplicate records, you must PACK the
    database.  If you wish you recall the deleted records after a
    purge, use the command RECALL ALL.
   

Examples:

    /* Purge all duplicate records that have an exact match
       for Last Name, First Name, Phone Number and Street.
       Retain the record that has the latest Mail Date */
   
    . USE MAILLIST
    . PURGE ON LAST+FIRST+PHONE+STREET RETAIN MAIL_DATE MAX
    . BROWSE
    . PACK
   

Source/Library:

  DCSTD.CH

See Also:

   dc_purge()



INTERP

Locate a record

Syntax:

    LOCATE [ < clauses > ]
   

Arguments:

    See the Xbase++ documentation for a description of < clauses >.
   

Description:

    LOCATE is a front-end to the Xbase++ LOCATE command and
    supports all the same options.  It functions identically with
    the exception that it displays a progress bar during the
    index process and it also stays within any scope that was
    previously set with SET SCOPE or DC_SetScope().
   

Examples:

    . USE EXPRESS VIA FOXCDX
    . LOCATE FOR COMMAND = 'dc_dot'
   

Source/Library:

  DCSTD.CH

See Also:

   dc_dblocate()
   dc_dbcontinue()
   CONTINUE



INTERP

Establish the working directory for .OBJ files

Syntax:

   SET ODIR TO < cObjDirectory >
   

Arguments:

   < cObjDirectory > is the directory name to place .OBJ files.
   

Description:

    SET ODIR is used to define the drive and directory to place
    .OBJ files when compiling .PRGs with the COMPILE | XPP
    command.
   

Examples:

    . SET PDIR TO \MYAPPS\PRG
    . SET ODIR TO \MYAPPS\OBJ
    . XPP MYMENU
    . XPP MYPROCS
   

Source/Library:

  DCSTD.CH

See Also:

   WHERE PUBLIC



INTERP

Set and/or view an environment variable

Syntax:

    SET [ < cSetName > ] [TO < xValue >]
   

Arguments:

   < cSetName > is the name of the SET environment variable to
   edit.  If this parameter is not passed, then a picklist of all
   environment variables will be displayed for editing.
   
   If this is an Xbase++ name such as EPOCH, DATEFORMATE, PATH,
   DEFAULT etc. the value will be processed by the Xbase++ Set()
   function.
   
   If it is a eXPress++ name such as ODIR, EDITOR, etc, the
   value will be processed by the DC_Sett() function.
   
   TO < xValue > is the value to set.
   

Description:

    SET is used to set or read an Xbase++ or eXPress++ environment
    variable.
   
    SET with no parameters will invoke a GUI editor for observing
    or modifying the value of any SET value in the environment.
   
    The SET environment is the complete set of standard Xbase++
    SETs such as SET EPOCH, SET DEFAULT, etc. and the additional
    eXPress++ SETs such as SET ODIR, SET PROMPT, etc.
   

Examples:

    . SET
    . SET DEFAULT
    . SET ODIR
    . SET DEFAULT TO ..\XDOC
    . SET EDITOR TO \MEW\MEW32.EXE
   

Source/Library:

  DCSTD.CH

See Also:

   dc_setedit()



INTERP

Establish the working directory for .PRG files

Syntax:

    SET PDIR TO < cPrgDirectory >
   

Arguments:

   < cPrgDirectory > is the directory containing the source .PRG
   files.
   

Description:

    SET PDIR is used to define the drive and directory to search
    for .PRG files when searching for source code using such
    commands as EDIT FILE, COMPILE, etc.
   

Examples:

    . SET PDIR TO \MYAPPS\PRG
    . SET ODIR TO \MYAPPS\OBJ
    . XPP MYMENU
    . XPP MYPROCS
   

Source/Library:

  DCSTD.CH

See Also:

   EDIT FILE
   dc_editprg()



INTERP

Establish the type of prompt for the Dot-prompt

Syntax:

    DEFAULT will display the current setting of the SET DEFAULT
    directory.  This is the directory selected by the
    SET DEFAULT command or DC_SETT('DEFA') function.  Use this
    option if you  wish to see the default directory in which
    databases, indexes, form files, etc. will be opened and
    created.  If SET DEFAULT is empty, i.e, SET DEFAULT TO, then
    databases will be created in the current DOS directory.
   
    DOS will display the current selected DOS directory.   This
    is the directory selected by the CD command or DC_CHDIR()
    function.  Low-level file functions such as FOPEN(),
    DC_TXTOPEN() etc. will look in the DOS directory for files
    if no path is included in the file name.
   
    < expression > is any expression that returns any value.
   

Description:

    SET PROMPT is used to enable or disable the display of the
    directory prompt that is displayed before the dot on the
    command line or to establish a custom prompt.
   

Source/Library:

  DCSTD.CH

See Also:

   dc_dot()



INTERP

Toggle automatic File/Record locking

Syntax:

   SET AUTOLOCK ON | OFF | < lToggle >
   

Arguments:

   ON will automatically lock and unlock the current record or
   file whenever a dot-prompt command is issued that requires a
   lock. (DEFAULT).
   
   OFF will disable the automatic record-locking feature.
   
   < lToggle > if .T. is equivalent to ON, if .F. is equivalent to
   OFF.
   

Description:

    SET AUTOLOCK is used to enable or disable the automatic record-
    locking feature of eXPress++ when using certain dot prompt
    commands.  Many Xbase++ commands will require a record lock
    whenever the command modifies data in the current work area.
    If AUTOLOCK is ON, then the record lock is issued automatically.
    If AUTOLOCK is OFF, then the DBRLOCK() function or LOCK command
    must be issued at the dot-prompt otherwise a "lock required"
    error may be displayed.
   
    SET AUTOLOCK will not affect any application code or any eXPress++
    menus, only commands issued at the dot prompt.
   

Examples:

    . USE SALES SHARED
    . SET AUTOLOCK OFF
    . DELETE
    Lock Required  DBFNTX[1022]
    . SET AUTOLOCK ON
    . DELETE
    . RECALL
   

Source/Library:

  DCSTD.CH

INTERP

Create a command to run a batch file

Syntax:

   SET BATCH TO < cCommandVerb >, < xcBatchFile >
   

Arguments:

   < cCommandVerb > is the name of the command you wish to use at
   the dot prompt execute the batch file.
   
   < xcBatchFile > is the name of the batch file to run when the
   < cCommand Verb > is entered at the dot prompt.  If no extension
   is given, then .DCB is assumed.
   

Description:

    SET BATCH adds command verbs to a table of commands for
    processing batch (.DCB) files from a single verb command.  This
    is a handy method of creating quick commands to run batch
    files.
   

Examples:

    // Batch file MYMOVE.DCB contains the following commands:
    //   COPY FILE %1 %2
    //   ERASE %1
   
    . SET BATCH TO MOVE, MYMOVE.DCB
    . MOVE \DCLIP\MYFILE.TXT \JUNK
   

Source/Library:

  DCSTD.CH

INTERP

Set Dot-Prompt command stack to DOS-Key emulation

Syntax:

   SET DOSKEY on | OFF
   

Description:

    SET DOSKEY is used to set the behavior of the dot-prompt
    command stack navigator to emulate that of DOS command
    stack navigators like Dos-Key or OS/2.
   
    The normal behavior allows commands to be reissued in
    sequence and expedite processes that are used again and
    again.  Dos-Key emulation automatically copies the selected
    command to the bottom of the stack after execution and
    creates a blank command line for input.
   

Examples:

    . SET DOSKEY ON
   

Source/Library:

  DCSTD.CH

INTERP

Set the size of the Dot-prompt command stack

Syntax:

    SET DOTSTACK TO < nSize >
   

Arguments:

   < nSize > is a number from 100 to 4000.
   

Description:

    SET DOTSTACK is used to increase the length of the Dot-Prompt
    command stack array to a value greater than the default value
    of 100 commands.  This is desirable in the event that it is
    necessary to save and restore more than the last 100 commands
    with the HISTORY=<þfileþ> command in your DCLIP.SYS.
   

Examples:

    SET DOTSTACK TO 500
   

Source/Library:

  DCSTD.CH

INTERP

Establish the default source code editor

Syntax:

    SET EDITOR TO < cFileName >
   

Arguments:

   < cFileName > is the name of the editor .COM, .BAT or .EXE
   file to run when using the EDIT command.
   

Description:

    SET EDITOR is used to define the name and path of the default
    editor you wish to use when using the IDE features of eXPress++,
    such as the EDIT FILE command and re-editing after compiler
    errors.
   

Examples:

    . SET EDITOR TO C:\EXPRESS\UTIL\ME2.BAT
   

Source/Library:

  DCSTD.CH

INTERP

Establish the hot key for popping up a field list

Syntax:

    SET FLDKEY TO < nInkey >
   

Arguments:

   < nInkey > is the same as the INKEY() value for the desired key
   to press to invoke the field pick-list.
   

Description:

    The ALT-F key is the default key to invoke the Field List
    window for selecting a field from the currently selected
    database and/or relational databases.  If you wish to reassign
    this key to prevent conflict with other hot-keys, then use this
    command.
   

Examples:

    // Define ALT-P as the field list key
    . SET FLDKEY TO 281
   

Source/Library:

  DCSTD.CH

INTERP

Set percentage update of progress odometer

Syntax:

    SET ODPERCENT TO < nPercent >
   

Arguments:

   < nPercent > is a numeric value for the percentage of update
   you want on the progress odometer.  If you have very large
   files and want to see progress more often, then it is
   recommended you lower this number from the default of 5
   percent.
   

Description:

    SET ODPERCENT sets how often to update the progress indicator
    odometer when using DC_ODOMETER() or DC_ODBLOCK().
   

Examples:

    . SET ODPERCENT TO  1  // 1 percent
    . index on cust_nmbr to custnmbr
   

Source/Library:

  DCSTD.CH

See Also:

   dc_odometer()
   dc_odblock()



INTERP

Create a command to run a function or procedure

Syntax:

    SET PROCEDURE TO < cCommandVerb >, < idExpression >
   

Arguments:

   < cCommandVerb > is the name of the command you wish to use at
   the dot prompt execute the procedure.
   
   < idExpression > is the name of the procedure or function to
   execute when the < cCommandVerb > is entered at the dot prompt.
   

Description:

    SET PROCEDURE adds command verbs to a table of commands for
    evaluating expressions from a single verb command.  This is a
    handy method of creating quick commands to run functions or
    code blocks.
   

Examples:

    . SET PROCEDURE TO CALLHOME, DIALOUT("714-555-1212")
    . CALLHOME
    . SET PROCEDURE TO HELLO, Eval({||MsgBox('Hello'),MsgBox('World')})
    . HELLO
   

Source/Library:

  DCSTD.CH

INTERP

Create a command to run an executable program

Syntax:

    SET COMMAND TO < cCommandVerb >, < executable program >
   

Arguments:

   < cCommandVerb > is the name of the command you wish to use at
   the dot prompt execute the procedure.
   
   < executable program > is the name of the .EXE to run.
   

Description:

    SET COMMAND adds a command verb to a table of commands for
    running other programs from a single verb command.  This is a
    handy method of creating quick commands to run executable
    programs.
   

Examples:

    . SET COMMAND TO ME, C:\MEW\MEW32.EXE
    . ME
   

Source/Library:

  DCSTD.CH

SET SCOPE

Set a scoping value for the current work area

Syntax:

    SET SCOPE [TOP | BOTTOM] TO [< xValue1 >] [,< xValue2 >]
   

Arguments:

   If the TOP clause is used then the SCOPE TOP is set to < xValue1 >.
   If the BOTTOM clause is used then the SCOPE BOTTOM is set to
   < xValue1 >.
   
   If neither the TOP or BOTTOM clause are used then both the < xValue1 >
   (TOP) and < xValue2 > (BOTTOM) arguments are required.
   
   < xValue1 > and < xValue2 > are values to set.  This must be a
   value
   that matches the current index key.
   

Description:

    SET SCOPE is used to set a SCOPE TOP and SCOPE BOTTOM value
    for establishing a "scoping range" for a work area.  The eXPress++
    browsing and editing systems use SET SCOPE and DC_SETSCOPE() to
    store the scoping range when browsing and editing records.  When
    a scoping range is set, only the records that fall within the
    range will appear in the browse or edit screens.
   

Exported Instance Variables:

   

Methods:

   

Notes:

    With the exception of COMIX and Advantage Server, DC_SETSCOPE()
    does not establish the scoping range at the DBE-layer level, but
    instead stores the scoping information in dbCargo() as an array.
   
    The scoping information is retrieved by record navigation
    functions such as DC_DBGOTOP(), DC_DBGOBOTTOM() and DC_DBSKIP().
   

Examples:

    . USE EXPRESS ALIAS XDOC INDEX EXPRESS.CDX
    . SET ORDER TO 'COMMAND'
    . SET SCOPE TO 'A','C'  // set top to 'A' and bottom to 'B'
    . SET SCOPE TOP TO 'A'  // set top to 'A'
    . SET SCOPE BOTTOM TO 'B'  // set bottom to 'B'
    . SET SCOPE TO // clear top and bottom scopes
    . SET SCOPE TO 'H'  // set top and bottom to 'H'
    . SET SCOPE TOP TO  // clear top scope
    . SET SCOPE BOTTOM TO // clear bottom scope
   

Source/Library:

  DCSTD.CH

See Also:

   dc_setscope()
   dc_clrscope()
   CLEAR SCOPE



SET STATUS

Toggle display of GUI Status Window

Syntax:

   SET STATUS ON | OFF | < lToggle >
   

Arguments:

   ON will enable display of the status line.
   
   OFF will disable the status line.
   
   < lToggle > if .T. is equivalent to ON, if .F. is equivalent to
   OFF.
   

Description:

    SET STATUS is used to enable or disable the display of the GUI
    status window at the top of the display.  The status window
    provides important information about the current work area.
   

Examples:

    . SET STATUS ON
    . SET STATUS OFF
   

Source/Library:

  DCSTD.CH

See Also:

   dc_dot()



SET TALK

Toggle display of pre-processed output

Syntax:

   SET TALK ON | OFF | < lToggle >
   

Arguments:

   ON will enable the echoing of preprocessed output to the
   console.
   
   OFF will disable echoing of preprocessed output (default).
   
   < lToggle > if .T. is equivalent to ON, if .F. is equivalent to
   OFF.
   

Description:

    SET TALK is used to enable or disable the echoing of the pre-
    processed output to the console.  All commands entered at the
    dot- prompt are passed through the pre-processor and converted
    to a function or set of functions to be evaluated in sequence.
   
    When debugging #command, #translate or #define statements in
    .CH files previously loaded with the #include <þmycommandsþ>
    in your DCCUSTOM.CH file.  SET TALK ON will show the results
    of the translation.
   

Examples:

    . #TRANSLATE PHONE <number> => DIALOUT(<(number)>)
    . #DEFINE HOME 714-555-1212
    . SET TALK ON
    . PHONE HOME
   
    DIALOUT("714-555-1212")
   

Source/Library:

  DCSTD.CH

SET USEEXCLDATA

Force Exclusive use of application databases

Syntax:

   SET USEEXCLDATA on | OFF
   

Arguments:

   ON will force databases that are opened by the eXPress++ USE
   command, DC_UseArea() function, DC_WorkRestore(), DC_Dbfile(),
   or any other eXPress++ function or command that opens databases
   to be opened EXCLUSIVE regardless of how parameters are
   passed to these functions or the setting of the SET EXCLUSIVE
   system flag.
   
   OFF will insure that databases are opened by the default
   method for each function.
   

Description:

    SET USEEXCLDATA is used to override any default settings for
    opening databases and insure that they are always opened in
    EXCLUSIVE mode only.  This flag should be used when using
    eXPress++ in "design" mode.   Design mode means that the user or
    programmer is designing Browse and Data-Entry screens and/or
    Field Definitions.  When adding or changing database fields
    or packing files, they must be opened in "Exclusive" mode.
   

Notes:

    When designing a system it is recommended that you place the
    following commands in your DCLIP.SYS file:
   
    USEEXCLDATA=ON
    USEEXCLDICT=OFF
   
    or type the following commands at the dot prompt:
   
    SET USEEXCLDATA ON
    SET USEEXCLDICT OFF
   

Source/Library:

  DCSTD.CH

SET XPPOPT

Set the default Compiler switches

Syntax:

   SET XPPOPT TO < compiler options >
   

Arguments:

   < compiler options > is a list of options you want to pass to the
   Xpp.exe compiler.
   

Description:

    SET XPPOPT TO is used to establish a set of default options to
    be used by the XPP.EXE compiler when the COMPILE or XPP command
    is used at the dot-prompt to compile programs.
   

Examples:

    . SET XPPOPT TO /i\ALASKA\XPPW32\INCLUDE /n /w /b /dDEBUGMODE
    . XPP MYAPP
   

Source/Library:

  DCSTD.CH

See Also:

   SET XPPPATH



SET XPPPATH

Set the directory when the Compiler resides

Syntax:

   SET XPPPATH TO < directory >
   

Arguments:

   < directory > is the name of the directory in which the XPP.EXE
   compiler exists.  If XPP.EXE is already in your operating
   system environment path, then SET XPPPATH is not necessary.
   

Description:

    SET XPPPATH is used to define the directory in which the
    XPP.EXE compiler resides for eXPress++ compiler operations.
   

Examples:

    . SET XPPPATH TO \ALASKA\XPPW32\BIN
    . XPP MYAPP
   

Source/Library:

  DCSTD.CH

See Also:

   SET XPPOPT



SKIP

Skip records in a set of Scoped Records

Syntax:

    SKIP [ < nRecords > ] [ALIAS < alias >]
   

Arguments:

   < nRecords > is the number of records to skip.  Default is 1.
   
   ALIAS < cAlias > is the alias of the workarea to skip.
   

Description:

    SKIP is used to SKIP <þnþ> records in a group of "scoped" records.
    Scopes are set via the DC_SetScope() function.
   
    If a scope is not set, then SKIP simply calls dbSkip().
   

Examples:

    . USE EXPRESS INDEX EXPRESS.CDX
    . SET ORDER TO 'COMMAND'
    . SET SCOPE TOP TO 'C'
    . SET SCOPE BOTTOM TO 'E'
    . GO TOP
    . SKIP
   

Source/Library:

  DCSTD.CH

See Also:

   dc_dbskip()



STACK

Display the callstack and optionally edit the source

Syntax:

    STACK
   

Arguments:

    None.
   

Description:

    STACK is used to display a GUI dialog listing the current call
    stack and line numbers.
   
    Clicking on an item in the list will scan the list of .OBJs
    in the ODIR path to find the source of the function.  If
    the same named function exists in more than one .OBJ, then
    all .OBJs will be listed.  Clicking on the selected .OBJ will
    call the default editor and pass the name and line number of
    the selected source file to editor for editing.
   

Examples:

    . STACK
   

Source/Library:

  DCSTD.CH

See Also:

   dc_callstack()



SUM

Sum numeric fields in selected database

Syntax:

    SUM [ < args > ]
   

Arguments:

    See the Xbase++ documentation for details about < args >.
   

Description:

    SUM is used to sum numeric fields in the currently selected
    database based on a set of conditions. This command functions
    identical to the Xbase++ SUM command with the exception that
    a progress bar is displayed during the summing and the number
    of records actually summed is displayed.
   
    If no arguments are given, then SUM uses the DC_Sum() function
    to display a GUI dialog for selecting fields and options.
   

Examples:

    . USE COLLECT
    . SUM orig_price TO nPrice
    . SUM
   

Source/Library:

  DCSTD.CH

See Also:

   dc_sum()



TAG

Build or add to a Record Tag Array

Syntax:

    TAG [TO < aTags >] ;
        [CLEAR] ;
        [ FOR < for > ] ;
        [ WHILE < while > ] ;
        [ NEXT < n > ] ;
        [ ALL ] ;
        [ REST ] ;
        [ RECORD < rec > ]
   

Arguments:

   CLEAR will remove record numbers from the tag array that
   meet the specified conditions, otherwise records will be
   added.
   
   TO < aTags > is an existing array of record numbers which will
   display the TAG marker in the browse display.  If no
   argument is given then the public DCTAGS array will be
   used.
   
   The following clauses follow the conventions for database commands
   documented in the Xbase++ help file:
   
   FOR < for >
   WHILE < while >
   NEXT < n >
   ALL
   REST
   RECORD < rec >
   

Returns:

    A pointer to an array of tagged numbers.
   

Description:

    TAG is used to add or remove record numbers from an array of
    record numbers that can be used with all database commands for
    performing database operations on records that are "tagged".
   
    TAG will first check for a logical field in the database named
    "TAG" and will operate on this field.  If this field does not
    exist, it will operate on a PUBLIC array named DCTAGS.
   
    A manifest symbol named TAGGED may be used in any expression
    at the dot-prompt.  This symbol is automatically translated
    to DC_TAGGED() which is the function used to test whether or
    not a record has been tagged.  This allows for simple use of
    the tagging system by easy-to-enter commands.
   

Notes:

    CAUTION: The eXPress++ tagging system is designed for ad-hoc
    tagging of records using simple menu selection and database
    commands.  You will notice a gradual speed detioration as you
    add more records to the tag array when browsing.  This is
    because the DC_TAGGED() function must scan more records in the
    array.  It is recommend that you refrain from tagging more than
    1000 records or you may experience unacceptable slowness
    during browsing.
   
    If you need a tagging system that will support a much larger
    number of records, it is recommended that you add a TAG
    (logical) field to your database.
   

Examples:

     . select customer
     . TAG CLEAR ALL
     . go 113
     . ? TAGGED
    .F.
     . TAG
     . ? TAGGED
    .T.
     . TAG CLEAR
     . ? TAGGED
    .F.
     . TAG FOR balanceɬ
     . TAG FOR zip='92001'
     . TAG CLEAR FOR balance򒮨
     . count for TAGGED
     . label form customer for TAGGED to print
   

Source/Library:

  DCSTD.CH

See Also:

   dc_rectag()
   TAG CLEAR



TAG CLEAR

Clear the Record Tag Array

Syntax:

    TAG CLEAR [ALL]
   

Arguments:

   ALL will clear all tags.  If this clause is not used, only
   the tag for the current record will be cleared.
   

Description:

    TAG CLEAR will clear the current record or all tags in the
    public DCTAGS array for the current work area.
   

Notes:

    CAUTION: The eXPress++ tagging system is designed for ad-hoc
    tagging of records using simple menu selection and database
    commands.  You will notice a gradual speed detioration as you
    add more records to the tag array when browsing.  This is
    because the DC_TAGGED() function must scan more records in the
    array.  It is recommend that you refrain from tagging more than
    1000 records or you may experience unacceptable slowness
    during browsing.
   
    If you need a tagging system that will support a much larger
    number of records, it is recommended that you add a TAG
    (logical) field to your database.
   

Examples:

    . use customer
    . GO 10
    . TAG
    . GO 20
    . TAG
    . TAG CLEAR ALL
   

Source/Library:

  DCSTD.CH

See Also:

   dc_rectagclear()
   dc_rectag()
   TAG



UNLOCK

Unlock the current record

Syntax:

    UNLOCK
   

Arguments:

    None.
   

Description:

    UNLOCK is used to unlock a record after it has been locked
    with LOCK, DC_RecLock(), Rlock() or dbrLock().
   

Examples:

    . USE COLLECT
    . GO 5
    . LOCK
    . COLLECT->condition := 'P'
    . UNLOCK
   

Source/Library:

  DCSTD.CH

USE

Open a database file in a work area

Syntax:

    USE < db > ;
        [FOX >] ;
        [VIA < cDbe >] ;
        [ALIAS < cAlias >] ;
        [NEW] ;
        [EXCLUSIVE] ;
        [SHARED] ;
        [READONLY] ;
        [INDEX < list,... >] ;
        [ALTERNATE < cAltDbe >]
   

Arguments:

   NEW will open the database in a new work area. If this clause
   is not used current work area will be used.
   
   VIA < cDbe > is the DBE to use.  If no argument is passed, then
   the < cAltDbe > will be used followed by the current DBE.
   
   FOX is an alternative to the VIA < cDbe > clause.  This clause will
   set FOXCDX as the dbe.
   
   < cDatabase > is the name of the file to open.  If no drive and
   directory is included then the file must exist in the SET
   DEFAULT directory or SET PATH directory.
   
   SHARED will open the database in SHARED mode, otherwise it will
   be opened in EXCLUSIVE mode.
   
   READONLY will open the database for Read operations only.
   
   < cAlias > is the ALIAS to assign to the work area.  If no
   argument is passed then the prefix of the database name will
   be used as the alias.
   
   INDEX < list > is a list of associated indexes to open.
   
   ALTERNATE < cAltDbe > is an alternate DBE to use if the database
   cannot be opened by the primary < cDbe > driver.
   

Description:

    USE is similar to the Xbase++ USE command and can be used as a
    replacement for opening databases.  This command tests the
    validity of a database and it's associated memo file (if it
    exists) before attempting to open it to prevent common errors.
    Working with different database drivers can make it difficult
    to determine the cause of an open error. This command is
    designed to test a database to make sure it is a proper type.
    Parameters passed to USE are identical to the Xbase++ USE
    command so this command can be used as a replacement.
   

Examples:

    . USE EXPRESS FOX INDEX EXPRESS.CDX
   

Source/Library:

  DCSTD.CH

See Also:

   dc_usearea()



USER EDIT

Maintain the DCUSERS.DBF User Database

Syntax:

    USER EDIT [ < cUserID > ]
   

Arguments:

   If the < cUserID > argument is passed, then the record that
   contains the USR_ID matching < cUserID > will be edited,
   otherwise all records will be available for browsing and
   editing.
   

Description:

    USER EDIT is used to maintain the DCUSER.DBF database
    for establishing User ID's, Names, Passwords, Access Keys,
    etc.
   

Examples:

    . USER EDIT
   

Source/Library:

  DCSTD.CH

See Also:

   dc_usermaint()



UTIL

A menu of database utilities

Syntax:

    UTIL
   

Description:

    UTIL provides a set of general-purpose database utilities
    to perform menu-driven, complex database operations on the
    currently selected work area.
   
    Menu Selections
    ---------------------
    Create Database
    Display Structure
    Modify Structure
    Copy Structure
    Append Records
    Copy Records
    Import a Data File
    Replace Data
    Copy Fields
    Delete Records
    Recall Records
    Sort Database
    Join with Database
    Count Records
    Sum Data Fields
    Average Data Fields
    Disk Directory
    Insert Blank Record(s)
    Pack DataBase
    Zap Database
    Import/eXport Memos
    Purge Duplicate Records
   

Examples:

    . USE COLLECT
    . UTIL
   

Source/Library:

  DCSTD.CH

See Also:

   DC_Util()



WHERE PUBLIC

List .OBJ(s) that contain public function

Syntax:

    WHERE PUBLIC [ < cProc > ]
   

Arguments:

   < cProc > is the name of the procedure/function to find.
   If this argument is empty, a GUI dialog will be displayed to
   prompt the user for a procedure name.
   

Description:

    WHERE PUBLIC is used to scan a set of .OBJ files and list
    the names of all .OBJs that contain a PUBLIC declaration of
    a specified function.
   
    A file named DCPUBLIC.TXT will be created using the Xbase++
    XPPFILT.EXE utility program.  This file will contain a listing
    of all public functions in all .OBJs.
   

Notes:

    All .OBJs in the search directory(s) established by the
    SET ODIR (eXPress++) environment variable.  If this environment
    variable is empty, then the search path is established by the
    operating system SET OBJ environment variable.
   

Examples:

    . SET ODIR TO C:\TEST;F:\TEST
    . WHERE PUBLIC TEST
   

Source/Library:

  DCSTD.CH

See Also:

   dc_objpublic()



WHERE SOURCE

Display a list of .OBJ/.PRG files containing PUBLIC proc

Syntax:

    WHERE SOURCE < cProc >
   

Arguments:

   < cProc > is the name of the PUBLIC procedure to find.
   

Description:

    WHERE SOURCE is used to display a list of .OBJ files and the
    location of the original source that contain a specified
    PUBLIC procedure.
   

Notes:

    This function assumes that the source file has the same name
    as the obj file except with the .PRG extension.  This function
    is needed when it is not known which directory the source
    resides.
   

Examples:

    . WHERE SOURCE MAIN
   

Source/Library:

  DCSTD.CH

See Also:

   dc_objsourcelist()
   WHERE PUBLIC



ZAP

Zap the database

Syntax:

    ZAP
   

Arguments:

    None.
   

Description:

    ZAP is a front end to the Xbase++ dbZap() function that
    tests if a file is open exclusive and then prompts the user
    to reopen it exclusive before Zapping the file.  In either
    case, the user is given the option of cancelling the operation.
   

Examples:

    . USE COLLECT
    . ZAP
   

Source/Library:

  DCSTD.CH

See Also:

   dc_zap()



DBU

A Gui Database Management Utility

Syntax:

   DBU [ < args > ]
   

Arguments:

   < args >
   < arg1 > thru < arg15 > may be any of the following arguments:
   
   /an - Load ADSDBE driver (.NTX/.DBT support)
   /ac - Load ADSDBE driver (.CDX/.IDX/.FPT support)
   /dbe:< default dbe name >
   /tbl:< database name >
   /ind:< index list (separated by commas)
   /odbc - Load ODBC driver
   /dsn:< data source name > - ODBC (use a + for each space in name)
   /uid:< user id > - ODBC
   /pwd:< password > - ODBC
   /dbq:< database name > - ODBC
   /dll:< dllname > - Load a dynamic link library
   /srv:< server name or drive letter > - ADSDBE
   /obj:< objfilename > - Load an .OBJ file
   /proc:< procedure > - Run a procedure ( with parameters)
   

Description:

   DBU is a database management utility that can be used to
   edit databases using any DBE including ADSDBE and ODBCDBE.
   DBU is an MDI-based dialog that contains a status window at
   the top of the dialog.  This status window displays information
   about the currently selected work area and also contain some
   pushbuttons to popup further status windows.
   
   A menu at the top of the dialog provides a complete set of
   database utilities, searching features and printing features.
   It also allows for an MDI child browse/edit window to be created
   for each open work area.  When a browse/edit window is given
   focus with the mouse, the work area of that window is selected
   and the status of the selected work area is displayed at the
   top of the dialog window.
   
   All MDI child windows are opened in the same thread as the
   parent window.
   

Examples:

   DBU /odbc, /dsn:dBASE+Files, /adsntx
   

Source/Library:

  DCSTD.CH

See Also:

   dc_dot()
   dc_dbu()