DataClassAttribute
Os atributos Dataclass estão disponíveis como propriedades de suas respectivas classes. Por exemplo:
nameAttribute:=ds. Company.name //reference to class attribute
revenuesAttribute:=ds. Company["revenues"] //alternate way
Este código assigna a nameAttribute e revenuesAttribute referências aos atributos name e revenues da classe Company. Essa sintaxe NAO devolve valores mantidos dentro do atributo, mas sim devolve referências aos próprios atributos. Para manejar os valores, é necessário passar por Entidades.
Os objetos DataClassAttribute
têm propriedades que pode ler para obter informação sobre os atributos de sua classe de dados.
Os objetos do atributo Dataclass podem ser modificados, mas a estrutura subjacente do banco de dados não será alterada.
Resumo
.autoFilled : Boolean contém True se o valor do atributo for automaticamente preenchido por 4D |
.size : Integer contém o número do campo 4D interno do atributo |
.fieldType : Integer contém o tipo de base de dados 4D do atributo |
.indexed : Boolean contém True se houver uma árvore B ou um índice de árvore B cluster no atributo |
.inverseName : Text devolve o nome do atributo que se encontra no outro lado da relação |
.keywordIndexed : Boolean contém True se houver um índice de palavras-chave no atributo |
.kind : Text devolve a categoria do atributo |
.mandatory : Boolean The .name property |
.name : Text A propriedade .relatedDataClass |
.relatedDataClass : Text devolve o nome da classe de dados relacionada com o atributo |
.type : Text contém o tipo de valor conceptual do atributo |
.unique : Boolean contém True se o valor do atributo deve ser único |
.autoFilled
Histórico
Versão | Mudanças |
---|---|
v17 R5 | Adicionado |
.autoFilled : Boolean
Descrição
A propriedade .autoFilled
contém True se o valor do atributo for automaticamente preenchido por 4D. Esta propriedade corresponde às seguintes propriedades de campo 4D:
- "Auto incremento", para campos de tipo numérico
- "Auto UUID", para campos UUID (tipo alfa).
Esta propriedade não é devolvida se .kind
= "relatedEntity" ou "relatedEntities".
Para programação genérica, pode utilizar Bool(dataClassAttribute.autoFilled) para obter um valor válido (false) mesmo que
.autoFilled
não seja devolvido.
.fieldNumber
Histórico
Versão | Mudanças |
---|---|
v17 R5 | Adicionado |
.size : Integer
Descrição
A propriedade .fieldNumber
contém o número do campo 4D interno do atributo.
Esta propriedade não é devolvida se .kind
= "relatedEntity" ou "relatedEntities".
Para a programação genérica, se pode utilizar Num(dataClassAttribute.fieldNumber) para obter um valor válido (0) mesmo que não se devolva
.fieldNumber
.
.fieldType
Histórico
Versão | Mudanças |
---|---|
v17 R5 | Adicionado |
.fieldType : Integer
Descrição
A propriedade .fieldType
contém o tipo de base de dados 4D do atributo. .
Valores possíveis:
dataClassAttribute.kind | fieldType | Comentário |
---|---|---|
storage | Corresponding 4D field type | See Type command |
relatedEntity | 38 (Is object) | |
relatedEntities | 42 (Is collection) |
.indexed
Histórico
Versão | Mudanças |
---|---|
v17 R5 | Adicionado |
.indexed : Boolean
Descrição
A propriedade .indexed
contém True se houver uma árvore B ou um índice de árvore B cluster no atributo.
Esta propriedade não é devolvida se .kind
= "relatedEntity" ou "relatedEntities".
Para programação genérica é possível usar Bool(dataClassAttribute.indexed) para obter um valor válido (false) mesmo se
.indexed
não for retornado.
.inverseName
Histórico
Versão | Mudanças |
---|---|
v17 R5 | Adicionado |
.inverseName : Text
Descrição
A propriedade .inverseName
devolve o nome do atributo que se encontra no outro lado da relação.
Esta propriedade não se devolve si .kind
= "storage". Deve ser do tipo "relatedEntity" ou "relatedEntities".
Para programação genérica é possível usar String(dataClassAttribute.inverseName) para obter um valor válido ("") mesmo se
.inverseName
não for retornado.
.keywordIndexed
Histórico
Versão | Mudanças |
---|---|
v17 R5 | Adicionado |
.keywordIndexed : Boolean
Descrição
A propriedade .keywordIndexed
contém True se houver um índice de palavras-chave no atributo.
Esta propriedade não é retornada se .kind
= "relatedEntity" ou "relatedEntities".
Para a programação gene´rica pode usar Bool(dataClassAttribute.keywordIndexed) para obter um valor válido (false) mesmo se
.keywordIndexed
não for retornado.
.kind
Histórico
Versão | Mudanças |
---|---|
v17 R5 | Adicionado |
.kind : Text
Descrição
A propriedade .kind
devolve a categoria do atributo. O valor retornado pode ser um dos abaixo:
- Atributo "storage": storage (ou escalar) ou seja, atributo que armazena um valor, não uma referência a outro atributo
- "relatedEntity": N -> 1 atributo de relação (referência a uma entidade)
- "relatedEntities": 1 -> N atributo de relação (referência a uma seleção de entidades)
Exemplo
Dada a seguinte tabela e relação:
var $attKind : Text
$attKind:=ds. Employee.lastname.kind //$attKind="storage"
$attKind:=ds. Employee.manager.kind //$attKind="relatedEntity"
$attKind:=ds. Employee.directReports.kind //$attKind="relatedEntities"
.mandatory
Histórico
Versão | Mudanças |
---|---|
v17 R5 | Adicionado |
.mandatory : Boolean
Descrição
A propriedade .name
The .name
property.
Esta propriedade não é retornada se .kind
= "relatedEntity" ou "relatedEntities".
Para programação genérica, pode utilizar Bool(dataClassAttribute.mandatory) para obter um valor válido (false) mesmo que
.mandatory
não seja devolvido. .size : Integer Aviso: Essas propriedade corresponde à propriedade de campo "Reject NULL value input" ao nível do banco de dados 4D. Não tem relação com a propriedade existente "Mandatory"/obrigatório que é uma opção de controle de entrada de dados para uma tabela.
.name
Histórico
Versão | Mudanças |
---|---|
v17 R5 | Adicionado |
.name : Text
Descrição
A propriedade .name
A propriedade .relatedDataClass
.
Exemplo
var $attName : Text
$attName:=ds. Employee.lastname.name //$attName="lastname"
.relatedDataClass
Histórico
Versão | Mudanças |
---|---|
v17 R5 | Adicionado |
.relatedDataClass : Text
Descrição
Esta propriedade só está disponível com atributos da propriedade "relatedEntity" ou "relatedEntities"
.kind
.
A propriedade .relatedDataClass
devolve o nome da classe de dados relacionada com o atributo.
Exemplo
Dada a seguinte tabela e relação:
var $relClass1; $relClassN : Text
$relClass1:=ds. Employee.employer.relatedDataClass //$relClass1="Company"
$relClassN:=ds. Employee.directReports.relatedDataClass //$relClassN="Employee"
.type
Histórico
Versão | Mudanças |
---|---|
v17 R5 | Adicionado |
.type : Text
Descrição
A propriedade .type
contém o tipo de valor conceptual do atributo, útil para a programação genérica.
O tipo de valor conceitual depende do atributo .kind
.
Valores possíveis:
dataClassAttribute.kind | type | Comentário |
---|---|---|
storage | "number", "date", "object", "bool", "image", or "string" | "number" se devolve para qualquer tipo numérico, incluindo a duração. "string" is returned for uuid, alpha and text field types |
relatedEntity | related dataClass name | Ex: "Companies" |
relatedEntities | related dataClass name + "Selection" suffix | Ex: "EmployeeSelection" |
.unique
Histórico
Versão | Mudanças |
---|---|
v17 R5 | Adicionado |
.unique : Boolean
Descrição
A propriedade .unique
contém True se o valor do atributo deve ser único. Essa propriedade corresponde a propriedade de campo 4D "Unique".
Esta propriedade não é retornada se .kind
= "relatedEntity" ou "relatedEntities".
Para programação genérica pode usar Bool(dataClassAttribute.unique) pra obter um valor válido (false) mesmo se
.unique
não for retornado.