====================================== FoxPro Developers Network of San Diego ====================================== FoxDev TipsLetter #03-07 November, 2003 Website: Editor: ---------------------------------------------------------------------- CONTENTS: * Calendar * Tech Tips: Typing Long Captions Dan Covill Valid() vs LostFocus() ProFox * Other Stuff: GLGDW, Linux, and Microsoft Dan Covill A Nice Office * Knowledge Base Updates New/Updated KB articles on VFP * Links: Where Can I Find...? * Administrivia ====================================================================== CALENDAR: All meetings are at Sizzler unless specified otherwise. Thu - Nov 13 - Rich Simpson ----------------------------------------------------------- Short Presentation - None Our November meeting is election time. Since we have only the exact number of candidates to fill the seats available, we will be asking the membership to vote in the candidates by acclaimation instead of having a real election. Main Presentation - Rich Simpson Topic: The Mind's Eye Report Engine Rich will be giving a demo of his product, The Mind's Eye Reporting Engine. This is an amazing product that makes sending your existing FRX reports to PDF files a snap. Rich's product also has the ability to do bar graphs and graphics without any additional third party tools. Rich will be offering a $200 discount off his product to user group members. December - Holiday Party! ----------------------------------------------------------- Trophy's La Jolla (Costa Verde Center, across Genessee from UTC) Dinner will be provided for paid members. Guest are welcome, but must pay for their own dinner. Thu - Jan 15 - Randy Brown ----------------------------------------------------------- Short Presentation - OPEN Main Presentation - Randy Brown Topic: TBA Thu - Fed 12 - Marcia Akins and Andy Kramek ----------------------------------------------------------- Short Presentation - OPEN Main Presentation - Andy and Marcia Topic: TBA Thu - March 11 - Darrell Gardner -------------------------------- Topic: How to tell if your computer has been hacked (it probably has) and what to do about it ----------------------------- All meetings start at 6:30 pm. Sizzler Meetings: Back room of Murphy Canyon Sizzler: 3755 Murphy Canyon Rd Take I-15 to the Aero Dr exit (South of Balboa) Head West to first traffic light West of freeway Turn Right Sizzler is on the right almost immediately Buy your dinner at Sizzler and we'll have our Q&A session while we eat. PLEASE TRY TO COME EARLY ENOUGH TO ORDER YOUR DINNER BEFORE 6:30! Escondido Meetings: Training room of Bergelectric 2222 Meyers Rd. - Take highway 78 to Nordahl (Just west of I-15) - Go south past Mission - Turn right on Meyers (first right past Mission) - The building is on the right just before Oper Street. ====================================================================== TECH TIPS ====================================================================== TYPING LONG CAPTIONS by Dan Covill Does entering long strings in the Property sheet drive you crazy like it does me? Cathy Pountney gave a bunch of IDE tips at GLGDW - this one made me sit up and take notice. If you need to enter a long string in the property sheet, right click on the property. A menu comes up with "Zoom" on it. Click on the Zoom and a nice, big window pops up with plenty of room to enter and edit to your heart's content! Another one: If a property is boolean (like AutoCenter), select it and then just press the period (.) key to change it. !! Dan Covill ---------------------------------------------------------------------- GOTFOCUS() vs VALID() from ProFox Q: I see people putting validation code in the LostFocus() method. If that's the right place for it, then what is the Valid() method for? A: GotFocus/LostFocus is what all the other dumbass Windows Programming languages have. But we have more power, more control since we have WHEN and VALID. Those additional events make the difference between General Purpose languages and highly specialized langguages, tailored for their job: Perfect data-management. And perfect data starts with clean data, with validated data. Maybe it's clearer this way: In GotFocus, you just entered the Control, in Lostfocus, you are already out of the control. WHEN takes precedence before you enter, VALID is fired BEFORE you are ALLOWED to leave. Another difference between VALID and LOSTFOCUS is very important: As soon as you leave the VALID, the entered data is accepted as to be validated and ok, thus the Fieldstate is set (see GETFLDSTATE() for more info) which in turn means, that the entered data gets written to the table. You can't revert that in Lostfocus! Another analogy would be, that you compare your object with a supermarket. The VALID is the Cashregister-Zone. You need to validate each customer for theft; that's what those antennas are good for. If you would do the validation after the theft left the store (LOSTFOCUS), you're out of luck, the user is already out of the objects responsibility. wOOdy (Jurgen Wondzinski) A: If valid returns .T. or a non-zero numeric value, the ControlSource is updated with the contents of the control at that point. If the ControlSource is a field in a cursor, that field is updated then. With buffering, LostFocus could possibly revert it to its original unchanged value, but it is severely limited - it can only revert or accept. If there was an intermediate value, it's gone by the time LostFocus() fires. Ed Leafe http://leafe.com/ ====================================================================== OTHER STUFF ====================================================================== GLGDW, LINUX, AND MICROSOFT by Dan Covill I just attended my first Great Lakes Great Data Workshop - GLGDW, aka Whilfest. Linux was there, but Microsoft wasn't. GLGDW: I found the GLGDW, as everyone said, not only more friendly to the pocketbook than DevCon, but more friendly in general. I liked the absence of big-time marketing; the modest vendor area was like a clubhouse, manned by folks you've met before. Linux: Paul McNett gave two presentations, on running VFP 8 under Linux and on Linux utilities. There was also a Linux installfest and I believe Whil gave a pre-conference session as well. The attendance at these was pretty normal - folks were interested but Linux definitely did not "take over" the conference. Whil's closing remarks were a personal statement of where his business concerns are taking him. The short form: a) There are less VFP developers every year. VFP is not going away anytime soon, but it's definitely not a growth market. Whil sells books, and the market for VFP books is shrinking. b) There are at least 10 times as many VB developers as VFP, and they're all headed for .NET. That means heavy competition in the .NET market, both for development jobs and for books, training, etc. c) The Linux desktop market is just starting to open up. Up to now, there has been practically no business application development for Linux workstations. Voila, a growth market that's not overcrowded, for both books and development.. Microsoft: No one was there from MS. The rumored reason was that Ken Levy and Whil couldn't reach agreement on the nature and/or schedule of "Keynotes and special sessions" that Ken wanted to present. I can understand that, but I think MS should have had someone attend anyway, if only as an observer. I didn't miss a Microsoft keynote at all - I don't go to these things for marketing info. But not coming at all seems a bit shortsighted. We don't need MS to run our conferences for us, but 'twould be nice to chat with them a bit. And yes, there was a .NET session, although I didn't go. Summary: Was GLGDW a Microsoft marketing festival, like DevCon often turns into? No, it definitely was not - they weren't even there. Was it a subversive pep rally, with Whil luring VFP developers away from MS to Linux? Not, it was not. There was interest in Linux, yes, but no stampede. Paul McNett pointed out that the Wine project is realistically about two years from production status. And in that two years the picture will definitely change some more. Don't quit your day job - VFP under Windows will be around for the next 10 years at least. But if you're concerned about the long term, then .NET isn't the only alternative. If .NET turns you on, then go for it, by all means. But if not, then try a little poking into the Linux world. Microsoft, needless to say, would prefer that we migrate to .NET. Maybe they're right, but the last time I looked they weren't signing my paychecks - I'm on my own. I see no reason why we can't look at Linux and still maintain civil relations with the Fox Team (who have been doing great work for us lately). Remember, Whil is no longer in the same business we are - he's a publisher, and has to pay attention to the market numbers. I don't. So long as I have clients for FoxPro apps, I don't really care what the "enterprises" are doing. Relax, folks. Nothing is certain, the world will continue, and the direction we should go will become apparent in due time (probably a bit late ). Dan Covill ---------------------------------------------------------------------- A NICE OFFICE "Your business success will depend on the extent to which programmers essentially live at your office. For this to be a common choice, your office had better be nicer than the average programmer's home. There are two ways to achieve this result. One is to hire programmers who live in extremely shabby apartments. The other is to create a nice office." from Managing Software Engineers by Philip Greenspun (philg@mit.edu) To see this in action, look at Joel Blodsky's new office layout. ====================================================================== VFP KNOWLEDGE BASE UPDATES ====================================================================== Visual FoxPro 177056 PRB: Return Parameter Variable Name for SQL Server Causes Error Visual FoxPro 6.0 177056 PRB: Return Parameter Variable Name for SQL Server Causes Error 258736 FIX: Multi-Threaded DLL Is Slow to Release Connection Under MTS How To Look Up These Articles: To get to a specific KB article: a. Go to support.microsoft.com. Search is at left of the page. b. Select "Visual FoxPro" on the drop-down. c. Enter the document number in the textbox below it. d. Click on the green arrow. To Subscribe: Subscribe at . You can specify any MS product to receive alerts on. ====================================================================== LINKS ====================================================================== This is a (semi) permanent list of places to look for technical help when you get blind-sided by the latest urgent requirement. We don't give specific URLs for MSDN articles because (a) they're too long and (b) they change too often! ------------------------------- MSDN ON LINE: There's a ton of stuff here, look at the Magazines tab, and read some of the regular columns. MSDN Library Look in Technical Articles | Visual Studio | Visual FoxPro MSDN Library: "Building Three-Tier Client/Server Applications with Visual FoxPro" ADO MSDN Library: ADO Jumpstart for Microsoft Visual FoxPro Developers John V. Petersen, April 1999 DNA (Distributed interNet Architecture): MSDN On-line: "Top Windows DNA Performance Mistakes and How to Prevent Them" FoxPro 2.6: http://members.aol.com/FoxProResources/fpfp.htm MTS: Microsoft Transaction Server MSDN Library: "Microsoft Transaction Server for Visual FoxPro Developers" ODBC: MSDN Library: "Using Visual FoxPro to Access Remote Data" ODBC drivers are part of MDAC - Microsoft Data Access Components - and are available for download at: "www.microsoft.com/data" VS Installer: MSDN Library: a. "Using Visual Studio Installer for VFP 6.0 Applications" b. "VFP 6.0 and VS Installer Tutorial" VFP Publications: www.advisor.com FoxPro Advisor www.pinpub.com FoxTalk magazine www.hentzenwerke.com Hentzen Publishing (Books, discussion, and downloads) VFP General: msdn.microsoft.com/vfoxpro Microsoft's official VFP home page www.foxcentral.net Joint effort by Microsoft, West-Wind, and the Universal Thread Lots of news and development info. MS Developer Applications Forum on Compuserve http://go.compuserve.com/msdevapps The History of FoxPro (submitted by Steve Settimi) www.foxprohistory.org The Universal Thread http://www.universalthread.com The "Wiki" www.wikis.com fox.wikis.com fox.wikis.com/wc.dll?Wiki~FoxForumWiki Here is the most complete set of FoxPro links you're likely to find: http://www.cetus-links.org/oo_visual_foxpro.html Private websites with useful free info and downloads: www.prolib.de/foxlinks.afp wOOdy Wondzinski www.gatwicksoftware.com Allen Pollard www.ukfug.org.uk British user group www.lafox.org LA user group www.pinter.com/ Les Pinter www.vfug.org/ Virtual Fox User Group www.leafe.com Ed Leafe, ProFox listserve www.jamesbooth.com www.foxforum.com www.foxfolk.com www.foxite.com (registration required) A group of Dutch developers - refreshingly geeky. (Don't be put off by the registration - they're not selling anything.) www.stevenblack.com www.craigberntson.com WEB Development: These products all work well with VFP. AFP www.afpweb.com and www.afpages.com DotFox www.elsoftware.com FoxWeb www.foxweb.com Web Connection www.west-wind.com X-WORKS www.x-works.com Windows General Win32 API (with VFP examples) XML - What's New in XML for Microsoft Windows 2000 See also OLE DB drivers for XML in MDAC 2.6 at "microsoft.com/data" [Contributions solicited. DC] --------------------------Administrivia------------------------------- This newsletter is a service to all FoxPro developers, provided without charge by the FoxPro Developers Network of San Diego (FPDN). Anyone may subscribe (or unsubscribe) at our web site . The link is on the home page. The Resources button on the website will take you to the back issues of the newsletter. The editor (Dan Covill) is solely responsible for the content. E-mail him with YOUR tips, comments, or complaints. Editor: Dan Covill 858-272-2448 dcovill@acm.org Board of Directors: Eric Lendvai - President 760-734-4929 eric@elsoftware.com Art Bergquist - Vice Pres 760-740-0428 abergquist@sbcglobal.net Thad V'Soske - Secretary 619-544-9900 tvsoske@yahoo.com Barbara Peisch - Treasurer 760-729-9607 barbara@peisch.com Dan Covill - Director 858-272-2448 dcovill@san.rr.com Claude Nikula - Director 619-615-6318 crndev@cox.net ----------------------------------------------------------------------