[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

MCL 2.01b/Excel 3.0 Communica



To:     Bruce Lester     72110.1107@CompuServe.COM
cc:     info-mcl
From:   Steve Mitchell
Date:   03-18-92
 
Sub:    MCL 2.01b/Excel 3.0 Communication
 
> I would like to build an application using Microsoft Excel 3.0 macros that
> could send requests to a MCL program running in the background.
> I would like the Excel macro to be able to send the request to MCL, wait for
> LISP to finish processing the request, and continue processing the next Excel
> macro command when LISP returns the result.
> I built a database using MCL and would like to use Excel as the user
> interface, database query front end, and reporting tool. Any ideas?
 
1. Don't use Excel macros; it's the worst programming language I've used
   in 10 years, and I should know because I use it a lot. It's unusable
   for decent user interfaces, database query front ends, and even lousy
   and slow for laying out reports, and has a disgusting interface for
   externals. What more could you expect from Register BASIC on the Mac?
   Fortunately, there is an alternative: MCL or HyperCard 2.1 for the
   user interface and front end, and Claris Resolve for the back end.
 
2. Do use AppleEvents.
   MCL and HyperCard 2.1 can both send and receive AppleEvents, and
   Resolve can receive them, but does not have sending builtin. This
   is adequate for what I proposed above, is documented, and I've
   seen it work. Excel has no support for AppleEvents.
 
3. Next week I will finish developing externals in Think C for both
   Excel and Resolve to send a custom AppleEvent, in order to introduce
   a new verb into their macro languages. I can probably send you
   some generic AppleEvent-sending code for these apps if you need it.
   If you insist on being spreadsheet-centric, I would still encourage
   you to use Resolve; it has a superior scripting language and user
   interface, half the AppleEvents support built-in, and a thorough
   tutorial on writing externals so you can build the other half.
 
_Steve