

















introduction
Introduction To dBRIEF v3.10                 (c) 1990 Global Technologies
─────────────────────────────────────────────────────────────────────────
dBRIEF is intended to make you more creative and productive as a dBASE 
programmer.  dBRIEF is a new concept in development tools because it is 
designed to be the core of all programming activities, rather than your 
database.  This concept is made possible only through the incredible flexi-
bility of BRIEF and it's own macro language.  All systems in the dBRIEF 
core are controlled by BRIEF macros, even the source generation commands,
so you don't have to leave BRIEF during your application development tasks.

You have purchased the most powerful editor and development system avail-
able today.  Enjoy it, and feel free to call (617) 431-2338 for technical
support, or if you have specific concerns or ideas about dBRIEF, call us
Global Technologies Corporation at (303) 337-8701.

Bill French
Global Technologies Corporation

function_keys
dBRIEF Function Key Assignments
─────────────────────────────────────────────────────────────────────────
Shft: ┌───┐   Assist Menu         Shft: ┌───┐   dBRIEF Help Menu
Alt:  │f1 │█  Borders             Alt:  │f2 │█  N/A
Ctrl: └───┘█  Graphics Char ┌     Ctrl: └───┘█  Graphics Char ┐
       ▀▀▀▀▀                             ▀▀▀▀▀
Shft: ┌───┐   Reindent            Shft: ┌───┐   Preprocessor
Alt:  │f3 │█  Display Structure   Alt:  │f4 │█  Print
Ctrl: └───┘█  Graphics Char │     Ctrl: └───┘█  Graphics Char ─
       ▀▀▀▀▀                             ▀▀▀▀▀
Shft: ┌───┐   Comment             Shft: ┌───┐   Status
Alt:  │f7 │█  Record Macro        Alt:  │f8 │█  Save Keystroke Macro
Ctrl: └───┘█  Same Line Comment   Ctrl: └───┘█  SourceView Lib
       ▀▀▀▀▀                             ▀▀▀▀▀
Shft: ┌───┐   Delete Macro        Shft: ┌───┐   Keys Macro
Alt:  │f9 │█  Revision            Alt:  │f10│█  Compile
Ctrl: └───┘█  Interpreter         Ctrl: └───┘█  Expand Template
       ▀▀▀▀▀                             ▀▀▀▀▀
Command Key Assignments
─────────────────────────────────────────────────────────────────────────

Ctrl Up     Display current program position statistics.
Ctrl A      Display APX Application Dictionary Menu.
Ctrl C      Insert coordinates phrase "^UX,^UY,^LX,^LY".
Ctrl F      FunctionWriter or FrameWriter (depending on type of mark).
Ctrl H      Insert program, procedure, or function header.
Ctrl O      Open or close an object editing window.
Ctrl S      Display previous scan menu.              
Ctrl V      Display current dBRIEF version number.

Alt =       Invoke SourceView, auto-conditional, or window parameters.
Alt Y       Tag/Untag line.




dBRIEF Function Key Graphics               F10 set graphics to <type> ─┘
─────────────────────────────────────────────────────────────────────────

      Control FKeys    Normal   Double  Combination  Special
      ─────────────    ──────   ──────  ───────────  ───────
       ┌──┐  ┌──┐       (def)
       │f1│█ │f2│█      ┌  ┐     ╔  ╗       ╒  ╕       ░  ▒
       └──┘█ └──┘█
        ▀▀▀▀  ▀▀▀▀
       ┌──┐  ┌──┐
       │f3│█ │f4│█      │  ─     ║  ═       │  ═       «  »
       └──┘█ └──┘█
        ▀▀▀▀  ▀▀▀▀
       ┌──┐  ┌──┐
       │f5│█ │f6│█       └  ┘    ╚  ╝       ╘  ╛       █  ▀
       └──┘█ └──┘█
        ▀▀▀▀  ▀▀▀▀


functionwriter
FunctionWriter                                          Line Mark, Ctrl-F
─────────────────────────────────────────────────────────────────────────
The dBRIEF FunctionWriter is a feature that helps you convert in-line
source code to a function or procedure.

Mark a block of source code, with Alt-A and then press Ctrl-F.  Function-
Writer will prompt for the name of the new function in addition to other
pertinent information.  The marked block will be moved automatically to
the specified destination file and replaced with a reference to the new
routine.

The new routine will be created complete with headers [if ON] and the
source will be indented to the proper level.  A same-line-comment will
also be created if specified.

The cursor will be positioned inside parenthesis, or at the end of the
routine reference in the case of a procedure.

scanner
Scanner Operations                                  F10 scan [option] ─┘
─────────────────────────────────────────────────────────────────────────
dBRIEF includes a feature that allows you to display a window menu of all
routines in a program, all buffers, or entire applications. It is 
accessed with the SCAN command as shown below.

   Command: scan [any specified text word] <cr>
   Command: scan routines  <cr>
   Command: scan procedures  <cr>
   Command: scan functions  <cr>
   Command: scan comments  <cr>
   Command: scan notes  <cr>
   Command: scan tags  <cr>

When the scanner has completed the isolation, a window menu will pop-up 
allowing you to jump to any of the isolated lines.  


Scanner Operations                           F10 scan global [option] ─┘
─────────────────────────────────────────────────────────────────────────
The scanner can develop menu lists based on all buffers in memory or all
applications specified in an APX application dictionary.

   Command: scan global [any specified text word] <cr>
   Command: scan global routines  <cr>
   Command: scan global procedures  <cr>
   Command: scan global functions  <cr>
   Command: scan global size  <cr>

The "scan global size" feature allows you to create a list of all pro-
grams in memory and the number of source lines and bytes per file with
totals for all programs.




Scanner Operations                                  F10 scan previous ─┘
─────────────────────────────────────────────────────────────────────────
The scanner can also display the most recent scan menu instantly.  SCAN
PREVIOUS will pop-up the most recent scan menu but will not display the
scan criteria or the total file sizes in bytes and lines if the previous
scan was SCAN GLOBAL SIZE.                                     

   Command: scan previous  <cr>

SCAN PREVIOUS does not work with respect to APX scans.

Ctrl-S has been assigned to SCAN PREVIOUS.






Scanner Operations                              F10 scan apx [option] ─┘
─────────────────────────────────────────────────────────────────────────
The scanner can develop menu lists based on all buffers in memory or all
applications specified in an APX application dictionary.

   Command: scan apx [any specified text word] <cr>
   Command: scan apx routines  <cr>
   Command: scan apx procedures  <cr>
   Command: scan apx functions  <cr>









display
Display Structure                               F10 display structure ─┘
─────────────────────────────────────────────────────────────────────────
The DISPLAY STRUCTURE command will display the file structure of any data 
base file in a window, buffer, or to the the printer. The process only 
takes a few seconds and is intended to allow easy access to dbf files 
while editing applications. If you display to a buffer, the text file is 
saved as a normal file for possible use in documentation, etc.

   Command: display structure [dbf file] to print
   Command: display structure [dbf file] to buffer
   Command: display structure [dbf file] to window

This feature creates a text file of the file structure for later use
when the "buffer" option is used.  The text file will have the same name
as the database, except it will have an STR extension.



_status
Display Status                                     F10 display status ─┘
─────────────────────────────────────────────────────────────────────────
This command simply displays the SET command status of all variable and 
constant parameters in dBRIEF.  A list of the variables and the SET 
commands to change them are shown below.

      Auto Indent              set indent on/off
      Auto Header              set header on/off
      Default Extension        set extension on/off
      Comment Tab              set comment to <column>
      Template Editing         set template on/off
      Indent Level             set indent to <number>
      Graphics Mode            set graphics to <mode>
      Drawing & Graphics       set draw on/off
      SourceView Library       set library to <SRC file name>
      Conditional line #'s     set conditional lines on/off
      Procedure Indenting      set procedure indent on/off

reindent
Indentation System For Program Files                     F10 reindent ─┘
─────────────────────────────────────────────────────────────────────────
This routine automatically indents dBASE command files for each con-
ditional statement.  With the source file in the current buffer, press 
F10, followed by "reindent" ─┘.

   Command: reindent  <cr>

Each line of source will be examined and adjusted accordingly. The source
file may have any file extension.  All same line comments will also be 
adjusted to the current comment tab level unless the comment tab is set 
to zero.

If PROCEDURE INDENTING is set OFF, source within procedures and functions
will be justified to the left margin.  Source lines with continuation
characters will be indented one additional level after the initial line.


print
Printing                                                    F10 print ─┘
─────────────────────────────────────────────────────────────────────────
The "print" command now serves a triple purpose in the BRIEF/dBRIEF 
system.  When presented with a database file extension, the "print" 
command will print the database file structure. When presented with a
program file extension, it will print the source code for the specified
file.  Even if that program file is not the current buffer or not loaded
into BRIEF.  Some examples follow:

   Command: print <file name.ext>  <cr>    or...
   Command: print c:\dbase\customer.dbf  <cr>

The same command can be used to print a program.

   Command: print customer.prg  <cr>       or...
   Command: print  <cr>


preprocessor
dBRIEF Preprocessor                                           F10 pre ─┘
─────────────────────────────────────────────────────────────────────────
The dBRIEF Preprocessor works like other preprocessors except that it 
performs all translations in BRIEF on all current buffers that have "pre"
file extensions.

   Command: pre  <cr>

The output files will have "prg" extensions and will be created as current
BRIEF buffers.  An additional option allows you to select only the current
buffer for preprocessing.

                  Supported Preprocessor Directives
      ─────────────────────────────────────────────────────────
      #define     name          "Bill French"
      #include    "header.h"
      #define     return        13
      #define     inc(x)        x=(x+1)/25*var_+x

interface
External Interface Macros                               F10 interface ─┘
─────────────────────────────────────────────────────────────────────────
The external interface has been redesigned to allow easy reconfiguration
for access to any application.  The interface is configured by editing
the file INTERFAC.CFG, and the format for this configuration file is 
shown below.

   dBASE III Plus        ;dbase       |Run dBASE III Plus Interpreter.
   Clear Flowcharting    ;clear       |Run Clear Flowcharting System.
   Word                  ;word        |Run Microsoft Word.
   FoxPro                ;fox         |Run FoxPro.

  └───────────────────┘ └──────────┘ └──────────────────────────────┘
          Menu            Program             Description

The first menu option will be executed when you press Ctrl-F9.  All other
options require menu invocation.

library
SourceView Librarian                                      F10 library ─┘
─────────────────────────────────────────────────────────────────────────
This command opens a window to a source library.  The window lets you 
scroll up and down displaying descriptions of source fragments contained
in the library. Press the return key to insert source from the library 
into the current buffer.

To add new fragments to the current library, mark the block to be added
with Alt-A, and execute the following command:

   Command: library  <cr>
      or...
   Command:  sv  <cr>

dBRIEF will prompt for the fragment name and description.  The fragment
may be recalled anytime by typing the name you gave it into the buffer
being edited, and pressing Alt-=.

SourceView Librarian                                      F10 library ─┘
─────────────────────────────────────────────────────────────────────────
SourceView libraries can also be accessed by specifying the path and file
name of the library before the module name.  For example to insert a 
source fragment named "dialog_frame" stored in a library named dialog.src
contained in a remote directory, enter the following command into the 
current buffer and then press Alt=.

   if ...
      {commands...}
      {commands...}
      e:\dir1\subdir1\dialog.src\dialog_frame  <alt=>
                
This command will fetch the source associated with the name dialog_frame
and insert it at the proper indent level at the point where the reference
was made.


object
Object Editing                                                     Ctrl-O
─────────────────────────────────────────────────────────────────────────
Object references in a command file are statements like DO PROC, DO 
PROC.PRG, and MEMVAR=UDF().  These types of references can be edited 
without searching for the source code location.

Foe example, position the cursor to a line with an object reference in it 
and press Ctrl-O to edit.  If the procedure exists in the current buffer
or if it exists on disk as a program file, or it exists in a buffer in 
memory, the object editor will pop just program, procedure, or function
into a window so that it can be edited without leaving the calling point.

The object editor supports format files, functions, procedures, and en-
tire program files.

When you are finished editing the procedure, just press Ctrl-O to save it
back as an inline procedure or as a seperate program file.

optimize
Code Optimizer                                           F10 optimize ─┘
─────────────────────────────────────────────────────────────────────────
OPTIMIZE will strip a command file of unnecessary blank lines, blank
spaces, indentations, comment lines, and convert spaces to tab characters

Prompts will appear when you execute OPTIMIZE, allowing you to select the
various optimizing functions.  For example, it is possible to remove
comment lines without removing indentation.
                                    ┐             
   Remove indentations? [yN]:       │             This operation will
   Remove comments? [yN]:           │             create a backup file   
   Remove blank lines? [yN]:        │── Prompts   in the current direc-
   Remove trailing blanks? [yN]:    │             tory with a BAK file
   Convert spaces to tabs? [yN]:    │             extension.
                                    ┘
Some compilers and interpreters behave differently when spaces are con-
verted to tab characters.  Consult your manual before converting large 
quantities of source code.
comment
Commenting Facilities                                     F10 comment ─┘
─────────────────────────────────────────────────────────────────────────
The automatic commenting facility can write same-line comments, match 
conditional statements, and mark and unmark multiple lines of source with
comment characters.

  Same-line:    Press Ctrl-F7 for a single line.  F10 comment pro-
                gram for entire buffer or marked block.

  Conditional:  F10 comment conditionals for entire buffer or marked
                block.

  Source block: F10 comment block.





frame
Frame Generator                                       Column Mark, Ctrl-F
─────────────────────────────────────────────────────────────────────────
This command will create frames with two types of border characters,
single and double lines.  The FRAME feature requires just two steps. 

First, mark a block on screen using BRIEF's column mark facility, where
you want the frame to display.  Then press Ctrl-F.  The frame code will 
be created.

Single and double borders are controlled by the status of SET GRAPHICS
TO.  When set to NORMAL, single lines will be generated, when set to 
DOUBLE, double lines will be created.

If you want the source code to be generated at specific location in the
program, place a "~frame~" marker with Ctrl-F before marking the size
and position of the frame.


revision
Revision Tracking                                        F10 revision ─┘
─────────────────────────────────────────────────────────────────────────
Revision tracking will insert the date and time of the last code change
as well as a description in the comment section of the header block.  To
add a revision number and description, enter the command as follows:

     Command: revision [rev #] [description]  <cr>

The revision information will be inserted after the last revision in the
header comment section.  The revision command will only work if a header
has been invoked at the top of the program.  See HEADER command for addi-
tion details.  If you need to enter spaces in a revision number or
description, you must enclose them in double quotes.





scan "revi"
Revision Scanning                                        F10 scan rev ─┘
─────────────────────────────────────────────────────────────────────────
A useful way to review the revision numbers in a file is to use the
scanner in the following way:

     Command: scan rev  <cr>

The scanner will open a menu window of every revision logged to the pro-
gram.  

You must use the HEADER and REVISION commands to keep track of revision
data.







scatter_gather
Scatter and Gather                                 F10 scatter/gather ─┘
─────────────────────────────────────────────────────────────────────────
Create automatic STORE, REPLACE and INITIALIZE procedures for all fields
in a database with the following commands:

     Command: scatter/store sample.dbf  <cr> 
       _NAME      = sample->name                                       
       _ADDRESS   = sample->address                                    
       _CITY      = sample->city                                       
       _STATE     = sample->state                                      
       _ZIP       = sample->zip       

     Command: gather/replace sample.dbf  <cr>  
       REPLACE sample->NAME       WITH _name     
       REPLACE sample->ADDRESS    WITH _address  
       REPLACE sample->CITY       WITH _city     
       REPLACE sample->STATE      WITH _state    
       REPLACE sample->ZIP        WITH   _zip
draw
Drawing With Graphics Characters                             F10 draw ─┘
─────────────────────────────────────────────────────────────────────────
Character graphics can be employed easily with the following commands.
Using the DRAW command without parameters will display a pop-up menu.

     Command: draw frame  <cr>
     Command: draw cursor  <cr>
     Command: draw line  <cr>
     Command: draw box  <cr>
     Command: draw area  <cr>

DRAW CURSOR will change the cursor keys into a drawing mode. The follow-
ing SET command or the NODRAW command will change the cursor keys back to
their normal mode.

     Command: nodraw  <cr>
     Command: set draw off  <cr>


setup
Easy Configuration                                          F10 setup ─┘
─────────────────────────────────────────────────────────────────────────
dBRIEF may be reconfigured quickly and easily from the while in BRIEF.
Simply press F10 and type:

     │    (BRIEF Text Area)
     ╘══════════════════════════════════════════════
     Command: setup  <cr>

The setup window will display after a few seconds.  Use the arrow keys
and <cr> to change any of the SET values. Press F10 or <cr> through
all prompts when the changes are complete.






coords
Window Coordinate Substitution                             F10 coords ─┘
─────────────────────────────────────────────────────────────────────────
The command "coords" will allow you to create X,Y,X,Y framing coordinates
for use with the window parameters substitution feature.  When   issued, 
the "coords" command will generate the following text phrase:

     ^UX,^UY,^LX,^LY

These facsimile parameters can then be used with a column mark to produce
actual frame coordinates.  This phrase can be used in any function or 
command such as @ ^ux,^uy TO ^lx,^ly.  Mark a block with Brief's Alt-C
feature, and then use Alt= to substitute the parameters of the marked
area directly into the command line.





replace
Global Search & Replace         F10 replace global <text> with <text> ─┘
─────────────────────────────────────────────────────────────────────────
This feature enables you to search and replace specified text in all
buffers or in all programs contained in the current APX dictionary.  You
may also pause on each replacement as with BRIEF's search and replace
feature.

      Command+: replace global <text> with <text>
      Command+: replace apx <text> with <text>

Following this command, dBRIEF will prompt to replace all or pause on 
each replacement.  Once the replacement process begins, it can be
terminated by pressing any key.
