If someone else is in the program with the tables open, reports will be slow, and the client interface will be slow. It's a network share thing. Some of our customers see this when their data gets above 3000 records.
Where I have seen biggest impacts to VFP in recent years is increased use of "virtual drives" - aka not a real hardware drive. Where I work they "hand out" virtual drives - but they are controlled by corporate IT. So I could not get to the details of how those drives are set up. What I saw was that VFP performance was impacted by around 1000% (yes 10x slower, in some cases I think even worse). When I placed the database on a "dev" server (which was an actual hardware box) where several of us could just map a drive, performance was the usual snappy, nearly instantaneous results (except of course where we expected it to be slower - like processing a couple hundred thousand records). In one app I created a "background" sync framework where the entire DB was local (one of the Big Data replication methodologies). It worked well, but it was a bit of effort to implement.
Don't get me wrong, virtual drives are great and satisfy a certain need. And they essentially look "identical" to a hardware LAN drive. But I imagine this will get worse as time goes on, even for hardware boxes (look up the junk about SMB, SMB2, blah blah blah). Maybe if they drop windows servers and go Linux with Samba...???
Oops, too much talking. Suggestions in probable order of ease of trying: - I assume you can modify code and can change the VFP DB design: first, double check indexes of tables: VFP does not pull down the "whole table" when a table is "used". But uninformed/uncaring "REPORT" designs may well be scanning the whole table. Check that out: generally it is better to do a "SELECT..." statement into a temp cursor, and then do the REPORT FORM from that. If the DB indexes match the SELECT clauses essentially only the matched data will come over the wire. And then, since the temp cursor is "local" there is no locking contention whatsoever as the REPORT FORM is running. - find out if they are using virtual drives: if they are, and if the app is a priority, checking performance on an actual hardware box might be worth it (if IT cooperates... ha) - if it is a hardware box, may need to do research into SMB settings (Ops lock, etc) (but IT has to help with this... ha ha) - Seriously, putting Ubuntu server on a box is drop-dead easy, setting up a Samba share also drop-dead easy. That could be a good test. But corp IT is generally ignorant and inflexible in non-software companies (and especially if they are MS-certified.... hahahahaha).
HTH, -Charlie