""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
RUN ALL YOUR SOFTWARE FROM AN R:BASE MENU
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
PRODUCT : R:BASE VERSION : 3.1
CATEGORY : DAI SUBCATEGORY : PROGRAMMING
""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""
From John Henry Kuhlmann, John Henry Kuhlmann, Inc., 6140 - 93rd SE,
Mercer Island, WA 98040. John's been working with R:BASE for over 10
years.
Microrim's latest R:BASE 3.1 (Upgrade EXPRESS 3.1A), includes an
intriguing new RETURN option on the ZIP command. The RETURN option
gives you Dynamic Application Integration (DAI) to connect other
software to your R:BASE application.
Now you can run any software--a dBASE application program, word
processing, spreadsheet, or even graphics--from inside R:BASE. For
example, you can develop an application that enables a user to run an
accounts payable dBASE application, mail-merge letters using Microsoft
Word, generate graphs of R:BASE data using Harvard Graphics, and run
worksheets using Lotus 1-2-3--all from the same R:BASE menu. You can
use R:BASE as your central application, listing other software
programs as choices on the R:BASE menu.
The RETURN Option
"""""""""""""""""
ZIP RETURN allows processing to switch to another software product and
then return to the same spot in your R:BASE application. The RETURN
option gives you the full system memory access of ZIP ROLLOUT and the
transparency of the regular ZIP command.
ZIP RETURN Internal Workings
""""""""""""""""""""""""""""
When R:BASE encounters a ZIP RETURN during application execution, it
first saves the current R:BASE environment in a temporary file. Then
it closes all database and other files, drops any open cursors, exits
R:BASE, and passes control to RBZIP.EXE--thus freeing up the memory
that R:BASE was using. The process of passing control to RBZIP also
passes the name of the temporary environment file and the remainder of
the commands that follow the ZIP RETURN.
Next, RBZIP executes the program named in the command line; this can
be COMMAND.COM for executing batch files, or it can be any DOS .COM or
.EXE program referenced directly or accessible along the DOS system
path. When the called program finishes executing, R:BASE returns
control to RBZIP.EXE, and RBZIP executes R:BASE with the environment
file as a parameter. R:BASE reads and deletes the temporary
environment file, and restores the system to it's pre-ZIP state. All
this serves to place the execution of R:BASE, or of the R:BASE
application, directly at the next command in sequence. R:BASE then
continues to execute the commands following the ZIP RETURN command.
Direct Approach
"""""""""""""""
Use ZIP RETURN to execute any .EXE or .COM program directly, or use it
to execute a DOS batch file by using COMMAND.COM (a DOS .COM program
that executes batch file statements). For example, to run the
WordPerfect word processing program directly from inside R:BASE, enter
this command at the R> prompt:
ZIP RETURN wp
When you exit from WordPerfect, you'll return to R:BASE, which will be
in the same state as when you left it. It's easy to pass parameters
too. Here's the syntax for running an .EXE program directly from the
R> prompt:
ZIP RETURN c:\path\exe_name param1 ... paramN
Here are some examples:
ZIP RETURN fastback
ZIP RETURN c:\word\word d:\doc\region.doc
ZIP RETURN c:\norton\nu
Batch File Approach
"""""""""""""""""""
Use the batch file approach (passing control to COMMAND.COM to run a
batch file) when you need to run an R:BASE 2.11 application from the
R:BASE 3.1A menu or when you need to alter the DOS environment. For
example, the DOS batch file can set the path, change the default
drive, chain the execution of multiple programs together, and perform
a myriad of other batch file functions. Here's the syntax for the
batch approach:
ZIP RETURN COMMAND /C filename.bat param 1 ... param n
Run 2.11 Application from 3.1A
""""""""""""""""""""""""""""""
To run an R:BASE 2.11 application from inside R:BASE 3.1A, follow
these three steps:
STEP 1
======
Ensure that you have your 2.11 database and application files and the
following 2.11 program files on your computer in a directory separate
from your R:BASE 3.1A files.
RBASE.EXE RBASE.OVL RBASE.HLP RBASE1.MSG RBASE2.MSG
DEFAULT.MSG COMMON.MSG RESTORE.CMD STNDRD.OVL
These files occupy less than one megabyte of disk space. They
represent the minimum needed. If you want additional R:BASE 2.11
functionality, you must add the appropriate program file. For example,
to create or modify an Application EXPRESS application, you need
APPEXP.HLP, APPEXP.MSG, EXPRESS1.OVL, and EXPRESS2.OVL.
STEP 2
======
Create a batch file (R211.BAT) to run R:BASE 2.11. For example, say
the 2.11 program files are in the directory RB211, the 3.1A program
files are in the directory R31A, and the database and application
files are in the directory DBFILES. In this case, the R211.BAT file
might contain these commands:
@ECHO OFF
PATH=C:\R211
CD \R211\dbfiles
RBASE -R
CD \R31A\dbfiles
PATH=C:\R31A
This file sets ECHO OFF to keep the commands from displaying on
screen. Then it sets the path for R:BASE 2.11 and changes to the
directory where the 2.11 database and application files are stored.
Then it starts R:BASE 2.11 and uses the RBASE.DAT to start the
application. When you exit from the 2.11 application, the next line in
the batch file changes to the directory where your R:BASE 3.1A
database and application files are stored, and then it resets your
path to R:BASE 3.1A.
STEP 3
======
Include the following line in your 3.1A application file (or enter it
at the R> prompt):
ZIP RETURN COMMAND /C r211.bat
The ZIP RETURN returns you to the line following the ZIP RETURN in
your R:BASE 3.1A application file. You can specify a drive and
directory if the batch file isn't in the current directory:
ZIP RETURN COMMAND /C d:\dirname\r211.bat
Putting Software on the Menu
""""""""""""""""""""""""""""
You can put your external software programs right on the R:BASE
Applications menu by creating an .APP file, and using CODELOCK to
create an .APX file.
For example, you can add WordPerfect to the R:BASE Application menu by
following two steps. First, use the R:BASE Editor to create a file
named WP.APP containing these lines:
$COMMAND
WP
ZIP RETURN wp
RETURN
Next, use CODELOCK on the application file (WP.APP) to create a
procedure file (WP.APX) by following this procedure:
o Start CODELOCK at the R> prompt or the operating system prompt.
o Choose "Convert an ASCII application file to a binary procedure
file."
o Enter WP.APP as the name of the ASCII application file and WP.APX
as the name of the procedure file.
o Choose Exit.
The R:BASE Applications menu will now include a WP option when your
current directory holds the WP.APX file.
Notes
"""""
Keep the following in mind when adding software to your R:BASE menu:
o The .APX file must be in your current directory.
o The second line of the .APP file must match the name of the .APP
and .APX files. It's the name that appears on the R:BASE
Applications menu. If you want LETTERS to appear on the menu
instead of WP; name the files LETTERS.APP and LETTERS.APX, and
make LETTERS the second line of .APP file.
o You can include the path following the ZIP RETURN command in your
.APP file for some programs if the software you want to run isn't
already on your path. For example, if you keep WordPerfect on D:
in a directory named WP but run R:BASE from C:, make this the
third line of the .APP file:
ZIP RETURN d:\wp\wp
o Be sure the name of the file you specify with ZIP RETURN is the
name of the program's .EXE file.
o If you prefer, you can have your .APP file call a batch file that
sets the path before running the application and then restores
the path when you leave the application as was done to run R:BASE
2.11 from R:BASE 3.1.
o R:BASE displays--in the Applications menu--the list of .APX files
in the current directory. Therefore, you must be in the directory
that holds a given .APX file in order to see it on the
Applications menu.
o ZIP RETURN opens a new world of possibilities. For example, you
can unload a selected subset of data from an attached dBASE III
table into an output file, invoke Microsoft Word 5.5, and then
use the file as a name list to mailmerge into an existing Word
letter that you selected from an R:BASE dynamic menu in the
R:BASE application.
Considerations
""""""""""""""
Here are some considerations to keep in mind when you use ZIP RETURN:
o RBZIP remains memory resident during the execution of the
software program you zipped to. But RBZIP only takes up a tiny
amount of the available system base memory, approximately 12-15K.
o When you execute ZIP RETURN, R:BASE closes all files and drops
all open cursors. If you need the cursors, you must redeclare
them upon return from the ZIP RETURN.
o ZIP RETURN doesn't put a DOS error level value into the R:BASE
error variable as does ZIP.
o When ZIP RETURN returns control to an application, it can't
return to the same menu selection that was chosen to invoke the
ZIP RETURN command. ZIP RETURN returns to the first choice on the
application's main menu.
Conclusion
""""""""""
ZIP RETURN gives you Dynamic Application Integration. Now you can take
full advantage of the capabilities and power available in other
programs in your R:BASE application. DAI enables developers and users
to precisely tailor an application to retain prior investments while
adding new enhancements.