Dec 052017
 
ADAM V3.0. Advanced Data Access Manager for Clipper '87. Template/Object type program generator. Excellent for developers.
File ADAM30.ZIP from The Programmer’s Corner in
Category Dbase Source Code
ADAM V3.0. Advanced Data Access Manager for Clipper ’87. Template/Object type program generator. Excellent for developers.
File Name File Size Zip Size Zip Type
ADAM.CFG 15756 493 deflated
ADAM.EXE 265585 112808 deflated
ADAMFONT.FNT 2187 521 deflated
ADAMLIBA.OBJ 3 3 stored
ADAMLIBB.OBJ 3 3 stored
ADAM_ONE.DOC 120210 19826 deflated
ADAM_TWO.DOC 119522 18502 deflated
BACKUP.OBJ 177 126 deflated
CARDEX.DBF 561 159 deflated
CARDEX.DBU 799 238 deflated
CARDEX.NTX 2048 640 deflated
CARDEX.OBJ 3 3 stored
CLIPLOGO.OBJ 3 3 stored
DCODE.OBJ 130 104 deflated
DEMO.EXE 251244 107719 deflated
DMSP.DBF 1846 438 deflated
DMSP.NTX 2048 184 deflated
DMS_.DBT 1692 732 deflated
DMS_.LET 130 59 deflated
DMS_.LTX 2048 126 deflated
FILTER.DBF 330 82 deflated
HELPFILE.DBF 536 180 deflated
HELPFILE.DBT 3155 1230 deflated
HELPFILE.NTX 2048 282 deflated
LABELS.OBJ 160 124 deflated
LETTERS.OBJ 87 73 deflated
MULTUSER.OBJ 3 3 stored
MUSIC.DBF 650 295 deflated
MUSIC.DOC 14445 3061 deflated
MUSIC.EXE 236555 105235 deflated
MUSIC.NTX 2048 440 deflated
PACKFILE.OBJ 104 87 deflated
POPCAL.OBJ 3 3 stored
PRINTER.OBJ 3 3 stored
REPOFORM.OBJ 3 3 stored
REPORT.OBJ 198 139 deflated
RESTORE.OBJ 135 105 deflated
TABLE.OBJ 337 201 deflated
USERHELP.OBJ 91 89 deflated

Download File ADAM30.ZIP Here

Contents of the ADAM_ONE.DOC file




















-----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----
-- --+----+----+----+----+----+----+----+----+----+----+----
-- +----+----+----+----+----+----+----+----+----+----+----
-- +----+----+----+----+----+----+----+----+----+----+----
-- +----+----+----+----+----+----+----+----+----+----+----
-- Version 3.0 +----+------+----+----+----+----+----+----+----
-- +----+--- MOVE -+----+----+----+----+----+----+----
-- SIZE -+----+----+----+----+----+----+----
-- TEXT -+----+----+----+----+----+----+----
-- CODE -+----+----+----+----+----+----+----
-- WT-2 -+----+----+----+----+----+----+----
-- (C)1990 By FORE -+----+----+----+----+----+----+----
---- BACK -+----+----+----+----+----+----+----
-----+----+- Custom Software HELP -+----+----+----+----+----+----+----
-----+----+- PLIB -+----+----+----+----+----+----+----
-----+----+- NOTE -+----+----+----+----+----+----+----
-----+----+- EDIT -+----+----+----+----+----+----+----
-----+----+- UTIL -+----+----+----+----+----+----+----
-----+----+--- QUIT -+----+----+----+----+----+----+----
-----+----+----+----+----+----+----+----+----+----+----+----+----+----
-----+----+----+----+----+----+----+-+----+----+----+----+----+----+----
-----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----
-----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----
-----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----
-----+----+----+----+----+----+----+----+----+----+----+----+----+----+----+----



















INTRODUCTION 1


Welcome to A.D.A.M. (Advanced Data Access Manager) program generator
for Clipper. Most of you have probably read about the new wave of
program generator's on the market. They all stress the benefits of
using the latest in template programming.

Adam takes the template theory a step further, instead of writing
program modules to generate code, with Adam you design SMART OBJECTS
which Adam links together to form your complete program.

What are SMART OBJECTS?
_______________________

Smart objects can be a menu, screen, browse window, lookup, picklist
or even a complete sub-program or procedure. Smart objects are very
similar to procedure programs except for a couple of very unusual
features.

These smart objects have the ability to communicate with Adam, by
asking questions, which Adam passes on to you, and getting your
answer which Adam passes back to the object.

This system prevents you from having to remember what a procedure
requires as parameters in order to call it in your program. This
power becomes even more evident if you wrote the procedure about six
months ago.

Other features included in Adam
_______________________________

* Generates single or multi-user code.

* Fast screen design tools with error checking.

* Easy custom menu design for vertical or Lotus style menus.

* Integrated object file editor.

* Comes with complete set of object files ready to use.

* Custom screen and menu colors.

* Create or modify database files.

* Create index files.

* Define your own menu help screens.

* Attach lookups or a picklist to selected input fields.

* Initialize and calculation calls.

* Free telephone support and updates.

* Generates custom looking programs.



WINDOW ATTRIBUTES 3


MOVE - The move command allows you to position your windows anywhere
on the screen. Use the arrow keys to move the window around.

SIZE - The size command lets you stretch the window to any shape you
want. Use the arrow keys to size the window, holding down the
shift key and pressing the down or right arrow keys will make
the window stretch out to the end of the screen.

TEXT - The text command allows you to enter messages for titles and
menu options for MENU objects. If there is existing text that
was in the window from previous editing, Adam will warn you
and ask if you want to erase existing text. Pressing the 'F7'
and 'F8' keys provides a copy and paste for a line of text.

Text can also be centered automatically while you are in the
SIZE mode. Simply press the ESC key and all the lines in the
window will be centered.

HELP - The help command lets you add help messages to each of your
menu options.

FORE - The fore command lets you change the foreground or text color
in your window.

BACK - The back command lets you change the background color of your
window.

CODE - The code command is where you tell Adam you are finished with
your window and are ready to save it. Adam will prompt you
for the name of your window object. You can enter up to ten
characters for the name. If this is your first window object
Adam will ask you to enter a program file name to save your
window objects in.

This allows you to go back later and edit any window objects
that belong to this program. If you fail to enter a name for
the object then Adam will NOT save the object.

NOTE - The note command turns the window sound on or off. If sound
is on then Adam adds sound to your windows.

EDIT - The edit command lets you select a window object from a list
of all the objects in your program. You can then edit the
object, making any changes and save it again.

UTIL - The util command presents you with a menu of Adams database
and object utilities. These command are listed in more detail
in the UTILITIES section.

PLIB - The plib command allows you to attach procedure programs or
what we call SMART OBJECTS to your window objects. These are
discussed further in the LIBRARY section.





UTILITIES 5


BROWSE - fields into browse window allows you to build a dBASE like
browse screen. This window can have many different types of
attributes attached to it.

Insert first asks you for the database file you want to use
and the indexes. If this will be a browse window you should
select all the indexes, so that they are updated while the
records are being edited.

Then you select the fields you want Adam to place into your
window. Each time you select a field, Adam asks if you want
this field to call another object.

Procedure to call before read



If you attach a call to another object at the field level
then the call takes place when the user tries to edit the
field with the call attached. If you do not want this
field to call another object then just press enter.

Enter Title For Window Object
Inventory Listing


After you have selected all the fields you want in your
window, press ESC. Adam will ask you for the window type.

Enter window object type {BLP}
B


There are three type of browse windows that you can select
from. Below is a list of the window types and their window
features.

B - BROWSE The browse window allows editing.
L - LOOKUP The lookup window has no editing features.
P - PICKLIST The picklist window has no editing features,
but does a replace of all fields used in the picklist
into the calling window object.

Enter Filter Condition



After you have selected the window type, you are asked if
you want to place any filter conditions on this window. And
if you want to call a initialization object.
Enter Initialize Procedure Name






UTILITIES 7


EDIT - window works the same as inserting fields into the browse
window, with just a few differences.

The EDIT command lets you place the fields into your own
edit screen design. You can also add text messages to this
window.

This command also lets you insert custom picture templates
and a valid clause to each input field.

You also have the option of attaching the built-in EDITMENU
automatically to your custom edit windows.

ADAM - object editor provides a built in program editor to edit
your object files or to create new object files.


ADAM OBJECT EDITOR Line: 1 Col: 0

PROCEDURE report
PARAMETER dbf,ntx,ezform,header,expr
NOTE DBF Report DBF
NOTE ONE Select one
NOTE FRM Format File
NOTE ASK Enter Report Heading
NOTE ASK Enter Filter Condition For Report
SELECT 0
IF multuser
LANOPEN(dbf,"",.F.)
IF lanresult
RETURN
ENDIF
ELSE
USE &dbf
ENDIF
SET INDEX TO &ntx
SAVE SCREEN TO rep_scr
DO window WITH 22,0,24,79,SETCOLOR(),7,1

The example object shown above is a sample of SMART OBJECTS
that can ask questions and receive answers from Adam. The
way we turn our normal procedure objects into SMART OBJECTS
is by adding a NOTE command in our object file.

The NOTE command is used by Clipper as a comment line. Adam
uses this as a means of communicating with your object file
to receive questions and perform different type of commands
which are built into Adam.

We call these commands "ACTION VERBS" meaning that we want
Adam to do something and then tell our objects what actions
took place. (You great minds working with AI are still in
the dark ages).




OBJECT LIBRARY 9


As you create menu options with Adam you will be attaching
actions to each menu choice. These actions can tell Adam
that you want a menu option to call another menu, screen,
code, browse window or an object from your object library.

You can also type in any commands manually into the menu
options. (Any Clipper compatible commands work.) To call up
the object library press the F10 key.


Description Listing Vendor Listing ReOrder Report

Description Listing
DO report WITH "SAMPLE","DES","SAMPLE.FRM","Inventory Listing By Description",
""
Procedure Library - Press F10 For Object Library - Press Ctrl/W To Exit
Objects
Adam will display a list of all the objects TABLE.OBJ
that are in the current directory. ---------> REPORT.OBJ
PRINTER.OBJ
Select the object you want to attach to the ADAMLIBA.OBJ
menu procedure option. And just answer the FILTER.OBJ
questions that your SMART OBJECTS ask you. LETTERS.OBJ
BACKUP.OBJ
As you select objects from your library the MULTUSER.OBJ
program will keep track of which object you PACKFILE.OBJ
have selected. This is the way Adam knows LABELS.OBJ
which objects to include in your program. USERHELP.OBJ
ADAMLIBB.OBJ
You can manually tell Adam to use or not to DCODE.OBJ
use an object by moving down to the objects CARDEX.OBJ
and pressing the right arrow key.

The right arrow key toggles the object from on to off, Some
objects are automatically used by Adam, these are MULTUSER
and ADAMLIB*. The ADAMLIB* is where you can place any new
procedures or functions that might be needed for a special,
or unique application you are designing.

If you are creating a large procedure, you should create it
as a smart object file. Save your ADAMLIB* just for very
small functions or procedures.

The ADAMLIB*.OBJ already contains a few functions that you
can call from your own SMART OBJECTS. Listed below are some
of the functions that are in this file.

WINDOW - DO window WITH rt,ct,rb,cb,"color",type,snd
DOS - DO dos
GETANS - GETANS("message","default","valid")
MEDIT - MEDIT("temp","memofield")
PCHECK - IF PCHECK() ; SET PRINT ON ; ENDIF
CENTER - @ ??,?? SAY CENTER("message")
FILTER - FILTER("expr")
READIT - Use in place of: SET CURSOR ON ; READ ; SET CURSOR OFF


TIPS 11


- Adam recognizes TEN different types of objects. They are all listed
below by name and how they are used.

NAME APPLICATION
____ ____________________________________________________________

MENU Contains all types of menus.

TEXT Used for title screens, or any window that contains text.

BROW A browse window with editing features.

LOOK A browse window without editing features.

PICK A browse window that does a replace.

EDIT A custom designed full screen editing window.

GETS Generate says/gets procedure only.

CODE A text window saved with a lower case object name. Used to
contain procedure code that you enter yourself.

FILM Animation window.

FILE Create a pop-up directory window.

- One of the most powerful features in Adam is the ability to use a
VALID command to call a function.

EXAMPLE:VALID
-------------
VALID CHECKNO(check)

- Use the STARTUP feature in the first window, to call a CODE window
that contains memory variable initialization, or SET KEY commands.

EXAMPLE:STARTUP
---------------
IF FILE("INVNUM.MEM")
RESTORE FROM INVNUM
ELSE
invoice = 1001
SAVE TO INVNUM
ENDIF
invoice = invoice + 1

EXAMPLE:QUIT
------------
RELEASE ALL EXCEPT invoice
SAVE TO INVNUM

- Use a MENU window to create a quick picklist window. And for each
menu option use the -KEYBOARD- command to stuff the keyboard with
the users choice. Example: KEYBOARD "RED"


SAMPLE PROGRAM 13



File Window Object Program Toolbox Quit

Create
Modify
Index


Now go back into the utility menu, press 'ENTER' and use the down
arrow to move the cursor to INDEX, then press ENTER again. Now we
are ready to create an index for our sample program.

Select DBF
MAILLIST.DBF


Adam will ask you to select the database file to index.

PRESS "ENTER" to select the file we just created called MAILLIST.DBF


After you have selected the database file you wish to index, Adam
will display a window containing the names of all the fields.

For our sample program we will use the first field 'NAME'. This
will be our key field and allow us to quickly locate records using
the customers name for a lookup.

When you create a custom edit window, and you use the default menu
function called EDITMENU(), you should always try to use an index.

If you do not use an index then the EDITMENU() command LOCATE will
not function, and you will not have any means of locating records
based on the key index field.




Index on
NAME
ADDRESS
CITY
ST
ZIP
PHONE
MEMO


INDEX ON









SAMPLE PROGRAM 15


PRESS "ESC" twice to return to the main menu.

Before we go any further in Adam, we should exit Adam at this point,
and create our report format and label format file. Remember to call
them "MAILLIST.FRM" and "MAILLIST.LBL".

After you have created a standard report and label
form we can go back into Adam and continue design-
ing our sample program.

Now we are ready to create our title screen for our
masterpiece. You should see a window like the one
shown below, in the top left corner of your screen,
after pressing the letter 'S' for size.




PRESS "S" to SIZE our window.

PRESS "SHIFT-RIGHT ARROW" to stretch the window to the right.

PRESS "SHIFT-DOWN ARROW" to stretch the window to the bottom.

PRESS "UP ARROW" one time to decrease our window size by one line.






















PRESS "ENTER" to return to the main menu.

PRESS "B" to change the background color to BLUE.

PRESS "T" to enter the TEXT mode.





SAMPLE PROGRAM 17


Now we are ready to create our first MENU window.

PRESS "M" to move the menu window under our title.


____ ____ ___ __ ____ ___ _ ____
__ __ __ __
___ _ __ ___ ___
_____________________________________________________________________________



















____ ____ ___ ___ ____ ___ _ ____
__ __ __ __
___ __ __ ___ ___
______________________________________________________________________________



















Use the arrow keys to position the MENU window as shown above.

PRESS "ENTER" to return to the main menu.



SAMPLE PROGRAM 19


Now we're ready to add the procedure objects to our menu options.

PRESS "P" from the main menu to activate the procedure library.

ENTER "DO EDIT" for our first menu option.


Add Edit/View Mailmerge Letters Reports Labels Utilities Quit

Add
DO EDIT



Procedure Library - Press F10 For Object Library - Press Ctrl/W To Exit















PRESS "PgDn" to move to our next menu option.

ENTER "DO LOOK" for our EDIT/VIEW menu option, and "PgDn" to continue.


Add Edit/View Mailmerge Letters Reports Labels Utilities Quit

Edit/View
DO LOOK



Procedure Library - Press F10 For Object Library - Press Ctrl/W To Exit














SAMPLE PROGRAM 21


Adam will ask us if we want to place any filter conditions over the
records. For our example we won't need any filters.

PRESS "ENTER" to skip this question.

Enter Filter Condition For Letters



You should see the following parameters inserted automatically into
the mailmerge menu option.

Mailmerge Letters
DO letters WITH "MAILLIST","NAME",""

Procedure Library - Press F10 For Object Library - Press Ctrl/W To Exit

PRESS "PgDn" to move on to the REPORTS menu option.

PRESS "F10" to access our library objects.

Use the ARROW keys to move to the REPORT.OBJ


Add Edit/View Mailmerge Letters Reports Labels Utilities Quit

Reports




Procedure Library - Press F10 For Object Library - Press Ctrl/W To Exit
Objects
ADAMLIBA.OBJ
TABLE.OBJ
REPORT.OBJ
PRINTER.OBJ
PACKFILE.OBJ
LABELS.OBJ
INVOICE.OBJ
USERHELP.OBJ
POPCAL.OBJ
DCODE.OBJ
LETTERS.OBJ
BACKUP.OBJ
MULTUSER.OBJ
ADAMLIBB.OBJ

PRESS "ENTER" to select the REPORT object.

The Adam MAIN MENU allows you to press the first letter of the items
to select that option. This only works for the MAIN MENU not using a
picklist type function such as the library objects.




SAMPLE PROGRAM 23


PRESS "ENTER" again to select the report format file MAILLIST.FRM.


Add Edit/View Mailmerge Letters Reports Labels Utilities Quit

Reports




Procedure Library - Press F10 For Object Library - Press Ctrl/W To Exit
Format File Objects
MAILLIST.FRM ADAMLIBA.OBJ
TABLE.OBJ
REPORT.OBJ
PRINTER.OBJ
PACKFILE.OBJ
LABELS.OBJ
INVOICE.OBJ
USERHELP.OBJ
POPCAL.OBJ
DCODE.OBJ
LETTERS.OBJ
BACKUP.OBJ
MULTUSER.OBJ
ADAMLIBB.OBJ


ENTER "CardFile Listing By Name" for our report heading.

Enter Report Heading
CardFile Listing By Name


PRESS "ENTER" to skip the filter condition question.

Enter Filter Condition For Report



The following parameter line will automatically be inserted into the
report procedure line.

Reports
DO report WITH "MAILLIST","NAME","MAILLIST.FRM","CardFile Listing By Name",""

Procedure Library - Press F10 For Object Library - Press Ctrl/W To Exit

PRESS "PgDn" to advance to the next menu option.

Now we are ready to attach our LABELS object to our main menu. This
is done the same way we did the REPORT object. You must be ready to
try this one by yourself. If you need help refer back to reports.




SAMPLE PROGRAM 25



Add Edit/View Mailmerge Letters Reports Labels Utilities Quit

Help Message
Add name to Card File.
Edit/View Card File.
Create/print mailmerge letters.
Print card file report.
Print mailing labels.
Utility menu.
Exit to dos.













PRESS "H" to add help messages to your menu.

PRESS "CTRL-W" to return to the menu.

PRESS "C" to save our first MENU window.

ENTER "MENU" for the object name, and "menu window" for the description.


____ ____ ___ ___ ____ ___ _ ____
__ __ __ __
___ __ __ ___ ___
______________________________________________________________________________


Add
Edit/View
Mailmerge Letters
Reports
Labels
Utilities
Quit




ObjectDescriptionStartupQuit
MENU menu window





SAMPLE PROGRAM 27



File Window Object Program Toolbox Quit

Browse
Lookup
PickList
Edit One
File Dir


Field List
NAME
ADDRESS
CITY
ST
ZIP
PHONE
MEMO


After you have selected the field called 'NAME'.

PRESS "ESC" to stop selecting fields.

Adam will ask us for the name of a procedure we want to call when we
press ENTER while on this field.

ENTER "EDIT" for the name of the window object to call, and press ENTER

Procedure to call before read
EDIT


ENTER "CardFile Lookup" for the title of our lookup window.

PRESS "ENTER" when done.

Enter Title For LOOKUP Object
CardFile Lookup


PRESS "ENTER" to skip the filter question.

Enter Filter Condition



PRESS "P" to tell Adam we want this lookup to be written as a procedure.

Write LOOKUP as Procedure or Function?
P






SAMPLE PROGRAM 29



____ ____ ___ ___ ____ ___ _ ____
__ __ __ __
___ __ __ ___ ___
______________________________________________________________________________


Add NAME
Edit/View
Mailmerge Letters
Reports
Labels
Utilities
Quit











____ ____ ___ ___ ____ ___ _ ____
__ __ __ __
___ __ __ ___ ___
______________________________________________________________________________

CardFile Lookup
Add NAME
Edit/View
Mailmerge Letters
Reports
Labels
Utilities
Quit








ObjectDescription
LOOK lookup window


PRESS "C" to save the lookup window.

ENTER "LOOK" for the object name.

ENTER "lookup window" for the object description.


SAMPLE PROGRAM 31


PRESS "B" until our edit window color changes to BLACK.

PRESS "U" for the UTILITY MENU and "W" for WINDOW.


File Window Object Program Toolbox Quit

Browse
Lookup
PickList
Edit One
File Dir

CardFile Lookup
NAME











MOVE the cursor down to the 'EDIT ONE' option and press ENTER.

PRESS "ENTER" to select our example database from the window.

PRESS "ENTER" to select the NAME index file.

PRESS "ESC" to tell Adam we do not want to select any other index files

PRESS "E" to tell Adam to write this window object as an EDIT window.

Write EDIT window or SAYS/GETS window?(E/SG)
E


ENTER "CardFile Window" for the title of our edit window.

Enter title for edit window
CardFile Window


PRESS "ENTER" twice to skip the initialize and calculation procedures.

Enter initialize procedure name


Enter calculation procedure name





SAMPLE PROGRAM 33



NAME










Adam will prompt us to enter a picture template for the current field
and a valid clause. The only field that will need a picture template
for our example program is "PHONE". We can use "1-999-999-9999" when
we select the PHONE field.

PRESS "ENTER" twice to skip the picture and valid prompts.

Enter picture template



Enter valid clause



Continue getting fields and placing them in your window until all the
fields have been selected.

The last field which is our MEMO field will automatically get a valid
clause, which calls one of our built in functions in the ADAMLIB.OBJ
file.

When you have selected all the fields from the database, your screen
should look something like the one shown below.


NAME

ADDRESS

CITY ST ZIP

PHONE MEMO




PRESS "ESC" to exit the utility menu.

PRESS "S" from the main menu to size our edit window.

When you have finished sizing the window it should look like the one
on the next page.


SAMPLE PROGRAM 35



____ ____ ___ ___ ____ ___ _ ____
__ __ __ __
___ __ __ ___ ___
______________________________________________________________________________

CardFile Lookup
Add NAME
Edit/View
Mailmerge Letters
Reports
Labels
Utilities
Quit CardFile Window
NAME

ADDRESS

CITY ST ZIP

PHONE MEMO

ObjectDescription
EDIT edit window


PRESS "C" to save the EDIT window.

ENTER "EDIT" for the object name, and press ENTER.

ENTER "edit window" for the description, and press ENTER.


MOVE ____ ___ ___ ____ ___ _ ____
SIZE __ __ __ __
FORE __ __ ___ ___
BACK _______________________________________________________________________

CardFile Lookup
Add NAME
Edit/View
Mailmerge Letters
Reports
Labels
Utilities
Quit CardFile Window
NAME


THIS IS YOUR MEMO EDIT WINDOW. USE THE MINIATURE ADAM MENU TO SIZE
THE WINDOW AND POSITION IT ON THE SCREEN. YOU SHOULD KNOW HOW THE
COMMANDS IN ADAM WORK TO TRY THIS ON YOUR OWN... PRESS ESC TO EXIT





SAMPLE PROGRAM 37



Backup Card File Printer Setup Calendar DosAccess

Backup Card File




Procedure Library - Press F10 For Object Library - Press Ctrl/W To Exit
Backup DBFtters Objects
MAILLIST.DBF ADAMLIBA.OBJ
TABLE.OBJ
Utilities REPORT.OBJ
Quit CardFile Window PRINTER.OBJ
Backup Card File NAME PACKFILE.OBJ
Printer Setup LABELS.OBJ
Calendar ADDRESS INVOICE.OBJ
DosAccess USERHELP.OBJ
CITY POPCAL.OBJ
DCODE.OBJ
PHONE LETTERS.OBJ
BACKUP.OBJ
MULTUSER.OBJ
ADAMLIBB.OBJ



Backup Card File Printer Setup Calendar DosAccess

Backup Card File
DO backup WITH "MAILLIST","W+/BG "



Procedure Library - Press F10 For Object Library - Press Ctrl/W To Exit
Mailmerge Letters
Reports
Labels
Utilities
Quit CardFile Window
Backup Card File NAME
Printer Setup
Calendar ADDRESS
DosAccess
CITY ST ZIP

PHONE MEMO










SAMPLE PROGRAM 39



Backup Card File Printer Setup Calendar DosAccess

Calendar




Procedure Library - Press F10 For Object Library - Press Ctrl/W To Exit
Mailmerge Letters Objects
Reports ADAMLIBA.OBJ
Labels TABLE.OBJ
Utilities REPORT.OBJ
Quit CardFile Window PRINTER.OBJ
Backup Card File NAME PACKFILE.OBJ
Printer Setup LABELS.OBJ
Calendar ADDRESS INVOICE.OBJ
DosAccess USERHELP.OBJ
CITY POPCAL.OBJ
DCODE.OBJ
PHONE LETTERS.OBJ
BACKUP.OBJ
MULTUSER.OBJ
ADAMLIBB.OBJ



Backup Card File Printer Setup Calendar DosAccess

Calendar
DO popcal



Procedure Library - Press F10 For Object Library - Press Ctrl/W To Exit
Mailmerge Letters
Reports
Labels
Utilities
Quit CardFile Window
Backup Card File NAME
Printer Setup
Calendar ADDRESS
DosAccess
CITY ST ZIP

PHONE MEMO










SAMPLE PROGRAM 41



____ ____ ___ ___ ____ ___ _ ____
__ __ __ __
___ __ __ ___ ___
______________________________________________________________________________

CardFile Lookup
Add NAME
Edit/View
Mailmerge Letters
Reports
Labels
Utilities
Quit CardFile Window
Backup Card File NAME
Printer Setup
Calendar ADDRESS
DosAccess
CITY ST ZIP

PHONE MEMO

ObjectDescription
UTIL utility menu



If you made it this far you have a pretty good understanding of how
ADAM works. Keep experimenting with ADAM you'll be surprised at the
different type of programs that ADAM can generate.

Adam's capabilities go far beyond what we can show in this sample
program. It is powerful enough to create complete invoicing systems
using multiple database files.

Anything that can be hand written by a professional programmer can
be done with Adam, only faster! All there is left to do, is to let
Adam write your program for you.

PRESS "Q" to exit Adam.

PRESS "Y" to generate the program file.

ENTER "your name here" for the author, after all you did help a little

Write program file(Y/N)?
Y


Enter Author(s) Name
Your Name Here


Now just sit back and watch Adam work!



ANIMATION 43


When you save the pictures, Adam creates an animation file with a
.PRG extension. This file can now be called from inside your Adam
program using the following syntax.

Lets say for example that you have created a title screen for your
program and this screen will call our animation file, after it has
displayed our title. We use the following command entered in the
QUIT position when we save our title screen.

ACT_1 WITH 0,13

The command entered above assumes that we saved our animation file
with the name 'ACT_1'.

Adam provides the 'DO' part of the command automatically. The next
parameters tell the animation program to keep running until 'ENTER
is pressed.

The first parameter controls a timer for the animation. A value of
5 will keep the animation sequence running for about one second or
a value of 50 for about 10 seconds of animation.

You can use both the timer and keystroke at the same time. This is
the same as saying, run for 10 seconds or until the 'ENTER' key is
pressed, which ever comes first.

The keystroke values are the same as the normal INKEY() values for
the keyboard. Below is an example of an animation sequence that
will display a marque type effect.


* * * * * * * * * * * * * * * * * * * * *



* * * * * * * * * * * * * * * * * * * * *



* * * * * * * * * * * * * * * * * * * * *


This type of animation requires only three pictures to create just
the effect we want.

Animation and special effects are really beyond the scope of this
manual. There are many good books available on the subject of ani-
mation and computer graphics. At first glance it appears that with
the graphics characters in the IBM computer, it would be very hard
to create any type of animation. But it just takes a little bit of
imagination and you'll be an expert in no time!






FONT LIBRARY 45


Adam contains a special file called 'ADAMFONT.FNT' which is just a
normal ASCII file. This file contains the different fonts that are
available in Adam.

The fonts can be accessed by pressing the F10 function key inside
the TEXT mode. Below is an example of the fonts that are already
available when you first receive Adam.


SAMPLE 3x3



BOLD 3x4
_



SHADOW 4x4
____ ____ ____ ___ ____ ____ ____


_ __ _ __ _

JUMBO 5x6








The format used is the name of the font followed by the height and
width of the font. On the next line after the font name is where
you actually layout your font design.

Font size can be as large as a 9x9 letter. The ability of Adam to
read the font is limited to the 26 upper case letters only. But if
you have to have both upper and lower case letters, you could make
one line of upper case letters and one line of lower case letters.

Both these lines could be related to the same font design. This is
one way to accomplish upper and lower case font styles.

Pressing the F10 key while in the TEXT mode will activate the font
library. Press the space bar to view the font styles, and 'ENTER'
key to select a font.

Once you have selected a font style, you will be prompted to enter
the text or message. When done press the enter key and the message
will be inserted into the TEXT window at the current cursor row.

Use the INSert key to position the letters inside the window. You
can also press the ESC key while in the size mode to center text.


OBJECT FILES 47



Adam includes the following object files that are designed to fill
most of the requirements needed for maintaining a database.


ADAMLIBA OBJ 13896 11-25-89 12:39p
ADAMLIBB OBJ 13555 12-22-89 1:39p
BACKUP OBJ 1017 11-25-89 12:36p
CARDEX OBJ 6432 11-27-89 9:13a
DCODE OBJ 5572 11-25-89 12:39p
LABELS OBJ 2661 11-25-89 12:37p
LETTERS OBJ 7366 11-25-89 12:39p
MULTUSER OBJ 4524 11-25-89 1:12p
PACKFILE OBJ 1050 11-25-89 12:38p
POPCAL OBJ 6925 11-25-89 1:11p
PRINTER OBJ 3052 11-25-89 1:07p
REPOFORM OBJ 2935 11-25-89 12:40p
REPORT OBJ 2724 11-25-89 12:38p
TABLE OBJ 8150 11-25-89 12:38p
USERHELP OBJ 3506 11-27-89 8:58a


While generating your programs, Adam will automatically use these
three library objects.

ADAMLIBA.OBJ
ADAMLIBB.OBJ
MULTUSER.OBJ

Adam will also automatically use any library objects starting with
ADAMLIB*.OBJ. This gives you the ability to add new library files
as you need them.

Adam will always use any library objects that have been flagged in
Adams procedure library with a '' symbol. The only difference is
that when Adam finds a file starting with 'ADAMLIB' it will flag
these files automatically when you first run the Adam program.

One of the features designed in Adam is that these library objects
do not have to be documented as far as how they are called, or how
many parameters to pass to them.

About the only information you will need in order to use them, is
what each file can be used for. Most of the time you will be able
to determine this just by the files name. The following pages list
all the library object files, what procedures or functions are in
each file, and what each procedure or function is used for.

Window objects can be deleted just by editing the object, and then
saving the object without an object name. A blank object name will
force Adam to delete the object from the list and pack the ".DAT"
program data file.





OBJECT FILES 49


ADAMLIBB.OBJ
____________

FILTER Controls filter condition database, used to store
users filters.

GETEXPR Used by FILTER procedure.
GETPHRA Used by FILTER procedure.
GOTOREC Used by FILTER procedure.

OPENFILE() Opens a database in the next available workarea for
single or multiuser mode.

OPENFILE( 'filename' )

MAKEDBF Create a database structure. See example in LETTERS
.OBJ program.

DBMENU() Popup menu function returns file selection in 'dbf'

DBMENU( rt,ct,rb,'color','mask' )

FILEOK() Checks if file exists and prompts user to overwrite
if desired.

DELAY() Time delay function used by animation code. A count
of 5 is about one second on a 8mhz AT.

DELAY( 50 )

MOVE() Scroll text message at selected screen location.
The WINDOW WIDTH is the area to contain the message
inside of.

MOVE( 'message',row,col,window width )

PLAYIT() Plays music in Adam format created with MUSIC MAN.
WAITFOR() Waits for a keypress.


BACKUP .OBJ Provides file backup utility.
CARDEX .OBJ Index file database for name and address.
DCODE .OBJ Prints bar code listings for code39.
LABELS .OBJ Prints customer mailing labels.
LETTERS .OBJ Mini word processor with mailmerge.
MULTUSER.OBJ Contains all of Adams multiuser functions.
PACKFILE.OBJ Removes deleted records and re-indexes file.
POPCAL .OBJ Provides a pop-up calendar.
PRINTER .OBJ Printer configuration utility.
REPOFORM.OBJ Allows end user to select field list for reports.
REPORT .OBJ Pre-designed report utility.
TABLE .OBJ Provides automatic browse and edit window.
RESTORE .OBJ Automatic file restore utility.
USERHELP.OBJ Works similar to 'LETTERS.OBJ' but provides documentation.
MAILLIST.OBJ Creates mailmerge files for word processors.


TOOLBOX 51


The newest addition to Adam is the TOOLBOX option in the utilities
menu. There are two options available from the TOOLBOX.

The first option is called INKEY(). This option allows you to read
the inkey() value of any key pressed. Now you no longer have to
keep digging out your keychart every time you forget what inkey()
value is returned for a special program function.


File Window Object Program Toolbox Quit

Inkey()
Sequence



File Window Object Program Toolbox Quit

Key = 13
Sequence



The second TOOLBOX option is called SEQUENCE, and can be used when
you need to control the order of the GETS in a custom EDIT window.


File Window Object Program Toolbox Quit

Inkey()
Sequence


The sequence command will prompt you to sequence the fields by ROW
COL or NUMber. If you answer 'R' or 'C' for row or col the operat-
ion is automatic.

If you answer 'N' for NUM, then Adam will display your EDIT window
on the screen and display a prompt on the bottom line of the edit
window to 'Enter sequence numbers'.

You can scroll through the fields using the arrow keys, entering a
number from 1 thru 46 to manually control the order of the GETS.

Press CTRL/W or PgDn to exit the sequence operation.



Sequence by ROW, COL, NUM or QUIT? [R/C/N/Q] N








PROGRAM DEFAULTS 53


From the utility menu under the PROGRAM option we have the ability
to configure some of Adams defaults. For Macro key and regular or
network code see the examples on pages 4 and 8.


File Window Object Program Toolbox Quit

Macro Key
Regular
Network
Author
Windows
Status
ErrorCk
Directory
Configure


AUTHOR - Allows you to set the default author name. This keeps you
from entering it, each time you create a program in Adam.

WINDOWS - The window command lets you set Adams default window size
colors, sound and type attributes.

Window Defaults
RT CT RB CB COLOR TYPE SOUND TITLE
0 0 10 20 BG+/B 2 0 GR+/R


STATUS - Will toggle the window position display ON/OFF while you
are in the MOVE or SIZE modes.

ERRORCK - Toggles Adams built in error checking while designing new
objects. This is a good idea to leave on if your new to
Adam and also if your an expert Adam user.

If your an expert and never make any mistakes it won't be
in the way and you'll never see it...right? I've included
a sample of what an error check message looks like, just
in case you never see one.

MENU ERROR
Unbalanced menu options and menu procedures!
Any Key To Continue

DIRECTORY - Set a default work directory. Adam will use this for all
read / write operations. You are still required to be in
the Adam subdirectory where Adam and the Object files are
located while using Adam.

CONFIGURE - Saves your defaults to the ADAM.CFG file. NOTE: Before
saving your defaults, make sure the window defaults are
correct. The current window size and color is stored in
the window default, which might not be the default you
want Adam to use when first started.


A LOOK INSIDE ADAM MENUS 55


All windows start as a TEXT window object UNTIL WE
Append ADD A PROCEDURE CALL which changes our window to a
Browse MENU OBJECT.
Edit
Pack We can also change the text windows to a different
Quit type of object by going into the UTILity menu, and
selecting the WINDOW function.

The window option will let us create BROWse, FILE,
LOOKup, PICKlist, CALL or custom EDIT windows.

MENU window objects are created by adding menu op-
tions and procedures to a regular text window.
Append
Browse After you add the menu options you would size your
Edit window to fit the text. Next you should select the
Pack PLIB (procedure library) option and add your calls
Quit to the menu options.


Append
DO ADD



Procedure Library - Press F10 For Object Library - Press Ctrl/W To Exit

Adding your procedure calls might just be a matter of inserting a
command to call another object that you will create later.

In the example above, the 'DO ADD' command will be a call to a custom
EDIT window which we would make at a later time. Use the 'NS' command
in a menu procedure line to make a menu item non-selectable.


Browse




Procedure Library - Press F10 For Object Library - Press Ctrl/W To Exit
Objects
ADAMLIBA.OBJ
The menu option might also require that we call an ADAMLIBB.OBJ
object from the OBJECTS LIBRARY. Pressing the F10 BACKUP.OBJ
key will display all objects that came with your CARDEX.OBJ
Adam program. CLIPLOGO.OBJ
DCODE.OBJ
It will also display objects that you have created INVOICE.OBJ
yourself with Adam or written by hand. The example LABELS.OBJ
here will attach the 'TABLE.OBJ' procedure for our MAILLIST.OBJ
BROWSE menu option. POPCAL.OBJ
PRINTER.OBJ
TABLE.OBJ



A LOOK INSIDE ADAM BROWSE 57



FileWindowObject Program Toolbox Quit

Browse
Lookup
PickList
Edit One
File Dir
Call Obj


BROWSE File
DBP.DBF

Index Order
DBP.NTX


The BROWSE window provides a scrolling window to view, edit, pack,
add and delete records. It requires a database file and index file
to work.

Field List After you have selected a database and index file, you
QTY are provided a list of fields to place into the browse
STOCKNO window.
DES
VENDOR As you select each field you will be asked if there is
COST a procedure you want to call before the READ. This can
PRICE be used to attach any LOOKups, PICKlists or initializ-
ORDER ation routines to the field.
FLAG


Procedure to call before read



When you have selected all the fields you want, press ESC to exit
the select field window. Adam will prompt you to enter a title for
the BROWSE window.

Enter Title For BROWSE Object



After entering your title, you can enter any filter conditions and
initialization, calculation procedure names for the browse window.

Enter Filter Condition



Enter Initialize Procedure Name




A LOOK INSIDE ADAM LOOKUP 59



FileWindowObject Program Toolbox Quit

Browse
Lookup Lookup windows require a database and index file to
PickList work. If these two files are not selected Adam will
Edit One not allow you to continue the window design.
File Dir
Call Obj Adam will display a list of the fields in your data
base file to select the field or fields you want in
in the lookup window.

Normally you will only want one field displayed in the lookup, but
under certain conditions you might want to display a couple, which
gives the user a better view of the information.

The lookup should always contain the key index field so that users
can quickly search for information by pressing the first letter of
the key field contents.

After selecting the field(s) for the lookup window, Adam will ask
if you want the lookup to call another procedure if the ENTER key
is pressed.

You can also set a filter condition over the lookup window to show
only selected records. Now you can give your lookup window a title
and decide if you want the lookup to be written as a procedure, or
a function.

This depends of how you want the lookup to work. If you want the
lookup to pop-up from any place in the 'EDIT' window when the user
presses the F1 key, then your MENU would call the EDIT window like
the following example, and the LOOKUP would be written as a proce-
dure.

SET KEY 28 TO LOOKUP
DO EDIT
SET KEY 28 TO

If you wanted the LOOKUP window to pop-up only when the user edits
a selected field, the lookup would be written as a function and be
called by placing a VALID clause in the EDIT window field.

LOOKUP()

The last option asks if you want to link this lookup window to any
SAYS/GETS window. This can be used to display a complete record on
the screen while the user scrolls through the lookup window.


Link this LOOKUP to a SAYS/GETS window? No Yes






A LOOK INSIDE ADAM EDIT 61



FileWindowObject Program Toolbox Quit

Browse
Lookup The EDIT window allows you to design your own input
PickList screens just the way you want them to look. An EDIT
Edit One requires a database and index file to work.
File Dir
Call Obj When designing your EDIT window you have the option
of creating an EDIT window or just a SAYS/GETS type
window.

The SAYS/GETS window just displays the records on the screen, they
can not be edited.

The next step is to title your EDIT window and enter any procedure
names for initialization or calculations you want performed before
or after the user exits the EDIT window.

Next you will select the menu to use for your EDIT window. If you
have not designed any of your own edit menus then you can just use
the default menu that comes with Adam.

Put Field When designing a custom 'EDIT' window the window
QTY must be sized first. If you don't know the size
STOCKNO your window will be, or are not sure how large a
DES space you'll need, just make the window the full
VENDOR screen or half the screen.
COST
PRICE You can always make the window fit the fields
ORDER after you have placed them in the window. As you
FLAG place each field in the window you can add your
own picture template and valid clause.


QTY










Enter picture template



Enter valid clause






A LOOK INSIDE ADAM FILE 63



FileWindowObject Program Toolbox Quit

Browse
Lookup The 'FILE' window provides a quick and easy way to
PickList create a popup Directory listing of all or selected
Edit One files.
File Dir
Call Obj When the user selects a file from the listing their
selection will be returned if the variable 'file'.


Enter File Directory Window Title
DIRECTORY


Enter File Directory Window Mask?
*.*


DIRECTORY
The FILE directory window only requires a title for
the window and a file mask for the directory list.

The window will automatically be sized to the right
width for file names. All you have to do is adjust
the length, colors and location you want the window
to popup at.

An example of how to use a 'FILE' window would be a
MENU object procedure which contains the following:

file = ""; DO FILELIST; IF "" <> file; USE &file; ENDIF

Use the semicolon to seperate multiple commmands on the lines in a
MENU procedure. Adam will convert the semicolons to linefeeds and
carrage returns and indent each line (nine) spaces to maintain the
proper code indentation.

This command works on all lines of a MENU procedure. It has been
provided to give you more room for menu procedure code.


If the first procedure line starts with a 'DO ' then it
will override the semicolon command.

NOTE: DO NOT USE SEMICOLONS IF THE LINE STARTS WITH A 'DO'. This command
on the first line forces Adam to write all lines out as one long
continious line.

This is used for procedures that require a long line of parameters
to be passed to them.






A LOOK INSIDE ADAM DEMOCODE 65


The 'DEMO' code option in the program utilities menu generates the
following code for BROWse, PICKlist, LOOKup and EDIT windows.

* ----------------------------
* Check For 20 Record Limit.
* ----------------------------
IF RECCOUNT() > 20
USE
SELECT (area)
RETURN
ENDIF

This will limit the user to 20 sample records in these procedures.
Not every possible function in your program is protected, but with
out these windows being fully fuctional the programs use is pretty
limited.

ADAMHELP


Adam can assist you in designing context sensitive help windows in
your programs. The steps used to create pop-up help windows are
listed below.

1. Design your program ( your program should be completed as much
as possible ). Note: Because Adam generates program objects in
the order that you design them, you do have the ability to go
back into Adam and add new objects without interfering with the
help windows, but this is not a practice we recommend.

2. Set ADAMHELP ON in the program utility menu. When you generate
your program Adam will add the following line to your program:

SET KEY 28 TO ADAMHELP && Remove after building help screens!

3. Compile your program and run it. Press the F1 key when you want
to provide a help window. Press Alt/M to move the help window
and Alt/S to size the window. When your window is done press
Ctrl/W to save the help window.

4. After all the help windows are designed remove the SET KEY line
from your program and re-compile.

The ADAMHELP.OBJ serves as a double purpose help procedure. It has
two procedures which are called 'adamhelp' and 'help'. After you
have designed your help windows and removed the SET KEY TO command
the F1 key will automatically default to the user help procedure.

The ADAMHELP.OBJ will automatically create three files which are
called 'HELPFILE.DBF', 'HELPFILE.NTX' and 'HELPFILE.DBT' which are
used to store the help windows in.






A BRIEF HISTORY 67


The following information is provided to give you a look into how,
and why Adam was created. It's been over two years since the first
concept of Adam began.

I was working with a template system called VIEWGEN, developed by
a friend of mine, Luis Castro. At the time I was deeply involved
with creating and modifying templates for this system.

Over the course of the next two years, an idea crept into my mind
about a new kind of software. I envisioned a program development
system that had a built in intelligence.

I kept thinking about a program or procedure that could reshape it
self sort of a muli-purpose object that could become a totally new
object based on certain conditions or information that we gave it.

That's when the term SMART OBJECTS, first entered into the picture
and totally started to consume my thoughts. What I was looking for
was an object that could communicate with the developer and the
development system. Kind of like passing question and answers back
and forth between the two.

At this time I did not have any idea about how all this would ever
work, I just knew there had to be a better way of creating custom
designed programs. Not just a database program, but any kind of
program or utility.

Meanwhile I kept working on templates and custom programming jobs,
but I also started writing all kinds of small routines. One was a
menu generator, and another was a screen design tool, etc. etc...

I had no immediate use for these small utilities, so I just filed
them away. This went on for about the first year and then all of a
sudden it dawned on me... Why not take regular procedures and use
the seldom used 'NOTE' command in Clipper which stands for comment
and use this as a way to pass information from the procedure, to a
developer. Besides almost everyone uses an asterisk '*' for their
program comments anyway.

The name for Adam came almost at the same time. I though of what
I was trying to accomplish and came up with 'ADVANCED DATA ACCESS
MANAGER' or ADAM for short.

We'll by the time I had the name for the program I already had one
year of tried and tested routines that I needed to make Adam work!

The only strange thing about all this was that I found myself with
programming utilities that only a program development system like
Adam could use which means I wrote specific routines for a program
that did not even exist at the time.

I hope you find Adam as interesting and profitable as I do.

Tom Dempsey



INDEX 69


-F-

F2 function key, 4
FCONTENT(), 48
Features included in Adam, 1
File backup utility, 49
FILE INFOrmation, 66
FILEOK(), 49
FILE windows, 63
FILM, 11
FILTER, 49
FONT LIBRARY, 45
Font size, 45
FORE, 3
Fore command, 3
Formulas entering, 62

-G-

GETANS(), 48
GETS, 11

-H-

HELP, 3
Help command, 3
HOW TO CREATE OBJECTS, 46

-I-

IMPORT, 8
IMPORTING OBJECTS, 44
Index database file, 13
INKEY(), 51

-K-

Keyboard macro, 4

-L-

Label format, 15
Library object files, 47
LOOK, 11
LOOKUP WINDOW DESIGN, 26, 59












INDEX 71


-S-

Scroll text message, 49
SET KEY commands, 11
Sequence, 51
Shutter release, 42
SIZE, 3
Size command, 3
SMART OBJECTS, 1, 7
Sort array, 48
STATUS display, 53
Stretch the window, 15

-T-

Test for printer ready, 48
TEXT, 3, 11
Text command, 3
Time delay function, 49
Timer for the animation, 43
TIPS, 10
Title screen, 15
To call a function, 11
TODAY(), 48
TOOLBOX, 51
TRIM(ans), 48
Types of objects, 11
Types of windows, 2

-U-

Upper and lower case font styles, 45
Using the F1 camera key, 42
UTIL, 3
Util command, 3

-V-

View the font styles, 45

-W-

WAITFOR(), 49
WINDOW, 48
Window dir, 53
Window object import, 8, 44
Window types, 5, 54
Write your program, 41

-Z-

Zoom type window, 48
ZOOMIT(), 48
ZOOM(), 48



 December 5, 2017  Add comments

Leave a Reply