Wiki Home

Carl Karsten

Namespace: VB
Carl Karsten To be sure your message gets past my spam blocker and delivered to me, add yourself to my whitelist: which I wrote in Python. But now onto my VFP doings...

I've specialized in payroll system development for 10 years. In particular I maintain a FPD2.6 payroll and billing system for temporary employment agencies.
I had been working primarily with FoxPro DOS and using VFP for small secondary projects. Aug 97 - Aug 99 I converted a client from my accounting system to People Soft. Having lost my largest FoxPro Dos client, I shifted my primary focus to VFP. Dec 99 I passed both VFP exams 70-155 and 156 which gives me MC P status.

I am an active member of Chicago FUDG, the local VFP user group.

I use F1's Visual FoxExpress as my prefered framework.
Payroll app site:
page of links I like:

I throw a lot of things on my local webserver; it is on a cable modem that uses DHCP, so the address changes every year. If you find these links not working, let me know so I can update the DNS. The good stuf can be found at

VFE tweeks can be found at:
bag of FRX tricks -
I am going to take credit as the founder of x Codes.
wiki pages I like:

Sample Grid Prg - prg that makes a form, grid and a few buttons. good start for making simple grid problem examples.

Grid To Frx - at runtime, makes an FRX from the .Captions and .Control Source props in a grid.
Sql Pics - what to do without a general field type
Sql Vs Dbf - "I have seen the light!"
Iis Setup - make http://localhost work for you.
Editable Cursors - how to make a read only cursor writable
Copy To Delimited - "On the whole, the choices are quite a mess."
Timer Example - intro to the timer object
PCViews - one way of using views to do Parent Child structures
PCForm - using PCViews on a form
Msde Setup -
Vue Snk - synchronizes properties of view fields with the props of the fields in the base tables
Parent Child Terms - My attempt to clarify some muddled terminology.
aBrow - Array Browser better way to look at arrays
ga Error - RI Error array defined.
Vfp Debugger Problems - Tips on making it work for you, even when it seems like it "isn't working".
Insta Link - make a link out of a url in one click!
Dbcx Sync - Pulls updated properties from the dbc into dbcx
Unique Key Generation - What are the tried and true methods for generating keys?
Int Vs Chr Speed - compares Integer keys vs char keys. Int wins.
De Vs Norm Speed -- Queries against normalized data run faster than denormilzed.
Vcx Cmt -- adds a header to methods containin the name of the vcx.
Vcx Cmp -- generates source code good form compairing.
Name That Thing - Win the valuable prize of clarity!
Fox 26 on Fast Cpu
Drag And Drop - from windows explorer into a VFP textbox
Exam70-155CaseStudy2 - Scott's Hud App for them
App Shut Down - clear the board, we want out!
Fox ISAPIexample - in just 6 simple steps.
Exposure To VFP - Beginning VFP for advanced developers.
GenDbc Lite - Just the Tables, Fields, and Relations
Dbf Cmp - little code to compare two tables
Nd Pems - shows non default pems of a class
Base X - Convert a value to any base
Frx Constants - I can never remember what ObjCode 3 is.
Copy Protection - how to give everyone a headache
Favorite tech support call: "there is a funny message on my screen, and I smell smoke." Julie Mars, late 80's. Very calm, to the point, wanting to know what to do next. One of my favorite users.
For VFE developers:
Vfe Pri Key - sets all of the primary keys in your database to do the vfenewkey() thing.
Vfe Mak Lups - sets all of the Lookups in the dbcx based on the relations set in the dbc.
Vfe PCHelper - Anything but Politically Correct, these hacks use the relations set in the dbc to help the "Parent Child PO builder" wizard.
Vfe Auto Bar - a toolbar that adds a button to itself for each form, plus a PO button that makes a form out of each Presentation Object.
Vfe Presentation - For Chicago FUDG
Vfe And Sdt -
Get Dbcx Caps - Sets captions of multiple controles
Vfe Bo Tree - Creates a treeview of VFE BO's
Being Helpful - when good intentions go wrong.
Here is my motivations for debating:

1) I have decided to code a certain way based on some conclusions. If my conclusions are flawed, I really want to know about it so that I can write better code.

2) I assume that others practice #1, so if my conclusions can hold up under peer review, then others can learn from the whole experience.

3) I want the tools I work with to be solid products. I don't want to have to some deficiency because I was to lazy to make my point clear.

On the subject of debating: If a question is asked, even if it is rhetorical, it should be answered. Not doing so is being rude to the person who asked it. It is what causes debates to lose focus on the original issue, and let it goes unresolved. The corollary is: Don't ask questions that you don't really expect an answer to (like rhetorical ones.)

Part II
If I am having trouble using something, one or more of the following must be true, and therefore should be fixed.
1. The product is working as planned, but the documentation is flawed.
2. The documentation aggress with the original plan, but the product is flawed.
3. The plan, product and documentation are all in agreement, but I am misunderstanding the documentation or misinterpreting my observations of the product. (Carl is flawed.)
There is really no way for me to know which it is. I can only read the docs and observe the product's behavior. To know what the plan is would require mind reading and "not understanding" a feeling I have whenever things aren't working.
Projects that may be of interest to others:
Un Ream - Property management system.
Confer Carl - Small Demographic system for Confrence registration.
Favorite Wiki pages:
Visual FoxExpress Tips And Tricks Visual FoxExpress Wiki Common Questions On Error VfpAccountingApps Improving Wiki

Odbc Phone

Other links:
multi boot

Sql things:

John Koziol says: When a bunch of us were at MS reviewing the beta test results for 155 and 156 we were reviewing test taker comments....
Carl had a comment on a question calling us "lazy bastards" for not doing something a certain way
Well, the MS folks thought that was really funny and from then on, called us the lazy bastards
In fact, the exam ship party invitations said "Be a lazy bastard! Come celebrate"
So the lazy bastards are me, Nancy Folsom, Jim Booth, and Chuck Urwiler
Carl won the "Best Comments" award....
followed closely by the comment that said "If I knew how to do that I would get the answer right"

I should get an award for this too:
(10:10:36 AM) Kamion: oh, wow, that's a really cool bug
(10:15:30 AM) Kamion: CarlFK: so partman thought it was both swap *and* mounted on /media/hda5
Books I highly recomend: (in this order)
  1. Object Orientation In Visual FoxPro
  2. Advanced Object Oriented Programmingwith Visual FoxPro 6.0
  3. Hackers Guide
  4. Creating VFP Apps With VFE (even if you don't own the framework - I't gives you a good example of how an n-tier app is built)
  5. Client - Server Applications With Visual FoxPro 6 and SQL Server 7
  6. Frameworks Love Em Or Leave Em (not a book, but a Must Read)


I believe that the best developer is 30 percent project manager, 30 percent psychologist, 10 percent artist, 30 percent detective, and, what's the other bit? Oh, right! 100 percent excellent coder. -- Nancy Folsom

Tools serve the master, and not the other way around, right? Right. --NancyFolsom

Yea Nancy
Online Payroll Calculators

These are neat, but... I get different Fed Withholding for 494/week, S 4. Ok, so apparantly Fed Withholding rates changed June17,2003. Swell.

All 23.88
All 32.99

AZ 23.91
CA 26.17
MI 23.91
MI 32.99
MD/VA 25.59 / 23.90 157 ;) - https

My calculation:
Current Payperiod Wages 494.0000
Found US Filing Status: S 4
Payperiods per year: 52
Estimated Annual Income: 25688.0000
Exemptions: 4
One Allowance 3050.0000
Exempt Amount 12200.0000
Taxable Anualized Wages 13488.0000
590.0000 plus 15.00000% of excess over 8550.0000
590.0000 + 0.15000 * 4938.0000 = 1330.7000
1330.7000 / 52 = 25.5900
Final Amount: 25.5900

Payroll Info:

Lists Happen - Things you can't avoid, so you may as well embrace.
Design happens.
BrainStorming happens.
Framework happens.
Change happens. A journey of Cross Tab discovery.
Short Bio:

Carl Karsten has been developing Database applications for over 10 years, specializing in payroll system development. He is a frequent composer of and contributer to Wikis documents, an online resource maintained by the community. He has used many versions of Fox, including FoxBase+, FoxPro 2.5 and multiple versions of Visual FoxPro.
Carl is a Microsoft Certified Professional for Building both Desktop and Distributed Applications in Visual FoxPro 6.0.
How to pay me online:
Make payments with PayPal - it's fast, free and secure!
You will be guided thru the process. This service is free to you.
wiki bug test: (https make not a link?)
My favorite Linux Disto:
My favorite Linux Disto:
Interesting Book: ISBN 0759631697
Not me, but close:
Fred says : just to add my 0.02, Carl is always in the top ten beta testers of VFP (and won some original signed VFP box from VFPTeam)
Category People Category Available
( Topic last updated: 2008.04.15 11:55:10 AM )