Este é o site histórico da documentação 4D. As documentações estão sendo movidas progressivamente para developer.4d.com |
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
|
4D v20.2
Use arrays de objetos em colunas
|
valueType | Widget padrão | Widgets alternativos |
text | área de entrada de texto | menú suspenso (lista obrigatoria) ou combo box (lista de opções) |
real | área de entrada de texto controlada (números e separadores) | menú suspenso (lista obrigatoria) ou combo box (lista de opções) |
integer | controlled text input (numbers only) | menú suspenso (lista obrigatoria) ou combo box (lista de opções) ou caixa de seleçõo de três estados |
boolean | caixa de seleção | menú suspenso (lista obrigatoria) |
color | cor de fundo | texto |
event | botão com etiqueta | |
Todos os widgets podem ter um botão adicional unit toggle button ou ellipsis button associado a célula. |
Você não pode definir formatos de exibição ou filtros de entrada para colunas objeto de list box. São definidas automaticamente de acordo com o tipo de valor. Eles estão listados na tabela a seguir:
Value type | Formato padrão | Controle de entrada |
text | o mesmo que o do objeto | sem (sem controle) |
real | o mesmo que o do objeto (utilização do separador decimal do sistema) | "0-9", "." y "-" |
"0-9" y "." se min>=0 | ||
integer | o mesmo que o do objeto | "0-9" e "-" |
"0-9" se min>=0 | ||
Boolean | caixa de seleção | N/A |
color | N/A | N/A |
event | N/A | N/A |
Cada elemento do objecto matriz objecto é um objecto que pode conter um ou mais atributos que definem o conteúdo de células e exibição de dados (ver o exemplo acima).
O único atributo necessário é "valuetype" e os valores suportados são "text", "real", "inteiro" "boolean", "color" e "evento". A tabela a seguir mostra todos os atributos suportados em arrays de objetos de list box, dependendo do valor "valuetype" (qualquer outro atributo ignorado). Formatos de exibição e exemplos abaixo.
valueType | text | real | integer | boolean | color | event | |
Atributos | Descrição | ||||||
value | valor da célula (entrada ou saída) | x | x | x | |||
min | valor mínimo | x | x | ||||
max | valor máximo | x | x | ||||
behavior | valor "threeStates" | x | |||||
requiredList | menu drop down definido no objeto | x | x | x | |||
choiceList | combo box definido em objeto | x | x | x | |||
requiredListReference | RefList 4D, depende do valor de "saveAs" | x | x | x | |||
requiredListName | nome de lista 4D, depende do valor "saveAs" | x | x | x | |||
saveAs | "reference" ou "value" | x | x | x | |||
choiceListReference | RefList 4D, mostra um combo box | x | x | x | |||
choiceListName | nome de lista 4D, mostra um combo box | x | x | x | |||
unitList | array de X elementos | x | x | x | |||
unitReference | índice do elemento selecionado | x | x | x | |||
unitsListReference | RefList 4D para as unidades | x | x | x | |||
unitsListName | nome de lista 4D para as unidades | x | x | x | |||
alternateButton | adicionar um botão alternativo | x | x | x | x | x |
Os valores das células são armazenadas no atributo "value". Esse atributo é usado para entrada e saída. Ele também pode ser utilizado para definir os valores predefinidos quando são usadas listas (ver abaixo).
Exemplo:
ARRAY OBJECT(obColumn;0) //column array
<p>C_OBJECT($ob1)
$entry:="Hello world!"
OB SET($ob1;"valueType";"text")
OB SET($ob1;"value";$entry) // se o usuário introduzir um novo valor, $entry conterá o novo valor
C_OBJECT($ob2)
OB SET($ob2;"valueType";"real")
OB SET($ob2;"value";2/3)
C_OBJECT($ob3)
OB SET($ob3;"valueType";"boolean")
OB SET($ob3;"value";True)
APPEND TO ARRAY(obColumn;$ob1)
APPEND TO ARRAY(obColumn;$ob2)
APPEND TO ARRAY(obColumn;$ob3)
Nota: o valor Null é suportado e resulta em uma célula vazia.
Quando "valueType" for "real" ou "inteiro", o objecto também aceita os atributos min e max com os valores apropriados (os valores devem ser do mesmo tipo que o valueType).
Estes atributos podem ser usados para controlar a faixa de valores de entrada. Quando uma célula é validada (quando se perde o foco), se o valor de entrada for menor que o valor min ou maior do que o valor max, o valor é rejeitado. Neste caso, o valor anterior é realizado e uma mensagem de ajuda exibe uma explicação.
C_OBJECT($ob3)
$entry3:=2015
OB SET($ob3;"valueType";"integer")
OB SET($ob3;"value";$entry3)
OB SET($ob3;"min";2000)
OB SET($ob3;"max";3000)
O atributo behavior oferece variações da representação padrão dos valores. Em 4D v15, uma única variação é possível:
Atributo | Valor disponível | valueType(s) | Descrição |
behavior | threeStates | integer | Representa um valor numérico como caixa de seleção de três estados. 2=semi-marcado, 1=marcado, 0=não marcado, -1=invisível, -2=não marcado desativado, -3=marcado desativado, -4=semi-marcado desativado |
Exemplo:
C_OBJECT($ob3)
OB SET($ob3;"valueType";"integer")
OB SET($ob3;"value";-3)
C_OBJECT($ob4)
OB SET($ob4;"valueType";"integer")
OB SET($ob4;"value";-3)
OB SET($ob4;"behavior";"threeStates")
Quando um atributo "choiceList" ou "requiredList" está presente dentro do objeto, a entrada é substituída por uma lista drop-down ou um combo box, dependendo do atributo:
Nota: os valores de widgets são definidos através de um array. Para atribuir uma lista 4D existente ao widget, você precisa usar os atributos "requiredListReference", "requiredListName", "choiceListReference" ou "choiceListName".
Exemplos:
ARRAY TEXT($RequiredList;0)
APPEND TO ARRAY($RequiredList;"Open")
APPEND TO ARRAY($RequiredList;"Closed")
C_OBJECT($ob)
OB SET($ob;"valueType";"text")
OB SET($ob;"value";"Closed")
OB SET ARRAY($ob;"requiredList";$RequiredList)
ARRAY LONGINT($ChoiceList;0)
APPEND TO ARRAY($ChoiceList;5)
APPEND TO ARRAY($ChoiceList;10)
APPEND TO ARRAY($ChoiceList;20)
APPEND TO ARRAY($ChoiceList;50)
APPEND TO ARRAY($ChoiceList;100)
C_OBJECT($ob)
OB SET($ob;"valueType";"integer")
OB SET($ob;"value";10) //10 as default value
OB SET ARRAY($ob;"choiceList";$ChoiceList)
Os atributos "requiredListName" e "requiredListReference" permitem que você use em uma célula de lista box, uma definida em 4D em modo Desenho (na caixa de ferramentas) ou por programação (usando o comando New list). A célula é exibida como uma lista drop down. Isso significa que o usuário pode selecionar apenas um valor da lista.
Use "requiredListName" ou "requiredListReference" dependendo da origem da lista: se a lista vir da caixa de ferramentas, passe um nome; caso contrário, se a lista for definida por programação, passe uma referência. Em ambos os casos, um atributo "valor" pode ser utilizado para pré-ajustar um valor no widget.
Neste caso, o atributo "saveAs" define se o item selecionado deve ser salvo como um "valor" ou como uma "referência".
Para mais informações sobre a opção "salvar como", ver Guardar como Valor ou Referência no manual de Desenho.
Nota: (".") Se a lista contiver elementos de texto que representem os valores reais, o separador decimal deve ser um ponto ("."), independentemente das configurações locais: "17.6" "1234.456".
Exemplos:
C_OBJECT($ob)
OB SET($ob;"valueType";"text")
OB SET($ob;"saveAs";"value")
OB SET($ob;"value";"blue")
OB SET($ob;"requiredListName";"colors")
<>List:=New list
APPEND TO LIST(<>List;"Paris";1)
APPEND TO LIST(<>List;"London";2)
APPEND TO LIST(<>List;"Berlin";3)
APPEND TO LIST(<>List;"Madrid";4)
C_OBJECT($ob)
OB SET($ob;"valueType";"integer")
OB SET($ob;"saveAs";"reference")
OB SET($ob;"value";2) //exibe London como padrão
OB SET($ob;"requiredListReference";<>List)
Os atributos "choiceListName" e "choiceListReference" permitem que você use em uma célula de list box, uma lista definitiva en 4D no modo Desenho (na caixa de ferramentas) ou por programação (usando o comando New list). A célula é então apresentada como uma caixa de combinação, o que significa que o usuário pode selecionar ou digitar um valor.
Use "choiceListName" ou "choiceListReference", dependendo da origem da lista, se a lista for proveniente da caixa de ferramentas, um nome é passado; caso contrário, se a lista tiver sido definido por programação, uma referência é passada. Em ambos os casos, um atributo "valor" pode ser utilizado para pré-ajustar um valor no widget.
Nota: se deseja definir estes valores através de um array simples, é necessário utilizar o atributo "choiceList".
O atributo "saveAs" nao se usa neste caso porque os itens selecionados são salvos automaticamente como um "valor"(ver para más información).
Nota: Se a lista contiver elementos de texto que representam os valores reais, o ponto decimal deve ser um ponto ("."), independentemente dos parâmetros locais, por exemplo: "17.6" ou "1234.456".
Exemplo:
Se deseja mostrar um combo box baseado em uma lista "colors", definida na caixa de ferramentas (que contenha os valores "blue", "yellow" e "green") e mostrar "green" como padrãao:
C_OBJECT($ob)
OB SET($ob;"valueType";"text")
OB SET($ob;"value";"blue")
OB SET($ob;"choiceListName";"colors")
Você pode usar atributos específicos para adicionar unidades associadas a valores de células (por exemplo: "10 cm", "20 pixels", etc.). Para definir a lista de unidades, você pode usar um dos seguintes atributos:
Exemplo: queremos definir um valor de entrada numérico seguido de duas unidades possíveis: "linhas" ou "pixels". O valor atual é "2" + "linhas". Nós usamos valores definidos diretamente no objeto (atributo "unitsList"):
ARRAY TEXT($_units;0)
APPEND TO ARRAY($_units;"lines")
APPEND TO ARRAY($_units;"pixels")
C_OBJECT($ob)
OB SET($ob;"valueType";"integer")
OB SET($ob;"value";2) // 2 "units"
OB SET($ob;"unitReference";1) //"lines"
OB SET ARRAY($ob;"unitsList";$_units)
Se você deseja adicionar um botão Reticências [...] a uma célula, basta passar o atributo "alternateButton" com o valor True no objeto. O botão é apresentado na célula automaticamente.
Quando os usuários clicam neste botão, um evento On Alternate Click, é gerado, e você pode operar como você deseja (ver seção "Gestão de Eventos" para obter mais informações).
Nota: On Alternate Clickk é o novo nome do evento On Arrow Click, rebatizado em 4D v15 para destacar o seu escopo estendido.
Exemplo:
C_OBJECT($ob1)
$entry:="Hello world!"
OB SET($ob;"valueType";"text")
OB SET($ob;"alternateButton";True)
OB SET($ob;"value";$entry)
O atributo valueType de valor "color" lhe permite mostrar uma cor ou um texto.
C_OBJECT($ob4)
OB SET($ob4;"valueType";"color")
OB SET($ob4;"value";0x00FF0000)
O "evento" valueType mostra um botão simples que gera um evento On Clicked quando o usuário clica. Não se podem passar ou devolver dados ou valores.
Opcionalmente, pode ser passado um atributo "label".
C_OBJECT($ob)
OB SET($ob;"valueType";"event")
OB SET($ob;"label";"Edit...")
Varios eventos podem ser manejarados nas colunas de list box de tipo array de objetos:
Nota: On Alternative Click é o novo nome do evento On Arrow Click que estava disponível nas versões anteriores de 4D. Este evento foi renomeado em 4D v15 já que seu escopo foi ampliado.
Produto: 4D
Tema: List boxes
Criado por: 4D v15
Manual de Desenho 4D ( 4D v20)
Manual de Desenho 4D ( 4D v20.1)
Manual de Desenho 4D ( 4D v20.2)