Olá Pedro
Crie uma tabela de cadastro de empresas que ficará fora dos bancos de dados das empresas.
Crie um BD vazio com as tabelas que você usará para as empresas também vazias.
Crie uma janela com uma lista para Selecionar a empresa quando o programa for aberto.
Ao selecionar a empresa seu programa deverá verificar se o BD exisite para aquela e empresa e se não existir deve então criar a pasta ("Dados"+codigoempresa) dentro da pasta Dados e copiar o BD vazio para lá.
Crie uma variável de memória que contenha a Empresa selecionada e no DataEnvironment no evento BeforeOpenTables coloque:
poDataEnv= THIS
LOCAL a, cCursorTemp
SET LIBRARY TO Libs\FoxTools.fll ADDITIVE
WITH poDataEnv
FOR a= 1 TO 50
IF TYPE(".Cursor"+ALLTRIM(STR(a))+".Database")='C' AND !EMPTY(EVAL(".Cursor"+ALLTRIM(STR(a))+".Database"))
cCursorTemp= ".Cursor"+ALLTRIM(STR(a))+".Database"
&cCursorTemp= ADDBS(varpubiclapastaempresa)+JUSTFNAME(EVAL(cCursorTemp))
ENDIF
ENDFOR a
ENDWITH
RETURN .T.
Veja que varpubiclapastaempresa é a variável que define a pasta da empresa na abertura do programa.
Além disso você ainda pode fazer de outro jeito: Ter apenas um banco de dados e nas tabelas criar um campo código da empresa que está selecionada no momento. Eu faço assim nos meus sistemas.
Atenciosamente
L. FernandoMSN Messenger:
luisfoxi@hotmail.comO Sucesso depenende principalmente de você estar no LUGAR CERTO, na HORA CERTA, com as PESSOAS CERTAS.
A COMPETÊNCIA só ajuda a manter o sucesso!