home *** CD-ROM | disk | FTP | other *** search
- ╔══════════════════════════════════════════════════════════════════════╗
- ║ CALC(DB) 1.0 ║
- ║ April 26, 1991 ║
- ╚══════════════════════════════════════════════════════════════════════╝
-
- Since the printing of the User's Manual for CALC(DB) a number of new
- or updated features have been added. This new stuff is documented
- here and
-
- SHOULD BE PRINTED FOR FUTURE REFERENCE!
-
- The next generation of the manual will have all these updates
- incorporated but for now this is the *ONLY* place that they are
- documented.
-
- A brief table of contents is supplied for easy reference.
-
- Requirements
- New @function: @UDF
- New Macro Commands
- {REVERT}
- {RECALCUDF}
- {EXIT}
- Misc. Macro Stuff
- New Menu Commands
- Worksheet-Revert
- Worksheet-Global-Recalc-UDFs
- New API Functions
- Memory Management
- Important Notes
- Credits
-
-
- ╔══════════════════════════════════════════════════════════════════════╗
- ║ Requirements ║
- ╚══════════════════════════════════════════════════════════════════════╝
-
- CALC(DB) requires Clipper version 5.01 or greater. The DEMO program
- requires expanded memory to work with all the example spreadsheets.
-
-
- ╔══════════════════════════════════════════════════════════════════════╗
- ║ @UDF ║
- ╚══════════════════════════════════════════════════════════════════════╝
-
- CALC(DB) introduces a new @Function to the spreadsheet world:
-
- @UDF
-
- This function can be used to call a Clipper UDF directly from a
- spreadsheet formula. The return value from the UDF is placed in the
- cell as its value.
-
- In spite of its apparent size, @UDF is *NOT* A MINOR ADDITION!
-
- In fact, through this @function you can access the full power of Clipper
- as an integrated part of your system.
-
- The biggest advantage to using @UDF over an embedded UDF in a macro is
- that the @UDF will be called every time data is changed or recalculated
- in the worksheet. This, in essence, gives you the power of an
- event-driven engine from within Clipper.
-
- Take a look at the sample spreadsheets included with CALC(DB) to get
- some idea of the power inherent here. Also, read the next few
- paragraphs carefully to understand the current limitations of this
- function.
-
- The calculation of @UDF functions is controlled by the Object Variable
- cdCalcUDF in the Spreadsheet Object. When cdCalcUDF is set TRUE all
- @UDFs are recalculated whenever the spreadsheet is modified.
-
- The syntax for @UDF is very similar to the syntax for calling Clipper
- UDFs from macros. The Clipper function should appear as it would be
- called from within Clipper code. For example:
-
- @UDF(MEMORY(0))
-
- would call the Clipper MEMORY() function and place the return value in
- the cell. As with UDFs called from macros, the current Spreadsheet
- Object is passed as a final parameter to the function you call using
- @UDF.
-
- @UDFs must be used alone in a cell, and cannot be nested within normal
- @Functions. To use the return value from an @UDF in another formula,
- simply place the @UDF in its own cell and reference the cell from the
- formula.
-
- NOTES:
-
- @UDFs will not appear if the spreadsheet is read using another
- spreadsheet program. Also, if a spreadsheet containing @UDFs is
- modified and saved using another spreadsheet program, @UDFs are not
- saved in the new/modified spreadsheet.
-
- You must be sure that all functions referenced in @UDFs are linked into
- your application. If an @UDF references a function that doesn't exist
- it will show the value as ERR. Any functions that are not explicitly
- called from you Clipper code must be declared as EXTERNAL. One way to do
- this is to place EXTERNAL declarations for all your spreadsheet UDFs in
- a header file and #include it in your main source file. (See the
- Clipper documentation for more information on external functions and
- header files.)
-
-
- ╔══════════════════════════════════════════════════════════════════════╗
- ║ New Macro Commands ║
- ╚══════════════════════════════════════════════════════════════════════╝
-
- {REVERT}
-
- Reverts the spreadsheet to the last saved version.
-
- {RECALCUDF}
-
- Recalculates @UDFs only
-
- {EXIT}
-
- Exits cd_Browse() - equivalent to /-Quit-Yes
-
-
- ╔══════════════════════════════════════════════════════════════════════╗
- ║ Misc. Macro Stuff ║
- ╚══════════════════════════════════════════════════════════════════════╝
-
- UDFs in macros no longer have to be in their own cell or the last
- command in a cell.
-
-
- ╔══════════════════════════════════════════════════════════════════════╗
- ║ New Menu Commands ║
- ╚══════════════════════════════════════════════════════════════════════╝
-
- Worksheet-Revert
-
- The Worksheet-Revert menu command reverts the current spreadsheet
- to the last saved version. This command can also be executed using
- the new {REVERT} macro command.
-
- Worksheet-Global-Recalc-UDFs
-
- There are new menu commands to facilitate the recalculation of
- @UDFs in your spreadsheets. The UDFs selection presents a new
- sub-menu with the following options:
-
- With Recalc
-
- Causes all @UDFs to be recalculated whenever a normal
- recalculation occurs (when spreadsheet is changed if autocalc
- is on, or F9 is pressed).
-
- Manual
-
- @UDFs are only recalculated when Worksheet-Global-Recalc-UDFs-
- Right Now! is selected or {RECALCUDF} macro command is
- executed.
-
- Right Now!
-
- Recalculates all @UDFs.
-
-
- ╔══════════════════════════════════════════════════════════════════════╗
- ║ New API Functions ║
- ╚══════════════════════════════════════════════════════════════════════╝
-
- cd_FReadCell()
-
- Syntax:
-
- cd_FReadCell(cFileName, cCellAddr | cRangeName)
-
- cFileName = Name of the spreadsheet file to read from
-
- cCellAddr = Address of cell to read (ie. "A1")
-
- cRangeName = Range name for cell to read
-
-
- Return Value: <?> value contained in cell (NIL if cell is empty)
-
- Description: Opens spreadsheet file and reads the value from the
- specified cell. If a range name is specified the value is returned
- from the upper-left cell in the range.
-
- Note: This function can be used to establish "relational"
- connections to other spreadsheets/datafiles. See the DEMO_UDF
- worksheet to examine a sample of this.
-
-
- ╔══════════════════════════════════════════════════════════════════════╗
- ║ Memory Management ║
- ╚══════════════════════════════════════════════════════════════════════╝
-
- Providing this much functionality in a Clipper environment requires a
- considerable amount of memory. Upcoming versions of CALC(DB) will
- support virtual memory, but in the meantime here are a few things to
- keep in mind when using CALC(DB):
-
- Expanded Memory
-
- This version will only store numbers and certain cd_Browse()
- environment data in expanded memory. Expanded memory is highly
- recommended when using this product, but not absolutely necessary.
-
- Overlays
-
- Overlays should be used when using CALC(DB). The CALC(DB) library
- is divided into two separate files - CDBROOT.LIB and CALCDB.LIB.
- CALCDB.LIB contains functions that can be overlaid. We have
- included some linker response files to demonstrate some more
- effective ways of dividing up overlays. So far, the most effective
- linker for our testing purposes was BLINKER by Blink Inc. The other
- linkers we tested for compatibility were RTLINK (for Clipper),
- RTLINK 4.1, and Microsoft Link.
-
- Limit Spreadsheet Size
-
- Spreadsheets should be kept as small as possible to avoid
- exhausting memory. The use of spreadsheet objects makes it easier
- to divide large projects into smaller spreadsheets.
-
-
- ╔══════════════════════════════════════════════════════════════════════╗
- ║ Important Notes ║
- ╚══════════════════════════════════════════════════════════════════════╝
-
- Lotus 1-2-3 password-protected worksheets can not be used with CALC(DB).
-
- Named graphs stored in spreadsheets are not retained in files saved
- using CALC(DB).
-
-
- ╔══════════════════════════════════════════════════════════════════════╗
- ║ Credits ║
- ╚══════════════════════════════════════════════════════════════════════╝
-
- Most importantly are those people who made this product possible. As
- always it is impossible to name them all, but a few stand out and
- deserve the attention.
-
- -BJ Walsh, the Director of Software Development at SuccessWare and team
- leader on this project. Incredible talent.
-
- -David Johnson, who started this whole mess.
-
- -Tzvi Rozenman, who supplied the core spreadsheet technology.
-
- -Ira Emus, whose last minute "suggestions" made CALC(DB) considerably
- more robust (and slowed the release of the product by two weeks).
-
- And to Lori, Corey and Holly, my "other" family, the ones who sit at
- home waiting for me...
-
- Thanks y'all. HiHo,
-
- Jeff Jochum
- President
- SuccessWare 90, Inc.
- May 1, 1991
-
- ╔══════════════════════════════════════════════════════════════════════╗
- ║ CALC(DB) is published by: ║
- ╚══════════════════════════════════════════════════════════════════════╝
-
- Pinnacle Publishing, Inc.
- 28621 Pacific Highway S.
- Federal Way, WA 98003
- (206) 941-2300
- (800) 231-1293 (Sales)
- (206) 946-1491 FAX
- (206) 941-2487 Technical Support
- (206) 941-2492 BBS (2400-8-N-1)
-