home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
World of Shareware - Software Farm 2
/
wosw_2.zip
/
wosw_2
/
PRINTING
/
DBFSCR20.ZIP
/
DBFSCR.TXT
< prev
next >
Wrap
Text File
|
1991-04-10
|
29KB
|
683 lines
DBFSCR version 2.0
WHAT IS DBFSCR?
DBFSCR is a shareware program designed for programmers to help in the
design of data entry screens. It uses a screen painter and template
files to generate code to be included within programs.
DBFSCR uses the SAY..GET metaphor common in all xBASE languages. The
templates are not limited xBASE programs. Any code can be included
within the templates. In this way, DBFSCR can be used as a screen
painter for any data-entry library for any language. Included with this
program are templates for Clipper, dBXL, Code Base 3, SkipJack, dBASE 3,
and Topaz. SkipJack and Topaz are Pascal libraries that provides access
dbf files. They also include screen io functions/procedures similar to
the @..SAY..GET of xBASE. Code Base is a C library that provides access
to dbf files and provides screen io functions similar to @..SAY..GET.
USING DBFSCR
To use DBFSCR, just type DBFSCR at the DOS prompt. You will be provided
with a blank screen. There is a one page help screen available by
pressing F1. You can use the cursor keys to move the block around the
screen.
Design your screen using the ALT key combinations described below. At
any time, you can save your file by pressing Alt-F. The saved file is a
special format used by DBFSCR. When you are ready to create your program
file to be included in your programs, press Alt-T (Template). Supply the
template filename and the filename for the program code. DBFSCR will
produce the code using the template. To use the new code, just include
it in your program. To modify the screen, load the saved screen and make
your changes. It is a good idea to leave the generated code in its own
file, so that when you make changes, you can just overwrite the old file.
LIABILITY
The author bears no responsibility for any damages or losses caused by
the use of this program. The burden of liability is on the user of the
program. By using this program, the user relieves the author of all
liabilities.
ACKNOWLDGMENTS
dBASE and Ashton-Tate are registered trademarks of Ashton-Tate
Corporation.
Clipper and Nantucket are registered trademarks of Nantucket Corporation.
dBXL and Quicksilver are registered trademarks of WordTech Corp.
Code Base is a C library developed and distributed by Sequiter Software
Inc.
Skipjack is a Pascal library developed and distributed by Max Software
Inc.
Topaz is a Pascal library developed and distributed by Software Science
Inc.
SHAREWARE
This program is shareware. You are entitled to use the program for 30
days to see if you have use for it.
If you find the program of value, please send $15 to:
Steven Feinstein
72 Katherine Drive
Hamden, CT 06514
COMMANDS
ALT-A CHANGE SCREEN'S COLOR
Alt-A will change the background color for the entire screen. The colors
selected for objects that have already been created will not be affected.
When a program file is created, a command from the template will be used
once at the beginning of the program to change the screen's colors.
ALT-B CREATE BOX
Alt-B will create a box object on the screen. A message will be displayed
requesting that you move the cursor to the opposite corner for the box.
The cursor will change from a solid box to a solid box with a blinking
cursor. You can use all of the cursor movement keys to set the box
coordinates.
ALT-C CENTER OBJECT
Alt-C will center the currently selected object horizontally on the
screen. The current object is the one the cursor is on. If no object is
located at the cursor location, a message will appear informing you of
this.
ALT-D DELETE OBJECT
Alt-D will delete the currently selected object. The current object is
the one the cursor is on. You will be prompted to make sure that you
want to delete the object. There is NO undo capability.
ALT-E EDIT OBJECT
Alt-E will display a data-entry screen (like the one used when creating
an object- See Alt-G and Alt-S for a description of the fields). You can
change any of the information on this screen which describes the object.
This function will not work on box objects.
ALT-F SAVE SCREEN
Alt-F will save the screen to a data file. This file can only be used by
DBFSCR and should not be confused with the converted program files. You
will be prompted for a filename. You must enter an extension if you want
one.
ALT-G CREATE INPUT "GET" OBJECT
Alt-G will create a "GET" object. A data-entry screen will be displayed
allowing you to enter information about the object. The following is a
description of the fields:
1) Field type: B - byte
C - character
D - date
I - integer
L - logical
N - long integer
R - real
S - string
not all templates support all of these types. If a template does not
support one of these types, the GET statement will not be printed.
2) Variable/Fieldname:
enter the variable name used in the program. Or, if you are using one
of the xBASE dialects and want to enter a file's fieldname, you can do
that as well.
3) Picture:
If your program supports them, enter the picture string used by the
programs. Do NOT enter the quotes around the string. That should be
handled by the template.
4) Range:
If your program supports them, enter the range clause for your field.
Do NOT enter any quotes around the range, this should be handled by
the template file.
5) Prefield:
If your program supports prefield or when clauses, enter the function
to be performed here. Do NOT enter () or @ in this field. They
should be handled by the template file.
6) Valid:
If your program supports valid clauses enter it here. Do NOT enter ()
or @ in this field, it should be handled by the template.
7) Display length:
Enter the length of the field. Character and logical fields will be
limited to 1 character in length.
8) Decimal Places:
Enter the number of decimal places for the field. This is only valid
for real types. Everything else will have a value of 0.
ALT-H CHANGE HOME COORDINATES
Alt-H will change where on the screen the home location will be. This
function was put in for people who use window libraries. Some libraries
are set up so that a row is relative to the window borders. In order to
show how a screen will look at a screen location, but still keep the
coordinates relative, use this function. If you screen output is not
relative to a window, don't use this function, your coordinates will be off.
ALT-I CHANGE COLORS FOR NEW OBJECTS
Alt-I will set the default colors. Whenever an object is created, the
new default colors will be used. The command works the same as Alt-A.
This command has no affect on existing objects.
ALT-K CHANGE AN OBJECT'S COLORS
Alt-K will change the color of the currently selected object. The
current object is the one the cursor is on. The command works the same
as Alt-A, but will only change the current object.
ALT-L LOAD SCREEN
Alt-L will load a saved screen file from disk. It will first
reinitialize the screen, so any work that has not been saved will be
lost. If the file is a version 1 file, you will be notified that you
will need to save the file using ALT-X if you want to keep it in version
1 format.
If you enter a mask (ie. *.dat) or enter a directory ending with '\' (ie.
c:\ or \data\) a popup window will be displayed of files to choose from.
If you enter an '*' without an extension .dat will be assumed. To get
a popup list of the current direcoty enter an '*' by itself.
ALT-M MOVE OBJECT
Alt-M will move the currently selected object to a new location. The
current object is the one the cursor is on. The cursor will change from
a solid block, to a solid block with a blinking cursor inside. You will
be prompted to choose a new location.
ALT-N NEW SCREEN
Alt-N will clear the screen and reinitialize the objects. Any work not
saved will be lost.
ALT-O REDORDER GETS
Alt-O will change the order that GETs are printed in the output file.
By default, DBFSCR will print the GETs in the order that they are on screen.
The xBASE language determines data-entry order by first come basis in the
program. Instead of forcing screen order, this function will allow you to
reorder the GETs. To use the new order, choose 'N' when asked if you want
to use screen coordinates during template conversions.
A popup window will appear with the GETs listed in their current order.
The first time, they will be in the order that you have entered them (not
screen order). To change the order, hilite the item that you want to move,
press enter, move to the item that you want to place the first one after,
and press enter. It will take two steps to move a GET to first on the list.
Move it after the first item and then move the first item after it.
ALT-Q QUIT
Alt-Q will quit the program. All worked not saved will be lost.
ALT-R COPY OBJECT
Alt-R will copy the currently selected object to a new location. The
current object is the one the cursor is on. The cursor will change from
a solid block, to a solid block with a blinking cursor inside. You will
be prompted to choose a new location, and a new variable/fieldname
(unless the object is a box or it is a text SAY object). You do not have
to change the fieldname.
ALT-S CREATE "SAY" OBJECT
Alt-S will create a "SAY" object. A data-entry screen will be displayed
allowing you to enter information about the object. The following is a
description of the fields:
1) (S)tring or (V)araible:
decide whether the object is a literal string (S) or a variable or
fieldname (V).
If the first field is 'S' then:
2) Text:
enter the literal text string
If the first field is 'V' then:
2) Field type: B - byte
C - character
D - date
I - integer
L - logical
N - long integer
R - real
S - string
not all templates support all of these types. If a template does
not support one of these types, the GET statement will not be
printed.
3) Variable/Fieldname:
enter the variable name used in the program. Or, if you are using
one of the xBASE dialects and want to enter a file's fieldname, you
can do that as well.
4) Picture:
If your program supports them, enter the picture string used by the
programs. Do NOT enter the quotes around the string. That should
be handled by the template.
5) Display length:
Enter the length of the field. Character and logical fields will
be limited to 1 character in length.
6) Decimal Places:
Enter the number of decimal places for the field. This is only
valid for real types. Everything else will have a value of 0.
ALT-T CONVERT USING TEMPLATE
Alt-T will convert the current screen to a text file of programming
commands. The commands used will depend on the template. See the
section on templates to learn more about how they work and how to create
your own. This is the command that will generate the source code for
your programs.
You will be prompted if you want to use screen coordinates. If you answer
'Y' then the GETs will be written based on the order they appear on the
screen. If you answer 'N', the GETs will be written based on the order
that you set using Alt-O. This will have no affect on SAYs and Boxes.
You will then be prompted for a template name. An extension of TEM will
be assumed if you don't enter one. You can get a popup list by entering
a mask (*.tem), entering a directory ending with a '\' (\data\), or by
entering an '*' with or without a directory. In that case TEM will be
assumed. If the '*' is by itself, the current directory will be displayed.
Next you will be prompted for a filename. No extension will be assumed.
ALT-X SAVE SCREEN AS VERSION 1
Alt-X will save the current screen as a version 1 file to be used by the
previous version of DBFSCR. In order to have some new functions, the file
format had to change. Load Screen will load a version 1 file, but to save
it, you will need to use this function. The only use for this function, is
if you need to use the version 1 software. None of the new features will be
saved in this format, so any changes to the new feautres will be lost.
ALT-Z SET NEW START COORDINATES
Alt-Z will change the start coordinates. The xBASE language uses 0,0 as the
start coordinates. Pascal uses 1,1. This function will allow you to change
the coordinates to anything you like.
NOTE - Veersion 1 had a default start coordinate of 1,1. Version 2 has been
changed to 0,0. This was done to be more compatible with xBASE. Just use
this function to change it.
F2 VIEW/USE DBF FILE
F2 will load a .dbf file for viewing of the structure. You can also use a
field in the structure to create a GET. F2 will prompt you for a filename.
If you enter a directory ending with a '\' (ie. c:\ or c:\data\) a popup list
of dbf files will appear that you can choose from. If you enter an '*' by
itself, a list of the current directory will be displayed. You can also
enter a file mask (test*.dbf or *.dat) if you want to limit the list or
if you have named your database files using a different extension.
Once a file is chosen, the structure will appear in a popup window. You
can view the structure and press ESC when finished. If you press ENTER,
you will be placed in a GET data entry screen. The TYPE, WIDTH, and DEC
will be filled in based on the structure. The variable/fieldname will be
filled in using xBASE notation and the filename as the prefix (ie.
TEST->FIELD1). You can then change any information and a GET will be
created. If there is not enought room for the GET, a message will display
stating this information.
CURSOR KEYS
The following is a list of cursor keys and their functions.
LEFT ARROW - move 1 space to the left. The cursor will wraparound the
screen if you move past the left edge.
RIGHT ARROW - move 1 space to the right. The cursor will wraparound the
screen if you move past the right edge.
UP ARROW - move 1 line up. The cursor will wraparound the screen if you
move past the top of the screen.
DOWN ARROW - move 1 line down. The cursor will wraparound the screen if
you move past the bottom of the screen.
HOME - move to the beginning of the line.
END - move to the end of the line.
PGUP - move to the top of the screen.
PGDN - move to the bottom of the screen.
TAB - move 10 spaces to the right. The cursor will wraparound the screen
if you move past the right edge.
BACKTAB (Shift -TAB) - move 10 spaces to the left. The cursor will
wraparound the screen if you move past the left
edge.
TEMPLATES
Templates are the key to the program. They are used to determine what
commands to write depending upon the object type. Included with DBFSCR
are the following templates: clipper5.tem, codebas3.tem, dbase3.tem,
dbxl.tem, skipjack.tem, and topaz.tem. The templates are just ASCII
files and can be modified to suit your programming needs. You can also
create your own. It is recommended that you do not change the template
files. You should copy them under another name and make changes to the
copies.
Each line in the template corresponds to commands for each object. The
lines in the templates supplied contain comments so you will know which
lines should contain which commands. For example, if the comment states
'SAY DATE', then the command on that line should contain the programming
command for displaying the date. It is important to place the commands
on the correct lines. DBFSCR does not use the comments to determine
which command to use. It uses the line number. The comments are there
for your use to see which commands to place on which lines.
The following is a list of symbols that can be used in the template:
\ - used in front of a command to tell DBFSCR that the following command
is the last for a line and a newline/carriage return should be placed
after it.
| - everything on the line after this symbol is considered a comment.
# - a command for this line is not used. Ignore anything that would
normally create a command for this line.
& - use the alternate picture clause with this command.
<<gfore>> - replace this symbol with the value for the global foreground
color.
<<gback>> - replace this symbol with the value for the global background
color.
<<fore>> - replace this symbol with the value for the foreground color.
<<back>> - replace this symbol with the value for the background color.
<<r1>> - replace this symbol with the value for upper row.
<<c1>> - replace this symbol with the value for upper column.
<<r2>> - replace this symbol with the value for lower row.
<<c1>> - replace this symbol with the value for lower column.
<<var>> - replace this symbol with the text for that command.
<<width>> - replace this symbol with the width of the variable.
<<dec>> - replace this value with the decimal of the variable.
<<v1>> - replace this symbol with the text for that command. Use instead
of var if the text needs to be split at a comma (see Range in
the template files).
<<v2>> - replace this symbol with the text for that command. Same as
<<v1>>, but gets the text after the comma instead of before the
comma.
The following is a list of the lines that are within the template file.
line 1 - color type
the type must be P, D, or N. They stand for Pascal (using the
crt values like Black, LightGray, etc.), dBASE (using the xBASE
commands like N/W etc.), and Number (using the decimal value for
colors like 7 for white). This is used internally by DBFSCR.
line 2 - CLS color
The command used to set the color used by a clear screen
command.
line 3 - Clear Screen
The command to clear the screen using the new colors.
line 4 - Box color 1
The first command used to set the box color. Most programs do
not require two commands, but the provision is there if it does
need two.
line 5 - Box color 2
The second command used to set the box color. Since most
programs do not have a second command, this line usually will
contain a #.
line 6 - Draw box
The command used to draw a box.
line 7 - If Double
If the box is a double lined box, then this command will be used
to complete the box command.
line 8 - If Single
If the box is a single lined box, then this command will be used
to complete the box command.
line 9 - Say color 1
Command used to set the SAY colors. A second one is provided if
necessary.
line 10 - Say color 2
A second command to set the SAY colors. This one is not
usually used, but is provided in case two commands are
required.
line 11 - Say char
Command used to display a variable of type char on the screen.
line 12 - Say text
Command used to display a text string on the screen.
line 13 - Say string
Command used to display a variable of type string on the
screen.
line 14 - Say date
Command used to display a variable of type date on the screen.
line 15 - Say byte
Command used to display a variable of type byte on the screen.
line 16 - Say integer
Command used to display a variable of type integer on the
screen.
line 17 - Say long
Command used to display a variable of type long integer on the
screen.
line 18 - Say real
Command used to display a variable of type real or double on
the screen.
line 19 - Say logical
Command used to display a variable of type logical or boolean
on the screen.
line 20 - with Say picture
Command to print if the variable has a picture clause.
line 21 - without Say picture
What to print if there is no picture clause.
line 22 - with Say picture Alt
Alternate command to use if variable has picture clause. This
will be use if the Say command is preceded by an &.
line 23 - without Say picture Alt
Alternate command to print if there is no picture clause. This
will be used if the Say command is preceded by an &.
line 24 - Get color 1
Command to print to set the color for the next GET. There are
two commands if necessary.
line 25 - Get color 2
Second command for setting the GET color. Usually this is not
used.
line 26 - Get char
Command used to display a GET variable of type char and get it
ready for a read.
line 27 - Get string
Command used to display a GET variable of type string and get
it ready for a read.
line 28 - Get date
Command used to display a GET variable of type date and get it
ready for a read.
line 29 - Get byte
Command used to display a GET variable of type byte and get it
ready for a read.
line 30 - Get integer
Command used to display a GET variable of type integer and get
it ready for a read.
line 31 - Get long
Command used to display a GET variable of type long int and get
it ready for a read.
line 32 - Get real
Command used to display a GET variable of type real or double
and get it ready for a read.
line 33 - Get logical
Command used to display a GET variable of type logical or
boolean and get it ready for a read.
line 34 - with Get picture
Command to print if the variable has a picture clause.
line 35 - without Get picture
Command to print if there is no picture clause.
line 36 - with Get picture Alt
Alternate command to use if variable has picture clause. This
will be use if the Get command is preceded by an &.
line 37 - without Get picture Alt
Alternate command to print if there is no picture clause. This
will be used if the Get command is preceded by an &.
line 38 - with Range
Command to use if the variable has a range clause.
line 39 - without Range
Command to use if the variable does not have a range clause.
line 40 - with prefield
Command to use if the variable has a prefield trigger or a when
clause.
line 41 - without prefield
Command to use if the variable does not have a prefield trigger
or a when clause.
line 42 - with valid
Command to use if the variable has a valid clause.
line 43 - without valid
Command to use if the variable does not have a valid clause.
line 44 - END-OF-FILE
Required in file for no reason other than to allow the program
to have some kind of check to make sure that this is a template
file.
Some descriptions examples:
You will notice that in most of the lines in a template, the command is
preceded by \. If the command for that line is the LAST command possible
for the line, it should be preceded by \ otherwise it should not. In
Skipjack, sj_ClrScr; is the last command to be printed on a line, so it
is preceded by a \. sj_Box(... is not the last command for the line
(the designation for double or single box comes after it) so it is NOT
preceded by a \. sj_DoubleBox); is preceded by a \ since it is the last
command on the line. When the two lines are taken together, the output
will look like sj_Box(5, 5, 10, 15, sj_DoubleBox);. And the next command
will start on the next line.
The previous example shows that not all of a single command may be
located on the same template line. That is why the \ is used.
Also in Skipjack you will notice on line 13, the say date command looks
like: &\sj_SayDate.... instead of like the say string command
\sj_SayStr... The reason is that in SkipJack, the Date does not have a
picture clause. Because it is not written with the exact same syntax as
the SayStr command, the Alt picture clause was used. The template knows
this because the line was preceded by &.
In the range clause, you will notice that <<v1>> and <<v2>> are used
instead of <<var>>. The reason is because, usually the range is entered
as: 1,11. In order to separate the string for Skipjack which prints
them as: '1','11' the <<v1>> and <<v2>> were used. Why not just type in
'1','11' during data entry within DBFSCR? Because now I can convert the
screen to dbxl or clipper without having to redefine the object's
information.
Finally in Skipjack, you will notice that most of the Says and Gets have
#. This is because Skipjack has a limited number of variable types that
can be used. Obviously a function could be used to convert the variable
before the Say or Get and then imbed the function in the command. For
instance, if I created a function that would convert integers to reals
and called it IntToReal, I could write the command for Say Int as:
\sj_SayNum(<<r1>>, <<c1>>, IntToReal(<<var>>), <<width>>, <<dec>>,. But
IntToReal was not included with SkipJack, so I chose not to create the
template that way.
In the dbase3 template, you will notice that the Says and Gets have the
same commands. Even though the same command is used by the variables,
they still must be listed for each variable type. Because it is the line
in the file which is used by DBFSCR that determines the command to use.
Also in dbase3, you will notice that the command for single box is: \
instead of # (dBASE does not have a SINGLE clause). The reason is that
the command to draw the box @..TO was not preceded by a \ (it could not
be because of the DOUBLE clause). If single box had a # then the next
command printed would be on the same line as the @..To command:
@ 2,5 TO 5,10 SET COLOR TO
(assuming SET COLOR TO was the next command). By using the \, SET COLOR
TO will start on the next line:
@ 2,5 TO 5,10
SET COLOR TO ...
Clipper users: The template is called Clipper5 because I have included
the WHEN clause for GETs (ie. prefield trigger). To make this
compatible with earlier versions of Clipper, just put a # on the line for
prefield.
Code Base 3 users: Code Base 3 does not come with a box command. I wrote
a box command using s3 routines and included it in the file CBBOX.C. You
can use this file or create your own. If you use your own box routine,
change the commands (box, double, single) in the CodeBas3.tem file. If
you do not want to use the box commands, replace the respective lines
with a #.
Code Base 4 users: You can modify the CodeBas3.tem file easily to work
with your product. I do not have a list of function names, otherwise I
would have done it myself.
Code Base 3 and 4 users: One final note is required to explain the
prefield in Codebas3. I use Code Base (not Code Base 4). While looking
around, I noticed that the GET structure allows for a function to be
assigned to a field called prepare, similar to the way a function can be
assigned to valid using the g3valid function. In my Code Base library, I
wrote a function similar to g3valid called g3prepare. This function
assigns a function name to the GET structure under the prepare field.
While in a read, Code Base looks for a function in prepare every time it
enters a field. If that field has a function assigned, then the function
will be called before the user is allowed to enter information. Prepare
acts like a valid, but before hand (ie. prefield). This is good for
things like help prompts and validation routines to determine if the
field should be entered. I tested the function and it worked for me
until I tried to nest reads. then I ran out of stack space. I am
currently working on this problem. Because your library does not have
the prepare function, you should put a # at the beginning of that line.
I left the prepare in so that you would be aware of the capability.
FINAL NOTES
I have tested the software and found no bugs. But like any software, I
know that I could not have found them all. Please alert me to any that
you find. I will make any fixes as soon as I can and upload the changes.
If you have any enhancements that you would like to see in the program,
let me know. If I agree with the changes, I will add them as soon as
possible.
If you have any questions or comments, write to me at the address listed
above, or, you can e-mail me on Compuserve. My account number is:
72007,624. I look forward to hearing from you.