4D v16.3

LISTBOX DUPLICATE COLUMN

Página Inicial

 
4D v16.3
LISTBOX DUPLICATE COLUMN

LISTBOX DUPLICATE COLUMN 


 

LISTBOX DUPLICATE COLUMN ( {* ;} objeto ; posCol ; nomCol ; varCol ; nomCabe ; varCabe {; nomRodape ; varRodape} )  
Parâmetro Tipo   Descrição
Operador in Se especificado, objeto é um nome de objeto (cadeia) Se omitido, objeto é um campo ou uma variável
objeto  Objeto de formulário in Nome de objeto (se * for especificado) ou
Campo ou variável (se * for omitido)
posCol  Inteiro longo in Localização da nova coluna duplicada
nomCol  String in Nome da nova coluna
varCol  Array, Campo, Variável, Ponteiro nil in Nome da variável array da coluna ou campo ou variável
nomCabe  String in Nome do objeto do cabeçalho da coluna
varCabe  Variável inteira, Ponteiro nil in Variável do cabeçalho da coluna
nomRodape  String in Nome do objeto do rodapé da coluna
varRodape  Variável, Ponteiro nil in Variável do rodapé da coluna

O comando LISTBOX DUPLICATE COLUMN duplica a coluna definida pelos parâmetros objeto e * por programação no contexto do formulário executado (Modo Aplicação). O formulário original, gerado em modo Desenho não se modifica. 

Nota: esta funcionalidade já se encontra em 4D, em modo Desenho unicamente, com o comando Duplicar Coluna do menu contextual do editor de formulários.

De forma pré determinada, todas as opções de estilo (tamanho, cor, formatos, etc) definidos para a coluna fonte por meio da lista de propriedades ou mediante os comandos de gestão de objetos (OBJECT SET COLOR, etc.) se aplicam a cópia. O método objeto e a configuração dos eventos formulário também se duplicam.
No entanto, a fonte de dados (array ou seleção, em função do tipo de fonte definido para o list box), assim como os arrays de estilo e de cores não se duplicam. É sua responsabilidade definir eles para cada nova coluna depois da duplicação.

Os parâmetros objeto e * designam a coluna a duplicar. Se passar o parâmetro opcional * indica que o parâmetro objeto é um nome de coluna (cadeia). Se não passar este parâmetro, indica que o parâmetro objeto é uma variável de coluna. Neste caso, passou uma referência de variável no lugar de uma cadeia.

Nota: este comando não faz nada quando se aplica a primeira coluna de um list box que se mostra no modo hierárquico.

A nova coluna duplicada aparece justo antes da coluna designada pelo parâmetro posCol. Se o parâmetro posCol é maior que o número total de colunas, a continuação, a coluna duplicada se coloca depois da última coluna.

Nos parâmetros nomCol e varCol, passe o nome do objeto e da variável da nova coluna duplicada.
  • Para list boxes de tipo array, o nome da variável corresponde ao nome do array cujo conteúdo é mostrado na coluna.
    Pode passar um ponteiro Nil (->[]) em um contexto dinâmico (ver abaixo).
  • Para list boxes de tipo seleção, pode passar um campo ou uma variável no parâmetro varCol. Assim que o conteúdo da coluna será o valor do campo ou da variável, avaliada para cada registro da seleção associada ao list box. Este tipo de conteúdo só pode utilizado quando a propriedade "Fonte de dados" do list box é Seleção atual ou Seleção temporal.
Lembre que a fonte de dados da coluna original não se duplica: deve estabelecer uma variável, array ou campo fonte da nova coluna duplicada.

Nos parâmetros nomCabe e varCabe, passe o nome do objeto e a variável do cabeçalho da nova coluna duplicada. Também pode passar o nome do objeto e a variável do rodapé da coluna inserida nos parâmetros nomRodape e varRodape. Se omitido o parâmetro varRodape, 4D utiliza uma variável dinâmica.

Nota: os nomes de objetos devem ser únicos em um formulário. Deve ter certeza de que os nomes passados ​​em nomCol, nomCabe e nomRodape não tenham sido utilizados. Caso contrário, a coluna não se duplica e é gerado um erro.

Este comando deve ser utilizado no contexto de mostrar um formulário. É chamado geralmente no evento de formulário On Load ou depois de uma ação usuário (evento On Clicked).

A partir de 4D v14 R3, pode duplicar dinamicamente as colunas de list box e 4D se encarrega automaticamente da definição das variáveis necessárias (coluna, rodapé de página e cabeçalho).

Para isso, LISTBOX DUPLICATE COLUMN aceita um ponteiro Nil (->[]) como valor para os parâmetros varCol (list box de tipo array unicamente), varCabe e varRodape. Neste caso, quando se executa o comando, 4D cria as variáveis requeridas dinamicamente (para mais informação, consulte a seção Variáveis Dinâmicas).

Note que as variáveis de cabeçalho e de rodapé de página sempre se criam com um tipo específico (inteiro longo e texto, respectivamente). Pelo contrário, as variáveis de coluna não podem ser escritas durante a criação porque os list boxes aceitam diferentes tipos de arrays para estas variáveis (array texto, array inteiro, etc.). Isto significa que você têm que fixar o tipo de array manualmente (ver exemplo 2). É importante digitar antes de chamar a comandos como LISTBOX INSERT ROWS para inserir novos elementos no array. Ou bem, pode utilizar APPEND TO ARRAY tanto para definir o tipo do array e a inserção de elementos.

Em um list box de tipo array, queremos duplicar a coluna "Nome", lista para a entrada:



Aqui está o código do botão:

 ARRAY TEXT(arrFirstNames2;Records in table([Members]))
 LISTBOX DUPLICATE COLUMN(*;"column2";3;"col2bis";arrFirstNames2;"FirstNameA";vHead2A)
 OBJECT SET TITLE(*;"FirstNameA";"Middle Name")
 EDIT ITEM(*;"col2A";0)


Ao fazer clique no botão, aparece o list box assim:

A partir de 4D v14 R3, pode duplicar dinamicamente as colunas de list box e 4D se encarrega automaticamente da definição das variáveis necessárias (coluna, rodapé de página e cabeçalho).

 C_POINTER($ptr)
 LISTBOX DUPLICATE COLUMN(*;"boolCol";3;"duplBoolCol";$ptr;"duplBoolHeader";$ptr;"duplBoolFooter";$ptr)
 colprt:=OBJECT Get pointer(Object named;"duplBoolCol")
 ARRAY BOOLEAN(colprt->;10)
 headprt:=OBJECT Get pointer(Object named;"duplBoolHeader")
 OBJECT SET TITLE(headprt->;"New duplicated column")



Ver também 

LISTBOX MOVE COLUMN

 
PROPRIEDADES 

Produto: 4D
Tema: List Box
Número 1273

 
HISTÓRIA 

Criado por: 4D v14
Modificado: 4D v14 R3

 
ARTICLE USAGE

Manual de linguagem 4D ( 4D v16)
Manual de linguagem 4D ( 4D v16.1)
Manual de linguagem 4D ( 4D v16.2)
Manual de linguagem 4D ( 4D v16.3)