Este es el sitio web histórico de la documentación de 4D. La documentación se está trasladando progresivamente a developer.4d.com

Inicio

 
4D v19
Referencias método proyecto

Referencias método proyecto  


 

4D View Pro le permite llamar métodos proyecto 4D desde sus fórmulas. El uso de los métodos proyecto 4D amplía las posibilidades de sus documentos 4D View Pro. Los métodos 4D pueden recibir parámetros del área 4D View y devolver valores. Por razones de seguridad, solo los métodos que han sido explícitamente permitidos pueden ser llamados por el usuario.

Para ser llamado en una fórmula 4D View Pro, un método proyecto debe ser:

  • Referenciado: declarado explícitamente utilizando el comando VP SET CUSTOM FUNCTIONS) (recomendado) o el comando VP SET ALLOWED METHODS.
  • Ejecutable: pertenece a la base local o a un componente cargado con la opción activada "Compartido por componentes y base de datos local" (ver Compartir métodos proyecto).
  • No estar en conflicto con una función 4D View Pro existente: si llama a un método proyecto con el mismo nombre que una función integrada 4D View Pro, se llama a la función.

Nota: si ni el comando VP SET CUSTOM FUNCTIONS ni el comando VP SET ALLOWED METHODS no se han ejecutado durante la sesión, las funciones personalizadas de 4D View Pro se basan en los métodos permitidos definidos por el comando genérico de 4D SET ALLOWED METHODS. En este caso, los nombres de los métodos proyecto deben cumplir con JavaScript Identifier Grammar (ver Normas ECMA Script). La opción de filtrado en el cuadro de diálogo de Parámetros (ver Gestión de accesos) se ignora en todos los casos.

Queremos imprimir "Hello World" en un área de 4D View Pro utilizando un método proyecto 4D:

  1. Cree un método proyecto "myMethod" con el siguiente código:
     #DECLARE->$hw Text
     $hw:="Hello World"
  2. En el método formulario del formulario que contenga el área 4D View Pro, puede escribir:
     Case of
        :(Form event code=On Load)
           var $o : Object
           $o:=New object
      // Define "vpHello" function from the "myMethod" method
           $o.vpHello:=New object
           $o.vpHello.formula:=Formula(myMethod)
           VP SET CUSTOM FUNCTIONS("ViewProArea";$o)
     End case
  3. Edite el contenido de una celda en el área 4D View Pro y escriba:

    "myMethod" es llamado por 4D y la celda muestra:

Los parámetros se pueden pasar a los métodos proyecto 4D utilizando la siguiente sintaxis:

=METHODNAME(param1,param2,...,paramN)


Estos parámetros se reciben en methodName en $1, $2...$N.

Tenga en cuenta que los () son obligatorios, incluso si no se pasan parámetros:

=METHODWITHOUTNAME()

Puede declarar el nombre, tipo y número de parámetros a través de la colección parámetros de la función que declaró utilizando el comando VP SET CUSTOM FUNCTIONS (o el comando VP SET ALLOWED METHODS). Opcionalmente, puede controlar el número de parámetros pasados por el usuario a través de las propiedades minParams y maxParams. Ejemplo:

 C_OBJECT($allowed)
 $allowed:=New object
 $allowed.VPMethod:=New object
 $allowed.VPMethod.method:="4DMethodWithParams"
 $allowed.VPMethod.parameters:=New collection
 $allowed.VPMethod.parameters.push(New object("name";"Param1";"type";Is longint))
 $allowed.VPMethod.parameters.push(New object("name";"Param2";"type";Is date))
 $allowed.VPMethod.parameters.push(New object("name";"Param3";"type";Is text))
 $allowed.VPMethod.minParams:=3
 $allowed.VPMethod.maxParams:=3 //la función obtiene 3 parámetros obligatorios
 VP SET ALLOWED METHODS($allowed)

Para más información sobre los tipos de parámetros entrantes admitidos, consulte la descripción del comando VP SET ALLOWED METHODS

Nota: si no declara los parámetros, los valores se pueden pasar secuencialmente a los métodos (se recibirán en $1, $2...) y su tipo se convertirá automáticamente. Las fechas en jstype se pasarán como C_OBJECT en métodos 4D con dos propiedades:

PropiedadTipoDescripción
valorFechaFecha valor
tiempoRealTiempo en segundos

Los métodos proyecto 4D también pueden devolver valores en la fórmula celda 4D View Pro vía $0. Los siguientes tipos de datos son compatibles con los parámetros devueltos:

  • C_TEXT (convertido en cadena en 4D View Pro)
  • C_REAL/C_LONGINT  (convertido en número en 4D View Pro)
  • C_DATE (convertido en JS Date type en 4D View Pro - hora, minuto, seg = 0)
  • C_TIME (convertido en JS Date type en 4D View Pro - fecha en base fecha, es decir 12/31/1899)
  • C_BOOLEAN (convertido en booleano en 4D View Pro)
  • C_PICTURE (jpg,png,gif,bmp,svg otros tipos convertidos en png) crea un uri (data:image/png;base64,xxxx) y luego se usa como fondo en 4D View Pro en la celda donde se ejecuta la fórmula
  • C_OBJECT con las siguientes dos propiedades (permitiendo pasar una fecha y hora):
    PropiedadTipoDescripción
    valueFechaValor de fecha
    timeRealTiempo en segundos

Si el método 4D no devuelve nada, se devuelve automáticamente una cadena vacía.

Se devuelve un error en la celda 4D View Pro si:

  • el método 4D devuelve otro tipo diferente a los de arriba.
  • ocurre un error durante la ejecución del método 4D (cuando el usuario hace clic en el botón "abortar").



Ver también 

USE 4D FORMULAS IN YOUR SPREADSHEET (blog post)
VP SET ALLOWED METHODS
VP SET CUSTOM FUNCTIONS

 
PROPIEDADES 

Producto: 4D
Tema: 4D View Pro Database References

 
CONTENIDO DE LA PÁGINA 
 
HISTORIA 

Creado por: 4D v17 R2

 
ARTICLE USAGE

4D View Pro ( 4D v19)