Receive a Cost-Free Initial Estimate for a FoxPro Conversion
In order to provide an initial estimate, we need a working copy of the program along with data and the latest source code. If you’d like us to sign a non-disclosure agreement, email us at info@erwcp.com. If you know how, zip up everything and go to our Send File tab. If you need help, here’s a brief video with step-by-step instructions:
What We Evaluate In Your Visual FoxPro Program and Data
1. findallclasses.prg – find all classes and classlocs and put the code in one easy to search table.
2. frxfields.prg – finds all constants, functions, fields for all FRX files (report files) and lists them along with the FRX name. Some very complicated code can be embedded in an FRX file. We need to know this before estimating. Below are a few examples from a recent project. We found 12,118 expressions in the FRX files for this client. Most, but not all, are very easy to auto-convert.
ACTIVESTUDENTS.FRX DATEtime()
ACTIVESTUDENTS.FRX STUDNUMBER
ACTIVESTUDENTS.FRX alltr(FIRSTNAME) +” “+alltr(lastname)
ACTIVESTUDENTS.FRX alltr(CITY)+” “+alltr(state) + ” “+ alltr(zip)
ACTIVESTUDENTS.FRX alltr(PHONE1)+” / “+ alltr(phone2)
AGCYEDIT.FRX getcompnm()
AGCYEDIT.FRX “Page: “+alltrim(str(_pageno))
AGCYEDIT.FRX padr(iif(empty(agyplac.NAMEPREFIX),””,alltrim(agyplac.NAMEPREFIX)+” “)+alltrim(a
3. alllinesofcode.prg – finds all lines of code in all forms, programs, libraries. We use the output from this program continuously. Also, knowing the number of lines of code is one of the most important variables in estimating the scope of a project.
4. findallsubfolders.prg – finds all sub-folders and files contained therein.
5. allaliases.prg – finds all aliases that are not the same as the dbf name.
6. findallMasksAndFormats.prg – lists filenames, inputmasks, and format.
7. getallvartypes.prg – finds all vars and try to determine their types. Visual FoxPro allows a variable to be any type at any time. So “x” might be a string in one line of code but be converted to an integer in the next. This creates some serious issues that must be handled when converting to .NET. We use C# and it will not let the var type change.
8. menuprompts.prg – documents menu calls to a text file. Below is a partial example:
SET SYSMENU TO
SET SYSMENU AUTOMATIC
DEFINE PAD _4y116zk0p OF _MSYSMENU PROMPT “\<Stucco” KEY ALT+S, “” COLOR SCHEME 3
DEFINE PAD _4y116zk0q OF _MSYSMENU PROMPT “\<Payroll” KEY ALT+P, “” COLOR SCHEME 3
DEFINE PAD _4y116zk0r OF _MSYSMENU PROMPT “\<Admin” KEY ALT+A, “” COLOR SCHEME 3
DEFINE PAD _4y116zk0s OF _MSYSMENU PROMPT “Sa\<les” KEY ALT+L, “” COLOR SCHEME 3
DEFINE PAD _4y116zk0t OF _MSYSMENU PROMPT “S\<etup” KEY ALT+E, “” COLOR SCHEME 3
DEFINE PAD _4y116zk0u OF _MSYSMENU PROMPT “Ma\<terials” KEY ALT+T, “” COLOR SCHEME 3
DEFINE PAD _4y116zk0v OF _MSYSMENU PROMPT “\<Reports” KEY ALT+R, “” COLOR SCHEME 3
DEFINE PAD _4y116zk0w OF _MSYSMENU PROMPT “\<Utilities” KEY ALT+U, “” COLOR SCHEME 3
DEFINE PAD _4y116zk0x OF _MSYSMENU PROMPT “E\<xit” KEY ALT+X, “” COLOR SCHEME 3
ON PAD _4y116zk0p OF _MSYSMENU ACTIVATE POPUP stucco
ON PAD _4y116zk0q OF _MSYSMENU ACTIVATE POPUP payroll
ON PAD _4y116zk0r OF _MSYSMENU ACTIVATE POPUP admin
ON PAD _4y116zk0s OF _MSYSMENU ACTIVATE POPUP sales
ON PAD _4y116zk0t OF _MSYSMENU ACTIVATE POPUP setup
ON PAD _4y116zk0u OF _MSYSMENU ACTIVATE POPUP materials
ON PAD _4y116zk0v OF _MSYSMENU ACTIVATE POPUP reports
ON PAD _4y116zk0w OF _MSYSMENU ACTIVATE POPUP utilities
9. vfpfindallfieldsalldbfs.prg – lists all fields for all DBFs along with the type, length, and number of decimals.
10. findmacros.prg – finds and lists all macros.
We will run the above 10 programs against your programs and data. In addition, we look at a sampling of your programs to get a sense of the complexity. After doing all of that, we can give you a ballpark estimate.
We have dozens more programs that we use to speed up the conversion of Visual FoxPro to C#.NET but the above are some of the more important ones.
Question & Answer
"We have very powerful auto-convert programs that automatically convert most, if not all, of your forms (screens), reports (.FRX files), DBFs to SQL Server and a significant percentage of the actual code found in your PRG, FRX, SCX, and VCX. This makes us extremely competitive." - Wes Wilson