Caramba me sorprendiste desprevenido bueno te cuento que debo dar un repaso al tema de buffers y sobre todo a la clase Picbtns1.addRec() que llama a otro formulario que pregunta algo como Agregar registro al encabezado o detalle o ambos, que es la responsable del problema suponiendo que el problema esta en los formularios de facturacion CCF Y CCF1 y que las tablas en las que se agregan registro son ccf.dbf y ccfdet.dbf. bueno te digo como deberia funcionar mientras para que trates de asimilarlo y por alli vayas pensando en alguna solucicion mientras yo estudio el codigo, al momento de agregar un registro suponiendo que idccf debe ser autoincremental y exclusivo y cuyo indice activo sea idccf (o sea que debe ser autonumerico y no debe coincidir con ninguno nro nuevo que otro usuario pueda agregar simultaneamente) el primer paso debe ser bloquear el fichero contra escritura con FLOCK() asi nos aseguramos que en este momento solo un usuario puede escribir en la tabla ccf.dbf vamos al final del fichero con GO BOTTOM y obtenemos el ultimo idccf+1 que el siguiente identificador valido, insertamos el registro y los datos correspondiente como idcliente, nombre etc y luego liberamos el bloqueo sobre la tabla con UNLOCK a estas alturas ya tienes un nro valido de idccf y seguro que no coincide con uno nuevo que un usuario simultaneo pueda estar generando, posteriormente a esto debes seguir con el llenado de datos en ccfdet.dbf que no tiene ninguna relevancia a este caso.
Ahora tu gran problema es que trabajas con buffers y francamente ahora no tengo idea de como puedes solucionar este problema manteniendo asi como esta, salvo agregar una tabla ccfheader.dbf en la que tengas una lista de todos los idccf que vayas generando y no lo abras con buffers de modo a usar esta para obtener idccf en lugar de ccf.dbf espero haberme explicado si no mi correo empieza por xodrf y mi proveedor de correo es hotmail o sea @hotmail.com
Pd: Logre reproducir la falla haciendo lo siguiente lanza dos veces el programa (EXE) ingresa a la pantalla ccf agrega un nuevo registro (ambos) mete idccf 201, ve la la segunda instancia e ingresa a ccf agrega un nuevo registro (ambos) mete idccf 201 y graba ambas instancias veras como te duplica los registros con idccf 201 en ambas tablas ccf.dbf y ccfdet.dbf que es donde ocurre la combinacion de registros de ambos usuarios, debes tratar de obtener el idccf de manera automatica y no pidiendo al usuario que es como te sugeri arriba, mediante algo asi:
*// BUSCANDO UN NUEVO IDCCF EXCLUSIVO
SELECT CCF
GO BOTTOM
DO WHILE !FLOCK()
MESSAGEBOX( [ESPERANDO EL DESBLOQUEO DEL FICHERO CCF.DBF], 16, [FLOCK] )
ENDDO
_idccf=IDCCF+1
INSERT INTO CCF (IDCCF,...) VALUES (_idccf,...)
UNLOCK
*// ARCHIVO LIBERADO, OTROS USUARIOS AHORA PUEDEN GRABAR EN EL