4D View v16

PV ADD DYNAMIC FIELDS

Página Inicial

 
4D View v16
PV ADD DYNAMIC FIELDS

PV ADD DYNAMIC FIELDS 


 

PV ADD DYNAMIC FIELDS ( area ; master ; tabelas ; campos ; metodos ) 
Parâmetro Tipo   Descrição
area  Inteiro longo in Área 4D View
master  Inteiro in Número de tabela primária
tabelas  Array inteiro in Array de números de tabelas
campos  Array inteiro in Array de números de campos
metodos  Array string in Array dos nomes de métodos de chamada de retorno

O comando PV ADD DYNAMIC FIELDS adiciona em area, um bloque de linhas correspondentes aos valores dos campos definidos por tabelas e campos para a seleção atual da tabela definida pelo master, a partir da célula A1. Se as colunas dinâmicas já foram definidas em area, o novo bloque será inserida a partir da linha 1 da primeira coluna disponível. Os valores dos campos podem ser modificados diretamente desde 4D View utilizando as células correspondentes.

O resultado está sempre presente verticalmente (como colunas, assim como elementos de arrays tabelas, campos e metodos).

Nota: Se uma área de arrays dinâmicos foi inserida na área 4D View utilizando o comando PV ADD DYNAMIC ARRAYS, se elimina e se substitui pelos campos dinâmicos.

Para toda coluna, a operação pode afetar a um array relacionado a tabela master por uma relação. Este último deve ser de tipo automático (tipo) e passar do array primário ao array do campo para mostrar. Na estrutura tradicional de faturas e de linhas de faturas, permite por exemplo recuperar o conteúdo de um campo do array de linhas e também da tabela faturas relativa a uma seleção da tabela de linhas de faturas (tabela primária).

Cada método chamada de retorno recebe seis parâmetros:

$1: Área
$2: Número de coluna
$3: Tipo de array
$4: Ponteiro ao array
$5: Número da primeira linha a (re)desenhar
$6: Número de linhas a (re)desenhar na área

Nota: Se vai compilar a base, deve declarar estes parâmetros, inclusive se não os usa todos.

$5 e $6: quando o usuário desloca as linhas (registros) na area, só as novas linhas mostradas se (re)desenham. Os parâmetros $5 e $6 permitem conhecer as linhas concernentes.

O desenvolvedor deve encher o array de métodos de chamada de retorno. 4D View usará esse array para encher a coluna calculada. Não há nenhum valor devolvido ($0).

PV ADD DYNAMIC FIELDS conserva um link dinâmico com os campos passados como parâmetros. Como resultado, as modificações de valores realizadas na área 4D View se refletem nele(s) campo(s) e vice-versa.

Notas:

  • Os valores dos campos, os métodos e a área de 4D View utilizados devem ser definidos no mesmo processo.
  • A atualização dinâmica de dados não está disponível entre os registros que se mostram nos formulários de 4D e as janelas externas 4D View. Para refletir em uma janela 4D View uma modificação realizada no registro de 4D, é necessário voltar a desenhar a janela com o comando PV REDRAW (as modificações executadas através de comandos 4D se refletem automaticamente nas áreas 4D View).

Exemplo  

Este exemplo mostra uma tabela editável incluída em um formulário de entrada (com 4D View, esta operação é muito fácil). Modificaremos os campos da tabela de contatos relacionados ao cliente atual, com suas funções (tabela relacionada) e as iniciais de cada contato (coluna calculada).

 ARRAY INTEGER($TablesArray;4) `Números das tabelas
 ARRAY INTEGER($FieldsArray;4) `Números dos campos
 ARRAY STRING($MethodsArray;4) `Nomes dos métodos de chamada
 
  `Coluna 1: nome do contato
 $TablesArray{1}:=Table(->[Contacts])
 $FieldsArray{1}:=Field(->[Contacts]ContactName)
 $MethodsArray{1}:=""
 
  `Coluna 2: nome do contato
 $TablesArray{2}:=Table(->[Contacts])
 $FieldsArray{2}:=Field(->[Contacts]ContactFirstname)
 $MethodsArray{2}:=""
 
  `Coluna 3: título do contato (linked table)
 $TablesArray{3}:=Table(->[Titles])
 $FieldsArray{3}:=Field(->[Titles]Label)
 $MethodsArray{3}:=""
 
  `Coluna 4: número de ordem/ total (coluna calculada)
 $TablesArray{4}:=0
 $FieldsArray{4}:=Is text `Resultado
 $MethodsArray{4}:="CallMethod"
 
 RELATE MANY([Clients]Code) `Recupera os contatos
 PV ADD DYNAMIC FIELDS(Area;Table(->[Contacts]);$TablesArray;$FieldsArray;$MethodsArray)

O código do método projeto CallMethod é o seguinte:

 C_LONGINT($1`Área 4D View
 C_LONGINT($2`Número de coluna
 C_LONGINT($3`Tipo de array
 C_POINTER($4`Ponteiro a este array
 C_LONGINT($5`Primeira linha da área dinâmica
 C_LONGINT($6`Número de linhas que podem ser mostradas na á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 também 

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

 
PROPRIEDADES 

Produto: 4D View
Tema: PV Valor célula
Número 15900

 
HISTÓRIA 

Criado por: 4D View 6.8

 
ARTICLE USAGE

4D View Linguagem ( 4D View v16)