Saltar para o conteúdo principal
Versão: 21 R4 BETA

List Box Object

List box de tipo array

Em um list box de tipo array, cada coluna deve estar associada a um array unidimensional 4D; podem ser utilizados todos os tipos de array, com exceção dos arrays de ponteiros. O número de linhas é baseado no número de elementos array.

Como padrão, 4D atribui o nome "ColumnX" para cada coluna. You can change it, as well as other column properties, in the column properties. The display format for each column can also be defined using the OBJECT SET FORMAT command.

Os list boxes do tipo array podem ser exibidos em modo hierárquico, com mecanismos específicos.

Com list box de tipo array, o valor ingressado ou exibido são gerenciados usando a linguagem 4D. Você também pode associar uma lista de opções a uma coluna para controlar a entrada de dados. Por exemplo, para iniciar os conteúdos da coluna, pode usar a instrução abaixo: The values of columns are managed using high-level List box commands (such as LISTBOX INSERT ROWS or LISTBOX DELETE ROWS) as well as array manipulation commands.

ARRAY TEXT(varCol;size)

Também pode usar uma lista:

LIST TO ARRAY("ListName";varCol)

Aviso: quando uma list box contiver vários tamanhos diferentes de coluna, só o número de itens do menor array (coluna) será exibido. Tem que verificar que cada array tenha o mesmo número de elementos que os outros. Além disso, se uma coluna list box for vazia (isso ocorre quando o array associado não for corretamente declarado ou dimensionado usando a linguagem), a list box não exibe nada.

List box de tipo seleção

Nesse tipo de list box, cada coluna pode ser associada com um campo (por exemplo, [Employees]LastName) ou uma expressão. A expressão pode ser baseada em um ou mais campos (por exemplo, [Employees]FirstName+" "[Employees]LastName) ou pode ser simplesmente uma fórmula (por exemplo, String(Milliseconds)). A expressão também pode ser um método de proejeto, uma variável ou um item array. You can use the LISTBOX SET COLUMN FORMULA and LISTBOX INSERT COLUMN FORMULA commands to modify columns programmatically.

O conteúdo de cada linha é então avaliado de acordo com uma seleção de registros: a seleção atual de uma tabela ou uma seleção nomeada.

No caso de uma list box baseada na seleção atual de uma tablea, qualquer modificação feita do lado da database é refletida automaticamente na list box e vice versa. A seleção atual é portanto sempre a mesma em ambos os lugares.

List boxes Collection ou Entity selection

Nesse tipo de list box, cada coluna deve ser associada a uma expressão. Os conteúdos de cada linha são então avaliados por elemento de coleção ou por entidade da seleção de entidade.

Cada elemento da coleção ou cada entidade está disponível como um objeto que pode ser acessado por meio da palavra-chave This. A column expression can be a property path, a project method, a variable, or any formula, accessing each entity or collection element object through This, for example This.<propertyPath> (or This.value in case of a collection of scalar values). A expressão também pode ser um método de proejeto, uma variável ou um item array.

Quando a fonte de dados for uma seleção de entidades, qualquer modificação feita no lado da list box são salvas automaticamente na database. Do outro lado, modificações feitas na database são visíveis na list box depois que as entidades tocadas foram recarregadas.

nota

Quando as entidades são excluídas, suas referências permanecem na seleção da entidade com um valor undefined, assim exibindo linhas em branco no list box. Neste caso, você pode chamar a função .clean() para obter uma nova seleção de entidade, mas sem as referências de entidade deletadas.

Quando a fonte de dados for uma coleção, qualquer modificação feita nos valores da list box são refletidas na coleção. Por outro lado, se forem feitas modificações na coleção usando, por exemplo, as várias funções da classe Collection, você precisará notificar explicitamente o 4D reatribuindo a variável da coleção a ela mesma, para que o conteúdo do list box seja atualizado. Por exemplo:

myCol:=myCol.push("new value") //exibir novo valor na list box

Propriedades compatíveis

Propriedades compatíveis dependem do tipo de list box.

PropriedadeList box arrayList box seleçãoList box coleção ou entity selection
Cor de fundo alternativa XXX
Cor de Fundo XXX
Negrito XXX
Expressão de cor de fundo XX
Estilo da linha de borda XXX
Inferior XXX
Seleção de coleção ou entidade XX
Redimensionamento automático de coluna XXX
Item atual X
Posição atual do item X
Fonte de dados XXX
Nome do formulário de detalhes X
Exibir cabeçalhos XXX
Exibir rodapés XXX
Clique duas vezes na linha X
Arrastável XXX
Droppable XXX
Focusable XXX
Fonte XXX
Cor da fonte XXX
Expressão de Cor da Fonte XX
Tamanho fonte XXX
Altura (list box) XXX
Altura (cabeçalhos) XXX
Altura (rodapés) XXX
Ocultar linhas em branco extras XXX
Ocultar retângulo de foco XXX
Ocultar destaque de seleção XXX
List Box hierárquico X
Highlight Set X
Alinhamento Horizontal XXX
Horizontal Line Color XXX
Horizontal Padding XXX
Horizontal Scroll Bar XXX
Dimensionamento horizontal XXX
Italic XXX
Left XXX
Tabela mestre X
Meta info expression X
Método XXX
Movable Rows X
Seleção temporária X
Number of Columns XXX
Number of Locked Columns XXX
Number of Static Columns XXX
Object Name XXX
Right XXX
Row Background Color Array X
Row Control Array X
Row Font Color Array X
Row Height X
Row Height Array X
Row Style Array X
Selected Items X
Selection Mode XXX
Edição com um único clique XXX
Ordenável XXX
Ação padrão X
Expressão de estilo XX
Top XXX
Transparente XXX
Tipo XXX
Sublinhado XXX
Variável ou Expressão XX
Alinhamento vertical XXX
Cor da linha vertical XXX
Relleno vertical XXX
Barra de rolagem vertical XXX
Tamanho Vertical XXX
Visibilidade XXX
Largura XXX

Colunas list box, cabeçalhos e rodapés suportam propriedades específicas.

Supported Form Events

Evento formulárioPropriedades adicionais retornadas (consulte Form event para obter as propriedades principais)Comentários
On After Edit
On After Keystroke
On After Sortfórmulas compostas não podem ser ordenadas.
(por exemplo, This.firstName + This.lastName)
On Alternative ClickList box array unicamente
On Before Data Entry
On Before Keystroke
On Begin Drag Over
On Clicked
On Close DetailPode usar a constante lk inherited para imitar a aparência atual da list box (por exemplo, cor de fonte, cor de fundo, estilo da fonte, etc.).
On CollapseApenas list box hierárquicos
On Column Moved
On Column Resize
On Data Change
On Delete Action
On Display Detail
On Double Clicked
On Drag Over
On Drop
On ExpandApenas list box hierárquicos
On Footer ClickList box arrays, seleção atual e seleção temporal apenas
On Getting FocusPropriedades adicionais devolvidas apenas quando se edita uma célula
On Header Click
On Load
On Losing FocusPropriedades adicionais devolvidas apenas quando a edição de uma célula tiver sido concluída
On Mouse Enter
On Mouse Leave
On Mouse Move
On Open DetailPode usar a constante lk inherited para imitar a aparência atual da list box (por exemplo, cor de fonte, cor de fundo, estilo da fonte, etc.).
On Row MovedList box array unicamente
On Scroll
On Selection Change
On Unload
On Validate

Additional Properties

Os eventos formulário nos list box ou colunas de list box podem retornar as seguintes propriedades adicionais:

PropriedadeTipoDescrição
areatextÁrea de objeto List box ("header", "footer", "cell")
areaNametextNome da zona
columninteiro longoNúmero da coluna
columnNametextNome da coluna
footerNametextNome do rodapé
headerNametextNome do cabeçalho
horizontalScrollinteiro longoPositivo se a deslocação for para a direita, negativo se for para a esquerda
isRowSelectedbooleanTrue se a linha estiver selecionada, senão False
newPositioninteiro longoNova posição da coluna ou linha
newSizeinteiro longoNovo tamanho (em pixéis) da coluna ou linha
oldPositioninteiro longoPosição anterior da coluna ou da linha
oldSizeinteiro longoTamanho anterior (em pixéis) da coluna ou linha
rowinteiro longoNúmero da linha
Alinhamento verticalinteiro longoPositivo se a deslocação for para baixo, negativo se for para cima

Se um evento ocorrer em uma coluna ou linha "falsa" que não exista, é normalmente retornada uma cadeia de caracteres vazia.

AltStyle によって変換されたページ (->オリジナル) /