Duda sobre el porcentaje en los registros VFP

Buenas Tardes Ing. Tengo una duda sobre sacar el porcentaje de ciertos registros me explico;

tengo 18 registros por cada cliente que se deben de generar automáticamente,

dbf_cliente PEDRO MORALES a el automáticamente se añaden 18 nuevos registros date() en otra tabla dbf_fechas

08/ENERO/2013

15/ENERO/2013

22/ENERO/2013

28/ENERO/2013

05/FEBRERO/2013

12/FEBRERO/2013

19/FEBRERO/2013

05/FEBRERO/2013

...

y así hasta completar los 18 dichos registros, ahi voy bien, bueno cada semana el usuario validara las fechas hasta el punto donde al llegar a la semana "x" que corresponde al 80% del total de los 18 registros debe de avisar que se ha cumplido dicha condicion para de ahi generar una nueva condicion.

Lamentablemente ya me estanque y no se como hacerle, me podrias ayudar a resolver esta situacion?, de antemano te agradezco tu apoyo, espero haberme dado a entender.

Saludos y nuevamente gracias

1 Respuesta

Respuesta
1

D Espero poder ayudarte. Mm... a como veo, cuando el usuario llegue a la semana 14 (en este caso precisamente técnico, seria el registro numero 14 en la tabla de fechas) que corresponde al 80% de los registros (18/100 * 80%), el sistema debe lanzar una alerta que se ha llegado al 80% de los registros... ¿es eso lo que necesitas? Bueno... según yo, si. Corrígeme si me equivoco para poder ayudarte. :)

Bueno... no se como propones tu en tu sistema la forma de como el usuario validara las fechas cada semana... pero mi propuesta es la siguiente:

En foxpro hay muchas formas de hacer que los resultados sean los mismos. Para ir validando, el usuario puede recurrir a un form donde se encuentre un método llamado "validacionfecha80%" que tu mismo puedes crear y ahí correr un código que extraiga cuantas semanas se han cumplido. Imagino que a cada semana, cuando se va cumpliendo, le vas agregando alguna señal de que, precisamente, se ha cumplido, por ejemplo: un campo en la misma tabla llamado "situación", de tipo carácter, en donde, a medida que validas vas cambiando su valor. Te sugiero que cuando generes las fechas, en un campo también insertes un valor A (activa) a todos los registros. Cuando valides semana por semana, el estado del campo debe cambiar y el valor, pasando de A a I (Inactiva). Así, cuando el usuario valide la primer semana, como esta ya se ha cumplido, pasa a estar inactiva y el valor del registro en el campo "situación" seria I. Aquí damos en el clavo: cuando el valor se cambie de activa a inactiva, haremos que el sistema cuente en numero de registros (semanas) que están inactivos. Cuando el numero de registros sea 14, ya se habrá cumplido con el 80% se semanas... y ahí daremos la alerta al usuario y podrás generar tu nueva condición.

Vamos a la practica ahora: en tu formulario (en modo diseño) ve al menu y en FORM selecciona la opción NEW METHOD y ahí crearemos un nuevo método llamado validacionfecha80% Luego, ve a las propiedades de tu form, y en la pestaña METHOD busca la final el método que acabamos de crear. Ahí escribiremos el código:

LOCAL lnNumeroSemanas

**--Para validar, una vez pasada la semana

**--Cambiamos el valor de la situación del

**--Registro por I y así sabemos que dicha semana

**--Ya se cumplió

SELECT dbf_fechas

REPLACE dbf_fechas.situación WITH "I"

TABLEUPDATE(.T.)

**--Contamos para saber si hay 14 registros (80%)

SELECT dbf_fechas

COUNT FOR dbf_fechas.situación = "I" TO lnNumeroSemanas

IF lnNumeroSemanas = 14

MESSAGEBOX("Se ha cumplido el 80% de semanas.", 16, "Aviso")

**Escribe aquí la condición nueva

ENDIF

Prueba y me avisas! :)

Ohh lo olvidaba... ahora para ir validando, solamente crea un botón en tu form y llama al nuevo methodo en el evento click

THISFORM. Validacionfecha80%

Buenas Noches y gracias por tu pronta respuesta, casualmente en otras búsquedas de san google di con tu blog, muy interesante por cierto, se ve que si estas bien metido en el desarrollo con VFP.

Te comento la situación del por que y para que las fechas y de hecho así como tu lo planteas lleva un campo lógico solo que estaba estancado pero si efectivamente (18/100*80%) es lo que necesito. Resulta que tengo la tabla dbf_clientes y otra tabla dbf_fechas relación uno a muchos, esta ultima tabla almacena 18 pagos por cada cliente, así al referirme a que el usuario valide la info quiero decir aplique si realizo el pago el cliente semana por semana, el cual tiene dos campos mas "abono n(10)" y "pagó l()" así cada semana que se efectúe el abono que le corresponde a dicho cliente y el campo pago sea verdadero así llegando al 80% de los pagos mandará mensaje si desea renovar un nuevo préstamo o seguir abonando hasta finalizarlo

.

y así acertadamente como mandaste el método para contabilizar seria la manera correcta, dame oportunidad de probar el código para aclarar dudas si me resultan, prácticamente en seguida te contesto :)

De antemano y nuevamente Gracias por tu amabilidad al responderme.

Ingeniero, efectivamente estas en lo correcto ya lo analice bien y prácticamente es lo que necesito y pues bueno diste en el clavo como bien dices.

Muchas Gracias, un abrazo, te estaré molestando en lo futuro. xD

Saludos.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas