FoxPro/Visual FoxPro - vfp existe función para sacar porcentajes

 
Vista:

vfp existe función para sacar porcentajes

Publicado por jose agustin (110 intervenciones) el 05/08/2002 16:44:37
función para sacar porcentajes

en vfp existe función para sacar porcentajes
agradezco cualquier observación
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:vfp existe función para sacar porcentajes

Publicado por Foxperto (894 intervenciones) el 05/08/2002 21:35:01
Hola Jose:

Bueno no existe, al menos yo no la he visto.

Pero para sacar el Porcentaje es muy sencillo y puedes crearte tu mismo tu rutina para el calculo.

La formula seria:

lnTotal = Suma Total
lnNumero = El numero que se desea saber el porc.

lnPorc = (lnNumero/lnTotal)*100

Prueba y me cuentas.

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

RE:vfp existe función para sacar porcentajes

Publicado por leandro (5 intervenciones) el 28/06/2014 01:42:10
Hola probe tu formula por que necesitaba lo mismo ... pero me da error al hacer el calculo en la variable InPorc me da Inporc=.F. Desde ya muchas gracias .... por cierto el error es ... data typo mismatch !
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: 1.011
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

RE:vfp existe función para sacar porcentajes

Publicado por Fidel José (558 intervenciones) el 28/06/2014 15:25:23
LOCAL lnBase as Number , lnParte as Number, lnResult as Number

lnBase=1270
lnParte=432

lnResult=ROUND(lnParte/lnBase*100,2)

* lnResult=34.02
?TRANSFORM(lnResult,"999.99 %") --> "32.04 %"
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:vfp existe función para sacar porcentajes

Publicado por leandro (5 intervenciones) el 30/06/2014 21:47:58
Si ya lo había declarado as Number pero me sigue dando ese error ! Lo que quiero hacer específicamente es : tengo un text box donde tengo el monto, en el otro tex box quiero poner el numero de porcentaje que deseo sacar al mismo y a ese resultado le tengo que sumar ha dicho monto ! Bueno gracias por contestar ... 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: 1.011
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

RE:vfp existe función para sacar porcentajes

Publicado por Fidel José (558 intervenciones) el 01/07/2014 01:11:02
Lo de "As Number" es solo un comentario ya que Visual Fox no es un sistema fuertemente tipeado. O sea, poner eso es solamente para leer mejor qué es lo que uno pretende hacer. Es mejor utilizar correctamente la nomenclatura de prefijos:
Prefijo "LC" Variable local, Character
Prefijo "LN" Variable local, Number
Prefijo "LL" Variable local, Logical (boolean)
prefijo "LD" Variable local, Date

Si la variable es pública, el prefijo comienza con una g (global)

Lo importante es que las variables asuman el valor esperado. El error de datatype mismatch, significa que uno de las variables que metes en la fórmula tiene un valor incorrecto. Para prevenir eso, cuando utilizas un textbox como entrada de elementos numéricos, debes incializarlo como
Thisform.Text1.value=0
a menos que uses Thisform.text1.ControlSource='UnaTabla.ValorNum' ó .ControlSource='Thisform.pnNumero' donde el textbox asume lo necesario. De lo contrario, estás escribiendo un alfanumérico y:

lncValor=thisform.TExt1.Value
? vartype(lncValor) -> "C" && Oh, pero si puse un número!!!.

En cambio, si de entrada (puede ser en el init del form, en el init del control o en el diálogo de propiedades del control), Thisform.TExt1.value=0, ya no podrás ingresar algo que no sea un número.
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:vfp existe función para sacar porcentajes

Publicado por leandro (5 intervenciones) el 01/07/2014 06:35:10
Muchas gracias funciono como quería , ahora tengo algo que también lo quiero hacer pero no encontré bien la forma todavía.
Tengo una fecha determinada de pago, si el cliente se pasa 15 días de dicha fecha le tengo que aumentar el 5% ha la cuota si se pasa 30 días el 10% y así sucesivamente. Desde ya muchas gracias !
PD: También tengo otras cuestiones pero vamos por pasos jaja es que soy principiante y estas ayudas me sirven mucho .. 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: 1.011
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

RE:vfp existe función para sacar porcentajes

Publicado por Fidel José (558 intervenciones) el 01/07/2014 13:48:56
O sea, le aumentas un 5% cada 15 días de mora.

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
* Datos                 && surgen de la tabla de vencimientos de cuotas, excepto ldFeCalc, que en este caso es Hoy.
lnInteresMora=5
lnCapital = 10000
ldFeVencim=Date(2014,5,22)
ldFeCalc=Date()
 
* Cálculo de tiempo de Mora
lnDiasMora=ldFeCalc - ldFeVencim
lnQuincenas=  Int(lnDiasMora / 15 )
 
 
*1) Cálculo sin anatocismo (interés simple)
*	Monto = Capital * (1+i*n)
n = lnQuincenas
i = lnInteresMora/100
 
lnMonto = ROUND( lnCapital * (1 + i * n) , 2)
lnRecargo = lnMonto - lnCapital
 
 
lcMensaje="Capital: "+TRANSFORM(lnCapital,"999,999.99")+CHR(13);
	+"Dias en mora: "+TRANSFORM(ldFeCalc - ldFeVencim,"9,999")+CHR(13);
	+"Mora en quincenas: "+TRANSFORM(lnQuincenas)+CHR(13);
	+"Porcentaje de Recargo: "+TRANSFORM(lnInteresMora,"999.99%")+CHR(13);
	+"Monto de Recargo: "+ TRANSFORM(lnRecargo,"999,999.99")+CHR(13);
	+"Monto Adeudado al "+DTOC(ldFeCalc)+" "+TRANSFORM(lnMonto,"999,999.99")
 
MESSAGEBOX(lcMensaje,0,"Recargo determinado sin Anatocismo")
 
* ----------------------------------------------------------------
*2) Cálculo con anatocismo (interés compuesto)
*	M = C * (1+i)^n
*   En lugar de la tasa subperiódica, tomo el período como una quincena
 
i = lnInteresMora/100
n = lnQuincenas
lnMonto = ROUND( lnCapital * ( 1 + i)^n , 2 )
lnRecargo= lnMonto - lnCapital
 
lcMensaje="Capital: "+TRANSFORM(lnCapital,"999,999.99")+CHR(13);
	+"Dias en mora: "+TRANSFORM(ldFeCalc - ldFeVencim,"9,999")+CHR(13);
	+"Mora en quincenas: "+TRANSFORM(lnQuincenas)+CHR(13);
	+"Porcentaje de Recargo: "+TRANSFORM(lnInteresMora,"999.99%")+CHR(13);
	+"Monto de Recargo: "+ TRANSFORM(lnRecargo,"999,999.99")+CHR(13);
	+"Monto Adeudado al "+DTOC(ldFeCalc)+" "+TRANSFORM(lnMonto,"999,999.99")
 
MESSAGEBOX(lcMensaje,0,"Recargo determinado con Anatocismo")
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:vfp existe función para sacar porcentajes

Publicado por leandro (5 intervenciones) el 03/07/2014 05:16:43
Muchas gracias por la ayuda ! solamente que , en esta parte ldFeVencim=Date(2014,5,22) en mi tabla tengo fechadepago la guarde en una variable para que me compare con esa fecha , pero me da siempre dias en mora = 0 y yo en mi fechadepago para probar le puse un mes atrasado y me sigue dando dias en mora = 0 . Desde ya muchas gracias !

PD: en mi Date() tengo por ejemplo fechadepado = 02/05/2014 y fecha actual 02/07/2014 y me da dias en mora=0 siempre ! como que no me calcula que ya paso 2 mes ...
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: 1.011
Oro
Ha mantenido su posición en FoxPro/Visual FoxPro (en relación al último mes)
Gráfica de FoxPro/Visual FoxPro

RE:vfp existe función para sacar porcentajes

Publicado por Fidel José (558 intervenciones) el 03/07/2014 15:51:08
Aclaración:
ldFeVencim=Date(2014,5,22) es una expresión que utilizo solamente para el ejemplo, porque no tengo tus tablas y no sé como se llaman los campos.

Obviamente, esto es
ldFeVencim= TablaCreditos.CampoFechaVencimiento
O sea, para ese caso no te hace falta la función Date(), sino tomar directamente el valor del campo.
Para lo que escribes:
lnDiasMora = FechaActual - FechadePago && donde Vartype(fechaActual)="D" y Vartype(fechadepago)="D"
ó
lnDiasMora = IIF(date()>FechadePago , Date() - FEchadepago , 0)
Si escribes esto correctamente y ambos datos son tipo "D", no te puede dar cero.

Comentario:
En estos temas, siempre tenés 3 fechas: origen, vencimiento y pago. Desde el punto de vista lógico, no podés tener mora si la fecha de pago tiene un valor, porque significa que el deudor pagó. En cambio, si no pagó, calculás la mora tomando DiasdeAtraso = Date() - FechaVencimiento.
En una rutina más general, no ponés siempre Date(), sino que se ofrece la posibilidad de calcular desde otra fecha.
Por ejemplo, en esta rutina puedes no pasar el día de cálculo y entonces toma el dia actual (date()). Si la fecha de vencimiento es anterior a la fecha de cálculo, entonces devuelve la cantidad de días de mora, sino cero.

PROCEDURE CACULODiasdeMora
LPARAMETERS tdFecalc , tdFeVencim

if Vartype(tdFecalc)#"D" OR Empty(tdFeCalc)
tdFEcalc=date()
endif
if vartype(tdFeVencim)#"D" OR EMPTY(TdVencim)
return 0
endif
IF tdFecalc < tdFeVencim
return 0
endif

RETURN tdFecalc - tdFeVencim
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

RE:vfp existe función para sacar porcentajes

Publicado por leandro (5 intervenciones) el 03/07/2014 21:34:58
Muchas gracias ahora me funciono ! ...
Mi siguiente paso seria por ejemplo tengo un reporte para hacer un comprobante de pago , solamente que puede variar ese monto entonces en el reporte desde el form me gustaría saber como puedo lograr que por ejemplo : en ves de un monto agregado intereses que me imprima en el reporte el mismo monto pero sin intereses !
Por que aceptan si un cliente quiere pagar la mitad del monto y la mitad que queda lo tengo que agregar a la cuota siguiente o dejarla así .... espero haberme explicado bien, desde ya gracias por las ayudas me sirven mucho y aparte el tiempo me corre jajaj saludos ....

PD: si me das una idea para pasar el " monto adeudado al " seria el que esta agregado el 5% lo tendría que cambiar al monto cuotas, seria pasar ese dato a mi txtmontocuotas ! 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
sin imagen de perfil

RE:vfp existe función para sacar porcentajes

Publicado por Lisbeth alejandra (1 intervención) el 27/02/2019 03:54:09
Buenas noches por favor nesecito ayuda
Me mandaron hacer un programa en visual foxpro 9.0
Que calcule la
cantidad de libros
Cantidad de disco
Cantidad de tocadisco
Pago pronto/efectivo-si/no
Total a pagar
Y cada uno de ellos tiene un descuento y quiere q salga si el pago fue pronto "si o no "
Por favor ayudenme
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