4D View v16

PV ADD DYNAMIC FIELDS

Inicio

 
4D View v16
PV ADD DYNAMIC FIELDS

PV ADD DYNAMIC FIELDS 


 

PV ADD DYNAMIC FIELDS ( area ; master ; tablas ; campos ; metodos ) 
Parámetro Tipo   Descripción
area  Entero largo in Área 4D View
master  Entero in Número de tabla primaria
tablas  Array entero in Array de números de tablas
campos  Array entero in Array de números de campos
metodos  Array cadena in Array de los nombres de métodos de retrollamada

El comando PV ADD DYNAMIC FIELDS añade en area, un bloque de líneas correspondientes a los valores de los campos definidos por tablas y campos para la selección actual de la tabla definida por el master, a partir de la celda A1. Si las columnas dinámicas ya han sido definidas en area, el nuevo bloque se insertará a partir de la línea 1 de la primera columna disponible. Los valores de los campos pueden modificarse directamente desde 4D View utilizando las celdas correspondientes.

El resultado está siempre presente verticalmente (como columnas, así como también elementos de arrays tablas, campos y metodos).

Nota: si un área de arrays dinámicos ya se ha insertado en el área 4D View utilizando el comando PV ADD DYNAMIC ARRAYS, se elimina y se sustituye por los campos dinámicos.

Para toda columna, la operación puede afectar a un array relacionado a la tabla master por una relación. Este último debe ser de tipo automático (tipo) y pasar del array primario al array del campo para mostrar. En la estructura tradicional de facturas y de líneas de facturas, permite por ejemplo recuperar el contenido de un campo del array de líneas y también de la tabla facturas relativa a una selección de la tabla de líneas de facturas (tabla primaria).

Cada método de retrollamada recibe seis parámetros:

$1: Área
$2: Número de columna
$3: Tipo de array
$4: Puntero al array
$5: Número de la primera línea a (re)dibujar
$6: Número de líneas a (re)dibujar en el área

Nota: si va a compilar la base, debe declarar estos parámetros, incluso si no los usa todos.

$5 y $6: cuando el usuario desplaza las líneas (registros) en el area, sólo las nuevas líneas mostradas se (re)dibujan. Los parámetros $5 y $6 permiten conocer las líneas concernientes.

El desarrollador debe llenar el array de métodos de retrollamada. 4D View usará ese array para llenar la columna calculada. No hay ningún valor devuelto ($0).

PV ADD DYNAMIC FIELDS conserva un enlace dinámico con los campos pasados como parámetros. Como resultado, las modificaciones de valores efectuadas en el área 4D View se reflejan en el(los) campo(s) y viceversa.

Notas:

  • Los valores de los campos, los métodos y el área de 4D View utilizados deben definirse en el mismo proceso.
  • La actualización dinámica de datos no está disponible entre los registros que se muestran en los formularios de 4D y las ventanas externas 4D View. Para reflejar en una ventana 4D View una modificación realizada en el registro de 4D, es necesario volver a dibujar la ventana con el comando PV REDRAW (las modificaciones ejecutadas a través de comandos 4D se reflejan automáticamente en las áreas 4D View).

Ejemplo  

Este ejemplo muestra una tabla editable incluida en un formulario de entrada (con 4D View, esta operación es muy fácil). Modificaremos los campos de la tabla de contactos relacionados al cliente actual, con sus funciones (tabla relacionada) y las iniciales de cada contacto (columna calculada).

 ARRAY INTEGER($TablesArray;4) `Números de las tablas
 ARRAY INTEGER($FieldsArray;4) `Números de los campos
 ARRAY TEXT(30;$MethodsArray;4) `Nombres de los métodos de retrollamada
 
  `Columna 1: nombre del contacto
 $TablesArray{1}:=Table(->[Contacts])
 $FieldsArray{1}:=Field(->[Contacts]ContactName)
 $MethodsArray{1}:=""
 
  `Columna 2: nombre del contacto
 $TablesArray{2}:=Table(->[Contacts])
 $FieldsArray{2}:=Field(->[Contacts]ContactFirstname)
 $MethodsArray{2}:=""
 
  `Columna 3: título del contacto (linked table)
 $TablesArray{3}:=Table(->[Titles])
 $FieldsArray{3}:=Field(->[Titles]Label)
 $MethodsArray{3}:=""
 
  `Columna 4: número de orden/ total (columna calculada)
 $TablesArray{4}:=0
 $FieldsArray{4}:=Is text `Resultado
 $MethodsArray{4}:="CallMethod"
 
 RELATE MANY([Clients]Code) `Recupera los contactos
 PV ADD DYNAMIC FIELDS(Area;Table(->[Contacts]);$TablesArray;$FieldsArray;$MethodsArray)

El código del método proyecto CallMethod es el siguiente:

 C_LONGINT($1`Área 4D View
 C_LONGINT($2`Número de columna
 C_LONGINT($3`Tipo de array
 C_POINTER($4`Puntero a este array
 C_LONGINT($5`Primera línea del área dinámica
 C_LONGINT($6`Número de líneas que pueden mostrarse en el área
 
 GOTO SELECTED RECORD([Contacts];$5)
 For($i;1;$6)
    $4->{$i}:=Substring([Contacts]ContactFirstname;1;1)+Substring([Contacts]ContactName;1;1)
    NEXT RECORD([Contacts])
 End for



Ver también 

PV ADD DYNAMIC ARRAYS
PV CLEAR DYNAMIC COLUMNS
PV FIELD TO CELLS
PV SET CELL FIELD

 
PROPIEDADES 

Producto: 4D View
Tema: PV Valor celda
Número 15900

 
HISTORIA 

Creado por: 4D View 6.8

 
ARTICLE USAGE

4D View - Lenguaje ( 4D View v16)