FoxPro/Visual FoxPro - Consejo

 
Vista:

Consejo

Publicado por LOLY (103 intervenciones) el 03/04/2010 22:08:41
Hola a todos... amigas(os), que gusto en saludarles...
Necesito un consejo... tengo una tabla con un campo que no quiero que sea Autoincrementable... por lo que debo de asignarle un numero que se incremente al realizar un registro... ejemplo si el ultimo es 10 el siguiente sera el 11...

cual manera sera mas recomendable y mas rápida...??

*********forma 1******
local lcNum
select tabla
ser order to xnum
go botton
lcNum=numero+1
***********************

******** forma 2
local lcNum
select tabla
ser order to xnum
lcNum=reccount()+1
************************

??????PREGUNTA?????
Habrá alguna forma de BUSCAR en todos los FORMS y archivo de funciones un dato y poderlo cambiar en todos los form....??

ejempo un ICONO que lo usen varios formularios... en el init de los mismos le pongo lo siguiente

WITH thisform
.Autocenter=.t.
.BorderStyle=0
.MaxButton=.f.
.MinButton=.f.
.icon='icons\ICOANTES.ICO
Endwith

AHORA EL ICO SERA ICOACTUAL ASI... Y LO QUIERO HACER REMPLAZAR TODO... EN EL PROYECTO...

WITH thisform
.Autocenter=.t.
.BorderStyle=0
.MaxButton=.f.
.MinButton=.f.
.icon='icons\ICOACTUAL.ICO
Endwith
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:Consejo

Publicado por ANDRES CORTEZ M (162 intervenciones) el 05/04/2010 17:15:37
Hola Loly

Espero estes bien.

Pregunta 1

La del Form1 es la correcta

La del Form2 es incorrecta, ya que si de la tabla elimina registro sin hacer pack, al darle un reccount() tambien cuenta los registros marcados.

Pregunta 2

Abrir el formulario

Edicion
reemplazar

buscar : iconoantiguo
reemplaza con : iconoactual

reemplazar todo

espero te sirva

ACM
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:Consejo

Publicado por es_binario (5 intervenciones) el 05/04/2010 21:00:16
Seria mas facil cambiarle el nombre al icono es decir el icono 1 que es l que no se deaa ponerle icon_old, y al nuevo el nombre del icono que esta en los registros y listo.
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

RE:Consejo

Publicado por Juanma Cruz (512 intervenciones) el 06/04/2010 14:03:30
Podrias hacerlo asi:

Select Nvl(max(numero),0)+1 as maximo from TABLA into cursor TmpConsulta
lcNUM= tmpConsulta.Maximo
use in TmpConsulta

Para tus necesidades, que no sea autoincremental...

Yo desaconsejo el método de ir al último o mas grande y sumarle 1, sobre todo en entornos multiusuario.

Preferiría tener una tabla donde voy llevando contadores incrementales. Usando técnica de bloqueo de registro, cuando alguien necesita un número nuevo, va al registro e intenta bloquear, tomar, incrementar y desbloquear. Si otro usuario está en lo mismo, espera su turno, al mejor estilo de un semáforo.
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:Consejo

Publicado por xx (378 intervenciones) el 08/04/2010 16:18:32
Otra opinión
1)
Definitivamente Debes optar por la forma , peeeeeerro sin olvidarte para uso multiusuario de incluir el bloqueo del archivo para las grabacion es decir
*********forma 1******
local lcNum
select tabla
ser order to xnum
DO WHILE !FLOCK()
MESSAGEBOX( [ESPERANDO EL DESBLOQUEO], 16, [ERROR])
ENDDO
go botton
lcNum=numero+1
UNLOCK
***********************

2) Si mal no recuerdo desde el vfp8 existe una opcion del IDE que te busca referencia (code reference) en un proyecto con este puedes buscar alguna frase o palabra dentro de todos los formularios, reportes, programas, menues etc y te muestra una lista de los archivos del proyecto que tienen esa frace lo cual puedes utilizarlo para cambiar en cada uno de ellos, no asi en la version vfp6 o inferior que debes utilizar otra herramienta del SO como buscar para hacerlo (que triste!!).
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