Inicio > Visual FoxPro > victoramf > Multi empresa

Multi empresa

Experto:
Usuario:
Fecha: 05/09/2008
Valoración: (4,00 sobre 5) Categoría: Visual FoxPro
27/08/2008
diegosatch, usuario preguntando en Visual FoxPro
Usuario
Buenas.
Estoy tratando de hacer que un programa sea
multiempresa.
Había pensado que cada vez que inicio el sistema le indico
que empresa voy
a usar, y luego indicando SET PATH TO, le indicaría el
directorio de
trabaja.
Vi por ahi que tenias un ejemplo del tema, si es asi y lo podes enviar mi casilla es diegosatch@yahoo.com.ar.

Gracias
27/08/2008
diegosatch, experto respondiendo en Visual FoxPro
Experto
Checa tu correo (diegosatch@yahoo.com.ar)
28/08/2008
diegosatch, usuario preguntando en Visual FoxPro
Usuario
Victor: estoy revisando tu proyecto de multiempresa Multi02, en el evento lostfocus del combo del formulario empresas tenes este codigo:
LOCAL m.cArchivo
WITH THISFORM
m.cArchivo = "Emp" + .Empresas.aClave( THIS.LISTINDEX, 1 ) + "\"
SET PATH TO Comunes\; &cArchivo
IF USED( "Empresa" )
USE Empresa IN Empresa
ELSE
USE Empresa IN 0
ENDIF
ENDWITH

De donde tenes la ubicacion de los archivos especificos de cada empresa y ademas indicas el path de los comunes.
La consulta es si tengo 20 bases propias de casa empresa tengo que indicar la clausula USE por cada una?
¿Por que preguntas IF USED("Empresa")? En que situaciones se cumple.
Gracias.
28/08/2008
diegosatch, experto respondiendo en Visual FoxPro
Experto
Según podrás apreciar, en cArchivo se guarda el nombre de la carpeta de la compañía.  Los archivos comunes lo son a todas las empresas, de no tener información común no tendría caso un sistema multiempresa, simplemente habría uno para cada empresa ¿No?
Used("Empresa") determina si el archivo empresa está abierto.
28/08/2008
diegosatch, usuario preguntando en Visual FoxPro
Usuario
Mi caso especifico es que en un mismo sistema quiero "ver" los datos de varias empresas, que si bien la estructura de las bases son las mismas, los datos no.
En vez de tener 5 sistemas abiertos de cada empresa necesito tener uno solo y poder moverme entre las empresas solo indicando la direccion de los datos.
Vuelvo quizas con la misma pregunta, si cada empresa tiene 20 bases con el mismo nombre, la codificacion seria asi?
IF USED( "Tabla1" )
USE Tabla1 IN Tabla1
ELSE
USE Tabla1 IN 0
ENDIF
Y es replicado en la 20 bases?
Otra consulta: que pasaria si habro los datos de 5 empresas, ¿no tendria que ir cerrando las tablas una vez que cambio la misma?
Gracias de nuevo.
28/08/2008
diegosatch, experto respondiendo en Visual FoxPro
Experto
Para ese caso te sugiero que en lugar de usar el ejemplo Multi02 uses una variación de Multi01.
05/09/2008
diegosatch, experto respondiendo en Visual FoxPro
Experto
¿Funcionó la solución? En caso de no existir otra duda, favor de cerrar la pregunta.
05/09/2008
diegosatch, usuario preguntando en Visual FoxPro
Usuario
Al final lo resolvi con una pantalla de logueo y al elegir la empresa con el comando set default to haga la redireccion a la carpeta que corresponde.
Gracias y saludos.
Enlaces patrocinados