FoxPro/Visual FoxPro - para espertos

 
Vista:

para espertos

Publicado por martin jose  (49 intervenciones) el 09/05/2008 18:40:48
te envio mi program pirncipal para que me lo revises y me hagas las respectivas modificaciones te garedesco tu colaboracion
Nota

Cuando ejecuto el programa en alguna Terminal de la red me dice que el archivo no exite system.dbc
creo que el problema lo tenga el pacht si no es haci diganme que tengo malo y si me lo pueden corregir les agradezco

el programa corre solo donde tengo las vases de datos en las terminales no

en las terminales puse un acceso directo pero no coorre el programa me dice que el achivo no exite system.dbc
o diganme como puedo poner el acceso directo en la terminal yo ta tengo los compuradores comunicados despues de esto que mas tengo que hacer

_screen.visible = .T.
SET EXCLUSIVE OFF
clear all
PUSH MENU _MSYSMENU
SET NOTIFY OFF
_screen.backcolor = rgb (111,149,106)
set notify off

SET CLOCK ON
SET SYSMENU OFF
SET SYSMENU TO
dO c:proyectograficosinicio.mpr
set defa to fullpath(curdir())
set path to proyectoconsul,proyectoformula,proyectograficos,proyecto eportes,proyecto ablas
close tables all
public tabla1,indice1,indice2,tith1,tith2,titulo,clave,txtid,txtclave,veces,p,cla,m.clave,cod,m.cod,ni,m.nivel,m.nombre,cliente,laboratorio,proveedor,usuario,cambioclave,infcon,infven,facturacion,credito,compras,devolucio,ajustes,ventasdia,rotacion,impentra,impfac,ventaclie,devoiten,impdev,devclie,impord,sb1,sb2,sb3,sb4,sb5,sb6,sb7,sb8,sb9,sb10,saldo
txtid=""
p=0
non=m.nombre
cod=""
cla=m.clave
veces=""
clave=""
indice1=""
indice2=""
tith1=""
tith2=""
titulo=""
tabla1=""
cla=clave
ni=m.nivel
set procedure to promaest
open data system.dbc shared
_SCREEN.ICON = "c:archivos de programamicrosoft visual studiovfp98wizardsgraphicsuilder.ico"
_SCREEN.CAPTION = "MARKE 2.007"
_SCREEN.PICTURE = "c:proyectograficoslogo1.jpg"

select 1
use usuario
READ EVENTS
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:para espertos

Publicado por sergio (737 intervenciones) el 09/05/2008 20:42:48
En que carpetas ejecutas el programa
ya que curdir te da el direcotio de donde ejecutas el programa
si llega a ser ese el error lo que tenes que hacer es determinar en que path esta el peograma y tenes que señalar tambien la cvarpeta donde esta la base de datos dbc

o sea
set defa to c:carpetaprincipal
set path c:carpetaprincipalcarpetadebasededatos;demas carpetas qu enecesites que el sietema tenga en cuenta
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:para espertos

Publicado por Marvin Emilson Pineda (28 intervenciones) el 09/05/2008 21:31:48
a ver si esto te ayuda.

cuando estas diseñando la aplicación VFP guarda la dirección de las tablas que estas designando a un formulario para su uso posterior aunque le pongas Path el compila la dirección que tu predeterminastes en el diseño.

lo que podrias hacer es: tienes un servidor donde estan las tablas, este servidor tiene un nombre o una dirección IP, creas una varible publica con el nombre o IP de servidor más la ruta donde estan la base de datos que contiene las tablas. Como?

Public lcDBasePath
lcDBasePath = [\0.0.0.0FacturacionDbfsFacturacion.dbc]

ahora abres la base de datos

Open Database (lcDBasePath) Shared && Modo compartido

no se te ocurra cerrar la base de datos en ningun formulario.

luego en el evento BeforeOpenTables del Dataenvironment del formulario agregas este código:

=SetTablePath(THISFORM)

SetTablePath() sera una función en un archivo de procedimiento.

Function SetTablePath(oDataEnvironment)
If Type('oDataEnvironment') = 'O' Then
Local Array _HowManyCursor[1]
Local _WhichOne
_HowManyCursor = AMember(_Cursors, oDataEnvironment, 2)
For _Begin = 1 To _HowManyCursor
_WhichOne = Alltrim(_Cursors(_Begin))
oDataEnvironment.&_WhichOne..DataBase = Dbc()
Endfor
EndIf
EndFunc

asi cuando ejecutes tu sistema desde cualquier ordenador este ira a buscar la base de datos a la direccion que tu predetermines y desde alli abrira las tablas necesarios.

esto yo lo aplico ya que en mi caso tengo dos servidores uno de pruebas o otro de producción y así no tengo dos sistemas siemple mente el usuario selecciona la database que quiere

espero te sirva
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:para espertos

Publicado por Marvin Emilson Pineda (28 intervenciones) el 09/05/2008 21:52:25
esta cosa kito las barras inclinadas a la izquierda en todo caso las reemplasare con el guion kedando asi

lcDBasePath = [--0.0.0.0-Facturacion-dbfs-facturacion.dbc]

y la funcion solo debe pasar el parametro THIS
=SetTablePath(THIS)

ya que estamos pasando el objecto Dataenvironment y no el formulario, me equivoque en el ejemplo anterior

saludos,
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar