$readonly - Campos de Só Leitura
Esta keyword marca um campo como sendo de só leitura para todos os utilizadores. Isto significa que, embora o valor do campo seja apresentado a qualquer pessoa que aceda aos detalhes de uma instância, esse valor não pode ser editado — ou seja, não pode ser actualizado. A caixa de introdução de dados de um campo com a keyword $readonly aparece cinzenta ao nível da instância e o valor guardado não pode ser alterado.
É possível utilizar $readonly de forma incondicional (sempre só leitura) ou com uma condição, tornando o campo só leitura apenas quando essa condição é verdadeira.
Utilização
$readonly$readonly(<Nome do Campo> [=, !=] [valor])Descrição dos modos
| Forma | Comportamento |
|---|---|
$readonly | O campo é sempre só de leitura, para todos os utilizadores e em qualquer estado do registo. |
$readonly(Campo=valor) | O campo é só de leitura quando o campo Campo tiver o valor valor. |
$readonly(Campo!=valor) | O campo é só de leitura quando o campo Campo não tiver o valor valor. |
$readonly(Campo=) | O campo é só de leitura quando o campo Campo está vazio. |
$readonly(Campo!=) | O campo é só de leitura quando o campo Campo não está vazio (ou seja, tem algum valor). |
Nota:
Nome do Camporefere-se ao nome de outro campo da mesma definição. A condição é avaliada dinamicamente com base no valor actual desse campo.
Exemplos
Campo sempre só leitura
$readonlyÚtil para campos cujo valor é definido automaticamente (por exemplo, por integrações ou scripts) e que nunca devem ser alterados manualmente.
Campo só leitura quando outro campo tem um valor específico
$readonly(Estado=Fechado)O campo fica só leitura quando o campo Estado tiver o valor Fechado. Enquanto Estado tiver outro valor, o campo permanece editável.



💡 Special case
Campo editável apenas na criação do registo
$readonly(id!=-1)O campo
idde um registo tem o valor-1enquanto o registo ainda não foi guardado (ou seja, durante a criação). Assim que o registo é criado e recebe umiddefinitivo, o campo passa a ser só leitura.Este padrão é útil para campos que só devem ser preenchidos uma vez, no momento da criação — como um código de referência ou um tipo de registo.
