home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
High Voltage Shareware
/
high1.zip
/
high1
/
DIR19
/
CED21B.ZIP
/
CED.DOC
next >
Wrap
Text File
|
1993-01-22
|
183KB
|
3,108 lines
******************************************************************************
CED - The Clipper Environment
******************************************************************************
CED Version 2.1b Released on 15 January 1993. Copyright (c) 1993 Scott
Daughtry, All Rights Reserved.
CED Version 2.1b is not and has never been free software! You are given a
limited license to use this fully working version of CED for evaluation only. If
you wish to continue using CED you must register by sending $39.00, plus $6.00
for shipping and handling, to the address listed below. By registering this
product, you become entitled to the following benefits:
* The current CED program without the time constraints.
* Notification of future updates automatically by mail.
* Reduced pricing on future upgrades.
* Technical assistance for one year.
* My sincere thanks for your support and encouragement.
Unregistered users will not recieve technical support in ANY manner, unless they
are reporting a bug in the program. Persons discovering bugs in CED will
automatically recieve full registration for CED; a bug-free version will be
sent automatically at no charge. The only restriction to this policy would be if
the bug is already known and is being corrected, or if this version has been
superceded by a newer version.
Scott Daughtry, 2222A Hidalgo Loop, HAFB NM 88330
Messages can be left at these BBS phone numbers:
Compu-Tech - (505)434-5366 CED Support BBS
dClip Support - (714)263-0226
Superlib Support - (405)340-4714
*******************************************************************************
INTRODUCTION
════════════
CED has been created to provide the Clipper programmer an environment similiar
to those found in other programming languages to simplify program design and
debugging. It provides a turbo-style shell that allows you to incorporate
your most often used development tools that you've grown accustomed to
using from the Ms-Dos prompt into an organized workspace. Many features are
integrated into CED that will be familiar to anyone that has used another
programming language, or any version of dBase:
* User definable color scheme - use predefined color palettes or create
your own.
* Create Clipper *.Ntx files.
* View any size and any type file.
* Ms-Dos utilities for copying, renaming and deleting files.
* Add/Browse/Edit/Delete/Search/Query *.Dbf files.
* Compile *.Prg files into *.Obj files.
* Compile *.Obj files into *.Exe files.
* Use your favorite Make utility.
* Execute another *.Exe file, and return back to CED.
* Ability to create,edit,save and print customized labels, formletters and
tabular style reports that can optionally use a filter or query to limit
the output as desired.
* View dBase compatible *.Mem files.
* "Metafunction"-style *.Dbf utilities that allow you to:
* Perform intelligent "Append From" actions on *.Dbf files.
* Copy selected fields from an existing *.Dbf to new *.Dbf.
* Do statistical analysis on numeric fields.
* Do selective global replace of a *.Dbf field.
* Duplicate record finder with delete/copy options.
* Pack an existing database.
* Convert a delimited file to a *.Dbf
* Export *.Dbf to delimited or SDF files.
* Create mailmerge files for Wordperfect or MS Word.
* Erase all records of an existing database.
* Create or edit dBase compatible *.Lbl and *.Frm files.
* Display Inkey and Lastkey values.
* Popup Ascii chart that shows Ascii value and actual character.
* Fully integrated menuing program that allows you to shell to Ms-Dos and
return to CED, or execute your favorite utilities from a menu and return
to CED.
* Use the built-in text editor, or use your own without leaving CED.
* Ability to set up default *.Obj,*.Lib and *.Clp files for the link
process; CED will automatically figure out which way to compile based
upon your defaults.
Even if you do not program in the Clipper language, you can still use CED to
perform an extremely wide variety of normal database chores; most of the
functionality of dBase and it's clone spinoffs is present in CED, as well as
some features that are exclusive to itself. Future versions of CED may become
language independant for use with other programming languages other then
Clipper.
System Requirements:
════════════════════
CED requires an IBM-compatible XT or AT machine running Ms-Dos version 3.2
or greater. All video modes are supported. A hard drive is not absolutely
required, but it would be a wise investment. The program files for CED occupy
about 850k, and if extended or expanded memory is unavailable it will use
another 500k for a temporary swap file when called upon. An ideal computer setup
would be at least a 386SX machine with a fast hard drive and 2 meg of ram. You
may use Pklite 1.14 to compress the Ced.Exe file to conserve space if you
choose.
INSTALLATION:
═════════════
CED most likely came in a compressed file; it should have been self-extracting
to ease installation woes. You may place the files anywhere on the hard drive;
I recommend you ensure that the files are located in the system path so that
you may use it from any directory on the drive. The following files are
included or created by CED:
NAME DESCRIPTION
════ ═══════════
Ced.Doc CED manual
Ced.Exe Main executable file
Order.Doc CED Order Form
Read.Me Description File
I recommend that you make at least ONE backup copy of all program files
and store the disk in a safe place. You may use the Ms-Dos Attrib command to
make Ced.Exe read-only; do NOT make Setup.sys read-only or hidden (you won't be
able to customize CED to your liking if you do!)
LIMITATIONS:
════════════
This is a fully functional evaluation copy of CED; all functions are fully
operational. The only difference between this version and the registered copy is
that the 10 minute time limitation is removed. This method of protection was
chosen to provide the best of both worlds: it gives you the opportunity to try
all the bells and whistles, and give myself a method to encourage
users to register my product. CED has taken more than 150 hours to
write, debug, and write documentation for. Because there is no other product
like this one in this price range, and the functionality it provides, $39
is a reasonable figure in my mind. NOTE: While I have tested the demo version
extensively with the time limit inacted, it is usually safe practice to not
have a database file open at the time of a program ending. Therefore, I
recommend that you try not to have *.Dbf files open at the ten minute mark just
to be on the safe side. The dBase file format is prone to being corrupted when
it is open and the calling program is terminated abruptly.
ACKNOWLEDGEMENTS
════════════════
I am thankful to several people, of whom I would have never finished this
program:
- To my wife, who spent many nights without me, while I was sitting in front of
this computer.
- To my father, to give me the insight into computers in the first place.
- To Kenneth Williams and other beta testers who diligently hammered away at CED
and pointed out my mistakes.
- To Allen Lichtenwalner, who listened to this idea and encouraged me to proceed
forward with it.
- To Garry Prefontaine, for writing the best Clipper library available.
- To Roger Donnay, whose dClip product blew me away. I know this product pales
in comparison, but we all have to start somewhere!
It is my hope that you'll enjoy working with CED.
WARRANTY
════════
Concerning the physical diskette sent to registered owners, the author
warrants the same to be free from defects in materials and workmanship for 60
days from the date of registration. In the event of notification
within the warranty period of defects in material or workmanship of the diskette
the author will replace the defective diskette. The remedy for breach of this
warranty shall be limited to replacement and shall not encompass any other
damages, including but not limited to loss of profit, any special, incidental,
consequental or other similiar claims.
In no event shall the author be liable for any loss of profit or any other
commercial damage resulting from the use (or inability of use) of CED, even if
the author has been advised ahead of time that the possibility of damage exists.
While all the above legalese sounds daunting, this program has not caused my
data files to blow up or set my computer on fire! No low level functions have
been written into this program; it has been tested on many different type
machines and versions of Ms-Dos without incident.
COPYRIGHT NOTICES
═════════════════
CED is copyrighted software of Scott Daughtry
Scott.Lib is copyrighted software of Scott Daughtry
Clipper is copyrighted software of Computer Associates
Superlib is copyrighted software of Functional Software
dClip is copyrighted software of Donnay Systems
Overlay is copyrighted software of Sofdesign
Multi-Edit is copyrighted software of American Cybernetics
Blinker is copyrighted software of BlinkInc
Ms-Dos is copyrighted software of Microsoft
Grumpfish is copyrighted software of Grumpfish
CED TECHNICAL NOTES
═══════════════════
CED was developed on a home-brew 386/40 with a 130 meg drive and 4 meg of ram.
Software used in creating CED include the following:
Editor - MultiEdit 6.10
Compiler - Clipper 5.01a
Linker - Blinker 1.52
Libraries - Superlib 3.0, Grumpfish, Scott.Lib, Nanforum 2.1, dClip 3.0
The load size of CED is 390K; CED can use XMS memory in it's database
utilities; the swap routine (Overlay 3.5) can use either XMS or EXT memory
automatically to dramatically speed up the swap routine. File size limitations
are:
Ascii viewer - unlimited
*.Dbf utilities - 1 billion records or available disk space
Word processor - 64K
USING CED
═════════
This section of the manual will be dedicated to exploring each CED module in
the order that they appear on the pulldown menu. A screen capture will show
you what the screen will look like, and descriptive text will follow. For the
most part, the menu options are intuitive; I've always felt that the best way
to learn software is to play with it (I would bank safe money that
quite a few people who use this product will never read this far in the
documentation.) Wherever the possibility exists of changing a file on the hard
drive, the user will have the option to abort the procedure and return back
to the main menu without incident.
NOTE: CED is continually being upgraded; in some instances the screen depictions
will not quite match the documentation; a mousable interface is being gradually
implemented into CED piecemeal. This explains why the mouse will work in some
areas and not in others. The leftmost mouse button will choose a menu/prompt
choice, and the rightmost mouse button will simulate the Enter key. I
apologize for this temporary inconvenience; hopefully soon all CED functions
will be mousable.
╒═════════════════════════════════╕
│FILES - USE A DATABASE (DBF) FILE│
╘═════════════════════════════════╛
This option allows you to open a *.dbf file (and it's *.dbt file)
for usage within CED for it's various functions. CED will allow you to open
only ONE *.dbf/*.dbt file at a time. Upon execution, this file selection box
will appear onscreen to allow you to choose a database file (NOTE: Do NOT
open Colors.dbf; it keep's track of CED's customized colors).
After you have selected a datafile for use, the filename will be displayed on
the status line at the top right of the screen.
┌[Select: ]─────────┐
│ COLORS.DBF │
│ TEST.DBF │ <-- We Chose This One
└───────────────────┘
──────────────────────────────────────┬─────────────────┬──────────────────────
D:\CLIPPER5\APPS\DCLIP │DBF: TEST.DBF │NTX:
──────────────────────────────────────┴─────────────────┴──────────────────────
╒═════════════════════════════╕
│ FILES - CLOSE OPEN DATABASE │
╘═════════════════════════════╛
This option will close an open datafile, and blank out the database name on
the status line.
╒═══════════════════════════════╕
│FILES - USE AN INDEX (NTX) FILE│
╘═══════════════════════════════╛
This option is used to open an existing index file (*.ntx) for use with the
database utilities built into CED. You MUST have already opened a database
file before you use this menu option; you will be given an error message if
you don't follow that sequence. A popup box will appear onscreen for you to
choose an index file; once you have chosen an index, it will display the name
on the status line:
┌[Select: ]─────────┐
│ COLORS.NTX │
│ TEST.NTX │ <-- We Chose This One
└───────────────────┘
──────────────────────────────────────┬─────────────────┬──────────────────────
D:\CLIPPER5\APPS\DCLIP │DBF: TEST.DBF │NTX: TEST.NTX
──────────────────────────────────────┴─────────────────┴──────────────────────
If no *.Ntx files exist in the current logged directory, the following error
message box will appear onscreen:
┌─────────────────────────────────────────────┐
│ There Are No Index Files In This Directory! │
│ │
│ Press a key... │
└─────────────────────────────────────────────┘
╒══════════════════════════╕
│FILES - DOS FILE DIRECTORY│
╘══════════════════════════╛
This option lets you view files in the current logged directory only; the
filename, filesize, date created and time created will be displayed onscreen.
If more than 12 files exist, use the arrow or PgUp/PgDn keys to scroll
farther down the list. The Escape key or Enter key will abort you back to the
main menu.
┌─Show Directory─────────────────────────────< = Scroll Esc= Exit >─┐
│ File Dir Size Date Time │
│──────────────────────────────────────────────────────────────────────│
│ . <DIR> 12/09/92 07:42:58 │
│ .. <DIR> 12/09/92 07:42:58 │
│ DC.PRG 24562 01/05/93 16:12:04 │
│ DC.BAK 24390 01/05/93 16:03:48 │
│ SETUP.SYS 545 01/05/93 15:50:38 │
│ TEST.DBF 246 01/05/93 07:57:16 │
│ DC.BIF 696 01/05/93 16:15:56 │
│ MEERR.TMP 422 01/05/93 16:14:04 │
│ DC.EXE 805088 01/05/93 16:16:00 │
│ COLORS.DBF 569 01/05/93 08:20:20 │
│ DC.OBJ 21486 01/05/93 16:12:16 │
│ STATUS.ME 1320 01/05/93 16:15:08 │
│──────────────────────────────────────────────────────────────────────│
│ D:\CLIPPER5\APPS\DCLIP\*.* │
└──────────────────────────────────────────────────────────────────────┘
╒═══════════════════╕
│FILES - DELETE FILE│
╘═══════════════════╛
This option allows you to delete a file in the current logged directory. A popup
box similiar to the Show Directory menu option will be displayed onscreen.
Escape will abort the process at any time; the Enter key will select a file
and popup a message box confirming if you truly wish to delete the file.
┌─Delete File────────────────────────────────< = Scroll Esc= Exit >─┐
│ File Dir Size Date Time │
│──────────────────────────────────────────────────────────────────────│
│ DC.PRG 24562 01/05/93 16:12:04 │
│ DC.BAK 24390 01/05/93 16:03:48 │
│ SETUP.SYS 545 01/05/93 15:50:38 │
│ TEST.DBF 246 01/05/93 07:57:16 │
│ DC.BIF 696 01/05/93 16:15:56 │
│ MEERR.TMP 422 01/05/93 16:14:04 │
│ DC.EXE 805088 01/05/93 16:16:00 │
│ COLORS.DBF 569 01/05/93 08:20:20 │
│ DC.OBJ 21486 01/05/93 16:12:16 │
│ SAFE.PRG 24562 01/06/93 07:26:12 │
│ AHBKAPFK 0 01/06/93 07:26:14 │
│ STATUS.ME 1320 01/05/93 16:15:08 │
│──────────────────────────────────────────────────────────────────────│
│ D:\CLIPPER5\APPS\DCLIP\*.* ENTER = Select │
└──────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────┐
│ Are You Postive you Wish To Delete DC.OBJ? │
│ No Yes │
└──────────────────────────────────────────────┘
╒═════════════════╕
│FILES - COPY FILE│
╘═════════════════╛
This option allows you to copy a file to a new filename in the current logged
directory. A popup box similiar to the Show Directory menu option will be
displayed. Escape will abort the process at any time; the Enter key will select
a file and popup a message box asking you to enter the new filename.
┌─Copy File──────────────────────────────────< = Scroll Esc= Exit >─┐
│ File Dir Size Date Time │
│──────────────────────────────────────────────────────────────────────│
│ DC.PRG 24562 01/05/93 16:12:04 │
│ DC.BAK 24390 01/05/93 16:03:48 │
│ SETUP.SYS 545 01/05/93 15:50:38 │
│ TEST.DBF 246 01/05/93 07:57:16 │
│ DC.BIF 696 01/05/93 16:15:56 │
│ MEERR.TMP 422 01/05/93 16:14:04 │
│ DC.EXE 805088 01/05/93 16:16:00 │
│ COLORS.DBF 569 01/05/93 08:20:20 │
│ DC.OBJ 21486 01/05/93 16:12:16 │
│ STATUS.ME 1320 01/05/93 16:15:08 │
│ DC.LNK 204 01/02/93 14:00:00 │
│ │
│──────────────────────────────────────────────────────────────────────│
│ D:\CLIPPER5\APPS\DCLIP\*.* ENTER = Select │
└──────────────────────────────────────────────────────────────────────┘
┌────────────────────┐
│ Enter New Filename │
│ . │
└────────────────────┘
╒═══════════════════╕
│FILES - RENAME FILE│
╘═══════════════════╛
This option allows you to rename a file in the current logged directory. A
scrolling list box will be displayed onscreen. Escape will abort the process
at any time; the Enter key will select a file and popup a message box asking
you to enter the new filename.
┌─Rename File────────────────────────────────< = Scroll Esc= Exit >─┐
│ File Dir Size Date Time │
│──────────────────────────────────────────────────────────────────────│
│ DC.PRG 24562 01/05/93 16:12:04 │
│ DC.BAK 24390 01/05/93 16:03:48 │
│ SETUP.SYS 545 01/05/93 15:50:38 │
│ TEST.DBF 246 01/05/93 07:57:16 │
│ DC.BIF 696 01/05/93 16:15:56 │
│ MEERR.TMP 422 01/05/93 16:14:04 │
│ DC.EXE 805088 01/05/93 16:16:00 │
│ COLORS.DBF 569 01/05/93 08:20:20 │
│ SAFE.PRG 24562 01/06/93 07:26:12 │
│ AHBKAPFK 0 01/06/93 07:26:14 │
│ STATUS.ME 1320 01/05/93 16:15:08 │
│ DC.LNK 204 01/02/93 14:00:00 │
│──────────────────────────────────────────────────────────────────────│
│ D:\CLIPPER5\APPS\DCLIP\*.* ENTER = Select │
└──────────────────────────────────────────────────────────────────────┘
┌────────────────────┐
│ Enter New Filename │
│ . │
└────────────────────┘
╒═══════════════════════╕
│FILES - VIEW ASCII FILE│
╘═══════════════════════╛
This option allows you to view an Ascii-formatted file of any size in a fully
scrollable window onscreen; ANY type file can be viewed, but may be
indecipherable onscreen. A popup message box will appear onscreen asking you
for a filename that you wish to view. You may either manually enter a
filename, or you can press the Enter key to choose a file from a scrolling
listbox; the Enter key will select the filename that is now highlighted
in the list box.
┌───────────────────────────────────────────────────────────────┐
│ File to list (ENTER or *Wildcards for picklist - ESC to exit) │
│ _____________________________________________ │
└───────────────────────────────────────────────────────────────┘
I pressed the Enter key to display the files picklist:
┌[Select: ]─────────┐
│ AHBKAPFK │
│ COLORS.DBF │
│ DC.BAK │
│ DC.EXE │
│ DC.LNK │
│ DC.PRG │
│ DELETE.ME │
│ MEERR.TMP │
│ SAFE.PRG │
│ SETUP.SYS │
│ STATUS.ME │
│ TEST.DBF │
└───────────────────┘
┌─[DC.LNK]──────────────────────────────────────────────────────────────────┐
│file dc │
│lib dclipnl │
│beginarea │
│ allocate dclip │
│ allocate sf_xtra │
│ allocate grump │
│ allocate nanfor │
│ allocate super30 │
│ allocate extend │
│endarea │
│lib dclipr │
│search clipper │
│ │
│ │
│ │
├───────────────────────────────────────────────────────────────────────────┤
│ PGUP PGDN HOME END ESC=Quit │
│ S=Search M=Mark/Endmark │
└───────────────────────────────────────────────────────────────────────────┘
╒═══════════════════════════╕
│BUILD - DATABASE (DBF) FILE│
╘═══════════════════════════╛
This option allows you to create a new *.Dbf/*.Dbt file without using
dBase. You can create the new file entirely from scratch, or copy the
structure from a database file located in the current directory. You may
also edit an existing *.Dbf/*.Dbt file structure.A popup window will appear
asking if you wish to create a new datafile or edit an existing database
file structure (if no *.Dbf files are in the directory, only the <Create New
Datafile> prompt will appear onscreen).
┌[DBF to Modify]─────────┐
│<Create New Datafile> │
│COLORS.DBF │
│SCOTT.DBF │
└────────────────────────┘
If you choose to create a database file from scratch, this popup message box
will appear onscreen:
┌────────────────────────────────────────────────────────┐
│ Name of datafile to create (Escape aborts): │
└────────────────────────────────────────────────────────┘
Another popup box will appear onscreen, asking if you wish to copy the
structure of an existing database file; the example shown below is for the
answer "YES"; it inserts all the data from the existing *.dbf
file and inserts it into the Structure Modification box; if we had chosen
"NO" then that same box would be empty.
┌────────────────────────────────────────┐
│Copy structure from an existing DBF ? │
│ YES NO │
└────────────────────────────────────────┘
┌[Structure Modification]─────────┐┌[Instructions]──────────────────────────┐
│# Name Type Length Dec ││ Key Action │
│──────────────────────────────── ││ ──────────────────────────────────────│
│ 1 SETNAME C 40 0 ││ F10 Quit │
│ 2 DMAINCOL C 40 0 ││ Arrows Move up or down 1 │
│ 3 DMAINMENU C 40 0 ││ PGUP, PGDN Move up or down 10 │
│ 4 DPOPCOL C 40 0 ││ HOME,END First or last field │
│ 5 DPOPMENU C 40 0 ││ A-Z Find matching first │
│ 6 DFRAME C 40 0 ││ letter of field │
│ 7 DSHADATT N 3 0 ││ ENTER Edit current field │
│ 8 DSHADPOS N 1 0 ││ INSERT Add field │
│ 9 DEXPLODE L 1 0 ││ DELETE Delete field(s) │
│ ││ ALT-U Un-delete field │
│ ││ SPACE BAR Move field │
│ ││ ALT-A Alphabetize fields │
│ ││ ALT-R Reset to original │
│ ││ │
│ ││ Field Types │
│ ││ ──────────────────────────────────────│
│ ││ C Character D Date │
│ ││ N Numeric L Logical │
│ ││ M Memo │
└─────────────────────────────────┘└────────────────────────────────────────┘
Simply follow the instructions in the right side instruction box to create
your database file (or edit an existing file); make sure you press the F10
key when finished, or the changes will NOT be permanent. If you are editing
an existing database file, you will be permitted to make only safe changes to
the file to ensure data integrity.
╒════════════════════════╕
│BUILD - INDEX (NTX) FILE│
╘════════════════════════╛
This option allows you to create Clipper compatible index files that end with
an *.Ntx file extension. A database file must be open in order for
you to proceed; you will recieve this error message if you don't:
┌──────────────────────────────────────┐
│ You Must First Open A Database File! │
│ │
│ Press a key... │
└──────────────────────────────────────┘
A box will appear onscreen that contains a scrollable menu of options; the
bottom box onscreen displays the index string as you define it:
┌──────────────────────────────────────────────────────────────────────────────┐
│┌───[Index Builder]────────────────────┐ │
││ Define Index Expression │ │
││ Create Index File from Expression │ │
││ View records against Expression │ │
││ Toggle order: descending/ASCENDING │ │
││ Quit │ │
││ │ │
│└──────────────────────────────────────┘ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│┌Current Index Key Expression:───────────────────────────────────────────────┐│
││ ││
││ ││
││ ││
││ ││
│└────────────────────────────────────────────────────────────────────────────┘│
└──────────────────────────────────────────────────────────────────────────────┘
The menu is set up sequentially in the order they appear (except for the
Toggle Order option: it simply toggles if you want the index to be in
ascending or descending sequence. Choose the desired sequence BEFORE you
create the index file). When you choose Define Index Expression, a
list box will appear onscreen to choose field(s) for the index string. The
current index key expression will automatically update itself as you
choose/unchoose fields.
┌[Index Expression Builder]─────────┐
│ Field │
│ SETNAME │
│ DMAINCOL │
│ DMAINMENU │
│ DPOPCOL │
│ DPOPMENU │
│ DFRAME │
│ DSHADATT │
│ DSHADPOS │
│ DEXPLODE │
│ │
│───────────────────────────────────│
│Enter to select , F10 to quit │
│ │
└───────────────────────────────────┘
┌Current Index Key Expression:───────────────────────────────────────────────┐
│ SETNAME+DMAINCOL+DMAINMENU+DPOPCOL │
│ │
│ │
│ │
└────────────────────────────────────────────────────────────────────────────┘
When you have finished choosing fields with the F10 key, you will be prompted
to create the index. If you choose no, you will return to the menu again; else,
you will be prompted to give the index a filename (without the extension). The
index will be created with a visual 'thermometer' display to keep you informed
of the indexing status.
┌───────────────────────────┐
│Create this index now ? │
│ YES NO │
└───────────────────────────┘
┌───────────────────────────┐
│ Name of index: TEST │
└───────────────────────────┘
You can view the open database with the new index file active by choosing the
View records against Expression menu option:
┌─────────────────────────────────────────────────────────────────────────────┐
│Alpha Electronics │
│Beta Physics │
└─────────────────────────────────────────────────────────────────────────────┘
╒════════════════════════╕
│BUILD - LABEL (LBL) FILE│
╘════════════════════════╛
This option allows you to modify an existing dBase *.Lbl file, or create a
new *.Lbl file (This type file is used for printing labels). If no *.Lbl
files exist in the current directory, you will see a popup box asking which
course of action you want to take (create a new file, or abort). If
you choose abort you will return to the main menu; we are not going to do that!
┌─────────────────────────────────────────────────┐
│ ERROR - No *.Lbl Files In Current Directory! │
│ Create New One Abort │
└─────────────────────────────────────────────────┘
Chose 'Create New One' here, and recieve a prompt box to enter a filename
for this new file (without entering the extension of course):
┌──────────────────────────────────────────┐
│ Enter New Filename Without The Extension │
│ FORMS │
└──────────────────────────────────────────┘
You are presented the main menu for manipulating *.Lbl files:
┌─────────────────────────────────────────────────┐
│ ** LABEL FORM EDITOR ** │
│ │
│ LABEL File : FORMS.LBL │
│ Primary Data File : FORM │
│ │
│ L = Edit Form Layout │
│ T = Select Form Type (Defaults) │
│ F = Edit Form Fields (Lines) │
│ │
│ │
│ │
│ X = EXIT and Save File Changes │
│ │
│ Press ESCape to EXIT without saving Changes │
│ │
│ │
└─────────────────────────────────────────────────┘
Options are explained in sequential order; choosing L = Edit Form Layout, you
are presented this screen:
┌─────────────────────────────────────────────────────────────────────────────┐
│ │
│ LABEL FILE: FORMS.LBL │
│ │
│ DIMENSIONS: │
│ │
│ Width 35 │
│ Height 5 │
│ Across 1 │
│ │
│ │
│ FORMATTING: │
│ │
│ Margin 0 │
│ Lines 1 │
│ Spaces 0 │
│ Remarks │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
Here you are simply defining the dimensions for the desired label. Choosing
T = Select Form Type (Defaults) displays predefined label formats:
┌───────────────────────────────────────────────────────┐
│ A = 3 1/2 x 15/16 by 1 │
│ B = 3 1/2 x 15/16 by 2 │
│ C = 3 1/2 x 15/16 by 3 │
│ D = 4 x 17/16 by 1 │
│ E = 3 2/10 x 11/12 by 3 (Cheshire) │
└───────────────────────────────────────────────────────┘
Select your desired size. Choosing F = Edit Form Fields (Lines):
╔═════════════════╡ LABEL FORM FIELDS ┌────────┤ Select a Field Below ├────────┐
╟─┬───────────┬───────────────────────│ DESCRIPT Character 50 │
║ │ Line │ Contents │ MEMO_ORIG Memo 10 │
║ ├───────────┼───────────────────────│ │
║│ Line 1 │ │ │
║ │ Line 2 │ │ │
║ │ Line 3 │ │ │
║ │ Line 4 │ │ │
║ │ Line 5 │ │ │
║ │ │ │ │
║ │ │ │ │
║ │ │ │ │
║ │ │ │ │
║ │ │ │ │
║ │ │ │ │
║ │ │ │ │
║ │ │ │ │
║ │ │ │ │
║ │ │ │ │
║ │ │ │ │
║ │ │ │ │
║ ├───────┌───────────────────────────│ │
║ │ │ Press Key F2 for field lis│ │
╚═╧═══════└───────────────────────────└────────────────────────────────────────┘
Here you are going to set up which fields are going to be printed in lines 1-5
of the label. On the left side of the screen are blank values for lines 1-5,
and by pressing the F2 key, pop-up a scrolling list of fields in the open
database file. Pressing the Enter key on the highlighted field inserts
that fieldname and it's pertinent values into the corresponding line on the
left side of the screen (as we have done here). Finish defining what fields
will go where, then press the 'X' key to exit back to the main menu
of the application. The information is automatically saved to the filename you
gave when you started (or to the filename that existing beforehand if we were
modifying an exist *.Lbl file).
╒═════════════════════════╕
│BUILD - REPORT (FRM) FILE│
╘═════════════════════════╛
This option allows you to modify an existing dBase *.Frm file, or create a
new *.Frm file (This type file is used for printing reports). If no *.Frm
files exist in the current directory, you will see a popup box asking which
course of action you wish to take (create a new file, or abort). If you choose
abort you will be returned to the main menu; we are not going to do that:
┌─────────────────────────────────────────────────┐
│ ERROR - No *.Frm Files In Current Directory! │
│ Create New One Abort │
└─────────────────────────────────────────────────┘
We chose 'Create New One' here, and recieve a prompt box to enter a filename
for this new file (without entering the extension):
┌──────────────────────────────────────────┐
│ Enter New Filename Without The Extension │
│ FORM │
└──────────────────────────────────────────┘
Presented is the main menu for manipulating *.Frm files:
┌─────────────────────────────────────────────────┐
│ ** REPORT FORM EDITOR ** │
│ │
│ REPORT File : FORM.FRM │
│ Primary Data File : FORM │
│ │
│ L = Edit Form Layout │
│ G = Edit Form Groups │
│ F = Edit Form Fields │
│ │
│ │
│ │
│ X = EXIT and Save File Changes │
│ │
│ Press ESCape to EXIT without saving Changes │
│ │
│ │
└─────────────────────────────────────────────────┘
Explanations of options are in sequential order; choosing L = Edit Form Layout,
displays this screen:
┌─────────────────────────────────────────────────────────────────────────────┐
│ FILE: FORM.FRM │
│ │
│ PAGE HEADER: │
│ │
│ │
│ │
│ │
│ │
│ │
│ FORMATTING: │
│ Page Width 80 │
│ Left Margin 8 │
│ Right Margin 0 │
│ Lines Per Page 58 │
│ Double Spaced? N │
│ │
│ │
│ PRINTER DIRECTIVES: │
│ Page Eject Before Print Y │
│ Page Eject After Print N │
│ Plain Page N │
└─────────────────────────────────────────────────────────────────────────────┘
You're simply defining the dimensions for the desired report output. Choosing
T = Select Form Type (Defaults). This is for grouping and sub-grouping
options:
┌─────────────────────────────────────────────────────────────────────────────┐
│ FILE: FORM.FRM │
│ │
│ GROUP SPECIFICATIONS: │
│ │
│ Group On Expression │
│ Group Heading │
│ │
│ │
│ │
│ Summary Report Only N │
│ PageEject After Group N │
│ │
│ │
│ │
│ SUB-GROUP SPECIFICATIONS: │
│ │
│ Sub-Group On Expression │
│ Sub-Group Heading │
│ │
│ │
│ │
└─────────────────────────────────────────────────────────────────────────────┘
This presents a means of defining fields that will be used in the report.
Pressing the F2 key pops up a list of all fields available in the open database
file; by highlighting a field and pressing the Enter key keyboard's it into the
current column. The bottom line of the screen gives you options to (A)dd (E)dit
(I)nsert (D)elete fields defined (or about to be defined) while setting up the
report specifications:
╔════════════════╡ REPORT FORM FIELDS (COLUMNS) File: FORM.FRM╞════════════════╗
╟─┬────────┬─────────────────────────────┬────────────────────┬──────────────┬─╢
║ │ Field │ Contents │ Header │Width Dec Tot │ ║
║ ├────────┼─────────────────────────────┼────────────────────┼──────────────┤ ║
║│ 1 │DESCRIPT │ │ 10 0 N │║
║┌─────────────────────────────────────────────────────────────────────────────┐
║│ │
║│ Press Key F2 for field list │
║│ │
║│ Field/Column Number 1 │
║│ │
║│ Contents DESCRIPT │
║│ │
║│ Header │
║│ │
║│ │
║│ │
║│ │
║│ Width 10 │
║│ Decimals 0 │
║│ Totals? N │
║└─────────────────────────────────────────────────────────────────────────────┤
║ Edit Add Insert Delete X=EXIT │
╙──────────────────────────────────────────────────────────────────────────────┘
Finish defining the report attributes; press 'X' to save the *.Frm information
and return back to the program main menu.
╒═════════════════╕
│EDIT - ASCII FILE│
╘═════════════════╛
This menu option allows you to edit Ascii formatted files using either the
built-in editor (a highly-modified MEMOEDIT), or your own editor if you have
defined one in the CED program. Since you should know how to use your own
editor, we will concentrate on using the built-in editor. While it may be no
Multi-Edit, it does come in quite handy for on-the-spot editing tasks. The
first prompt will ask which editor you desire to use:
┌─────────────────────────────┐
│Which Editor Will You Use? │
│ Built-In User-Defined │
└─────────────────────────────┘
The screen will clear, and present a prompt at the bottom for a filename; you
may manually type in the filename, or press the Enter key to pop-up a list of
filenames located in the current directory (executable files will automatically
be filtered out, as well as files larger than 64k):
╓──────────────────────────────────────────────────────────────────────────────╖
║ ║
║ ║
║ ║
║ ║
║ ║
║ ║
║ ║
║ ║
║ ║
║ ║
║ ║
║ ║
║ ║
║ ║
║ ║
║ ║
║ ║
║ ║
║ ║
║ ║
║ ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ ENTER FILE NAME TO EDIT: ║
╙──────────────────────────────────────────────────────────────────────────────╜
This is what the screen will look like if you press the Enter key to display
a pop-up of files; press the Enter key on a highlighted file to edit it:
╓──────────────────────────────────────────────────────────────────────────────╖
║ ║
║ ┌───────┤ *.* ├──────┐ ║
║ │ NEW FILE │ ║
║ │ SAVE.BAT │ ║
║ │ DC.PRG │ ║
║ │ DC.LNK │ ║
║ │ DC.ILF │ ║
║ │ READ.BAK │ ║
║ │ DC.BIF │ ║
║ │ SCREEN.BAK │ ║
║ │ SETUP.SYS │ ║
║ │ │ ║
║ │ │ ║
║ │ │ ║
║ │ │ ║
║ └────────────────────┘ ║
║ ║
║ ║
║ ┌────────────────────────────────────────────────────┐ ║
║ │ Move highlight bar to desired file and press Enter │ ║
║ └────────────────────────────────────────────────────┘ ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ ║
╙──────────────────────────────────────────────────────────────────────────────╜
Here is the screen after picking Save.Bat; it is an uncluttered workplace in
which editing occurs. Pressing Alt-H will pop-up a help screen of commands used
for the editor:
╓──────────────────────────────────────────────────────────────────Alt-H = Help╖
║attrib -h safe.prg ║
║copy dc.prg safe.prg ║
║attrib +h safe.prg ║
║ ║
║ ║
║ ║
║ ║
║ ║
║ ║
║ ║
║ ║
║ ║
║ ║
║ ║
║ ║
║ ║
║ ║
║ ║
║ ║
║ ║
║ ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ SAVE.BAT L 1 C 1 LM 1 RM 80 <Wrap><Ins>║
╙──────────────────────────────────────────────────────────────────────────────╜
Here is the help screen for the editor:
╓──────────────────────────────────────────────────────────────────Alt-H = Help╖
║ MNEMONIC KEYS ║
║ Alt-A (A)ppend file ║
║ Alt-G (G)oto line Alt-B place (B)lock marker ║
║ Alt-H show (H)elp screen Alt-I (I)nsert buffer ║
║ Alt-K (K)ut and Paste Alt-L page (L)ength ║
║ Alt-M change (M)argins Alt-N edit (N)ew file ║
║ Alt-P (P)rint file Alt-Q (Q)uit w/ save ║
║ Alt-R search and (R)eplace Alt-S (S)ave file & continue ║
║ Alt-T (T)oggle wordwrap on/off Alt-V (V)iew buffer contents ║
║ Alt-W (W)rite to file Alt-X e(X)it without saving ║
║ Alt-Y change director(Y) ║
║ ^E Go up one line ^X Go down one line ║
║ ^S Go left one char ^D Go right one char ║
║ ^A Go left one word ^F Go right one word ║
║ HOME Go to start of line END Go to end of line ║
║ ^HOME Top corner of window ^END Bottom corner of window ║
║ ^PgUp Go to start of file ^PgDn Go to end of file ║
║ Esc Abort edit, no save ^Y Delete current line ║
║ ║
║ ║
║ Press any key to resume editing ║
╟──────────────────────────────────────────────────────────────────────────────╢
║ SAVE.BAT L 1 C 1 LM 1 RM 80 <Wrap><Ins>║
╙──────────────────────────────────────────────────────────────────────────────╜
╒════════════════════╕
│EDIT - DATABASE FILE│
╘════════════════════╛
This menu option allows you to manipulate records in a standard dBase or
Clipper *.Dbf/*.Dbt file. Provided you have already opened a database file
for use (you will not be allowed to edit a file if it isn't already open),
the screen resembles the one displayed below:
╔═ Menu ══════╗┌── V·I·E·W P·O·R·T for file: FORM ──────────────────────────┐
║ ║│ │
║ Next Record ║│ DESCRIPT │
║ Prev Record ║│ MEMO_ORIG (memo) │
║ Search File ║│ │
║ Key Search ║│ │
║ TableView ║│ │
║ Hardcopy ║│ │
║ Viewmemo ║│ │
║ Build Query ║│ │
║ Field Order ║│ │
║ Edit Record ║│ │
║ Add Record ║│ │
║ Memo Edit ║│ │
║ Delete ║│ │
║ Quit ║│ │
║ ║│ │
║ ║│ │
║──────────── ║│ │
║ Rec# ║│ │
║ 1 ║│ │
║ of # ║│ │
║ 0 ║│ │
║ ║│ │
╚═════════════╝└───────────────────────────────────────────────────────────────┘
There are quite a bit of options to play with here! Options are explained in
sequential order:
* Next Record: Move to next record on file.
* Prev Record: Move to previous record on file.
* Search File: Search for record(s) in the database file using a variety of
methods:
┌[Search for:]──────────────┐
│ Field Contents Match │
│ Query match │
│ End of file │
│ Beginning of File │
│ Deleted Records │
│ Memo contents │
│ Never Mind │
└───────────────────────────┘
* Field contents match: Display popup of fields in the current database:
┌[ Select Search Field ] ───┐
│DESCRIPT │
│MEMO_ORIG │
└─────────────────────────────┘
You will be prompted on how to search the database for the field
selected:
┌[ Locate record where DESCRIPT: ] ─────┐
│== is exactly equal to │
│> is greater than │
│< is less than │
│>= is greater than or equal to │
│<= is less than or equal to │
│# is not equal to │
│$ contains │
│S starts with │
│E ends with │
│? WILDCARD │
└───────────────────────────────────────┘
Highlight the desired method (we've chosen "is exactly equal to"
for this example), and press the Enter key. Type in the text string
you want the string compared to (in this example we are searching for
"sample":
┌────────────────────────────────────────────────────────────────────────┐
│ Locate for DESCRIPT is exactly equal to │
│ sample__________________________________________________ │
└────────────────────────────────────────────────────────────────────────┘
The database file will be searched from beginning to end; if the
record is found it will be displayed; else an error message box
will be displayed:
┌───────────────────┐
│ No match found... │
│ │
│ Press a key... │
└───────────────────┘
* Query Match: Allows you to build a "Query" to search the database for
highly specific information; an example of a query would be: Your boss
wants to know names of clients that purchased widget X in the months
of Jan-Mar, and paid retail for the part. The query would be defined
as such: Widget = 'X' .and. Month = 'Jan' .or. Month = 'Feb' .or.
Month = 'Apr' .and. Price = 'Retail'. It would take a while to manually
type all that in; you use scrollable lists of field names and operators
to choose from. The first prompt is a simple one:
┌───────────────────────────────────┐
│No query set .....BUILD ONE NOW? │
│ YES NO │
└───────────────────────────────────┘
Choose YES, and proceed forward to create the query:
┌[Online Query Builder]────────────┐
│ │
│ Build a new Query │
│ Add to current query │
│ Count matching records │
│ Zap (remove) existing Query │
│ Save current Query to disk │
│ Restore Query from disk │
│ Delete stored queries │
│ What is current Query │
│ Edit current Query │
│ View records matching Query │
│ Quit │
│ │
│ No Query Active │
└──────────────────────────────────┘
WOW - lot's of options to choose from! Looking down the list, you can
reason that most deal with existing queries already built.
* Build a new Query: Defines a new query. Displays a popup of fields
from the current opened database:
┌[Database Field List]──┐
│ < Deleted? > │
│ DESCRIPT │
│ MEMO_ORIG │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│───────────────────────│
│ ENTER to select │
└───────────────────────┘
We chose the field named 'Descript' by highlighting that field,
then pressing the Enter key to select it. Another popup box will
appears to define what action is taken:
┌────────────────────────────┐
│ = (EXACTLY EQUAL TO) │
│ <> (NOT EQUAL TO) │
│ < (LESS THAN) │
│ > (GREATER THAN) │
│ <= (LESS THAN OR EQUAL TO │
│ >= (GREATER OR EQUAL TO) │
│ $ (CONTAINS) │
│ !$ (DOES NOT CONTAIN) │
│ ?* (WILDCARD MATCH) │
│ S (IS SIMILIAR TO) │
│ B (BEGINS WITH) │
│ E (ENDS WITH) │
│ │
└────────────────────────────┘
Highlight your choice and press the Enter key to proceed forward;
we chose '= (Exactly Equal To)' for this example. Another popup
box appears onscreen asking what to search for in this field:
┌Compare to ───────────────────────────────────────┐
│ Type in a value to compare │
│ Select a single value from the database (scroll) │
│ Compare to another field in the same record │
└──────────────────────────────────────────────────┘
Highlight your choice and press the Enter key to proceed forward.
Here we have entered the word Jones to search for manually; Choosing
the second option would popup a scrolling list of previously entered
data in the field Descript that could be chosen from, or the third
choice would compare the Descript field with another field in the
open database. Choosing the first option and manually typed in the
word 'Jones':
┌────────────────────────────────────────────────────────────┐
│VALUE TO COMPARE (TYPE CHARACTER) │
│Jones_______________________________________________ │
│ │
│ │
└────────────────────────────────────────────────────────────┘
Choosing the Enter key, another popup box asks where you wish to
go from here; choose DONE if you have finished defining search
criteria; choosing one of the other choices further narrows down
the search pattern. We'll choose DONE in this example (if we
hadn't, we would simply repeat the process of picking another
field, entering a value to compare to and end up here again). This
process can be as simple or complex as you deem necessary; there is
no limitation on how complicated the query can be. Keep in mind
that if you are going to define a query a couple of layers down
using the .AND. operator, remember that if the first instance is
not found in the database, it will not attempt to search for the
second! An example of this would be: a sample query where Descript
= 'Jones' .and. Descript = 'Moore'. The database would be searched
from beginning to end for any occurance of Jones; if none were found,
then the query would stop because in the query we have defined both
as needing to return a value of True. When no occurances were found,
the query returned a value of False, therefore aborting the query
and stopping the database from searching for Moore. If we had defined
the query like this, it wouldn't matter if zero occurances of Jones
were found, because the value from the first search would become
inconsequential: Descript = 'Jones' .or. Descript = 'Moore'.
┌────────────┐
│ DONE │
│ AND │
│ OR │
│ AND NOT │
│ OR NOT │
└────────────┘
A temporary index is created to speed up the search process; a
progress bar is displayed onscreen to inform you how long it will
take to complete the search, and also show you how many matches were
found:
┌─Counting matches─────────────────────────────────────────────┐
│ │
│ 0% 10% 20% 30% 40% 50% 60% 70% 80% 90% 100% │
│ ├────┼────┼────┼────┼────┼────┼────┼────┼────┼─────┤ │
│ │
│ ▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒▒ │
│ │
│ 4 matches of 220 scanned │
└─Done - press a key───────────────────────────────────────────┘
You will now be returned to the main menu to manipulate your
query, or view records matching the query condition.
* Add to current query: If you have defined a query beforehand, you
can add more criteria to it to further narrow the information
retrieved from the query.
* Count matching records: Counts the number of matches found.
* Zap (remove) existing query: Clears the active query.
* Save current Query to disk: Save a query that has been defined to
the hard drive for later use. A popup message box will appear
onscreen prompting you for a descriptive name for the active
query. You are not restricted to only eight characters like a
Ms-Dos filename, so allow yourself the luxury of giving a name you
or someone else may understand!
┌────────────────────────────────────────────────────────────────────────┐
│ Enter a description for this query ___________________________________ │
└────────────────────────────────────────────────────────────────────────┘
The name of the query and the query definition is stored into a
database file that is used only by the query function; if that
file is erased you will lose all existing queries!
* Restore Query from disk: Retrieve a query that has been previously
saved; a popup message box appears onscreen with a scrolling
list of previously saved queries. To enable that query you
only have to highlight it and press the Enter key. If no queries
exist, you will recieve this error message onscreen:
┌───────────────────────────────────────┐
│ No stored queries match this database │
│ │
│ Press a key... │
└───────────────────────────────────────┘
* Delete stored queries: Delete an existing query; A scrolling list
of saved queries displayed; highlight the query you want to remove
and press the Enter key. WARNING: If you decide to remove a query,
it will be removed forever!!
* What is current Query: Let's you see what the active query is. A
popup box will display onscreen to inform you what the current
query is:
┌─────────────────┐
│ Current QUERY │
│ (DESCRIPT=Jones)│
│ │
│ │
│ │
│ │
│ Press a key... │
└─────────────────┘
* Edit current Query: If you are at home with dBase syntax, or
know operators are, you can directly edit an active query from the
command line without having to use all the popup field lists
and operator pickboxes. A full screen editing window will appear:
┌─[Evaluation of Query Expressions]──────────────────────────────────────────┐
│ │
│ A query expression may contain several different operators. │
│ Each operation is performed by the computer in a particular order, │
│ with precedence as follows: │
│ │
│ 1. Operations within parentheses () │
│ 2. Concatenation of character expressions + - │
│ 3. Mathematical operations (in this order) ^*/%-+ │
│ 4. Comparison operations = < > != $ == │
│ 5. Logical operations (in this order) .NOT. .AND. .OR. │
│ │
│ To ensure an operation is done first, enclose it in parentheses. │
│ │
│ │
│[Edit Query]────────────────────────────────────────────────────────────────│
│ Query: │
│ (DESCRIPT="Jones") │
└────────────────────────────────────────────────────────────────────────────┘
Instructions are on screen for available operators; the
current query is displayed on the bottom line. Ensure that your
finished query is enclosed within parenthesis. Press the Enter
key to save the query and return back to the Query menu.
* View records matching Query: If a query is active and more than
one record has met the query criteria, you can view the
record(s) in the database. This is particularly useful when you
want to ensure that the query is correct before printing a
report. The bottom of the window shows navigation keys:
┌──────RECORD 1 ]───────────────────────────────────────────────┐
│ < Deleted? > F │
│ DESCRIPT scott │
│ MEMO_ORIG (MEMO FIELD) │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
└─[ ( N )Next ( P )Prior ( Q )Quit (V)iew Memo ()More]────────┘
* End of file: Jump to the last record of the database file.
* Beginning of File: Jump to the first record of the database file.
* Deleted Records: View only deleted records.
* Memo contents: Search memo fields for a text string; only works if
the open database file has a memo field.
* Never Mind: Aborts the search process and return to the main menu.
* KEY SEARCH: Search the current open database file using an index file
(which must be open) to search for a value. A popup box will appear
onscreen for you to enter a search string. The database will be searched
for the first occurance; if found the record pointer is moved to that
record and the contents are displayed onscreen; if not a popup message
appears:
┌─────────────┐ ┌─────────────────┐
│ Seek value: │ ──────────── │ Not Found │
│ scott │ │ │
└─────────────┘ │ Press a key... │
└─────────────────┘
* TABLEVIEW: Browse all records in the current open database in a tabular
manner. The arrow keys and PgUp/PgDn keys are used for navigating through
the file; the record highlighted becomes the 'active' record. Pressing
the Enter key returns you to main menu once again, and the record
highlighted is displayed on the right 3/4 of the screen.
* HARDCOPY: Print the current record contents, and optionally print the
memo field contents if desired if the file has a memo field defined. A
popup window appears onscreen asking which of the two you wish to print;
highlight your choice and press the Enter key (make sure the printer is
online):
┌Hardcopy of:─────────┐
│ Current record │
│ Attached Memo field │
└─────────────────────┘
* VIEWMEMO: View a memo field onscreen in a popup window that will
temporarily overwrite the location where the field information normally
appears (if a memo field is present):
╔═ Menu ══════╗┌──[VIEWING MEMO FIELD: MEMO_ORIG Press ESCAPE when done]───────┐
║ ║│ Sample memo field entry for the CED documentation. │
║ Next Record ║│ │
║ Prev Record ║│ │
║ Search File ║│ │
║ Key Search ║│ │
║ TableView ║│ │
║ Hardcopy ║│ │
║ Viewmemo ║│ │
║ Build Query ║│ │
║ Field Order ║│ │
║ Edit Record ║│ │
║ Add Record ║│ │
║ Memo Edit ║│ │
║ Delete ║│ │
║ Quit ║│ │
║ ║│ │
║ ║│ │
║──────────── ║│ │
║ Rec# ║│ │
║ 1 ║│ │
║ of # ║│ │
║ 1 ║│ │
║ ║│ │
╚═════════════╝└───────────────────────────────────────────────────────────────┘
* BUILD QUERY: See the notes above for "Search File" to understand what
this function does.
* FIELD ORDER: Change the sequence fields are displayed onscreen. This is
especially useful for data entry if you only have to enter a few fields
worth of information, and the remainder are skipped. Moving the often
used fields to the top in an order that matches the information source
can cut down on the amount of typing needed to get the job finished. A
popup window will appear onscreen; highlight the field and press Enter.
You will be asked what field number you wish to make it. After a number
has been entered, you will notice that the fields in the box will re-
order themselves to accomodate the change(s). You may continue this
process until satisfied. Press Escape and the fields will be updated in
this new sequence and allow you to continue adding/editing/etc.
┌──────────────────┬────────────────────────────────────┐
│ │ Field Viewing Order: │
│ DESCRIPT │ │
│ MEMO_ORIG │ The fields for this datafile may │
│ │ be viewed in any order. │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ Press ENTER to select a field to │
│ │ move. You will be prompted for the │
│ │ position to move it to. │
│ │ │
│ │ │
│ │ │
│ │ │
├──────────────────┤ │
│ │ Press ESCAPE when done. │
│Total Fields:2 │ │
└──────────────────┴────────────────────────────────────┘
* EDIT RECORD: Edit the current record displayed on the right 3/4 of the
screen. A highlight bar will appear on the first field, and the cursor
will come on for the edit mode. You may make any editing changes deemed
necessary at this point. Reaching the last field will display a popup
box onscreen to optionally save your changes. If you only have a few
changes to make, you may press the F10 key to save the changes without
scrolling through the rest of the fields onscreen:
╔═ Menu ══════╗┌── V·I·E·W P·O·R·T for file: FORM ──────────────────────────┐
║ ║│ │
║ Next Record ║│ DESCRIPT scott │
║ Prev Record ║│ MEMO_ORIG (memo) │
║ Search File ║│ │
║ Key Search ║│ │
║ TableView ║│ │
║ Hardcopy ║│ │
║ Viewmemo ║│ │
║ Build Query ║│ │
║ Field Order ║│ │
║ Edit Record ║│ │
║ Add Record ║│ │
║ Memo Edit ║│ │
║ Delete ║│ │
║ Quit ║│ │
║ ║│ │
║ ║│ │
║──────────── ║│ │
║ Rec# ║│ │
║ 1 ║│ │
║ of # ║│ │
║ 1 ║│ │
║ ║│ │
╚═════════════╝└──╢ F10 to save ESC to cancel ╟───────┘
* ADD RECORD: Add a record to the current database file. What makes this
option convienient is that you can copy the last records contents into
the new record; this becomes a timesaver if data inputted doesn't change
very much. Once you have 'carried' this information over, you can edit
for any needed changes, then save it to the database file. A popup box
will appear asking if you choose to do this:
┌────────────────────────────────────────────┐
│Carry contents of current record forward? │
│ No Yes │
└────────────────────────────────────────────┘
A highlight bar appears on the first field, and the cursor will
appear. Pressing the F10 key saves the newly entered information; you
can abort the add routine by pressing the Escape key.
* MEMO EDIT: Edit a memo fields contents if the currently open database
file has a memo field defined. A popup window temporarily appears over
the area normally occupied with field information. You can optionally
import an Ascii file (as long as the size is under 64k) into the field
by using the F5 key; when you have finished with the field you can
export it's contents to an Ascii type file by pressing the F6 key.
F10 will save the information, and Escape will abort the process:
╔═ Menu ══════╗┌[MEMO PAD]────Line: 1──Col: 0────────────────────────────┐
║ ║│ │
║ Next Record ║│ │
║ Prev Record ║│ │
║ Search File ║│ │
║ Key Search ║│ │
║ TableView ║│ │
║ Hardcopy ║│ │
║ Viewmemo ║│ │
║ Build Query ║│ │
║ Field Order ║│ │
║ Edit Record ║│ │
║ Add Record ║│ │
║ Memo Edit ║│ │
║ Delete ║│ │
║ Quit ║│ │
║ ║│ │
║ ║│ │
║──────────── ║│ │
║ Rec# ║│ │
║ 2 ║│ │
║ of # ║│ │
║ 2 ║│ │
║ ║│ │
╚═════════════╝└[ F10:SAVE | ESC:EXIT | F5:Import |F6:Export]──────────────────┘
* DELETE: This function acts as a toggle to delete/undelete the current
record. This works exactly as it does in dBase; the record's first
position is marked with an asterisk when marked as deleted. The record
still exists until you use the Pack command. The undelete will remove
the asterisk. You will notice that if a record is marked as 'Deleted'
that the bottom left side will say 'Deleted', and the menu prompt will
change from 'Delete' to 'Undelete'.
* QUIT: Return back to the main menu.
╒══════════════════╕
│RUN - COMPILE ONLY│
╘══════════════════╛
Execute the Clipper compiler on source code files ending with *.Prg. A popup
box is displayed onscreen for files with a .Prg file extension in the current
directory; if none are found an error message is displayed:
┌[Select: ]─────────┐
│ DC.PRG │
│ SAMPLE.PRG │
└───────────────────┘
Press the Enter key to compile the file; CED swaps itself out of memory (all
but 12k) and runs the Clipper compiler. If you have defined switches to use
with Clipper they will be passed to Clipper.
╒═══════════════╕
│RUN - LINK ONLY│
╘═══════════════╛
Execute the linker defined in the CED setup to convert the *.Obj file created
by Clipper into a stand-alone *.Exe file. A popup window will appear if *.Obj
files are located in the current directory; if none exist an error message box
will appear onscreen:
┌[Select: ]─────────┐
│ DC.OBJ │
│ SAMPLE.OBJ │
└───────────────────┘
Highlight your file and press the Enter key to execute your linker; if you have
defined other *.Obj files to be linked in by default (such as Errorsys.Obj) CED
will link it in; any libraries you have defined will also be linked. If
successful, you will be told so by a message box; if not, you will also be
informed by a message box (CED checks if the name of the object file with an
*.Exe file extension is in the current dirctory after it has finished linking
to determine success or not).
╒══════════════════╕
│RUN - COMPILE/LINK│
╘══════════════════╛
This menu option combines the two separate options above into a one-step
process. A scrolling picklist appears onscreen to choose a *.Prg file to
compile (if no files exist an error box will appear onscreen). Pressing
the Enter key starts the process of compile/link automatically, using all
default settings you have configured CED with. A message box will be displayed
to inform you if the compile/link was successful.
╒═════════════════════════╕
│RUN - USE A MAKE FACILITY│
╘═════════════════════════╛
Execute your Make utility used for maintaining large applications. You may use
Rmake that is supplied with Clipper, or any of the other Make utilities
available. You must configure CED with the name of your utility, or you will
recieve this error message onscreen:
┌───────────────────────────────────────────────────┐
│ ERROR: You Haven't Configured A Make Utility Yet! │
│ │
│ Press a key... │
└───────────────────────────────────────────────────┘
CED swaps itself out of memory (all but 12k) to execute the Make utility, then
returns itself to the main menu when it has ran it's course. Consult your make
utility for further guidance on usage.
╒════════════════╕
│RUN - *.EXE FILE│
╘════════════════╛
Execute any file ending with a *.Exe file extension located in the current
directory. CED swaps all but 12k of itself to execute the file, then returns
back to itself upon that program's termination. You will be given a scrolling
box to choose a file from; highlight your choice and press the Enter key to
run it:
┌[Select: ]─────────┐
│ DC.EXE │
│ │
└───────────────────┘
╒════════════════════════════════╕
│PRINT - CREATE/PRINT FORMLETTERS│
╘════════════════════════════════╛
Integrate database file contents into formletters painlessly and easily. It is
a self-contained module; the only prerequisite is that a database file needs
opened before calling the function (you will be given an error message if not).
The main menu for this option appears:
┌──────────────────────────────────────────────────────────────────────────────┐
│ ┌[Form Letters Utility]────────┐ [No Query ]│
│ │ Select form │ │
│ │ Create new Form │ │
│ │ Delete Forms │ │
│ │ Edit current form │ │
│ │ Print form letters │ │
│ │ Width of Form : 79 │ │
│ │ Output to :PRINTER │ │
│ │ Assign Printer Port │ │
│ │ Filter :ALL RECORDS │ │
│ │ │ │
│ │ Quit │ │
│ └──────────────────────────────┘ │
│ │
│ │
│ │
│ │
│ │
│ │
│┌────────────────────────────────────────────────────────────────────────────┐│
││ CURRENT FORM -> ││
││ DATAFILE ->SAMPLE ││
│└────────────────────────────────────────────────────────────────────────────┘│
└──────────────────────────────────────────────────────────────────────────────┘
Options are explained in sequential order:
* Select form: Retrieve a formletter previously created and saved.If no forms
are on file (they are stored in a database file), an error message is
displayed:
┌──────────────────┐
│ No forms on file │
│ │
│ Press a key... │
└──────────────────┘
Otherwise, a scrolling list of available formletters will be displayed
onscreen; highlight a choice and press the Enter key to select it.
* Create new Form: A popup box will appear asking for a name for the new
form; you are not limited to the normal 8 character filename as you are in
Ms-Dos, so feel free to provide a meaningful description:
┌────────────────────────────────────────────────────┐
│ Enter a description for the form letter │
│ _________________________________________________ │
└────────────────────────────────────────────────────┘
You will now be prompted if you wish to use an existing formletter as a
template; if you choose yes, you will be given a popup list of formletters
to choose from. Pressing the Enter key will import the file into the
editing workspace:
┌───────────────────────────────────────┐
│Use another form letter as a shell ? │
│ No Yes │
└───────────────────────────────────────┘
If you choose No, another popup will appear asking if you want to use an
existing Ascii formatted text file as a template; if you choose yes it will
be imported into the editing workspace:
┌──────────────────────────────────┐
│Import a text file as a shell ? │
│ No Yes │
└──────────────────────────────────┘
You will now be presented the Formletter editing workarea onscreen for
editing the letter:
┌───── F1:HELP F2:Field picklist F10:SAVE ESC:CANCEL ───────────┐
│Dear «Trim(Proper(NAME))» │
│ │
│ This letter is to inform you that your bill is overdue; please submit the │
│sum of «Trim(Proper(DUE))» to our office to prevent other action to collect │
│monies due to occur. │
│ │
│ Sincerely, │
│ The IRS │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
└───── Line: 8── Col: 55────────────────────────────────────────────────┘
The top line shows basic command help; I have already pressed the F2 key to
'popup' a list of fields that can be imported into the letter. I've already
typed in a basic letter to show what how the screen would appear as; when you
select a field you will be given the opportunity to change it's appearance
(uppercase/lowercase/trim blank spaces/uppercase the first letter only). The
«» characters on the screen and the Trim/Proper statements will NOT
be printed; they appear onscreen to show what is happening with that field.
It may take so playing with to get the final output aligned properly, since
what you see onscreen isn't necessarily what the final product will look
like. Pressing the F10 key or the Escape key will present a popup box asking
if you wish to save the file or not:
┌────────────────────────────┐
│Save changes and exit? │
│ Save and Exit Don't Exit │
└────────────────────────────┘
* Delete Forms: If any forms have been created and saved, this will allow for
you to purge old formletters from the file that are no longer needed.
Highlight the file and press the Enter key to delete the formletter.
┌[Tag Records to Delete]──────────────────────────────────────────────┐
│ SPACE = tag C = clear S = search ESC = done │
│─────────────────────────────────────────────────────────────────────│
│Tag DESCRIPT │
│─────────────────────────────────────────────────────────────────────│
│ √ │ SAMPLE FORMLETTER │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│─────────────────────────────────────────────────────────────────────│
│ 0 records tagged │
└─────────────────────────────────────────────────────────────────────┘
* Edit current form: Edit an existing form.
* Print form letters: Print a formletter that has been saved. If the printer
is not ready, you will receive an error box informing you of the problem:
┌Printer (LPT1) apparently not ready─┐
│ Try again │
│ Abort │
│ Ignore │
│ Change Printer Port │
└────────────────────────────────────┘
* Width of Form : Change the right margin of the page the formletter will be
printed on. A popup box will appear to allow the new entry:
┌──────────────────┐
│ Form width 79 │
└──────────────────┘
* Output to : Gives you the ability to save the output to a file instead of
using the printer. The default is to the printer; if you choose filename
you may give a unique filename+extension for the output to go to.
* Assign Printer Port: Change which printer port the output needs
directed to. A popup box will appear onscreen; highlight your choice and
press the Enter key to begin that choice:
┌─[Printer Port]┐
│ LPT1 │
│ LPT2 │
│ LPT3 │
└───────────────┘
* Filter: Define a subset of data that needs printed; default is all records
in the open database; a popup box will appear onscreen if you wish to
change this:
┌Filter type────────┐
│ None - All records│
│ Query Matches │
│ Tagged Records │
│ Single Record │
└───────────────────┘
The Query Matches option lets you define a query to narrow down records
requiring printing (for help with setting up queries reread the section
about this in the Edit Database section); Tagged Records allows you
to individually tag single/multiple records by scrolling through the
database. A popup window will appear onscreen to tag records:
┌─────────────────────────────────────────────────────────────────────┐
│ SPACE = tag C = clear S = search ESC = done │
│─────────────────────────────────────────────────────────────────────│
│Tag ONE TWO │
│─────────────────────────────────────────────────────────────────────│
│ √ │ scott │scott │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│─────────────────────────────────────────────────────────────────────│
│ 1 record tagged │
└─────────────────────────────────────────────────────────────────────┘
The Single record option allows for printing a formletter from a single
record in the database (where the record pointer is positioned in the
database file). You may either browse through the database file and tag the
record, or use the current record:
┌──────────────────────┐
│Select record? │
│ Browse Use current │
└──────────────────────┘
I chose Browse to display this screen:
┌────[Browse Window]───────────────────────────────────────────────────────────┐
│ [Record # 1] (F1 for Navigation keys) │
└──────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────────────────────┐
│ ONE TWO │
│──────────────────────────────────────────────────────────────────────────────│
│ scott │(memo) │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
└──────────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────────────────────┐
│ (Q)uit (G)oto (S)earch (L)ock (V)ertical View (F)ields │
│ │
└──────────────────────────────────────────────────────────────────────────────┘
┌───────────────────┐
│CREATE/PRINT LABELS│
└───────────────────┘
This module allows you to extract information for a database file and print
varying sizes of labels on either dot-matrix or laser printer style labels.
It is entirely self-contained; just ensure that the database and an optional
index file are open before beginning. You may import dBase style *.Lbl files if
you desire; any labels that you create are stored into a database file that
contains all other necessary information (queries, label sizes, etc.) The main
menu appears as such; menu options are explained in sequential order:
┌──────────────────────────────────────────────────────────────────────────────┐
│┌───[Mailing Labels]─────────────────────────────┐ │
││ Load Label from disk │ │
││ Save Label to disk │ │
││ Erase Label definition │ │
││ Import from .LBL format │ │
││ Dimensions of Label │ │
││ Contents of Label │ │
││ Output Test Pattern │ │
││ Print Mailing Labels │ │
││ Reset Printer Port. Now:LPT1 │ │
││ Tag Records to Print │ │
││ Build or Modify Query │ │
││ About Using Laser Printers * │ │
││ Use Single Sheet Options │ │
││ Quit │ │
│└────────────────────────────────────────────────┘ │
│ │
│ │
│ │
│┌────────────────────────────────────────────────────────────────────────────┐│
││Label in use : ││
││Dbf file in use : SAMPLE ││
│└────────────────────────────────────────────────────────────────────────────┘│
└──────────────────────────────────────────────────────────────────────────────┘
* LOAD LABEL FROM DISK: If you have previously created any labels, they can
be retrieved from the labels.dbf by scrolling down the list of saved
labels, highlighting your choice and pressing the Enter key to activate it.
If no labels are on file, you will get the following error message:
┌─────────────────────────────────────────┐
│ No saved labels found in this directory │
│ │
│ Press a key... │
└─────────────────────────────────────────┘
* SAVE LABEL TO DISK: After creating a new label, or making changes to an
existing label, you can save the label and all of it's attributes to file
for later use. If you have not created a file yet, you will get the
following error message:
┌──────────────────────┐
│ No contents defined! │
│ │
│ Press a key... │
└──────────────────────┘
* ERASE LABEL DEFINITION: If a label is on file, you may purge unneeded
labels by scrolling down your list of labels in the labels.dbf file, and
delete one or more labels. NOTE: Once you have deleted a label, you cannot
undelete it! If no labels are on file, you wil get this error message:
┌─────────────────────────────────────────┐
│ No saved labels found in this directory │
│ │
│ Press a key... │
└─────────────────────────────────────────┘
Otherwise you will be able to tag and delete stored labels from a
scrollable picklist:
┌─────────────────────────────────────────────────┐
│Tag Label descriptions to Delete │
│─────────────────────────────────────────────────│
│ √ │SAMPLE LABEL │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│ │ │
│─────────────────────────────────────────────────│
│ space=TAG C=CLEAR F10=DONE │
└─────────────────────────────────────────────────┘
* IMPORT FROM .LBL FORMAT: Allows you to import an existing .LBL label file
created by dBase into this new format and edit the contents. If no .Lbl
files are in the current directory, you will get this notice:
┌────────────────────────────────────────────────┐
│ No label files (.LBL) found in this directory. │
│ │
│ Press a key... │
└────────────────────────────────────────────────┘
Otherwise, you will be able to select an existing file from a scrolling
picklist box:
┌Label Files───┐
│SAMPLE.LBL │
└──────────────┘
* DIMENSIONS OF LABEL: Determine what size label you will be printing onto;
you may use of the pre-defined label sizes, or manually enter dimensions
required for output. The below illustration shows the manual editing
mode:
┌──────────────────────────────────────────────────────────┐
│ │
│ ---Label Dimensions--- │
│ Width 35 │
│ Height 5 │
│ Labels across 1 │
│ Lines between labels 1 │
│ Spaces between labels 0 │
│ Left Margin (indent) 0 │
│ Pre-setup code │
│ (use ! for Escape) │
│ Post-setup code │
│ (use ! for Escape) │
│ │
│ ---Individual Sheet Options--- │
│ Use individual sheets? N │
│ # Labels per sheet 0 │
│ Top margin (lines) 0 │
│ Pause between sheets? N │
│ Eject each sheet? N │
│──────────────────────────────────────────────────────────│
│ Edit Load Predefined Dimensions Quit │
└──────────────────────────────────────────────────────────┘
Choosing the 'Load Predefined Dimension' choice at the bottom will
display choices that may be activated by highlighting your choice and
pressing the Enter key:
┌───────────────────────────────────────────────────────────────────────┐
│ Label Description - ENTER to Select │
│───────────────────────────────────────────────────────────────────────│
│ User Defined │
│ 3(½) x (15/16) - 1 Across │
│ 3(½) x (15/16) - 2 Across │
│ 3(½) x (15/16) - 3 Across │
│ 3(2/10) x (11/12) - 3 Across Cheshire │
│ 4 x 1(7/16) - 1 Across │
│ 4 x 2(¼) - (Rolodex) │
│ 3 x 5 - (Rolodex) │
│ Avery 5160,5260,5660 (Laserjet) │
│ Avery 5161,5261 (Laserjet) │
│ Avery 5162,5262,5662 (Laserjet) │
│ Avery 5163,5663 (Laserjet) │
│ Avery 5164 (Laserjet) │
│ Avery 5266 (Laserjet) │
│ Avery 5196,5296 (Laserjet 3½ disk) │
│ Avery 5197,5297 (Laserjet 5¼ disk) │
│ │
│ │
│ │
└───────────────────────────────────────────────────────────────────────┘
* CONTENTS OF LABEL: The areas where you define what field and/or text will
be displayed on each line of the outputted label. A new workarea will
appear onscreen with a highlight bar on the bottom. Choosing 'Field' will
display a picklist of fields from the currently opened database (as is
shown below); 'Text' will allow you to enter a string of text (a popup will
appear for you to type in the text). You may also simply have blank spaces
by pressing the 'Blank' choice at the bottom. The preview choice allows you
to examine how the output will appear without printing an actual label.
┌─────────────────────────────────────┌Select Field────────────────────────┐
│ │ONE │
│ │TWO │
│ └────────────────────────────────────┤
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
├──────────────────────────────────────────────────────────────────────────┤
│Quit Clear Field Text Blank Preview │
└──────────────────────────────────────────────────────────────────────────┘
┌──────────────────────────────────────────────────────────────┐
│ Add text (do not use quotes) │
│ │
└──────────────────────────────────────────────────────────────┘
┌──────────────────┐
│ Number of blanks │
│ 1 │
└──────────────────┘
* OUTPUT TEST PATTERN: Assists in properly aligning the label for
final output by printing a series of 'XXXXXX' on the label on all lines
filled with data. If the printer is not ready you will be informed:
┌Printer (LPT1) apparently not ready─┐
│ Try again │
│ Abort │
│ Ignore │
│ Change Printer Port │
└────────────────────────────────────┘
* PRINT MAILING LABELS: If you have opened an existing label, or just
finished defining a label, you may print labels. A popup window will appear
asking you for information:
┌────────────────────────────────────────────┐
│ Maximum labels to Print (ENTER for rest) : │
│ 1 │
│ Number of EACH to print : │
│ 1 │
│ Compress all but Single spaces: │
│ Y │
│ Remove blank lines: │
│ Y │
└────────────────────────────────────────────┘
* RESET PRINTER PORT: If the desired printer you wish to use is not located
on LPT1, you may redirect the output by highlighting your choice and
pressing the Enter key:
┌─[Printer Port]┐
│ LPT1 │
│ LPT2 │
│ LPT3 │
└───────────────┘
* Tag Records to Print: Individually select one or more records in the open
database file by scrolling the file and pressing the Space Bar to select
/unselect record(s):
┌─────────────────────────────────────────────────────────────────────┐
│ SPACE = tag C = clear S = search ESC = done │
│─────────────────────────────────────────────────────────────────────│
│Tag ONE TWO │
│─────────────────────────────────────────────────────────────────────│
│ √ │ scott │scott │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│─────────────────────────────────────────────────────────────────────│
│ 1 records tagged │
└─────────────────────────────────────────────────────────────────────┘
* BUILD OR MODIFY QUERY: Use only a subset of information for the output;
reference the Edit Database section of this manual to examine how to set up
a query (they use identical modules for defining queries).
* About Using Laser Printers: Due to the nature of using laser printers for
printing computerized labels, this option displays some helpful
information:
┌─────────────────────────────────────────────────────────┐
│ If you are using an HP Laser Printer or equivalent │
│ you should use Laser Labels (from Avery and others) │
│ and NOT regular Copy Machine labels. Laser labels have │
│ a ½ inch space at the top and bottom of the sheet to │
│ allow for the HP margins. If you are using regular Copy │
│ Machine labels (not recommended), try the Single Sheet │
│ options. │
│ │
│ Press a key... │
└─────────────────────────────────────────────────────────┘
* Use Single Sheet Options: Print single sheet-style labels. You will be
prompted for required information:
┌─────────────────────────────┐
│ Number of labels per sheet? │
│ 0 │
│ Top Margin (lines) │
│ 0 │
│ Pause between Sheets │
│ N │
│ Eject each sheet │
│ N │
└─────────────────────────────┘
╒════════════════════════════╕
│PRINT - CREATE/PRINT REPORTS│
╘════════════════════════════╛
This option is a self-contained report writer that allows you to create,save,
edit and print customized tabular reports; it's only limitation is it cannot
support memo fields. Subsets of data can be extracted and printed; laser
printing is supported, and reports can be directed to a disk file. If no
database file is open, you will recieve an error message and will be returned
back to CED's main menu:
┌──────────────────────────────────────────────────────────────────────────────┐
│ ┌──[Report Writer]─────┐ │
│ │ │ │
│ │ Load REPORT │ │
│ │ Create REPORT │ │
│ │ Save REPORT │ │
│ │ Edit Report │ │
│ │ Delete Reports │ │
│ │ Headers/Footers │ │
│ │ Filtering │ │
│ │ Grouping Order │ │
│ │ Other Options │ │
│ │ │ │
│ │ Print Report │ │
│ │ │ │
│ │ Report Status │ │
│ │ Quit │ │
│ └──────────────────────┘ │
│ │
│ │
│┌────────────────────────────────────────────────────────────────────────────┐│
││ ││
││REPORT :None USING SAMPLE.DBF ││
│└────────────────────────────────────────────────────────────────────────────┘│
└──────────────────────────────────────────────────────────────────────────────┘
Options are explained in sequential order:
* LOAD REPORT: Retrieve a previously defined report. If no reports are on
file (any reports that you create are stored in a database file in the
current logged directory), an error message will appear onscreen and you
will be returned to the report writer main menu; else, you will have a
scrollable picklist of reports that are on file. Highlight your choice
and press the Enter key.
* CREATE REPORT: Enter the title for your report. You are not limited to 8
characters, so give a meaningful description:
┌─────────────────────────────────────┐
│ Report title │
│ sample report using Reporter_______ │
└─────────────────────────────────────┘
After entering the title you will be placed in Edit mode; the workspace
will appear like this onscreen:
┌-= Editing Report: sample report using Reporter=-───────────────────────────┐
│ │
│ [KEYS] # Column Contents Column Title Width Pict Total │
│ ─────────────────────────────────────────────────────────── │
│ < > 1│ │ │ │ │ │
│ to move │ │ │ │ │ │
│ ───────────── │ │ │ │ │ │
│ <ENTER> to │ │ │ │ │ │
│ change column │ │ │ │ │ │
│ ───────────── │ │ │ │ │ │
│ <INSERT> to │ │ │ │ │ │
│ add a column │ │ │ │ │ │
│ ───────────── │ │ │ │ │ │
│ <DELETE> to │ │ │ │ │ │
│ delete column │ │ │ │ │ │
│ ───────────── │ │ │ │ │ │
│ <F10> when │ │ │ │ │ │
│ done │ │ │ │ │ │
└────────────────────────────────────────────────────────────────────────────┘
This module defines fields and define column titles appearing on the final
output. Pressing the insert key will add a column to the report; you
may use either a database field or pad the column with blank spaces;
the bottom of the screen will prompt you:
┌──────────────────────────────────────────────────────────────────────────────┐
│ Pick Database Field for this column │
│ Use Spaces (for filler) │
└──────────────────────────────────────────────────────────────────────────────┘
Pressing the Enter key adds a field. A popup box appears onscreen listing
available fields insertable in the report:
┌Select Field───────┐
│ONE │
│TWO │
└───────────────────┘
Pressing the Enter key on a highlighted field chooses the field for that
column of the report and edit screen is updated with the field info:
┌-= Editing Report: sample report using Reporter=-───────────────────────────┐
│ │
│ [KEYS] # Column Contents Column Title Width Pict Total │
│ ─────────────────────────────────────────────────────────── │
│ < > 1│ONE │ONE │ 10 │ │ N │
│ to move │ │ │ │ │ │
│ ───────────── │ │ │ │ │ │
│ <ENTER> to │ │ │ │ │ │
│ change column │ │ │ │ │ │
│ ───────────── │ │ │ │ │ │
│ <INSERT> to │ │ │ │ │ │
│ add a column │ │ │ │ │ │
│ ───────────── │ │ │ │ │ │
│ <DELETE> to │ │ │ │ │ │
│ delete column │ │ │ │ │ │
│ ───────────── │ │ │ │ │ │
│ <F10> when │ │ │ │ │ │
│ done │ │ │ │ │ │
└────────────────────────────────────────────────────────────────────────────┘
The column title automatically defaults to the field name; you are not
restricted to keeping the status quo; by moving the highlight bar to
the column title contents, you may edit the title and change the length
of the field for when it prints out. Pressing the Delete key will delete
the column entry that is highlighted (there is no way to retrieve it once
you delete it, so be careful). You can insert fields in-between defined
field entries in case you need to make changes. Pressing the F10 key
saves the changes and return you back to the report writer main menu.
* SAVE REPORT: A popup box will appear to verify the filename to save the
completed report to (just in case you want to name it something else):
┌─────────────────────────────────────┐
│ Report Title │
│ sample report using reporter │
└─────────────────────────────────────┘
* EDIT REPORT: Allows you to edit a previously saved report; a popup
window will appear onscreen with all the saved reports; highlight
your choice and you will be placed into the same screen that you saw
when creating the report:
┌Stored Reports───────────────────────────────────┐
│sample report using reporter │
└─────────────────────────────────────────────────┘
* DELETE REPORTS: Delete reports saved in the reports database by
highlighting a report that you wish to purge. It will be permanently
removed with no way to retrieve it, so be careful:
┌[Tag Records to Delete]──────────────────────────────────────────────┐
│ SPACE = tag C = clear S = search ESC = done │
│─────────────────────────────────────────────────────────────────────│
│Tag SF_DBF SF_TITLE │
│─────────────────────────────────────────────────────────────────────│
│ │ SAMPLE │sample report using reporter │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│─────────────────────────────────────────────────────────────────────│
│ 0 records tagged │
└─────────────────────────────────────────────────────────────────────┘
* HEADERS/FOOTERS: If you have opened a report form to modify, or are in
the midst of creating a report, you can define headers and footers that
will appear on the output. You are prompted for the number of
header/footer lines you desire, the contents of the header/footer, and
how you wish them to appear on the output (centered, left or right
justified, etc.):
┌─────────────────────────────────┐
│ Number of Header lines (1-9) │
│ 2 │
│ Number of Footer lines (1-9) │
│ 0 │
└─────────────────────────────────┘
┌[Headers and Footers]───────────────────────────────────────────────────┐
│ Headers: │
│ header 1 │
│ header 2 │
│ Footers: │
│ footer 1 │
│ footer 2 │
│ Headers: Leave as-is Center Left Justify Right Justify │
│ Footers: Leave as-is Center Left Justify Right Justify │
└────────────────────────────────────────────────────────────────────────┘
* FILTERING: You can print out every record in the database, or only a
subset of the information. This can be a powerful method of extracting
management data for "on-the-fly" reporting needs. You have already been
introduced to this already in previous parts of the manual; the methods
and screens are identical to those found in the Viewport and Formletter
modules, so we will gloss lightly over these:
┌──────────────────────────┐
│ No Filter │
│ Tag Selected Records │
│ Build New Query Filter │
│ │
└──────────────────────────┘
The No Filter option means all records will be printed; Tag Selected
Records has been seen before:
┌─────────────────────────────────────────────────────────────────────┐
│ SPACE = tag C = clear S = search ESC = done │
│─────────────────────────────────────────────────────────────────────│
│Tag ONE TWO │
│─────────────────────────────────────────────────────────────────────│
│ │ scott │scott │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│ │ │ │
│─────────────────────────────────────────────────────────────────────│
│ 0 records tagged │
└─────────────────────────────────────────────────────────────────────┘
Build New Query Filter: we've seen this a couple of times already:
┌[Online Query Builder]────────────┐
│ │
│ Build a new Query │
│ Add to current query │
│ Count matching records │
│ Zap (remove) existing Query │
│ Save current Query to disk │
│ Restore Query from disk │
│ Delete stored queries │
│ What is current Query │
│ Edit current Query │
│ View records matching Query │
│ Quit To Reporter │
│ │
│ No Query Active │
└──────────────────────────────────┘
* GROUPING ORDER: This menu option is a little more complex to understand
if you are unfamiliar with dBase; grouping is a means of producing
output that will page eject based on information in an index file (an
index must be opened before you can use this option, and it must be
indexed on the field(s) that you wish to group on). A simple example of
grouping would be: your client wants a report in City sequence that
would print the name/address/amount owed fields. The report would be
page broken by City; therefore, every time a new city is encountered in
the database, a page break would occur to start the new city on a fresh
page (even though you might not be at the end of the page). This is a
good means of keeping large amounts of printed information in an
orderly manner. You will first be prompted to choose an index that is
open (you may have more than one index file open at one time):
┌─[Select processing order]─────────────┐
│ │
│ │
│ Select an open index │
│ View current sort selection │
│ Deactivate current order │
│ │
│ Quit │
│ │
│ │
└───────────────────────────────────────┘
Select an open index will present a popup of all active indexes that
you can choose from:
┌─[Select Index Key to Use]─────────────────────────┐
│ (ONE) │
│ (TWO) │
│ (THREE) │
│ │
│ │
│ │
└───────────────────────────────────────────────────┘
A popup will appear onscreen with some useful information:
┌─────────────────────────────────────────────────────────────────────┐
│ │
│ │
│ You can now use GROUPS in your report. │
│ A GROUP CHANGE is a point where a change takes place │
│ in one of the keys in an INDEXED database. Report SUBTOTALS │
│ will be printed at a GROUP change. │
│ This reportwriter supports a MAJOR group and a SECONDARY │
│ GROUP. You will now be asked to select GROUPS for this report │
│ │
└──[Press a key ....]─────────────────────────────────────────────────┘
You are given the option to choose your major grouping from the selected
index file:
┌─────────────────────────────────────┐
│Select Major Group from index key? │
│ YES NO │
└─────────────────────────────────────┘
We'll be adventurous and choose field 'ONE' for the major group:
┌Select MAJOR group───────────────────────────────┐
│ONE │
└─────────────────────────────────────────────────┘
If you needed to further break down the output, you could define a
secondary group (like Last_Name)to provide another page break; you would
repeat the above process of choosing a field that has been indexed on. An
example of the result would be: the first page break would be set on City;
a page break would also occur on the last name field (after you had set
the secondary grouping).
* VIEW CURRENT SORT SELECTION: Allows you to view the grouping setup:
┌─────────────────────────┐
│ Database order is : │
│ (ONE) │
│ Major group is : │
│ ONE │
│ Secondary group is : │
│ None Selected │
│ Press a key... │
└─────────────────────────┘
* OTHER OPTIONS: A popup screen appears to allow you to define printing
parameters; once you have filled in the first screen, 2 more screens will
appear of options for the final output:
┌─[Page Layout Options 1────────────────────────────────────┐
│ │
│ Page Dimensions │
│ ---------------- │
│ Page length..................... 66(lines per page) │
│ Page width...................... 80(characters across) │
│ Top margin...................... 0 │
│ Left Margin..................... 0 │
│ │
│ Group Headers and Totals │
│ ------------------------ │
│ Text of Major group header...... Major Group : │
│ (enter NONE to suppress Major group header) │
│ Text of Minor group header...... Minor Group : │
│ (enter NONE to suppress Minor group header) │
│ Major underline character....... - press F2 for options │
│ Minor underline character....... = press F2 for options │
│ Underline totals................ N (Y/N) │
│ │
└────────────────────────────────────────────────────────────┘
┌─[Page Layout Options 2 ───────────────────────────────────┐
│ │
│ Eject (new page) Options │
│ -------------------------- │
│ Eject before report............. N (Y/N) │
│ Eject after report.............. Y (Y/N) │
│ Eject on Major change........... N (Y/N) │
│ Eject on Minor change........... N (Y/N) │
│ Eject before grand totals....... N (Y/N) │
│ Eject if # lines left........... 4 (after group change) │
│ Pause between pages ............ N (Y/N) │
│ │
│ Separator Characters │
│ --------------------- │
│ Number of title lines........... 1 (1 or 2) │
│ Detail line separator........... press F2 for options │
│ # lines between detail lines.....0 (0 or 1) │
│ Column separator................ | press F2 for options │
│ Column separator width.......... 1 │
│ Title/body/footer separator..... - press F2 for options │
│ │
└────────────────────────────────────────────────────────────┘
┌─[Page Layout Options 3 ───────────────────────────────────┐
│ │
│ Miscellaneous Options │
│ -------------------------- │
│ │
│ Include standard 2-line header ? N │
│ (page#, date, time) │
│ │
│ Full or summary report.......... F (F/S) │
│ Printer setup code..(decimal)... │
│ Printer exit code..(decimal)... │
│ │
│ PRINTER CODES NOTE: │
│ For printer codes, use either DECIMAL printer codes │
│ separated by commas, or type in the characters as they │
│ appear in your printer manual, using the @ charac- │
│ ter in place of ESCAPE. Example: │
│ (using HP Laserjet codes to set the type to ITALIC) │
│ 1.DECIMAL 27,40,115,49,83 │
│ 1.CHARACTERS @(s1S │
│ │
└────────────────────────────────────────────────────────────┘
* PRINT REPORT: Print the report or save output to a disk file; the bottom
of the screen will prompt you:
┌──────────────────────────────────────────────────────────────────────────────┐
│ │
│ To: Printer │
│ Disk File │
└──────────────────────────────────────────────────────────────────────────────┘
If you choose 'Printer' the printer will default to LPT1 (standard
configuration on 99% of all printers); the device will be checked if it
is online and ready. If it is not, an error message will appear
onscreen allowing you to change the printer port to either LPT1/LPT2/
LPT3; retry or abort printing. If you chose 'Disk File', the bottom of
the screen will prompt you for a filename+extension:
┌──────────────────────────────────────────────────────────────────────────────┐
│ │
│ File name to print to │
│ MYREPORT.PRN____________________________________________________________ │
└──────────────────────────────────────────────────────────────────────────────┘
While the file is printing, a popup window appears onscreen allowing you
to view the output while printing. You can press Escape to abort printing,
and the Space Bar to temporarily pause it. When printing has finished, the
bottom of the screen will inform you to press a key to return to the
report writer main menu again.
* REPORT STATUS: Gives you a full screen 'snapshot' of the current
loaded report's parameters that have been defined:
┌──────────────────────────────────────────────────────────────────────────────┐
│ Report Title sample report using reporter │
│ DBF Name SAMPLE │
│ Index Key │
│ Key of Major Group │
│ Key of Minor Group │
│ Major Group Text Major Group : │
│ Minor Group Text Minor Group : │
│ Last Used Query │
│ Before Print Code │
│ After Print Code │
├──────────────────────────────────────────────────────────────────────────────┤
│ Page Width 80 Page Length 66 │
│ Left Margin 0 Top Margin 0 Line Spacing 0 │
│ # of Header Lines 2 # Footer Lines 2 Use standard header ? N │
│ Underline Totals ? N Major Underline - Minor Underline = │
│ Pause Between Pages N │
│ Full or Summary F # of Columns 1 # of title lines 1 │
│ Title Separator - Column Separator | Width of Column Sep 1 │
│ Line Separator │
├──────────────────────────────────────────────────────────────────────────────┤
│ Eject:Before Report N After Report Y If # line left on group 4 │
│ B4 Grand Ttls N On Major change N On Minor Change N │
│ │
└──────────────────────────────────────────────────────────────────────────────┘
* Quit: This option will ask you if you wish to save the currently loaded
report before exiting as a precaution; if you choose yes and you are
going to overwrite a report with the same name, you will be provided a
popup box to make your appropriate choice:
┌────────────────────────────────────────────────────────────┐
│Save Report:sample report using reporter before quitting? │
│ YES NO │
└────────────────────────────────────────────────────────────┘
┌─────────────────────────────┐
│Record Exists: │
│ Don't Overwrite Overwrite │
└─────────────────────────────┘
╒════════════════════════════════╕
│PRINT - View *.Mem File Contents│
╘════════════════════════════════╛
This menu option lets you examine the contents of a dBase-type memory file
that has been saved onto the hard drive/floppy drive. This is primarily
useful for debugger purposes when you need to know if memory variables are
being updated and saved properly. If you try using a text editor or the
Ms-Dos Type command on this type of file you will see Ascii garbage onscreen;
a highly specialized method of opening this type of file for examination has
to be implemented in order for it to be understandable. You will get a
scrolling list of all files in the current directory to choose from:
┌[Select: ]─────────┐
│ C5OVLMGR.OBJ │
│ CLABELS.DBF │
│ CLABELS.DBT │
│ COLORS.DBF │
│ DC.EXE │
│ DC.LNK │
│ DC.OBJ │
│ DC.PRG │
│ FORM.DBF │
│ FORM.DBT │
│ L │
│ MYREPORT.PRN │
│ OVLMGR.OBJ │
│ READ.BAK │
│ READ.ME │
│ SAMPLE.DBF │
│ SAMPLE.DBT │
│ SAMPLE.LBL │
│ SAMPLE.NTX │
└───────────────────┘
If you choose a true memory file, you will see the following information
displayed onscreen (this example uses the Setup.Sys file used with CED to
store your system configuration):
┌────────────────────────────────────────────────────────────────────────┐
│ MSETCOMP TYPE C "/A