may 18

¿Funciones o procesos?

Hace algún tiempo que escribi un artículo, en principio, estaba destinado a eliminar lo que en apariencia era una limitación de las funciones en V7 (sólo permiten 10 parámetros máximo): Parámetros en funciones de V7

De paso, porque no decirlo, ya que habiamos eliminado la barrera de los 10 parámetros, y con la misma solución que se usaba para aumentar la entrada, podiamos aumentar la salida, que como sabemos, todas las funciones retornan unicamente un valor.

Pero cosas de la vida, cuando surge un problema, con paciencia y un poquito de estudio, tambien surge la solución. Y la solución tambien puede venir de mano de lo que se esta convirtiendo en la solución para todo, el manejador de objetos.

Para aquellos que aun no lo han utilizado, solo tengo que decir, que si bien puede generar algo más de trabajo de lo habitual al principio y quizá algo mas de complejidad por la falta de costumbre, en su favor, tiene solo una cosa: que sirve para todo.

Veamos un ejemplo:

Necesitamos una función para realizar una tarea, y debemos pasarle 15 o 20 parametros, y por si fuera poco, el resultado de la función, deberia retornar 3 valores diferentes.

Tal y como comentabamos en el articulo anterior, necesitariamos unir varios valores en una cadena y pasar las cadenas a la función, después, ya dentro de la función, parsear las cadenas para separar los parámetros y ejecutar el resto de la función, y al finalizar, volver a unir los resultados para retornar una cadena con todos los valores, y ya fuera de la función, volver a parsear la cadena para obtener cada uno de los resultados. Vamos, un pequeño lio, de hecho, no se si me he liado al explicarlo, espero no haberlo complicado demasiado.

Ahora veamos como resolverlo con el manejador de objetos:

Con el manejador de objetos, creamos un proceso, similar a la función, que realiza la misma tarea, y para ejecutar el proceso y enviar los parametros:

Crear manejador de objeto( hPro , PROCESO )

Set variable local de objeto ( hPro, VAR_1, #CAMPO_1 )

Set variable local de objeto ( hPro, VAR_2, #CAMPO_2 )

Set variable local de objeto ( hPro, VAR_3, #CAMPO_3 )

Set variable local de objeto ( hPro, VAR_4, #CAMPO_4 )

Set variable local de objeto ( hPro, VAR_5, #CAMPO_5 )

Disparar objeto ( hPro , 1º  2º o 3º plano a elegir )

Get variable local de objeto ( hPro , VALOR_1 , RET_1 )

Get variable local de objeto ( hPro , VALOR_2 , RET_2 )

Get variable local de objeto ( hPro , VALOR_3 , RET_3 )

Como podemos observar, podemos pasar tantos parámetros como lineas SET quieras incluir, y del mismo modo, podemos obtener tantos valores como sean necesarios, mediante la sentencia GET. Y sólo un detalle, no olvideis que la sentencia GET no debe ir anidada dentro de la sentencia “Disparar objeto”

PDF Creator    Enviar artculo en formato PDF   
comments: Closed

2 Responses to “¿Funciones o procesos?”

  1. eduardo gonzalez dice:

    Buenos días la pregunta es la siguiente como puedo hacer para q una tabla arbolada me realice la sumatoria de valores numéricos y estos lleguen hasta arriba de los registros
    Subcuenta importe
    6 1000
    600 1000
    6000 1000
    60001 600
    60002 400
    donde el valor de mil lo da la suma de 60001+60002

  2. admin dice:

    Te he dejado la respuesta en el foro:
    http://velneo.es/foros/topic/ayuda-tablas-arboladas/

    Disculpa si no he respondido antes, pero estoy de vacaciones, y solo paso un ratito de vez en cuando, 😉

    un saludo
    José Luis



Pings responses to this post