Thursday, January 11, 2018

Stonefield Query for AccountMate webinars

Stonefield is presenting a webinar for AccountMate Business Partners on Stonefield Query for AccountMate and our new ClickBase competitive upgrade on Wednesday, January 17, 2018 at 1:00 Eastern. Register today on the AccountMate Business Partner web site.

We are also presenting a webinar for AccountMate users on Stonefield Query for AccountMate and our new ClickBase competitive upgrade on Wednesday, February 7, 2018 at 1:00 Eastern. Register today at

Tuesday, December 26, 2017

New White Papers for 2017

I added eight new white papers to my web site, all from sessions or articles I wrote in 2016: The new ones are:

  • Need Help? HTML Help Builder to the Rescue: Creating documentation for an application is something most developers dread. However, using West Wind Technologies' HTML Help Builder makes working on a help file almost fun!
  • Working with Microsoft Excel, Part 1: Microsoft Excel is one of the most widely-used applications ever. Because of its popularity, other applications often need to read from or write to Excel documents. This document, the first of two, discusses several mechanisms for outputting VFP data to Excel.
  • Working with Microsoft Excel, Part 2: Part 1 discussed several mechanisms for outputting VFP data to Excel. This document looks at ways to read Excel documents into VFP.
  • Advanced Uses for Dynamic Form: Dynamic Form is an under-used project in VFPX. Its ability to create forms quickly and dynamically isn't something every developer needs but if you need it, Dynamic Form is indispensable. In this document, Doug discusses some advanced uses for Dynamic Form, including data driving the markup code.
  • A Generic About Dialog: In "Advanced Uses for Dynamic Form", Doug discussed a couple of dynamic dialogs built with the assistance of Dynamic Form. In this document, he presents another dynamic, generic dialog, this time to display application information.
  • Processing Whole Words: Visual FoxPro has many text processing functions, including ATC() and STRTRAN(). However, these functions suffer from one flaw: they are character-based rather than word-based, so they can find substrings you may not have wanted. In this document, Doug presents replacement functions that word on whole words.
  • Creating Beautiful Web Sites Easily Using Bootstrap: Laying out a web page using HTML and CSS can be challenging. Botstrap is a free, open source framework for developing responsive, mobile-first web sites. It solves many problems web developers typically face and makes it easy to create beautiful web sites in record time, even for inexperienced developers. his document shows how to get started with Bootstrap, examines using its grid system to easily layout your page elements, and discusses how Bootstrap components add attractive and functional elements to your web site. We'll do a "makeover" of a real web site to show how easy is it to make it more attractive, functional, and mobile-friendly.
  • Lessons Learned in Version Control: Rick Borup's sessions at previous Southwest Fox conferences really helped me get started using version control for my application development. Since then, I've made a ton of mistakes and learned a lot of lessons the hard way. This document discusses what has evolved into my team's best practices for version control. It's intended for those who are familiar with version control but are looking for ideas about how to improve their processes.

Wednesday, November 22, 2017

Photos of German DevCon 2017

Jean Maurice from France took a lot of photos at the recent German DevCon 2017, November 16-18. They’re available in a Google Photos album at

Tuesday, November 07, 2017

Issue Accessing Microsoft Excel Spreadsheets

A Windows update on October 10, 2017 caused the Microsoft Excel ODBC driver (specifically, the “Microsoft Excel Driver (*.xls)” driver) to stop working correctly. Many of our customers use the ODBC driver to report on Excel data in Stonefield Query, including combining data stored in Excel with data stored in traditional databases such as Microsoft SQL Server in a single report, something Stonefield Query can easily do.

The solution is to use the “Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)” driver instead. However, this requires installing the latest Microsoft Access Database Engine components, which you can download from

Friday, November 03, 2017

2017 VFPX Administrators’ Award

Congratulations to Greg Green for being awarded the 2017 VFPX Administrators’ Award at Southwest Fox 2017. He was awarded this for his work on the VFPXWorkbookXLSX project, a tool that allows VFP developers to read from and write to Excel XLSX files quickly and easily without needing Excel installed. I’ve used VFPXWookbookXLSX for several years and can attest to it usefulness.

Monday, October 16, 2017

VFP's Weird File Naming Rules

Visual FoxPro was written for Windows, which is a filename case-insensitive operating system. So, startup.PRG and startup.prg are the same thing. However, there's a lot of inconsistency in how VFP names files:

  • If you don't specify the extension in the MODIFY command when you edit a file, edited files end up with uppercased extensions. For example, for files named form1.scx and form1.sct, MODIFY FORM form1 results in files named form1.SCX and form1.SCT when you save.

  • If you do specify the extension in the MODIFY command, the extension of the main file is set to whatever you specify and the extension of the memo file is uppercased. For example, for files named form1.scx and form1.sct, MODIFY FORM form1.scx results in files named form1.scx and form1.SCT when you save. If instead you specify MODIFY FORM form1.SCX, you end up with form1.SCX and form1.SCT.

  • The MODIFY command also respects the specified case of the stem name. For example, for files named form1.scx and form1.sct, MODIFY FORM Form1.scx results in files named Form1.scx and Form1.SCT.

  • The extension rules don't apply to VCT files: their extension doesn't change when a class is saved; if it was lowercase before, it's still lowercase after.

  • The extension rules are different for tables. The DBF extension doesn't change case when the table structure is changed or records added, modified, or deleted, or the table packed. CDX files are created with an uppercased extension but if you rename it to a lowercased extension, it isn't changed back to uppercase when you change the index structure, add, modify, or delete records, or PACK or REINDEX the table. FPT files are also created with an uppercased extension but if you rename it to a lowercased extension, it isn't changed back to uppercase when you add, modify, or delete records, or PACK the table. However, it is changed back to FPT if you modify the structure of the table.

Why is this important? Because if you use Git, you may have problems when VFP renames a file behind your back because Git is case-sensitive for filenames. Fortunately, it can be configured to be case-insensitive by executing these commands from a Command or PowerShell window:

git config --global core.ignorecase true
git config --system core.ignorecase true

Here's do a little experiment in VFP to test the case-insensitivity:

md c:\testcase
cd c:\testcase modify command startup.prg && enter some text, save, and close ! git init ! git add startup.prg ! git commit -m "Initial commit" modify command startup && notice no extension specified: when change text, save,
&&and close, file is renamed to startup.PRG ! git status --porcelain > status.txt modify file status && shows that startup.prg has been modified ! git commit startup.prg -m "Saved changes" ! git status --porcelain > status.txt modify file status && shows that startup.prg is no longer modified

Tuesday, October 03, 2017

New VFPX Project: Project Explorer

Project Explorer is a new VFPX project that replaces the VFP Project Manager with a modern interface and modern capabilities. It has most of the features of the Project Manager but adds integration with DVCS (including built-in support for FoxBin2PRG and optional auto-commit after changes), support for multiple projects within a “solution,” allows you to organize your items by keyword or other criteria, and has support for easy “auto-registering” addins that can customize the appearance and behavior of the tool. It includes extensive documentation.

I’m presenting sessions on Project Explorer at both Southwest Fox 2017 and German DevCon 2017.

I’m looking forward to feedback on this project. Please create issues for any problems you experience or any suggestions you have for improvements.

Wednesday, August 30, 2017

VFPX Has Moved

As I mentioned in my earlier blog post, VFPX had to move off CodePlex to somewhere else and the VFPX administrators chose GitHub. The migration is now complete: all projects have been moved, with the exception of a few that were dropped because they never had any source code and were abandoned by their project managers. The new link for VFPX is

Thanks to the project managers who assisted with the migration, and especially to Steve Black, who provided a lot of advice and guidance.

Wednesday, August 09, 2017

Southwest Fox 2017 Early-Bird Discount Extended

Oops, we goofed! One of us went on vacation and completely forgot to schedule the end of July reminder to get registered before the Southwest Fox 2017 early-bird deadline. So to make up for this colossal mistake, we have decided to extend the early-bird discount of $50 through August 21st.
The conference takes place October 26-29, 2017 in Gilbert, Arizona and we really hope you can be there. Head over to the registration Web site today.

If you've already registered, we thank you. Can you help us remind your fellow developers who have been procrastinating about the looming deadline by sharing this message, drop a hint at your local user group, or tweet about it? Spread the word by telling others you going on our Facebook event.

Check out our list of amazing speakers and dig into our session tracks. Follow the news about the conference on our blog.

Monday, June 19, 2017

Southwest Fox 2017 Super-Saver Deadline Approaches

Listen to Andrew MacNeill’s FoxShow podcast featuring Rick, Tamar, and I talking about Southwest Fox 2017.

Registration for Southwest Fox 2017 has been open for a few weeks and there’s less than two weeks until the Super-Saver Registration deadline. If you register before the end of June, you save $125 and we’ll throw in a pre-conference session worth $99. Not only that, but you’ll be entered in the drawings for up to three scholarships that will reduce your costs some more.
Check out the speakers and topics on the conference website.

Please beat the rush so we still have some fingernails left when July begins! No need to wait, we won’t charge your card or cash your check until August!