4D v15

Listbox, criar colunas com variáveis dinâmicas

Página Inicial

 
4D v15
Listbox, criar colunas com variáveis dinâmicas

Listbox, criar colunas com variáveis dinâmicas  


 

 

Originalmente introduzido em 4D v14 R3

Uma nova funcionalidade em 4D permite adicionar ou inserir novas colunas dinamicamente em tempo de execução. Com esta nova funcionalidade, 4D gerencia automaticamente as definições das variáveis requeridas (coluna, rodapé de página e cabeçalho).

Portanto, três comandos 4D foram atualizados:

  • LISTBOX INSERT COLUMN
  • LISTBOX INSERT COLUMN FORMULA
  • LISTBOX DUPLICATE COLUMN

A sintaxe destes comandos foram atualizados para manipular a criação de variáveis dinâmicas.

 

LISTBOX INSERT COLUMN ( {* ;} objeto ; posicaoCol ; nomCol ; variavelCol ; nomeCabeçalho ; varCabeçalho {; nomRodape ; varRodape} )
LISTBOX INSERT COLUMN FORMULA ( {* ;} objeto ; posicaoCol ; nomCol ; formula ; tipoDados ; nomCabeçalho ; varCabeçalho {; nomRodape ; varRodape} )
LISTBOX DUPLICATE COLUMN ( {* ;} object ; posicaoCol ; nomCol ; variavelCol ; nomCabeçalho ; varCabeçalho {; nomRodape ; varRodape} )

ParâmetroTipo   Descrição   
...
variavelColArray, Campo, Variável, ponteiro Nil->Nome da variável array da coluna ou campo ou variável    
varCabeçalhoVariável inteiro ou ponteiro Nil->Variável do cabeçalho da coluna
...
varRodapeVariavel ou Nil pointer->Variável do rodapé da coluna

 

Estes comandos agora aceitam um ponteiro Nil (->[]) como valor para os parâmetros variavelCol (se aplica), varCabeçalho e varRodape. Neste caso, 4D criará as variáveis requeridas de forma dinâmica quando se executam os comandos (consulte a seção "Variáveis Dinâmicas" no manual de linguagem 4D para mais informação).

Note que as variáveis de cabeçalho e de rodapé de página sempre são criados com um tipo específico (respectivamente, inteiro longo e texto). No entanto, as variáveis de coluna não pode ser escrita durante a criação porque o listbox aceita diferentes tipos de arrays para esta variável (array texto, array inteiro, etc.) pelo que deve estabelecer o tipo de array manualmente. Por exemplo:

 C_POINTER($NilPtr)
 LISTBOX INSERT COLUMN(*;"MyListBox";1;"MyNewColumn";$NilPtr;"MyNewHeader";$NilPtr)
 ColPtr:=OBJECT Get pointer(Object named;"MyNewColumn")
 ARRAY TEXT(ColPtr->;0) // Substituir 0 por um valor positivo se quer atribuir previamente os elementos do array


É importante fazer isto escrevendo antes de usar comandos como LISTBOX INSERT ROWS para inserir novos elementos no array. O bem, é possível utilizar APPEND TO ARRAY tanto para escrever o array e começar a inserir elementos ao mesmo tempo.

 
PROPRIEDADES 

Produto: 4D
Tema: Language

 
HISTÓRIA 

 
ARTICLE USAGE

4D v15 - Update (edição standard) ( 4D v15)