2 de abril de 2016

Pasar mas de 27 parámetros a función o procedimiento.

Visual FoxPro tiene un límite de 27 parámetros en el uso de funciones, a continuación una manera de darle vuelta a este pequeño problema... Las funciones y procedimientos de VFP tienen este límite de 27 parámetros, no hay forma de agregar más, pero si usas objetos este límite puede ser sobrepasado fácilmente:

oMyParam = CREATEOBJECT("Empty")

AddProperty(oMyParam,"cClave","1")
AddProperty(oMyParam,"nID",2)
AddProperty(oMyParam,"dFecha",DATE())
AddProperty(oMyParam,"yMonto",$100)

nMyResult = MyFuntion(oMyParam)

FUNCTION myFunction
LPARAMETERS toMyParam

lcClave = toMyParam.cClave
lnID = toMyParam.nID
ldFecha = toMyParam.dFecha
lyMonto = toMyParam.yMonto
......
......

ENDFUNC

Esto también aplica para métodos dentro de un formulario o clase. En el ejemplo he utilizado la clase EMPTY (disponible en VFP8 y posteriores), pero puede sustituirse por cualquiera, se recomienda usar alguna "ligera" y sin interface (Forms, Grids, Pageframe, etc) como puede ser la clase Custom.

También está disponible el utilizar un arreglo, pero no lo recomiendo mucho, esas técnicas son muy anticuadas, tienen sus limitantes (capacidad del array) y molestias (como tener que declarar dicha variable como EXTERNAL).

Espero que les sea de utilidad.

Espartaco Palma Martínez

1 comentario :

Los comentarios son moderados, por lo que pueden demorar varias horas para su publicación.