John W. Colby
jwcolby at colbyconsulting.com
Wed Jul 13 20:04:56 CDT 2005
I suppose you could pester Wrox about it if you think it would be a book you would buy. Maybe forward this to email to Jim Minatel at JMinatel at wiley.com with your personal experiences and opinions re the lack of good advanced books for the Access / office arena. I tried to tell them that I quit buying new books ages ago because I just wasn't learning anything new from them. Maybe if they heard it from members of this list, developers who actually do this for a living, they might decide there is indeed a market. I know we don't have thousands of list members but we do represent a large market segment. John W. Colby www.ColbyConsulting.com Contribute your unused CPU cycles to a good cause: http://folding.stanford.edu/ -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of Jim Lawrence Sent: Wednesday, July 13, 2005 2:29 AM To: 'Access Developers discussion and problem solving' Subject: RE: [AccessD] Framework book - was caption from code Hi John: Save a copy for me. It sounds like a good read...but I guess it only works with bound forms.(?) Jim -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of John W. Colby Sent: Tuesday, July 12, 2005 8:45 PM To: 'Access Developers discussion and problem solving' Subject: [AccessD] Framework book - was caption from code Around the end of last year, I started rewriting my framework for the third time, in fact I now call it C2DbFW3G meaning 3rd generation. It is Access2K or better - A97 not supported mostly because I use RaiseEvents which are unsupported in A97. This version is still not fully fleshed out simply because I have ported (rewritten) the old 2nd generation framework piece by piece as I needed the modules, and I haven't needed the form / control stuff that I had in the 2G version. In fact I started on it because of a project that is generating reports for a client. The application is a report system for a call center for short term disability insurance. I (re)wrote the call center software from scratch but the reporting stuff kinda sorta worked and I never rewrote it from scratch. The insurance company that hires my client to do the call center is completely changing THEIR software, which now supports completely automated data feeds. In the past, my system generated Word documents with "new claim notices" and "advise to pay" notices. These reports were generated automatically and attached to emails to the insurer, where they were opened and keyed in to the system. Because it was always done that way! Sigh. It always sucked, errors on their end keying in the reports etc. So... Since the new system takes an automated feed, fixed width fields, text files, FTPd to a site where it is opened and loaded in to the system automatically, I had the opportunity to rebuild this reporting thing from scratch. The kinds of framework things I needed for this application were distinctly different from the framework things I needed for a typical form based data entry / call center application. At the same time, entire pieces are pretty similar or even identical. So I yanked the useful classes and code other than form / control stuff from the 2G framework, took the opportunity to clean it up a LOT, and "started from scratch", although not exactly as I have intimated. The result is a lot cleaner, even more heavily class based, and uses a "service plug-in" concept. A framework is really about providing services to an application. These services may be clearly a service, such as logging to text files, zipping / unzipping files, encryption etc., or they may be less clearly a service, such as a form class that loads control classes that provide record selectors, JIT subforms, OpenArgs etc. In the end though, even these are just services to an application. What I am trying very hard to do this time is set up the framework to allow plug-in services where the service is loaded if it is needed, with a "socket" kind of interface - at least for the non-form based services. Things like SysVars, Zip/Unzip, logging etc are really easy to do this with. The classes exist and if the application wants a logger it asks for one. It is stored in a collection keyed by name and the app can then use it by calling a .log method of the framework, passing the name of the logger and the text to log. If a logger by that name isn't loaded, it loads and then stores the text that needs to be stored in the log file. Like that. It turns out that a log file like that works well for these NCN and ATP reports. The application asks for an NCN log, gathers the data and builds up the fixed width field strings. When each string (NCN or ATP record) is finished, the app just writes it to the log file. When all the records are written to the log file, the file is emailed or FTPd as desired. The log and the email or FTP is just a service. The APPLICATION has to build ATP and NCN reports, but it just asks the framework for a log and when the log is done, asks the framework to email or FTP the log somewhere. Services. Neat stuff and lots of fun to do. As for the book, well... I have worked on a couple of books for Wrox, but they gave a lukewarm reception to the idea of this stuff written into a book. I am just "doing it myself" and will then pitch it when it is closer to written. Sometimes the powers that be just don't "get" what you want to do. Or maybe it just won't sell and I'll be sitting on a years worth of writing. I have never seen a book like this for the Access arena so I just want to do it. John W. Colby www.ColbyConsulting.com Contribute your unused CPU cycles to a good cause: http://folding.stanford.edu/ -----Original Message----- From: accessd-bounces at databaseadvisors.com [mailto:accessd-bounces at databaseadvisors.com] On Behalf Of John Bartow Sent: Tuesday, July 12, 2005 10:53 PM To: 'Access Developers discussion and problem solving' Subject: RE: [AccessD] Change Reports Caption From Code Ahhh, I can finally stop holding my breath! I threw my poor excuse of an answer out there just to keep this thread alive, I had a feeling you had this done in classes and I was just waiting for you to describe how you did it. :o) So your writing a book on it all! Can you feed some chapters out on it for proof reading purposes or something? John B. <snip>