funciones avanzadas
Publicado por leo (2 intervenciones) el 04/04/2013 03:46:53
Buen día, tengo una curiosidad en mi país existe un software llamado profit (nomina) una de las versiones esta en fox, dicho software trabaja a base de variables y concepto este no es mas que funciones, las cuales están almacenadas en una tabla campo memo...
ejemplo:
1) var a001 sueldo mesual = 3000
2) concepto a001 sueldo diario = var a001 / 30 = 100
este fue un concepto sencillo existen concepto con anidaciones:
concepto a002 sueldo quincenal = concepto a001 * 15 = 1500
otro seria (no espero que comprenda esto es solo para que tenga idea de lo complejo que puede ser un concepto)
concepto q023 monto base la retencion impuesto lph =
(iif(tcontrato='91',concepto('A300','Vacaciones')+concepto('A301','Vacaciones en Festivos y Descansos')+concepto('A303','Días de Sueldo Pendiente'),iif(constante('S017','Aplicar Retenciones al final del Mes (S)')='S', concepto_valor_acumulado('A001', IIF(EMPTY(campo_var('V001','Fecha Mes Anterior/Base Salario Integral Prestaciones')),inicio_primera_semana(tfecini_nom, tfecfin_nom),campo_var('V001','Fecha Mes Anterior/Base Salario Integral Prestaciones')+1), tfecfin_nom), concepto('A001','Sueldo'))+concepto('A002','Día de Descanso')+concepto('A005','Feriado Legal')-concepto('D006','Vacaciones Pagadas')))
las funciones la puedes ir armando y testeando en tiempo de ejecución
mi interrogante es como pudieron hacer para que foxpro le pueda procesar estas funciones en tiempo ejecución, como seria el codigo para leer y procesar los antes descrito las anidaciones...
lo unico que se me viene a la mente es el EXECSCRIPT( ) ... pero realmente ni idea
ejemplo:
1) var a001 sueldo mesual = 3000
2) concepto a001 sueldo diario = var a001 / 30 = 100
este fue un concepto sencillo existen concepto con anidaciones:
concepto a002 sueldo quincenal = concepto a001 * 15 = 1500
otro seria (no espero que comprenda esto es solo para que tenga idea de lo complejo que puede ser un concepto)
concepto q023 monto base la retencion impuesto lph =
(iif(tcontrato='91',concepto('A300','Vacaciones')+concepto('A301','Vacaciones en Festivos y Descansos')+concepto('A303','Días de Sueldo Pendiente'),iif(constante('S017','Aplicar Retenciones al final del Mes (S)')='S', concepto_valor_acumulado('A001', IIF(EMPTY(campo_var('V001','Fecha Mes Anterior/Base Salario Integral Prestaciones')),inicio_primera_semana(tfecini_nom, tfecfin_nom),campo_var('V001','Fecha Mes Anterior/Base Salario Integral Prestaciones')+1), tfecfin_nom), concepto('A001','Sueldo'))+concepto('A002','Día de Descanso')+concepto('A005','Feriado Legal')-concepto('D006','Vacaciones Pagadas')))
las funciones la puedes ir armando y testeando en tiempo de ejecución
mi interrogante es como pudieron hacer para que foxpro le pueda procesar estas funciones en tiempo ejecución, como seria el codigo para leer y procesar los antes descrito las anidaciones...
lo unico que se me viene a la mente es el EXECSCRIPT( ) ... pero realmente ni idea
Valora esta pregunta


0