FoxPro/Visual FoxPro - Mi sistema en red una de las PC con mensaje de tabla en uso al salir y hacer el backup

 
Vista:
sin imagen de perfil
Val: 313
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mi sistema en red una de las PC con mensaje de tabla en uso al salir y hacer el backup

Publicado por Jose Francisco (167 intervenciones) el 21/11/2018 21:37:56
Buenas tardes estimados , mi sistema programado en Foxpro 9 ya está en red en 3 PC,. Y en una de ellas al salir, el backup sólo lo hace en parte (sólo las tablas dbf) en cambio en las otras dos al salir del sistema hacen el backup completo( dbf, cdx, etc).
La diferencia que en la del problema tengo instalado el w10 y en las otras dos el w7, será algún problema con el W10?.
Y el sistema lo programé totalmente en la PC con Windows w10 sin ningún problema.
Les comento que el backup lo realizo estando con las otras PC con el sistema cerrado, o sea sin utilizar.
Aguardo respuesta, gracias.
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
Imágen de perfil de Abel
Val: 642
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mi sistema en red una de las PC con mensaje de tabla en uso al salir y hacer el backup

Publicado por Abel (284 intervenciones) el 22/11/2018 15:03:41
Podrías mostrarme que rutina usas?; de otro modo solo estaría adivinando.
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
sin imagen de perfil
Val: 313
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mi sistema en red una de las PC con mensaje de tabla en uso al salir y hacer el backup

Publicado por Jose Francisco (167 intervenciones) el 22/11/2018 21:04:11
Hola Abel, sí como no , aquÍ va la rutina gracias:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
PROCEDURE SALIRCBACK
 
TR
xt=MESSAGEBOX("Desea realizar un Backup al salir?",4,"Mensaje ")
IF xt=6
 
IF DIRECTORY("d:\Backupsist")=.f.
MKDIR("d:\Backupsist")
ENDIF
 
 
WAIT WINDOW "Creando respaldo de Seguridad..." TIMEOUT .8
 
SET DEFAULT TO "\\usuario-pc\d\redsistv\sistemvet\"
 
***(USUARIO-PC ES ESTÁ EN RED)*
 
SET PATH TO backupsist
 
 
 COPY FILE *.dbf TO d:\backupsist\*.dbf
 
 COPY FILE *.cdx TO d:\backupsist\*.cdx
 
 COPY FILE *.dcx TO d:\backupsist\*.dcx
 
 COPY FILE *.dct TO d:\backupsist\*.dct
 
 COPY FILE *.fpt TO d:\backupsist\*.fpt
 
WAIT WINDOW "Terminó el respaldo de datos con éxito..." TIMEOUT .8
 
MESSAGEBOX("COPIA DE BACKUP FUE CREADA CON EXITO",64,"Mensaje")
 
ENDIF
 
Catch To oError
	Wait Window "Tabla en uso"+Chr(13)+oError.Message Timeout 0.5
ENDTRY
ENDPROC
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
Imágen de perfil de Abel
Val: 642
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mi sistema en red una de las PC con mensaje de tabla en uso al salir y hacer el backup

Publicado por Abel (284 intervenciones) el 23/11/2018 13:18:25
Hice unos pequeños cambios a tu código; prueba a ver si te sirve..

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
Procedure SALIRCBACK
Try
   If Messagebox("Desea realizar un Backup al salir?",4,"Mensaje ")=6
      If Directory("d:\Backupsist")=.F.
         Mkdir("d:\Backupsist")
      Endif
      Wait Window "Creando respaldo de Seguridad..." Timeout .8
 
      cRuta = "\\usuario-pc\d\redsistv\sistemvet\"
 
      ***(USUARIO-PC ES ESTÁ EN RED)*
      Set Safety Off
      Copy File(cRuta+"*.dbf") To d:\backupsist
      Copy File(cRuta+"*.cdx") To d:\backupsist
      Copy File(cRuta+"*.dcx") To d:\backupsist
      Copy File(cRuta+"*.dct") To d:\backupsist
      Copy File(cRuta+"*.fpt") To d:\backupsist
      Set Safety On
      Wait Window "Terminó el respaldo de datos con éxito..." Timeout .8
 
      Messagebox("COPIA DE BACKUP FUE CREADA CON EXITO",64,"Mensaje")
   Endif
Catch To oError
   Wait Window "Tabla en uso"+Chr(13)+oError.Message Timeout 0.5
Endtry
Endproc
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
sin imagen de perfil
Val: 313
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mi sistema en red una de las PC con mensaje de tabla en uso al salir y hacer el backup

Publicado por Jose Francisco (167 intervenciones) el 24/11/2018 02:45:11
Hola Sr Abel , continúa igual (utilizando cualquiera delas dos rutinas), y sólo hace el backup en la pc donde está instalado el directorio(pc1)(USUARIO-PC)

(Antes dije una sóla pc sin backup , es que la otra no estaba tomando el sistema de la USUARIO-PC.)(la llamo pc1)(Tampoco tiene que ver el windows)

El error continua dando el "tabla en uso" "archivo está en uso" (en la pc2 o pc3), igualmente estando cerrado el sistema en la pc1 base (USUARIO-PC) u otras pc.-

Ahora: ni bien compilado el sistema que esta alojado en la pc1, ......pero desde la pc2.... , funciona bien el backup, pero cuando cierro e ingreso de nuevo el sistema en la pc2 , da el error de tabla en uso y archivo en uso.-

pc1: backup ok
pc2: sólo hace las dbf. dando o el mensaje tabla en uso , archivo en uso.,

Y como dije anteriormente si compilo nuevamente "desde la pc 2 " en el primer ingreso a la pc2 luego de compilar , al salir ,hace le backup normal.-
Aguardo alguna respuesta.-
Gracias
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
Imágen de perfil de Abel
Val: 642
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mi sistema en red una de las PC con mensaje de tabla en uso al salir y hacer el backup

Publicado por Abel (284 intervenciones) el 24/11/2018 14:43:19
Si dices que no esta abierto en ninguna parte y te de error de tabla en uso; podrías asegurarte usando el comando CLOSE..

1
2
3
4
5
6
7
8
9
Procedure SALIRCBACK
Try
   If Messagebox("Desea realizar un Backup al salir?",4,"Mensaje ")=6
      Close Tables All
      Close Databases All
      If Directory("d:\Backupsist")=.F.
         Mkdir("d:\Backupsist")
      Endif
...
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
sin imagen de perfil
Val: 313
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mi sistema en red una de las PC con mensaje de tabla en uso al salir y hacer el backup

Publicado por Jose Francisco (167 intervenciones) el 24/11/2018 22:47:52
Hola, programé el comando close, pero no funciona.
Ahora, cómo recién compilado el backup funciona bien ? (Compilo tomando el directorio de usuario-pc ).
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
Imágen de perfil de Abel
Val: 642
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mi sistema en red una de las PC con mensaje de tabla en uso al salir y hacer el backup

Publicado por Abel (284 intervenciones) el 25/11/2018 20:02:59
No comprendo la pregunta José; no funciona o compilado si funciona?; por otro lado lo de que solo toma datos de un directorio para hacer el backup, tiene que ver con ésta línea de comando:

cRuta = "\\usuario-pc\d\redsistv\sistemvet\"

Haz que varíe de acuerdo a desde donde deseas que lea los datos a registrar.

El procedimiento no cambia ya que usa una rutina, por ende si funciona bien una vez debería hacerlo siempre; pero la explicación a tu problema es que alguna de las tablas incluso la BD quede abierta en alguno de los ordenadores y por ende te este dando error.
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
sin imagen de perfil
Val: 313
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mi sistema en red una de las PC con mensaje de tabla en uso al salir y hacer el backup

Publicado por Jose Francisco (167 intervenciones) el 25/11/2018 21:18:53
1) de la pc2 compilo pero tomando dónde está la ruta de la pc1 (donde está cargado el programa).(compilo a través de la red)
2) ni bien compila habre el sistema solo e ingreso, y al salir
hace el backup correctamente.( Ésto todo desde la pc2)
3) siempre estando en la PC 2 , ingreso al sistema nuevamente, cierro, y no hace el backup completo ( solo los dbf)
4) si trabajo sólo en la pc1 el backup siempre funciona.

Hay algo raro , tabla habierta no queda.
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
sin imagen de perfil
Val: 313
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mi sistema en red una de las PC con mensaje de tabla en uso al salir y hacer el backup

Publicado por Jose Francisco (167 intervenciones) el 25/11/2018 21:47:46
Abel, te comento también , que utilizo tablas libres.-(no BD)

Recién hice otra prueba, compile desde la pc 1(donde está cargado todo el programa) pero es igual.

Ingreso en la pc2 y NO hace el backup completo , (dando e lmensaje de archivo abierto, tabla abierta)

Será un problema con las tablas libres?
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
Imágen de perfil de Abel
Val: 642
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mi sistema en red una de las PC con mensaje de tabla en uso al salir y hacer el backup

Publicado por Abel (284 intervenciones) el 26/11/2018 00:20:19
Prueba lo siguiente a ver si te sirve...

1
2
3
4
5
6
7
8
9
cRuta = Addbs(""\\usuario-pc\d\redsistv\sistemvet\"")
cDest = Addbs("d:\backupsist")
For nX=1 To Adir(aArchos,cRuta+"*.D*")
    cArchivo = aArchos(nX,1)
    If Justext(cArchivo)="DBF"
        Use (cRuta+cArchivo) Shared
        Copy To (cDest+cArchivo) With Production
    Endif
Next

Te explico el funcionamiento de ésto...
1. Toma de la ruta origen todos los archivos que tengan como inicio de extensión la letra D.
2. Salta de 1 en 1 todos los DBF; individualmente los abre compartidos para evitar errores al estar compartidos o abiertos en algún sitio.
3. Hace una copia del DBF con indices y FTP si los tiene.
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
sin imagen de perfil
Val: 313
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mi sistema en red una de las PC con mensaje de tabla en uso al salir y hacer el backup

Publicado por Jose Francisco (167 intervenciones) el 26/11/2018 12:09:07
Hola Abel , ahora sí me hace el backup en la pc2,,, archivos dbf , cdx, fpt , pero faltan algunas tablas dbf .-(dando el mensaje de tabla en uso, el archivo está en uso.....

***Yo lo dejaría asi teniendo en cuenta siempre de sacar el backup de la pc1*

( y no me da el mensaje final que el backup se realizó con éxito como lo hace en la pc1 con ésta rutina ok.-( no tiene mucha importancia ya que se sabe el problema) (aunque puedo poner un mensaje distinto para cuando salgo con backup con pc2 ...con un ..else..."backup compartido ya realizado"........)

.
OTRA CONSULTA: Pasos a seguir para instalar éste sistema en la nube? o en un dropbox , es con tablas libres.-

Gracias por todo
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
Imágen de perfil de Abel
Val: 642
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mi sistema en red una de las PC con mensaje de tabla en uso al salir y hacer el backup

Publicado por Abel (284 intervenciones) el 26/11/2018 13:49:04
No entiendo eso de instalar el sistema en la nube. ¿Todo el sistema? o te refieres a ¿poner los datos del respaldo en la nube?.

Si fuese esto último; por ejemplo usando Dropbox o MegaSync o alguno de ellos; solo debes vincular una de las carpetas de tu pc a la nube (esto lo haces con el mismo programa de enlace) y todo lo que cargues en ese carpeta sube a la nube y se vincula en cada máquina a su vez que esté conectada.
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
sin imagen de perfil
Val: 313
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mi sistema en red una de las PC con mensaje de tabla en uso al salir y hacer el backup

Publicado por Jose Francisco (167 intervenciones) el 26/11/2018 13:54:04
Me gustaría todo el sistema y no depender de las PC que tengan instalado mi software.
O sea que trabaje en la nube como si fuera en una red.

Poder ingresar desde cualquier PC.en cualquier lado.
Cuesta mucho llegar a eso ?
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
Imágen de perfil de Abel
Val: 642
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mi sistema en red una de las PC con mensaje de tabla en uso al salir y hacer el backup

Publicado por Abel (284 intervenciones) el 27/11/2018 14:33:44
Puedes hacerlo, pero deberías programar en otros lenguajes; por ej. CSS, JavaScript y habrá otros sin dudas pero no los conozco.
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
sin imagen de perfil
Val: 313
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mi sistema en red una de las PC con mensaje de tabla en uso al salir y hacer el backup

Publicado por Jose Francisco (167 intervenciones) el 27/11/2018 19:21:01
Gracias por todo Abel.
He probado con el Dropbox como dices pero tarda en actualizar lis datos de las tablas unos minutos cuando lo instalo para dos PC o más.
Ni bien pueda voy a
probar con el Megasync que me comentaste.
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
Imágen de perfil de Abel
Val: 642
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mi sistema en red una de las PC con mensaje de tabla en uso al salir y hacer el backup

Publicado por Abel (284 intervenciones) el 28/11/2018 15:04:47
Creí que usarías los enlaces en la nube para cargar los respaldos; no es muy conveniente que trabajes usando como enlace estos programas, sobre todo (al menos en las opciones gratuitas) pueden cancelar su conexión sin consultar; deberías mejor investigar los VPN.
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
sin imagen de perfil
Val: 313
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mi sistema en red una de las PC con mensaje de tabla en uso al salir y hacer el backup

Publicado por Jose Francisco (167 intervenciones) el 02/12/2018 16:10:24
Bueno muchas gracias, si tenés algo de vpn, favor de pasarme algún link.
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
sin imagen de perfil
Val: 313
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mi sistema en red una de las PC con mensaje de tabla en uso al salir y hacer el backup

Publicado por Jose Francisco (167 intervenciones) el 04/12/2018 00:37:50
Mi voto es positivo
Muchísimas gracias !
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
sin imagen de perfil
Val: 313
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mi sistema en red una de las PC con mensaje de tabla en uso al salir y hacer el backup

Publicado por Jose Francisco (167 intervenciones) el 13/12/2018 15:29:27
Hola Abel, tengo un problemita con otro tema nuevo.
Pe podrás ayudar ?
Es con fecha de 12 y 13 de diciembre 2018.
El tema es que no puedo grabar el replace en la última vuelta o elección de un artículo en un grid.
Gracias
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
Imágen de perfil de Abel
Val: 642
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mi sistema en red una de las PC con mensaje de tabla en uso al salir y hacer el backup

Publicado por Abel (284 intervenciones) el 14/12/2018 13:22:38
No hay problemas Jose, pero cuéntame un poco mejor del tema que así como lo dices no es que entiendo mucho.
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
sin imagen de perfil
Val: 313
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mi sistema en red una de las PC con mensaje de tabla en uso al salir y hacer el backup

Publicado por Jose Francisco (167 intervenciones) el 14/12/2018 14:02:01
Bueno, desde ya gracias, te cuento:
Es en uno de los formularios del mismo sistema,( se llama formulario recibo,donde le agregué una opción de calcular ganancia),tengo el grid1 donde cargo los artículos o servicios que los tomo del grid2.-
Todo fiunciona bien menos el replace de la ganancia "en la última vuelta del grid."
Cuando estoy cargando el grid1 a traves del grid2 , en la última vuelta , el último registro únicamante graba la ganancia haciendo un click en el precio unitario o importe , ahora si continúo cargando otro garba los anteriores sin dar ningún click, sólo pasa con el cálculode la ganancia ya que la gan. la busca de la tabla artículos.-
el código del grid1 es el siguiente:
adjunto código en beforrerowcolchangue:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
wdesc=art1rec.desc
wunid=art1rec.unid
wprec_u=art1rec.prec_u
wprec_u=art1rec.prec_u
wpdesc=art1rec.pdesc
wimporte=art1rec.importe
wimporte=(wprec_u*wunid)
wpdesc=(wimporte*wdesc)/100
wimporte=wimporte-wpdesc
 
replace importe WITH wimporte  (aqui siempre graba el importe todas las veces)
 
IF art1rec.unid=0 OR art1rec.unid>0
 
SELECT 2
 
wart=art1rec.articulo
wunid=art1rec.unid
wgan=art1rec.gan
 
SELECT 4
SEEK CODART
 
wart=xartm.codart
IF wart=xartm.codart
wgan=((xartm.ganancia)*wunid)
 
replace art1rec.gan WITH wgan
*****
en la ultima vuelta NO graba la gan.......
sólo Graba la gan en la última vuelta de elegir el artículo  si hago un click en importe de la fila del grid
 
*****
thisform.txtganancia.Value=wgan
 
ENDIF
ENDIF


Probé programando en afterRowColChangue pero es peor no graba ninguna de las gan.-
Algo importante , en el grid1 del formulario , no hay campo gan, lo toma directamente de la tabla art1rec
Hice una prueba poniendo un campo en el grid1 pero igual no funciona el replace.-
CALCULO QUE NO LO HACE EL REPLACE EN LA ÚLTIMA VUELTA O ELECCIÓN DEL ARTÍCULO PORQUE VA A BUSCAR LA GAN A LA OTRA TABLA Y FALTA ALGO.-
LOS DEMÁS CAMPOS LOS GRABA BIEN (HACE BASTANTE UTILIZO ESE MÓDULO ), AHORA AGREGO EL CÁLCULO DE GANANCIA, FALTA SÓLO QUE LA GRABE EN EL ÚLTIMO CICLO DE LA BÚSQUEDA.-
Como te indicaba sólo NO funciona en la última vuelta de elección del artículo del grid2. y.... con un click en unidad o importe ....si hace el cálculo y lo graba.-
PROBÉ DE PROGRAMAR LO SIGUIENTE PARA HACER UN CLICK AUTOMÁTICO EN IMPORTE (SERÍA UNA SOLUCIÓN)PERO NO FUNCIONA: thisform.grid1.column6.header1.texto1.click

Aguardo respuesta.-
Nuevamante gracias
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
Imágen de perfil de Abel
Val: 642
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mi sistema en red una de las PC con mensaje de tabla en uso al salir y hacer el backup

Publicado por Abel (284 intervenciones) el 14/12/2018 17:24:04
Puede ser que le falte actualizar el último registro..
prueba escribir debajo del último ENDIF lo siguiente

Go Bottom

y me dices si funciona.
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
sin imagen de perfil
Val: 313
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mi sistema en red una de las PC con mensaje de tabla en uso al salir y hacer el backup

Publicado por Jose Francisco (167 intervenciones) el 14/12/2018 19:49:46
No, no funciona , recién lo probé (me parece que ya lo había probado antes ) y cuando modifico tampoco.,,
El go Botton sería cuando doy de alta un tecibo nuevo y los artículos grabam en el último registro, pero tampoco funciona.
Falta un impulso más , pensé en cambiar de lugar el seek donde graba la ganancia , también pensé en ponerlo en una variable pública o local.
Ptesionando un click en unidad o importe cómo te decía graba, es como falta completar ese cálculo.
Puse un thisform.txtganancia.value en el formulario principal , ahí va cargando sea una ganancia por vuelta de búsqueda,, pero la última no la graba en la tabla art1rec.
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
sin imagen de perfil
Val: 313
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mi sistema en red una de las PC con mensaje de tabla en uso al salir y hacer el backup

Publicado por Jose Francisco (167 intervenciones) el 15/12/2018 01:24:15
Abel:
Hice un do while para que recorra el arhivo y cuando modifico hace un recálculo.-(me sirve para todo)
En realidad ya lo tenía para el primer uso de ese formulario (luego ahora ..... agregue cálculo de ganancia)
(en el sum all más abajo me guarda luego que se recalcula el importe)
EN EL BOTÓN GRABAR DEL FORMULARIO PRINCIPAL RECIBOS:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
SELECT arti1rec
GO top
DO WHILE NOT EOF()
SELECT xrec
*(es la tabla del formulario principal recibos)
SET FILTER TO nrocomb == ThisForm.txtnrocomb.Value IN "art1rec"
*aqui combino el el grid1 (tabla art1rec) con la tabla xrec del formulario principal ,
IF nrocomb=thisform.txtnrocomb.value
 
***ATENCIÓN NO ESCRIBIR CON EL ALIAS PORQUE NO GRABA
SELECT art1rec
 
warticulo=art1rec.articulo
wdesc=art1rec.desc
wunid=art1rec.unid
wprec_u=art1rec.prec_u
wprec_u=art1rec.prec_u
wpdesc=art1rec.pdesc
wimporte=art1rec.importe
wimporte=(wprec_u*wunid)
wpdesc=(wimporte*wdesc)/100
wimporte=wimporte-wpdesc
 
replace articulo WITH warticulo
replace unid WITH wunid
replace prec_u WITH wprec_u
replace desc WITH wdesc
replace pdesc WITH wpdesc
replace importe WITH wimporte
 
****en la tabla art1rec
 
ENDIF
SKIP
LOOP
EXIT
ENDDO
 
thisform.txtganancia.Value=0
 
WAIT WINDOW "Calculando Ganancia..." TIMEOUT .8
 
SUM ALL art1rec.gan TO wgan FOR art1rec.nrocomb=thisform.txtnrocomb.value
thisform.txtganancia.Value=wgan
 
*debe haber una mejor forma pero ésta me sirvió.-
Cualquier siugerencia se acepta.
(Cualquier otro problema te consulto)
Saludos y muchas gracias!
 
***************************************************************************
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
Imágen de perfil de Abel
Val: 642
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mi sistema en red una de las PC con mensaje de tabla en uso al salir y hacer el backup

Publicado por Abel (284 intervenciones) el 15/12/2018 13:19:51
Me alegra oirlo José; lamento no haber sido de mucha ayuda aquí.
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
sin imagen de perfil
Val: 313
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mi sistema en red una de las PC con mensaje de tabla en uso al salir y hacer el backup

Publicado por Jose Francisco (167 intervenciones) el 15/12/2018 14:33:50
Hola Abel , no lo tengo del todo resuelto, porque a veces graba y otras no.
Tu ayuda siempre es válida , porque una cosa lleva a la otra y siempre te lo agradezco, pasa es que no tenés ahí todo el conjunto de programas de lo que estoy viendo.
Y si resolví los problemas fue con ayuda de todos uds en la web.
Lo continúo analizando.
Hay forma de programar un evento click en el grid1 texto importe ?
De mi parte continuo y no paro hasta poder resolverlo totalmente.
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
sin imagen de perfil
Val: 313
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mi sistema en red una de las PC con mensaje de tabla en uso al salir y hacer el backup

Publicado por Jose Francisco (167 intervenciones) el 16/12/2018 04:07:37
Hola Abel: pude solucionar el tema cambiadno la rutina de búsqueda de la ganancia en el do while de formulario principal.
Ahora sí graba bien la ganancia.-
(No me hizo falta ningún click)
Me faltan algunos detalles en un cálculo.-
Ni bien lo termine te paso el código.-.
Gracias
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
Imágen de perfil de Abel
Val: 642
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mi sistema en red una de las PC con mensaje de tabla en uso al salir y hacer el backup

Publicado por Abel (284 intervenciones) el 16/12/2018 15:23:38
No hay problemas José; me alegra ser de ayuda; pero en éstas preguntas últimas me cuesta entender por que hablas de vueltas por ejemplo y no veo donde haces el bucle ni con que??; SCAN ENDSCAN; DO WHILE ENDWHILE; FOR NEXT;... si fuese posible pon imágenes de los formularios cuando sea demasiada compleja la explicación y me resultará mucho más fácil para darte ayudas más certeras. Cn todo me alegra muchísimo que vayas avanzando. Exitos.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 313
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mi sistema en red una de las PC con mensaje de tabla en uso al salir y hacer el backup

Publicado por Jose Francisco (167 intervenciones) el 16/12/2018 15:50:58
Cuando hablaba de vueltas , quería decir cuando elijo otro artículo del grid2 para verlo en el grid1.
Ni bien lo tenga listo , me gustaría pasarte el formulario completo con las tablas para que lo evalúes.
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
sin imagen de perfil
Val: 313
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mi sistema en red una de las PC con mensaje de tabla en uso al salir y hacer el backup

Publicado por Jose Francisco (167 intervenciones) el 19/12/2018 02:44:26
Hola Abel , disculpá que te sea cargoso y reiterativo con éste tema de la grabación de la ganancia, pero no puedo sacar un error:
Tengo ésta rutina(continuando con el mismo programa en cuestion), de primera vez me graba bien los valores, pero cuando modifico me pone como gan en cada item una nro constante 157,51.-( ES ALGO RARO Y NO LO PUEDO DESCUBRIR DONDE ESTÁ EL ERROR)
Aqui va el código:
SELECT 1
xt=MESSAGEBOX("Confirma modificar los Datos?",4,"Mensaje")
IF xt=6
*****

*AQUI GRABO DE NUEVO POR SI MODIFICO LAS CANTIDADES
SELECT 2
GO top
*SET FILTER TO nrocomb == ThisForm.txtnrocomb.Value IN art1rec

SCAN FOR nrocomb=thisform.txtnrocomb.value
SELECT 4
*****AQUI LA GANANCIA LABUSCA DE CADA ARTICULO DADO DE ALTA EN EL MAESTRO DE ARTÍCULOS EN SELECT 4****

SEEK CODART
IF FOUND()
wganu=(xartm.ganancia)


ENDIF

SELECT 2
***************(ÉSTA ES LA TABLA DEL GRID1 DONDE AL GRABAR DE NUEVO (MODIFICAR) ME DA EL ERROR EN LA GABACIÓN DE LA GANANCIA, 157,51)

warticulo=art1rec.articulo
wdesc=art1rec.desc
wunid=art1rec.unid
wprec_u=art1rec.prec_u
wpdesc=art1rec.pdesc
wimporte=art1rec.importe
wimporte=(wprec_u*wunid)
wpdesc=(wimporte*wdesc)/100
wimporte=wimporte-wpdesc
replace articulo WITH warticulo,;
unid WITH wunid,;
prec_u WITH wprec_u,;
desc WITH wdesc,;
pdesc WITH wpdesc,;
importe WITH wimporte

wgan=(wganu*wunid)
replace art1rec.ganu WITH 0
replace art1rec.ganu WITH wganu
replace art1rec.gan WITH 0
replace art1rec.gan WITH wgan

thisform.txtganancia.Value=wgan

ENDSCAN

***************************************************************************

SUM ALL art1rec.gan TO wgan FOR art1rec.nrocomb=thisform.txtnrocomb.value


thisform.txtganancia.Value=wgan
SELECT 1
replace ganancia with thisform.txtganancia.value
**************************************************************************
Aguardo por favor alguna respuesta.
Gracias
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
Imágen de perfil de Abel
Val: 642
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mi sistema en red una de las PC con mensaje de tabla en uso al salir y hacer el backup

Publicado por Abel (284 intervenciones) el 19/12/2018 19:45:56
Me da la impresión que tu error está en ésta línea:

SEEK CODART

&& ¿Dónde está indicado el valor CODART?; parece que nunca cambia y siempre busca el mismo..

Por otro lado éstas líneas son innecesarias:
replace art1rec.ganu WITH 0
replace art1rec.gan WITH 0

esto hace lo mismo que las 4 lineas de replace que tienes...
replace art1rec.ganu WITH wganu, art1rec.gan WITH wgan
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
sin imagen de perfil
Val: 313
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mi sistema en red una de las PC con mensaje de tabla en uso al salir y hacer el backup

Publicado por Jose Francisco (167 intervenciones) el 19/12/2018 20:13:45
Hola Abel, el valor codart es el código del artículo de la tabla de select 4 que el alias es xartm.
Cuando lo busco pregunto ,,,si lo encuentra , hace una igualdad wganu=xartm.ganancia,,,,,,porque ese xartm.ganancia está dentro del registro donde está el artículo (codart)que encontró .
El scan no recorre toda la tabla del select 2 , de la alias es art1rec.,,y es la del grid1.
Replace en 0 , estuve probando por si al modificar se iba el error , pero sigue.
Ganu y gan, son campos de la tabla art1rec.
Y a lo último graba el total con suma all, en el formulario principal , tabla del recibo.( Es otra tabla)
De una funciona bien con valores individuales pero cuando modifico , y busca y hace los replace de nuevo , da ese error.,,,y si modifico y grabo enseguida luego del alta,. Se mantiene buen, ahora si cierro el formulario e ingreso de nuevo, modifico y da el error.
Aguardo respuesta.
Gracias.
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
Imágen de perfil de Abel
Val: 642
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mi sistema en red una de las PC con mensaje de tabla en uso al salir y hacer el backup

Publicado por Abel (284 intervenciones) el 19/12/2018 23:20:37
Me cuesta entender José; por que desconozco la estructura de tablas y campos que usas y no me deja vislumbrar mucho tu código; para entenderlo mejor en general suelo usar en vez de números de Areas de Trabajo uso diréctamente el nombre de la tabla, por ejemplo usas:
1
2
SELECT 4 para referirte a la tabla "xartm"; podrías usar:
SELECT xartm ;

ahora, por lo que entendí la tabla xartm que es el área de trabajo 4, tiene un campo CODEART; entonces, cuando usas lo siguiente:

1
2
3
4
5
SELECT 4
SEEK CODART
IF FOUND()
    wganu=(xartm.ganancia)
ENDIF

sería redundante ya que estarías buscando el dato dentro de la misma tabla; solo dime en que tabla está CODART y en que tabla debe buscarla y como es el Indice de ésta última tabla.... En el FOUND() que usas, cuando la respuesta séa negativa que el SEEK no halló nada continúa en la siguiente línea, así que hará los cambios en cualquier sitio de la tabla:

*** Mira; le hice unos cambios a tu código, para resolver algunas incongruencias y redundancias; miralo y dime si algo no entiendes de por que lo hice así.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
Select 1
If Messagebox("Confirma modificar los Datos?",4,"Mensaje")=6
    Select 2
    Scan For nrocomb=Thisform.txtnrocomb.Value  && Scan no necesita Go Top, siempre inciará.
        Select 4
         If Seek(CODART,<NombreTablaDondeBuscar>,<NombreDelIndice>)   && Corrige esos datos que faltan.
             wganu=(xartm.ganancia)
            SELECT  2
            warticulo = art1rec.articulo
            wdesc     = art1rec.Desc
            wunid     = art1rec.unid
            wprec_u   = art1rec.prec_u
            wpdesc    = art1rec.pdesc
            wimporte  = art1rec.importe
            wimporte  = (wprec_u*wunid)
            wpdesc    = (wimporte*wdesc)/100
            wimporte  = wimporte-wpdesc
            wgan      = (wganu*wunid)
            Replace ;
                articulo With warticulo, ;
               unid     With wunid, ;
               prec_u   With wprec_u, ;
              desc     With wdesc, ;
              pdesc    With wpdesc, ;
              importe  With wimporte
           Replace art1rec.ganu With wganu, art1rec.gan With wgan
           Thisform.txtganancia.Value=wgan
        Endif
    Endscan
    Sum All art1rec.gan To wgan For art1rec.nrocomb=Thisform.txtnrocomb.Value
    Thisform.txtganancia.Value=wgan
    Select 1
    Replace ganancia With Thisform.txtganancia.Value
Endif
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
sin imagen de perfil
Val: 313
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mi sistema en red una de las PC con mensaje de tabla en uso al salir y hacer el backup

Publicado por Jose Francisco (167 intervenciones) el 20/12/2018 01:17:58
Hola Abel, el select 4 es select xartm,,,,
El select 2 es select art1rec
Cuando doy de alta o modificó, hago el scan en xartm donde está el codart.
Pero de acuerdo a lo que me decís , creo que falta leer y comparar el artículo del art1rec ( grid1) con los codart del xartm.
El grid 1, donde armo el alta o modificación, es la tabla art1rec.
Vos en septiembre me pasaste un código para descuento de stock entre sus tablas , una de ellas temporaria que la borro con zap,,,me solucionaste el problema , anduvo henial.
Creo que ahora sería asi (pero acá creo que no va tabla temporal) :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
Select xartm
Set Order To codart
 
Select art1rec
Ser order to articulo
 
Select xartm
Scan
    If Seek (xartm.codart,"art1rec")
 
        Replace art1rec.ganu with xartm.ganancia
        Replace art1rec.gan with art1rec.gan * art1rec.unid
    Endif
Endscan

A ver si está bien ?
Me falta probarlo en la PC , no la tengo a mano ahora.
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
Imágen de perfil de Abel
Val: 642
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mi sistema en red una de las PC con mensaje de tabla en uso al salir y hacer el backup

Publicado por Abel (284 intervenciones) el 20/12/2018 01:50:27
Si por ahí va. Yo lo haría así:

1
2
3
4
5
6
7
8
Select xartm
Scan
    If Seek (xartm.codart,"art1rec","articulo")
        Select art1rec
        Replace art1rec.ganu with xartm.ganancia
        Replace art1rec.gan with art1rec.gan * art1rec.unid
    Endif
Endscan

Al estar las tablas abiertas, no hace falta volver a seleccionarlas con SELECT, solo seleccionas la tabla que usarás para el SCAN y en el SEEK mencionas el indice por el cual buscará.
Lo que éste código hace es;
1. Hace un SCAN de cada registro de la tabla xartm y toma el código CODART de dicha tabla usando el índice ARTICULO de la tabla art1rec;
2. de encontrar coincidencia reemplaza los valores dentro de ésta última tabla; antes de REPLACE hay que indicar la tabla por que sino no reemplaza.
3. Luego vuelve al SCAN sobre la tabla xartm sin necesidad de volver a seleccionarla y de ahí continúa con el bucle.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
1
Comentar
sin imagen de perfil
Val: 313
Bronce
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mi sistema en red una de las PC con mensaje de tabla en uso al salir y hacer el backup

Publicado por Jose Francisco (167 intervenciones) el 20/12/2018 04:26:08
Hola Abel , funcionó ok.
Lo único que cambié el segundo replace:

1
Replace art1rec.gan with art1rec.ganu * art1rec.unid

Gracias por ahora , nos estamos comunicando.
Felices fiestas ! Y próspero año nuevo.
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
Imágen de perfil de Abel
Val: 642
Plata
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

Mi sistema en red una de las PC con mensaje de tabla en uso al salir y hacer el backup

Publicado por Abel (284 intervenciones) el 20/12/2018 14:05:15
Felices Fiestas a ti también Jose; que disfrutes mucho; veremos que nos depara éste nuevo año; pero que haya mucho éxito y abundancia.
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